數據庫同步自動斷開問題的處理

 堡壘機的實施過程中,因爲做了雙機,所以要對兩臺堡壘機進行數據庫的主從同步和HA配置。

在部署完mysql主從同步以後,發現同步會有中斷的現象。

中斷表現爲

 Slave_IO_Running: Yes

 Slave_SQL_Running: No    

 Replicate_Do_DB:

 Replicate_Ignore_DB:

 Replicate_Do_Table:

 Replicate_Ignore_Table:

 Replicate_Wild_Do_Table:

 Replicate_Wild_Ignore_Table:

 Last_Errno: 1062


經過排查,發現了引起這一問題的原因。由於在在實施階段,每次對堡壘機進行測試,都要分別對兩臺機器進行訪問操作,執行相應的堡壘機功能。在配置mysql主從同步的時候,將wssg_system_params這張表裏面的linux-hos 改爲了10.2.29.216(HA的VIP)。由於兩個庫裏面全是216這個地址,且HA活動在209機器上面,在直接訪問210的時候,這個表裏面的地址是失效的,但是訪問記錄還是會產生,導致wssg_dcmdhis這張表裏面的主鍵自增長,不能正常同步。


解決辦法1(有效,但是不能再對wssg_system_params和wssg_serverregister這兩張表進行修改,不然數據會同步以後出錯)



# A B

服務器停止同步

STOP SLAVE;

# A B

服務器清空Master日誌

RESET MASTER;

# A B 服務器鎖表(鎖表狀態下不能終止mysql進程,否則會失敗)

FLUSH TABLES WITH READ LOCK;

將209的數據導入到210.

# 查看A 服務器主機狀態(記錄二進制開始文件,位置,下面需要用到)

SHOW MASTER STATUS;

# 修改B 服務器配置

CHANGE MASTER TO

MASTER_HOST='10.2.29.209',MASTER_USER=’backup’,

MASTER_PASSWORD='itc123',MASTER_LOG_FILE=’binlog.000001′,MASTER_LOG_POS=107;

# 開啓B 服務器同步進程

START SLAVE;

# 查看B 服務器同步狀態是否正常

SHOW SLAVE STATUS;

#查看B 服務器主機(記錄二進制開始文件,位置)

SHOW MASTER STATUS;

# 修改A 服務器配置

CHANGE MASTER TO MASTER_HOST=’10.2.29.210′,MASTER_USER=’backup’,MASTER_PASSWORD=’itc1

23′,MASTER_LOG_FILE=’binlog.000001′,MASTER_LOG_POS=107;

# 開啓A 服務器同步進程

START SLAVE;

# 分別查看A B

服務器同步狀態,確定是否成功

SHOW SLAVE STATUS;SHOW MASTER STATUS;

# 解鎖A B 服務器

UNLOCK TABLES;



通過這個辦法能是同步從當前時刻開始,兩臺機器裏面的表數據,有改動的,就會有被同步。所以這個辦法要求不能修改以上相關的那兩張表



解決辦法2(採取忽略掉關鍵表的方式進行同步。理論上最合適的方案,但我做的時候會將我忽略的表刪除掉,很詭異,等我熟悉了mysql同步表忽略機制以後,在進行補充)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章