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 等程序在成員上的表格上持有全域鎖定,就會發生這種情況。在這種情況下,成員無法停止套用執行緒或完成分散式復原程序以重新加入。在情況獲得解決(例如,鎖定被釋放)之前,或元件逾時到期且模組不論其狀態如何都關閉之前,STOP GROUP_REPLICATION
都不會完成。預設值為 300 秒;這表示如果情況在此時間之前未獲得解決,群組複寫元件會在 5 分鐘後停止,允許重新啟動成員並重新加入。