STOP GROUP_REPLICATION
停止群組複寫。此陳述式需要 GROUP_REPLICATION_ADMIN
權限 (或是已棄用的 SUPER
權限)。一旦您發出 STOP GROUP_REPLICATION
,成員會被設定為 super_read_only=ON
,這可確保在群組複寫停止時,不會對成員進行任何寫入。成員上執行的任何其他非同步複寫通道也會停止。當您在此成員上啟動群組複寫時,在 START GROUP_REPLICATION
陳述式中指定的任何使用者憑證,都會從記憶體中移除,並且必須在您再次啟動群組複寫時提供。
請極度謹慎地使用此陳述式,因為它會將伺服器實例從群組中移除,這表示它不再受到群組複寫的一致性保證機制保護。為了完全安全起見,請確保您的應用程式在發出此陳述式之前,無法再連線到該實例,以避免任何過時讀取的可能性。
STOP GROUP_REPLICATION
陳述式會停止群組成員上的非同步複寫通道,但它不會像 STOP REPLICA
那樣隱含地提交正在進行的交易。這是因為在群組複寫群組成員上,在關閉操作期間提交的額外交易會使成員與群組不一致,並導致重新加入的問題。為了避免在停止群組複寫時,正在進行的交易提交失敗,當 GTID 指定為 gtid_next
系統變數的值時,無法發出 STOP GROUP_REPLICATION
陳述式。
group_replication_components_stop_timeout
系統變數指定在發出此陳述式後,群組複寫等待每個模組完成正在進行的程序的時間。此逾時時間是用於解決群組複寫元件無法正常停止的情況,如果成員在錯誤狀態時被逐出群組,或者當 MySQL Enterprise Backup 等程序在成員上的表格上持有全域鎖定時,可能會發生這種情況。在這種情況下,成員無法停止 applier 線程或完成分散式復原程序以重新加入。STOP GROUP_REPLICATION
會在情況解決(例如,鎖定被釋放)之前,或元件逾時到期,且模組不論其狀態如何都被關閉之前不會完成。預設值為 300 秒;這表示如果在此時間之前問題未解決,群組複寫元件會在 5 分鐘後停止,允許重新啟動成員並重新加入。