更新時(shí)間:2022-10-11 來(lái)源:黑馬程序員 瀏覽量:
主從復(fù)制是指將主數(shù)據(jù)庫(kù)的 DDL 和 DML 操作通過(guò)二進(jìn)制日志傳到從庫(kù)服務(wù)器中,然后在從庫(kù)上對(duì)這些日志重新執(zhí)行(也叫重做),從而使得從庫(kù)和主庫(kù)的數(shù)據(jù)保持同步。
MySQL支持一臺(tái)主庫(kù)同時(shí)向多臺(tái)從庫(kù)進(jìn)行復(fù)制, 從庫(kù)同時(shí)也可以作為其他從服務(wù)器的主庫(kù),實(shí)現(xiàn)鏈狀復(fù)制。
MySQL 復(fù)制的優(yōu)點(diǎn)主要包含以下三個(gè)方面:
1.主庫(kù)出現(xiàn)問(wèn)題,可以快速切換到從庫(kù)提供服務(wù)。
2.實(shí)現(xiàn)讀寫(xiě)分離,降低主庫(kù)的訪(fǎng)問(wèn)壓力。
3.可以在從庫(kù)中執(zhí)行備份,以避免備份期間影響主庫(kù)服務(wù)。
從上圖來(lái)看,復(fù)制分成三步:
1. Master 主庫(kù)在事務(wù)提交時(shí),會(huì)把數(shù)據(jù)變更記錄在二進(jìn)制日志文件 Binlog 中。
2. 從庫(kù)讀取主庫(kù)的二進(jìn)制日志文件 Binlog ,寫(xiě)入到從庫(kù)的中繼日志 Relay Log 。
3. slave重做中繼日志中的事件,將改變反映它自己的數(shù)據(jù)。