MySQL Shell 9.0  /  MySQL InnoDB ReplicaSet  /  重新掃描副本集

9.13 重新掃描副本集

本節說明如何使用 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() 在互動模式下執行,則會列出過時的實例,並提示您移除它們。