#####################################
公司主營(yíng)業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出洪澤免費(fèi)做網(wǎng)站回饋大家。
主從同步: 讓其他數(shù)據(jù)庫(kù)服務(wù)器自動(dòng)同步正在提供服務(wù)的數(shù)據(jù)庫(kù)服務(wù)器上的數(shù)據(jù)。
構(gòu)建主從同步
(a)確保主、從數(shù)據(jù)庫(kù)的數(shù)據(jù)相同
從庫(kù)必須要有主庫(kù)上的數(shù)據(jù)
(b)配置主服務(wù)器
啟用binlog日志,server_id,授權(quán)用戶
(c)配置從服務(wù)器
設(shè)置server_id
[master]
/etc/my.cnf
[mysqld]
server_id=11
log-bin=master11
binlog-format="mixed" /指定日志格式
#systemctl start mysqld
#mysql>grant replication slave on *.* slaveuser@"%" identified by "123456"; /授權(quán)slaveuser用戶在所有主機(jī)登錄,權(quán)限為replication slave
show master status; /查看binlog日志
[slave]
/etc/my.cnf
[mysqld]
server_id=12 /可以不啟用binlog日志
mysql>change master to
>master_host="192.168.4.11", /指出主服務(wù)器地址
>master_user="slaveuser", /指出使用slaveuser授權(quán)用戶登錄主服務(wù)器
>mster_password="123456", /授權(quán)用戶的密碼
>master_log_file="master11.000001", /指出主服務(wù)器現(xiàn)在的binlog日志
>master_log_pos=154; /主服務(wù)器binlog日志的偏移量
#start slave; /啟動(dòng)復(fù)制
#show slave status; /查看slave狀態(tài)
slave_IO_running:yes /IO線程已運(yùn)行
slave_SQL_running:yes /SQL線程已運(yùn)行
IO線程: 復(fù)制master主機(jī)binlog日志文件里的SQL到本機(jī)的relay-log文件里
SQL線程: 執(zhí)行本機(jī)relay-log文件里的SQL語(yǔ)句,重現(xiàn)master數(shù)據(jù)操作
出現(xiàn)問題解決:
IO線程狀態(tài)是no ---> 沒有連接到主服務(wù)器上等
SQL線程狀態(tài)是no ---> 主從數(shù)據(jù)不同步等
#ls /var/lib/mysql
master.info /連接主服務(wù)器信息
relay-log.info /中繼日志消息
主機(jī)名-relay-bin.xxxxxx /中繼日志
主機(jī)名-relay-bin.index 中繼日志索引文件
主從同步模式
一主一從
一主多從
主從從(主---從(主)---從) /1是2的主,2是1的從且是3的主,3是2的從
主主結(jié)構(gòu)(互為主從)
主庫(kù)配置文件(對(duì)所有從服務(wù)器有效)
只允許同步的庫(kù) binlog_do_db=庫(kù)1,庫(kù)2
不允許同步的庫(kù) binlog_ignore_db=庫(kù)1,庫(kù)2
從庫(kù)配置文件
只允許同步的庫(kù) replicate_do_db=庫(kù)1,庫(kù)2
不允許同步的庫(kù) replicate_ignore_db=庫(kù)1,庫(kù)2
級(jí)連復(fù)制 log_slave_updates
#########################################
為了緩解主服務(wù)器的壓力,采用讀寫分離,即客戶端進(jìn)行寫操作時(shí),進(jìn)入主服務(wù)器,客戶端進(jìn)行讀操作時(shí),進(jìn)入從服務(wù)器
實(shí)現(xiàn)方式: maxscale軟件 + 一主一從
[master11]
[slave12]
slave12是master11的從服務(wù)器
[monitor13]
#rpm -ivh maxscale..
修改配置文件
/etc/maxscale.cnf
(a)指定數(shù)據(jù)庫(kù)服務(wù)器
[server1]
[server2]
(b)指定監(jiān)控的數(shù)據(jù)庫(kù)服務(wù)器
(c)指定讀寫在那些服務(wù)器之間執(zhí)行
(d)定義管理服務(wù)
(e)讀寫分離使用的端口 port=4006
(f)管理服務(wù)使用的端口 port=4009
(g)根據(jù)配置文件,在數(shù)據(jù)庫(kù)服務(wù)器上添加相應(yīng)的授權(quán)用戶
[master11]
>grant replication slave replication client on *.* to scalemon@"%" identified by "123456";
使用scalemon 用戶監(jiān)控讀寫分離服務(wù)器
>grant select on mysql.* to saclemax@"%" identified by "123456";
使用scalemax 用戶監(jiān)控登錄的用戶是否是數(shù)據(jù)庫(kù)的授權(quán)用戶
[monitor13]
maxscale --help
#maxscale -f /etc/maxsacle.cnf /啟動(dòng)服務(wù)
#netstat -lnptu | grep :4006
maxadmin -uamdin -pmariadb -P4009
maxscale>list servers /列出監(jiān)控的服務(wù)器
#killall maxscale /殺死進(jìn)程,停止服務(wù)
驗(yàn)證
[宿主機(jī)254]
#mysql -h292.168.4.13 -P4006 -uuser -p123456
>select @@hostname /查看當(dāng)前處于哪個(gè)數(shù)據(jù)庫(kù)服務(wù)器