下載本手冊
PDF (美式信紙) - 2.3Mb
PDF (A4) - 2.3Mb


7.8.4 重新掃描叢集

如果您在 AdminAPI 命令之外對叢集進行組態變更,例如手動變更執行個體的組態以解決組態問題或在執行個體遺失後,您需要更新 InnoDB 叢集的中繼資料,使其符合執行個體的目前組態。在這些情況下,請使用 Cluster.rescan() 作業,讓您可以手動或使用互動式精靈更新 InnoDB 叢集的中繼資料。Cluster.rescan() 作業可以偵測未在中繼資料中註冊的新作用中執行個體並新增它們,或者偵測仍然在中繼資料中註冊的過時執行個體 (不再作用中),並將其移除。您可以根據命令找到的執行個體自動更新中繼資料,或者您可以指定執行個體位址清單,以新增至中繼資料或從中移除。您也可以更新儲存在中繼資料中的拓撲模式,例如在 AdminAPI 之外從單一主要模式變更為多個主要模式之後。

注意

group_replication_transaction_size_limit 在複本叢集中設定為最大值。原始值會儲存在中繼資料架構中,並且在切換或容錯移轉時,由 Cluster.rescan() 還原。

命令的語法是 Cluster.rescan([選項])options 字典支援下列項目

  • addInstances:包含要新增至中繼資料的新作用中執行個體連線資料的清單,或者包含 auto 以自動將遺失的執行個體新增至中繼資料。值 auto 不區分大小寫。

    • 清單中指定的執行個體會新增至中繼資料,而不會提示確認

    • 在互動模式中,系統會提示您確認新增未包含在 addInstances 選項中的新探索到的執行個體

    • 在非互動模式中,系統會在輸出中報告未包含在 addInstances 選項中的新探索到的執行個體,但不會提示您新增它們

  • removeInstances:包含要從中繼資料移除的過時執行個體連線資料的清單,或者包含 auto 以自動從中繼資料移除過時的執行個體。

    • 清單中指定的執行個體會從中繼資料移除,而不會提示確認

    • 在互動模式中,系統會提示您確認移除未包含在 removeInstances 選項中的過時執行個體

    • 在非互動模式中,系統會在輸出中報告未包含在 removeInstances 選項中的過時執行個體,但不會提示您移除它們

  • updateViewChangeUuid:布林值,用來指示是否應該為叢集執行個體上的 group_replication_view_change_uuid 系統變數產生並設定一個值。

    注意

    執行 MySQL Server 8.3.0 或更高版本的叢集不需要此設定。

    這個系統變數為群組產生的檢視變更事件提供替代 UUID。對於 8.0.27 及更新版本中的 MySQL Server 執行個體,對於屬於 InnoDB 叢集集合的 InnoDB 叢集,需要 group_replication_view_change_uuid 系統變數,而且必須在叢集中的所有成員伺服器上設定為相同的值。使用 dba.createCluster() 命令建立的 InnoDB 叢集會為所有成員伺服器上的系統變數產生並設定一個值。在 MySQL Shell 8.0.27 之前建立的 InnoDB 叢集可能未設定系統變數,但 InnoDB 叢集集合建立程序會檢查此情況,如果缺少此系統變數,則會發出警告而失敗。

    預設情況下,updateViewChangeUuid 會設定為 false,如果未在任何執行個體上找到系統變數或系統變數不相符,則會傳回警告訊息,讓您知道必須為系統變數設定值並重新啟動 InnoDB 叢集。如果您將 updateViewChangeUuid 設定為 true,則重新掃描作業會為所有成員伺服器上的 group_replication_view_change_uuid 產生並設定一個值,之後您必須重新啟動叢集才能實作變更。Cluster.rescan() 命令會以與設定 true 時相同的方式自動產生並設定系統變數值,而且之後需要重新啟動叢集才能實作變更。當您重新啟動叢集時,您可以重試 InnoDB 叢集集合建立程序。

  • upgradeCommProtocol:布林值,用來指出是否應將群組複寫通訊協定版本升級 (true),或者不升級 (false) 至叢集中最低 MySQL 版本執行個體所支援的版本。預設情況下,不會升級通訊協定版本 (false)。如果通訊協定版本可以升級,則造成拓撲變更的 AdminAPI 作業會傳回訊息,您可以使用這個選項在適當的時間執行升級。建議升級至群組複寫通訊協定的最高可用版本,以支援最新功能,例如大型交易的訊息片段。如需更多資訊,請參閱設定群組的通訊協定版本

    • 如果值為 true,則群組複寫通訊協定版本會升級至叢集中最低 MySQL 版本執行個體所支援的版本。

    • 如果值為 false,則不會升級群組複寫通訊協定版本。