搜尋此網誌

2022年6月5日 星期日

MariaDb 歲修保養維護 - 模式二:資料庫叢集服務全面停止

很重要請先參照備份與還原章節實施備份,再繼續往下。

尤其是選擇要將叢集成員全部停機的歲修保養方式

如果一定要將叢集成員全部停機亦可,不過非常不推薦,除非遭遇到不可抗力之因素。


以下假設由 4 台 MariaDB 組成了  Galery Cluster


服務全停的【關閉】順序:

  • 關閉MariaDB服務指令是:systemctl stop mariadb

  • 依權重順序關機,第四台 → 第三台 → 第二台 → 第一台

  • 關機過程中,間隔請等待至少五秒,讓投票機制完善。

  • 待全部依序關閉服務後,查看所有節點grastate.dat內容,執行:

    cat /var/lib/mysql/grastate.dat

  • 看到狀態:第一台服務節點的seqno 值最大,唯獨第一台服務節點的safe_to_bootstrap值為1。表示下次開機順序該節點必須為最優先,務必記錄下來。

  • 截至為止已經可以將全部資料庫節點進行關機。



服務全停的【啟動】順序:
  • 根據上次關閉服務結果所指定的節點作為第一台。

  • 第一台資料庫節點手動修改 /etc/my.cnf.d/server.cnf檔案:暫時調整為
    wsrep_cluster_address='gcomm://'。

  • 第一台資料庫節點的/var/lib/mysql/grastate.dat檔案safe_to_bootstrap: 1。

  • 第一台資料庫節點執行啟動 systemctl start mariadb

  • 第一台資料庫節點確認結果,執行:
    mysql -uroot -p1qaz2wsx -e "SHOW STATUS LIKE 'wsrep%';" | grep wsrep_ready

    mysql -uroot -p1qaz2wsx -e "SHOW STATUS LIKE 'wsrep%';" | grep wsrep_cluster_size

    第一台資料庫節點畫面上要看到如下:
    wsrep_ready     ON
    wsrep_cluster_size      1

    註:如果發生沒有辦法啟動,肯定是背景中還有Mariadb的服務沒有關閉,可以執行:netstat -ntlp,查出mariadbd的 process id,然後執行kill -9 id號碼來關閉Mariadb的服務。



  • 第二台資料庫節點執行啟動

    systemctl start mariadb

  • 第二台資料庫節點確認結果,執行:

    mysql -uroot -p1qaz2wsx -e "SHOW STATUS LIKE 'wsrep%';" | grep wsrep_ready

    mysql -uroot -p1qaz2wsx -e "SHOW STATUS LIKE 'wsrep%';" | grep wsrep_cluster_size


  • 第二台資料庫節點畫面上要看到如下:

    wsrep_ready     ON
    wsrep_cluster_size      2

    註:如果發生沒有辦法啟動,肯定是背景中還有Mariadb的服務沒有關閉,可以執行:netstat -ntlp,查出mariadbd的 process id,然後執行kill -9 id號碼來關閉Mariadb的服務。




  • 第三台資料庫節點執行啟動

    systemctl start mariadb

  • 第三台資料庫節點確認結果,執行:

    mysql -uroot -p1qaz2wsx -e "SHOW STATUS LIKE 'wsrep%';" | grep wsrep_ready

    mysql -uroot -p1qaz2wsx -e "SHOW STATUS LIKE 'wsrep%';" | grep wsrep_cluster_size


  • 第三台資料庫節點畫面上要看到如下:
    wsrep_ready     ON
    wsrep_cluster_size      3

    註:如果發生沒有辦法啟動,肯定是背景中還有Mariadb的服務沒有關閉,可以執行:netstat -ntlp,查出mariadbd的 process id,然後執行kill -9 id號碼來關閉Mariadb的服務。



  • 第四台資料庫節點執行啟動

    systemctl start mariadb
  • 第四台資料庫節點確認結果,執行:

    mysql -uroot -p1qaz2wsx -e "SHOW STATUS LIKE 'wsrep%';" | grep wsrep_ready

    mysql -uroot -p1qaz2wsx -e "SHOW STATUS LIKE 'wsrep%';" | grep wsrep_cluster_size

  • 第四台資料庫節點畫面上要看到如下:
    wsrep_ready     ON
    wsrep_cluster_size      4

    註:如果發生沒有辦法啟動,肯定是背景中還有Mariadb的服務沒有關閉,可以執行:netstat -ntlp,查出mariadbd的 process id,然後執行kill -9 id號碼來關閉Mariadb的服務。

  • 回到第一台資料庫節點,修改 /etc/my.cnf.d/server.cnf檔案:
    調整為 wsrep_cluster_address='gcomm://所有其他節點的IP以逗號隔開'
    調整好之後,已不需要再重啟服務。

- 完成  -

沒有留言:

張貼留言

搜尋此網誌