MySQL主備停機步驟與注意事項


  雙十一馬上到了,一堆的事情,今天登錄mysql數據庫服務器的時候突然發現服務器時間戳不對,比北京時間快了幾分鍾,我的天。。。隨后檢查了其他的幾台數據庫服務器發現同樣都存在不同的偏差,最小的比北京時間快幾秒,最大的長達8分鍾,感覺整個人都不舒服了。。。服務器時間戳沒有同步會導致什么問題呢,舉個最簡單的例子你的程序代碼里面用now()來獲取時間,比如一個訂單,你最終會發現訂單的處理時間竟然比訂單的創建時間來到早,馬爸爸和東哥要是知道了還不得發飆啊!!!

  隨后要做的事情就是改服務器時間了,改服務器時間本身是個很簡單的事情,可是要考慮到應用數據在隨時寫入,兩台主從服務器還在實時同步,所以大概列了一個詳細的計划和步驟,大體思路是:停應用   停數據庫(先備后主)   改時間    啟數據庫(先主后備)   啟應用

備忘下:

  1 通知系統上下游,以及相關業務,系統某個時間點(一般在凌晨)停止服務

  2 關閉服務器入口,比如nginx/F5等,避免新的訂單進入

  3 關閉定時任務,避免任務繼續在跑

  4 關閉應用

  5 關閉MHA(MySQL高可用方案

  6 關閉MySQL從庫

    a.先查看當前的主從同步狀態show slave status\G;看是否雙yes

    b.執行stop slave

    c.停止從庫服務mysqladmin shutdown -u用戶名 -p密碼

    d.查看是否還有mysql的進程ps -ef | grep mysql

    d.如果部署了多個實例,那每個實例都要按照以上步驟來操作

  7 關閉MySQL主庫

    a.停止主庫服務mysqladmin shutdown -u用戶名 -p密碼

    b.查看是否還有mysql的進程ps -ef | grep mysql

  8 修改數據庫服務器時間

  9 啟動MySQL主庫

    a.啟動主庫服務mysqladmin start -u用戶名 -p密碼

    b.查看mysql的進程ps -ef | grep mysql

  10 啟動MySQL從庫

    a.啟動從庫服務mysqladmin start -u用戶名 -p密碼

    b.啟動復制start slave;

    c.檢查同步狀態show slave status\G;是否雙yes

    d.查看mysql的進程ps -ef | grep mysql

  11 啟動MHA

  12 啟動應用

  13 啟動定時器

  14 啟動外部入口

  15 完畢!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM