前文閱讀:1.MySQL高可用--MGR入門(1)單主/多主模式搭建2.MySQL高可用--MGR入門(2)組復(fù)制監(jiān)控常用相關(guān)表3.MySQL高可用--MGR入門(3)單主/多主模式切換MGR 對網(wǎng)絡(luò)要求很高,有的時候會因網(wǎng)絡(luò)波動,自動退出集群的情況,此時需要先在出問題的節(jié)點停止組復(fù)制,然后再重新加入到集群中。如下,該節(jié)點被踢出集群,直接執(zhí)行Stop group_replication;報錯: 需要先執(zhí)行 stop group_replication 然后再 start group_replication:
3.1暫時性恢復(fù) MGR 對數(shù)據(jù)具有一定的容錯性和最終一致性,原則上并不會出現(xiàn)數(shù)據(jù)不一致的情況,并且每次執(zhí)行事務(wù)都會檢測沖突,如果某個節(jié)點的數(shù)據(jù)因為異常導(dǎo)致不一致,切主節(jié)點的 binlog 丟失的情況,勢必會導(dǎo)致集群數(shù)據(jù)不一致,此時可以通過以下的方法暫時讓集群起來。
這里需要注意,這樣的方式即使恢復(fù)了集群,因為 binlog 的缺失,實際上數(shù)據(jù)是不一致的,極有可能發(fā)生后續(xù)因為數(shù)據(jù)不一致導(dǎo)致集群出現(xiàn)問題,這里強烈不建議這么做。 前面提到了暫時性的集群恢復(fù),這樣的恢復(fù)會有很大的問題,這里將闡述 MGR 正常的恢復(fù)方式。當 MGR 中新的成員加入節(jié)點時,通常有兩種方法,當 binlog 全,或者 binlog 在刪除前接入的節(jié)點能夠成功繼續(xù)往下同步的,則新加入的節(jié)點會繼續(xù)同步下去,在 MySQL 8.0.21 版本中,可以通過設(shè)置參數(shù):
來進行指定點進行同步。 如果在 binlog 不可用或者差的數(shù)據(jù)實在太多的情況下,MySQL 在 8.0.17 后退出了克隆的方式進行恢復(fù),即在集群中的所有 MySQL 節(jié)點上添加克隆插件,新加入的節(jié)點數(shù)據(jù)將會被全部刪除,然后會被自動重新同步數(shù)據(jù)。 4.1節(jié)點分布式恢復(fù)讀節(jié)點重新加入環(huán)境。 模擬讀節(jié)點重新加入,首先觀察主節(jié)點的數(shù)據(jù)以及事務(wù)的情況: 此時將節(jié)點 3,清除所有數(shù)據(jù),清除同步信息,重新初始化 MySQL,模擬成新節(jié)點。
此時3節(jié)點已經(jīng)被集群踢出去了:
這里注意,因為 2 節(jié)點的的 IP 已經(jīng)添加到了所有節(jié)點的 group_replication_group_seeds 中,所以不再添加,如果是新的 IP 加入節(jié)點,必須在所有其他節(jié)點上 group_replication_group_seeds 中添加新節(jié)點的IP。
4.2克隆恢復(fù) MySQL 8.0.17 后可以使用克隆恢復(fù)。 這里我們依然采用節(jié)點 3 作為需要接收克隆的節(jié)點。
|
|
來自: 數(shù)據(jù)和云 > 《待分類》