MySQL Shell 8.4  /  MySQL InnoDB ReplicaSet  /  重新掃描 ReplicaSet

9.13 重新掃描 ReplicaSet

本節說明如何使用 replicaSet.rescan() 檢查 ReplicaSet 的一致性。

replicaSet.rescan() 操作會執行下列動作

  • 確保每個成員的複寫帳戶都儲存在中繼資料中。

    注意

    replicaSet.status() 也會檢查是否有遺失的複寫使用者,並提示您執行 replicaSet.rescan() 以將任何遺失的帳戶新增至中繼資料。

  • 檢查未受管理的成員,並在設定為執行此動作時新增它們。未受管理的成員是 ReplicaSet 的一部分,但不存在於中繼資料中的實例。

  • 檢查已過時的成員,並在設定為執行此動作時移除它們。已過時的成員是不屬於 ReplicaSet 的一部分,但存在於中繼資料中的實例。已失效的實例會被忽略。

  • 確保 server_idserver_uuid 的值儲存在 ReplicaSet 每個成員的中繼資料中。

新增未受管理的實例

可以設定 replicaSet.rescan(),方法是將選項 addUnmanaged 設定為 true 以新增未受管理的實例。預設情況下,此選項設定為 false,並列出所有未受管理的實例,但不會對 ReplicaSet 進行任何變更。

如果 replicaSet.rescan() 在互動模式下執行,則會列出未受管理的實例,並提示您將其新增至 ReplicaSet。

移除已過時的實例

可以設定 replicaSet.rescan(),方法是將選項 removeObsolete 設定為 true 以移除已過時的實例。預設情況下,此選項設定為 false,並列出所有已過時的實例,但不會對 ReplicaSet 進行任何變更。

如果 replicaSet.rescan() 在互動模式下執行,則會列出已過時的實例,並提示您移除它們。