我是mysql新手。MySQL故障轉移:如何選擇奴隸作爲新的主人?
說到故障切換時,應該將哪個從站升級爲新的主站?
例如,A是主,B和C是從站,和A確實異步複製到B和C.
在的某個時間點,B從A比C,A崩潰接收更多的數據。
如果我們將C升爲新主人,並將B的主人改爲C,那麼B會發生什麼?它截斷其數據以匹配C?
顯然,B是最好的新主人選,但我的問題是,如何確定這個事實?
我是mysql新手。MySQL故障轉移:如何選擇奴隸作爲新的主人?
說到故障切換時,應該將哪個從站升級爲新的主站?
例如,A是主,B和C是從站,和A確實異步複製到B和C.
在的某個時間點,B從A比C,A崩潰接收更多的數據。
如果我們將C升爲新主人,並將B的主人改爲C,那麼B會發生什麼?它截斷其數據以匹配C?
顯然,B是最好的新主人選,但我的問題是,如何確定這個事實?
從MySQL documentation有兩種建立主從架構的方法。使用日誌文件複製事務的傳統方式和使用GTID(全局事務標識符)的新版本(5.6+)。
如果您選擇使用GTID進行故障轉移處理,您將使用mysqlfailover實用程序。該工具能夠掌握的失敗在由數據庫管理員定義的三種方式之一:
傳統的方式要求您實施自己的腳本來進行數據庫管理,更好地解釋here。
Relay_Master_Log_File
和Exec_Master_Log_Pos
in SHOW SLAVE STATUS
用於確定最佳奴隸作爲新的主人:更大的勝利。
沒有GTID,我認爲我們必須首先將其他奴隸與我們選擇的最好的奴隸同步。明顯的同步源是中繼日誌。在每個從站上,確定最佳從站的中繼日誌的差異,下載這些文件並重播SQL語句。一旦所有的奴隸趕上來,奴隸們就可以成爲最好的奴隸。 MASTER_LOG_FILE
和MASTER_LOG_POS
將是最佳從站上最後一個binlog的尾部。
隨着GTID,它非常簡單:只需CHANGE MASTER TO
與MASTER_AUTO_POSITION=1
。
http://stackoverflow.com/questions/14116488/master-slave-configuration歸因於 –
問題......這是一個小問題,因爲在理解答案之前你需要理解這個問題:你在複製基於二進制日誌座標或全局事務標識符(GTID)? –
@ Michael-sqlbot你能解釋一下嗎? – kingluo