MySQL Shell 8.4  /  MySQL InnoDB 副本集  /  重新扫描副本集

9.13 重新扫描副本集

本节介绍如何使用 replicaSet.rescan() 检查副本集的一致性。

replicaSet.rescan() 操作执行以下操作

  • 确保每个成员的复制帐户都存储在元数据中。

    注意

    replicaSet.status() 也会检查是否有缺失的复制用户,并提示您运行 replicaSet.rescan() 以将任何缺失的帐户添加到元数据中。

  • 检查未管理的成员,如果配置为这样做,则添加它们。未管理的成员是属于副本集但不在元数据中的实例。

  • 检查过时的成员,如果配置为这样做,则删除它们。过时的成员是不属于副本集但在元数据中的实例。无效的实例将被忽略。

  • 确保副本集每个成员的 server_idserver_uuid 值都存储在元数据中。

添加未管理的实例

可以通过将选项 addUnmanaged 设置为 true 来配置 replicaSet.rescan() 添加未管理的实例。默认情况下,此选项设置为 false,并列出所有未管理的实例,但不对副本集进行任何更改。

如果 replicaSet.rescan() 在交互模式下运行,则会列出未管理的实例,并提示您将它们添加到副本集中。

删除过时的实例

可以通过将选项 removeObsolete 设置为 true 来配置 replicaSet.rescan() 删除过时的实例。默认情况下,此选项设置为 false,并列出所有过时的实例,但不对副本集进行任何更改。

如果 replicaSet.rescan() 在交互模式下运行,则会列出过时的实例,并提示您删除它们。