mysql主從復(fù)制詳細教程 redis主從同步機制是推還是拉?
redis主從同步機制是推還是拉?It 正在拉。Rmysql主從同步主節(jié)點掛了怎么辦?可以重新建立直接點。從節(jié)點恢復(fù)數(shù)據(jù)Mysql“集群”和”主從“兩者的區(qū)別是什么?mysql的主服務(wù)器和從服務(wù)器是
redis主從同步機制是推還是拉?
It 正在拉。
R
mysql主從同步主節(jié)點掛了怎么辦?
可以重新建立直接點。從節(jié)點恢復(fù)數(shù)據(jù)
Mysql“集群”和”主從“兩者的區(qū)別是什么?
mysql的主服務(wù)器和從服務(wù)器是地理上獨立的系統(tǒng),通過網(wǎng)絡(luò)保持同步副本,它們的處理器內(nèi)存和永久存儲介質(zhì)獨立于其他站點。
1.數(shù)據(jù)共享和無共享之間最明顯和最本質(zhì)的區(qū)別是集群是一個共享存儲。復(fù)制中沒有共享,每臺機器都是獨立完整的系統(tǒng),這就帶來了應(yīng)用和實現(xiàn)技術(shù)的差異。
2.當(dāng)主模塊執(zhí)行提交語句時,事務(wù)被發(fā)送到從模塊,從模塊開始準(zhǔn)備事務(wù)的提交。每個從機都應(yīng)該準(zhǔn)備好事務(wù),然后向主機發(fā)送一個OK(或ABORT)消息,表明事務(wù)準(zhǔn)備好或不能準(zhǔn)備好。
3.主機等待所有從機發(fā)送OK或中止消息。如果主機從所有從機接收到OK消息,它將向所有從機發(fā)送提交消息,告訴它們提交事務(wù)。如果主機從任何從機接收到中止消息,它將向所有從機發(fā)送中止消息,告訴它們停止事務(wù)。
mysql主從同步有個疑問,如果從庫宕機,在從庫恢復(fù)之前主庫沒同步過來的數(shù)據(jù),要如何處理呢?
首先,要了解MySQL的主從同步原理:
服務(wù)器在二進制binlog日志中記錄所有的數(shù)據(jù)變化,只要主服務(wù)器上的數(shù)據(jù)發(fā)生變化,就將變化寫入二進制日志;
服務(wù)器會在一定時間間隔內(nèi)檢測主二進制日志是否有變化,如果有變化,會啟動一個I/O線程請求主二進制事件;
3.同時,主節(jié)點為每個I/O線程啟動一個dump線程,用于向其發(fā)送二進制事件,并保存在從節(jié)點的本地中繼日志中;
4.從節(jié)點會啟動SQL線程從中繼日志中讀取二進制日志并在本地重放,使其數(shù)據(jù)與主節(jié)點一致;
5.最后,I/O線程和SQL線程將進入睡眠狀態(tài),等待下一次喚醒。
所以從庫恢復(fù)后,會自動請求主庫的二進制日志,從而實現(xiàn)數(shù)據(jù)同步。
主圖書館如果日志可以保留到備用數(shù)據(jù)庫恢復(fù)時,則可以在備用數(shù)據(jù)庫恢復(fù)后從斷開連接時開始同步。如果刪除了中間日志,備用數(shù)據(jù)庫只能重做,同步無法繼續(xù)。
單獨在主庫,不需要或者任何處理。
master永遠不一致,所以rdb和aof可以同時使用。