主從復(fù)制

復(fù)制過程:

主節(jié)點(diǎn)必須啟用二進(jìn)制日志,記錄任何修改數(shù)據(jù)庫數(shù)據(jù)的事件。

從節(jié)點(diǎn)開啟一個(gè)線程(I/O Thread)把自己扮演成mysql的客戶端,通過mysql協(xié)議,請(qǐng)求主節(jié)點(diǎn)的二進(jìn)制日志文件中的事件

主節(jié)點(diǎn)啟動(dòng)一個(gè)線程(dump Thread),檢查自己二進(jìn)制日志中的事件,跟對(duì)方請(qǐng)求的位置對(duì)比,如果不帶請(qǐng)求位置參數(shù),則主節(jié)點(diǎn)就會(huì)從第一個(gè)日志文件中的第一個(gè)事件一個(gè)一個(gè)發(fā)送給從節(jié)點(diǎn)。

從節(jié)點(diǎn)接收到主節(jié)點(diǎn)發(fā)送過來的數(shù)據(jù)把它放置到中繼日志(Relay log)文件中。并記錄該次請(qǐng)求到主節(jié)點(diǎn)的具哪個(gè)二進(jìn)制日志文件的哪個(gè)位置。

從節(jié)點(diǎn)啟動(dòng)另外一個(gè)線程(sql Thread ),把replaylog中的事件讀取出來,并在本地再執(zhí)行一次。

配置步驟:

1、主服務(wù)器修改配置文件

[mysqld]

log-bin=mysql-bin #開啟二進(jìn)制日志

server-id=1 #設(shè)置server-id

2、啟動(dòng)主數(shù)據(jù)庫服務(wù)

3、創(chuàng)建用于同步的用戶賬號(hào)

mysql> CREATE USER 'copy'@'*.*.*.*' IDENTIFIED BY '******';#創(chuàng)建用戶

mysql> GRANT REPLICATION SLAVE ON *.* TO 'copy'@'*.*.*.*';#分配權(quán)限

mysql>flush privileges;? #刷新權(quán)限

4、從服務(wù)器修改配置文件:

server-id=2

5、啟動(dòng)從數(shù)據(jù)庫服務(wù)

6、在從節(jié)點(diǎn)配置訪問主節(jié)點(diǎn)的參數(shù)信息

CHANGE MASTER TO MASTER_HOST='',MASTER_USER='',MASTER_PASSWORD='', MASTER_LOG_FILE='',MASTER_LOG_POS=;

7、啟動(dòng)復(fù)制線程

start slave;

8、查看同步狀態(tài)

show slave status\g;

注:Slave_IO及Slave_SQL進(jìn)程必須正常運(yùn)行,即YES狀態(tài),否則都是錯(cuò)誤的狀態(tài)(如:其中一個(gè)NO均屬錯(cuò)誤)。

以上操作過程,主從服務(wù)器配置完成。

主從復(fù)制架構(gòu)中應(yīng)注意的問題:

1、限制從服務(wù)器為只讀

在從服務(wù)器上設(shè)置:

read_only = ON,但是此限制對(duì)擁有SUPER權(quán)限 的用戶均無效。

阻止所有用戶:

mysq>FLUSH TABLES WITH READ LOCK;

2、主服務(wù)器設(shè)置需要同步的庫

binlog-do-db = db1

3、從庫同步出問題了,在不重啟主庫的情況下進(jìn)行主從復(fù)制恢復(fù)

首先導(dǎo)出db文件:mysqldump -uroot -p --routines --single_transaction --master-data=2 --databases db > db.sql

然后在從庫stop slave

查看導(dǎo)出db文件? head -50 db.sql |grep "CHANGE MASTER"? ? ? #-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=21212;

在從庫執(zhí)行CHANGE MASTER TO MASTER_HOST='',MASTER_USER='',MASTER_PASSWORD='', MASTER_LOG_FILE='',MASTER_LOG_POS=;文件名及位置參照上面查詢的結(jié)果

最后start slave;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容