復(fù)制方式
通過主庫上記錄二進(jìn)制日志余指,在備庫重放日志的方式來實(shí)現(xiàn)異步的數(shù)據(jù)復(fù)制。
- 基于行的復(fù)制
- 基于語句的復(fù)制
復(fù)制步驟
在主庫上把數(shù)據(jù)更改記錄到二進(jìn)制日志综慎。
每次準(zhǔn)備提交事務(wù)完成數(shù)據(jù)跟新之前窗宦,把數(shù)據(jù)跟新事件記錄到二進(jìn)制文件中,也就是說是按照事務(wù)提交順序來記錄二進(jìn)制文件咏闪,而不是按照每條語句來記錄曙搬。記錄完,主庫會(huì)告訴存儲(chǔ)引擎可以提交事務(wù)了。-
備庫把主庫的二進(jìn)制文件復(fù)制到本地中繼日志
- 啟動(dòng)復(fù)制
CHANGE MASTER TO MASTER_HOST = '10.*.*.36', MASTER_USER = 'repl', MASTER_PASSWORD = 'replpassword', MASTER_PORT = 3306, MASTER_AUTO_POSITION = 1, MASTER_RETRY_COUNT = 0, MASTER_HEARTBEAT_PERIOD = 10000;
- 從庫啟動(dòng)一個(gè)IO線程和SQL線程纵装,IO線程會(huì)跟主庫建立一個(gè)普通的客戶端長連接征讲,并為主庫開啟特殊的二進(jìn)制轉(zhuǎn)儲(chǔ)(binlog dump)線程。
- 從庫把自己的read_master_log_pos的值告訴主庫橡娄,主庫會(huì)自從庫告知自己pos開始把事件推送給從庫诗箍,當(dāng)沒有事件發(fā)生時(shí),主從庫的IO都會(huì)進(jìn)行睡眠狀態(tài)挽唉。
- 當(dāng)主庫有事件發(fā)生時(shí)滤祖,主庫IO線程被激活,并把事件推送給從庫橱夭,并通知從庫IO線程進(jìn)入工作狀態(tài)氨距。
- 從庫SQL線程執(zhí)行二進(jìn)制日志。
主庫能并行執(zhí)行SQL棘劣,在從庫上只能串行執(zhí)行俏让。
- 啟動(dòng)復(fù)制