文件首頁
MySQL Shell 8.4
下載本手冊
PDF (US Ltr) - 2.2Mb
PDF (A4) - 2.3Mb


MySQL Shell 8.4  /  ...  /  設定執行個體的自動重新加入

7.5.5 設定執行個體的自動重新加入

執行 MySQL 8.0.16 及更高版本的執行個體支援群組複寫自動重新加入功能,讓您可以設定執行個體在被驅逐後自動重新加入叢集。如需背景資訊,請參閱對失敗偵測和網路分割的回應。AdminAPI 提供 autoRejoinTries 選項,可設定執行個體在被驅逐後嘗試重新加入叢集的次數。預設情況下,執行個體不會自動重新加入叢集。您可以使用下列命令,在叢集層級或個別執行個體上設定 autoRejoinTries 選項

  • dba.createCluster()

  • Cluster.addInstance()

  • Cluster.setOption()

  • Cluster.setInstanceOption()

autoRejoinTries 選項接受介於 0 和 2016 之間的整數正值,預設值為 3。使用自動重新加入功能時,您的叢集對錯誤 (特別是暫時性錯誤,例如不可靠的網路) 的容錯能力會更高。但是,如果仲裁遺失,您不應期望成員自動重新加入叢集,因為重新加入執行個體需要大多數成員。

執行 MySQL 版本 8.0.12 及更高版本的執行個體具有 group_replication_exit_state_action 變數,您可以使用 AdminAPI exitStateAction 選項進行設定。這會控制執行個體在意外離開叢集時的行為。預設情況下,exitStateAction 選項為 READ_ONLY,這表示意外離開叢集的執行個體會變成唯讀。如果 exitStateAction 設定為 OFFLINE_MODE,則意外離開叢集的執行個體會變成唯讀,並且也會進入離線模式,在此模式下,它們會中斷現有用戶端的連線,且不接受新的連線 (來自具有管理員權限的用戶端除外)。如果 exitStateAction 設定為 ABORT_SERVER,則在意外離開叢集的情況下,執行個體會關閉 MySQL,且必須重新啟動才能重新加入叢集。請注意,當您使用自動重新加入功能時,exitStateAction 選項所設定的動作只會在所有重新加入叢集的嘗試都失敗時才會發生。

您可能會連線到執行個體並嘗試使用 AdminAPI 進行設定,但在那時執行個體可能會重新加入叢集。當您使用任何下列作業時,可能會發生這種情況

  • Cluster.status()

  • dba.getCluster()

  • Cluster.rejoinInstance()

  • Cluster.addInstance()

  • Cluster.removeInstance()

  • Cluster.rescan()

這些作業可能會在執行個體自動重新加入叢集時提供額外資訊。此外,當您使用 Cluster.removeInstance() 時,如果目標執行個體自動重新加入叢集,則除非您傳入 force:true,否則作業會中止。