MySQL主從切換是指在主庫(kù)出現(xiàn)故障或需要維護(hù)時(shí),將主庫(kù)角色轉(zhuǎn)移到從庫(kù)上。這樣可以保證數(shù)據(jù)的高可靠性和可用性。當(dāng)從庫(kù)成為主庫(kù)后,其他從庫(kù)需要進(jìn)行相應(yīng)的處理。
示例命令:
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='新主機(jī)IP', MASTER_USER='slave用戶(hù)', MASTER_PASSWORD='密碼', MASTER_LOG_FILE='新主庫(kù)Binlog文件名', MASTER_LOG_POS=新主庫(kù)Binlog位置;
START SLAVE;
在原來(lái)的從庫(kù)中執(zhí)行以上命令,將新主機(jī)的信息更新到從庫(kù)中。其中,新主機(jī)IP為新主庫(kù)的IP地址,slave用戶(hù)和密碼為從庫(kù)連接主庫(kù)時(shí)使用的用戶(hù)和密碼。新主庫(kù)Binlog文件名和位置為在新主庫(kù)上執(zhí)行SHOW MASTER STATUS命令獲得的結(jié)果。
示例命令:
STOP SLAVE;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
START SLAVE;
如果在切換主從角色時(shí),從庫(kù)的數(shù)據(jù)比主庫(kù)多了一些,就會(huì)導(dǎo)致從庫(kù)同步失敗,這時(shí)需要在原來(lái)的從庫(kù)中執(zhí)行以上命令。其中,SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1表示跳過(guò)1個(gè)錯(cuò)誤,START SLAVE表示重新開(kāi)始同步。
在從庫(kù)上操作,需要謹(jǐn)慎處理,避免數(shù)據(jù)的丟失或錯(cuò)誤。在操作前最好備份數(shù)據(jù),以備不時(shí)之需。