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


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

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,否則作業會中止。