搜尋此網誌

2022年6月5日 星期日

MariaDB 歲修保養維護 - 模式一:資料庫叢集服務不停止

很重要! 請先參照備份與還原章節實施備份,再繼續往下。
尤其是選擇要將叢集成員全部停機的歲修保養方式

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


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


相對而言,服務不停止情況下的作業方式為最簡單,

原則:最晚加入群集的節點為最優先關機進行歲修保養。

方法:分辨出最早(領頭羊)與最晚的群集內節點,那要如何找出來呢?

查找資料庫叢集各台成員的 /var/log/mariadb/mariadb.log 檔案內容尾部(注意:是內容的尾)
參考以下示意圖:


… () …

View:

  id: 1c06ce49-bcd3-11ec-b14e-8b8dee207a31:1172

  status: primary

  protocol_version: 4

  capabilities: MULTI-MASTER, CERTIFICATION, PARALLEL_APPLYING, REPLAY, ISOLATION, PAUSE, CAUSAL_READ, INCREMENTAL_WS, UNORDERED, PREORDERED, STREAMING, NBO

  final: no

  own_index: 1

  members(3):

        0: 07b735c5-c5f1-11ec-960f-dfe621728932, node3

        1: ce7be80b-c5f0-11ec-97f3-633bd2a0f1e8, node2

        2: f3284315-c633-11ec-8919-96b52b18760a, node1

        3: 01b775c5-c5f1-12ec-ab0f-dfe621246932c, node4

… () …


從 LOG 內容得知:


示意圖內的Node3 可被視為領頭羊,領頭羊節點是機器之間投票是推選出來的,不是開機愈久就是領頭羊。示意圖內的Node4可被視為最晚加入,成為叢集成員身份的時間最短。

以下敘述先以Node4做為歲修保養對象:
  • 至Node4資料庫節點上,正式關閉MariaDB服務指令是:

    systemctl stop mariadb

  • 將Node4資料庫節點關機進行歲修或保養等其他。

  • 完成後將Node4資料庫節點開機

  • 確認Node4資料庫節點有是否成功加入MariaDB Galera叢集內,執行:

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


  • Node 4資料庫節點畫面上要看到如下:

    wsrep_ready     ON

    如果無法得到以上資訊,表示沒有啟動成功。

  • 嘗試Node4資料庫節點,執行:

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

    Node 4資料庫節點畫面上要看到如下:

    wsrep_cluster_size      4

    如果無法得到以上資訊,表示沒有啟動成功,檢查Node4資料庫節點
    查看/etc/my.cnf.d/server.cnf檔案內容的 wsrep_cluster_address='gcomm://….'。

    其IP順序不能指向自己,必須要指向正在運行的其他資料庫節點。

  • 在Node4資料庫節點成功重新加入叢集之後,依此類推:Node1 → Node2 → Node 3,逐步完成資料庫節點歲修保養。




沒有留言:

張貼留言

搜尋此網誌