復(fù)制原理:
成都創(chuàng)新互聯(lián)公司成都網(wǎng)站建設(shè)按需網(wǎng)站策劃,是成都網(wǎng)站推廣公司,為成都廣告推廣提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計、前端HTML5制作、后臺程序開發(fā)等。成都網(wǎng)站改版熱線:13518219792
A.從庫生成兩個線程,一個I/O線程,一個SQL線程;
i/o線程去請求主庫 的binlog,并將得到的binlog日志寫到relay log(中繼日志) 文件中;
SQL 線程,會讀取relay log文件中的日志,并解析成具體操作,來實現(xiàn)主從的操作一致,而最終數(shù)據(jù)一致;
B.主庫會生成一個 log dump 線程,用來給從庫 i/o線程傳binlog;
復(fù)制的基本過程如下:
1.Slave上面的IO線程連接上Master,并請求從指定日志文件的指定位置(或者從最開始的日志)之后的日志內(nèi)容;
2.Master接收到來自Slave的IO線程的請求后,通過負責復(fù)制的IO線程根據(jù)請求信息讀取指定日志指定位置之后的日志信息,返回給Slave端的
IO線程。返回信息中除了日志所包含的信息之外,還包括本次返回的信息在Master端的Binary Log文件的名稱以及在Binary
Log中的位置;
3.Slave的IO線程接收到信息后,將接收到的日志內(nèi)容依次寫入到 Slave
端的RelayLog文件(MySQL-relay-bin.xxxxxx)的最末端,并將讀取到的Master端的bin-log的文件名和位置記錄到master-info文件中,以便在下一次讀取的時候能夠清楚的告訴Master“我需要從某個bin-log的哪個位置開始往后的日志內(nèi)容,請發(fā)給我”。
4.Slave的SQL線程檢測到Relay
Log(中繼日志)中新增加了內(nèi)容后,會馬上解析該Log文件中的內(nèi)容成為在Master
端真實執(zhí)行時候的那些可執(zhí)行的Query語句,并在自身執(zhí)行這些操作。這樣,實際上就是在Master端和Slave端執(zhí)行了同樣的Query,所以兩端的數(shù)據(jù)是完全一樣的。