《MYSQL數(shù)據(jù)庫(kù)深入mysql主從復(fù)制延遲問題的詳解》要點(diǎn):
本文介紹了MYSQL數(shù)據(jù)庫(kù)深入mysql主從復(fù)制延遲問題的詳解,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
面試mysqldba的時(shí)候遇到一個(gè)題:MYSQL實(shí)例
描述msyql replication 機(jī)制的實(shí)現(xiàn)原理,如何在不停掉mysql主庫(kù)的情況下,恢復(fù)數(shù)據(jù)不一致的slave的數(shù)據(jù)庫(kù)節(jié)點(diǎn)?MYSQL實(shí)例
MySQL的復(fù)制(replication)是一個(gè)異步的復(fù)制,從一個(gè)MySQL instace(稱之為Master)復(fù)制到另一個(gè)MySQL instance(稱之Slave).實(shí)現(xiàn)整個(gè)復(fù)制操作主要由三個(gè)進(jìn)程完成的,其中兩個(gè)進(jìn)程在Slave(Sql進(jìn)程和IO進(jìn)程),另外一個(gè)進(jìn)程在Master(IO進(jìn)程)上.MYSQL實(shí)例
引用新浪某位大牛的話:mysql復(fù)制就是一句話:基于binlog的單線程異步復(fù)制過程.
MySQL Replication復(fù)制的基本過程如下:
1、Slave上面的IO進(jìn)程連接上Master,并請(qǐng)求從指定日志文件的指定位置(或者從最開始的日志)之后的日志內(nèi)容;
MYSQL實(shí)例
3、Slave的IO進(jìn)程接收到信息后,將接收到的日志內(nèi)容依次添加到Slave端的relay-log文件的最末端,并將讀取到的Master端的bin-log的文件名和位置記錄到master-info文件中,以便在下一次讀取的時(shí)候能夠清楚的高速M(fèi)aster“我需要從某個(gè)bin-log的哪個(gè)位置開始往后的日志內(nèi)容,請(qǐng)發(fā)給我”;MYSQL實(shí)例
4、Slave的Sql進(jìn)程檢測(cè)到relay-log中新增加了內(nèi)容后,會(huì)馬上解析relay-log的內(nèi)容成為在Master端真實(shí)執(zhí)行時(shí)候的那些可執(zhí)行的內(nèi)容,并在自身執(zhí)行MYSQL實(shí)例
操作過程:
(1)登陸主服務(wù)器,查看主服務(wù)器的狀態(tài)
mysql>show master status;
找到現(xiàn)階段master的數(shù)據(jù)偏移量的值.MYSQL實(shí)例
(2)登陸從服務(wù)器,執(zhí)行同步操作.
mysql>stop slave;
mysql > change master to 直接定位到這個(gè)值得位置; 這里也就相當(dāng)于給slave指明了相應(yīng)的位置.
mysql > start slave;MYSQL實(shí)例
(3)從服務(wù)器上查看狀態(tài)
mysql > show slave status
MYSQL實(shí)例
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/5229.html