1. 程式人生 > >MySQL主從/Zabbix 一次完整的遷移過程

MySQL主從/Zabbix 一次完整的遷移過程

受機房影響,線上業務需要做一些改動,原架構需要做一次替換將之前的主作為從,從作為主,當前線上架構:

遷移之後的架構如下:

因Zabbix主主模式不支援,需要將原zabbix從資料(164)匯出一份傳到(84)上面進行主從修改,為不影響線上業務,現需要停止主從同步:

164目前進行同步狀態


1,清空binlog日誌:


164檢視是否出現不同步


2:現不影響線上環境 需要將164 啟動zabbixserver服務


3:現在的話 主從已經不存在,修改84MySQL配置檔案,將zabbix的一些歷史記錄的一些表不同步,重啟MySQL

4:將164暫時鎖表,將zabbix

庫完整備份,導到84上面(過程很慢),關於傳sql檔案 有很多方式可以進行傳,之前用的是rsync(線上環境)感覺不是特別快,也看不到進度,後在nginx定義規則 進行 wget 前面加nohup 後面扔個&


注意:鎖表之後該服務將暫時返回502 為不影響線上 將之前的84暫時啟動;


匯出之後 記得 重置binlog日誌(根據需求可不重置),記住偏移量,然後 解鎖表。

5:下載SQL檔案


下載過程中 可以到164上新增週期性計劃任務定時清除zabbix歷史記錄,防止歷史記錄過多,導致查詢資料變慢,(根據公司需求可以保留):

每週日凌晨2點執行 清理zabbix歷史記錄指令碼,清理

40天之前歷史記錄



6:上傳之後:將84zabbixServer 停掉(如果不停掉的話,那麼資料匯入之後Server會執行(寫入資料)) 將資料匯入mysql 進行主從設定


匯入SQL資料時出現問題,這個問題是zabbix庫下有檔案沒有刪乾淨 要麼進資料庫從新刪除在建立,要麼直接進入目錄下進行rm -f


遇到這樣的情況,你就應該嘗試著去刪除dirdata下的zabbix目錄了(因之前刪過,不在演示)



7:檢視主從狀態,測試164建立測試庫 84是否同步

從檢視Slave狀態


164主進行建立test1庫以及刪除test1庫測試


84從進行測試


至此整個mysql+zabbix遷移完成,中間有很多我遇到的問題 我沒有寫出來因為,生產環境不同你們可能不會遇到。