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