跳过 RDS for MySQL 的当前复制错误
如果错误导致只读副本停止响应但不影响数据的完整性,您可以跳过只读副本错误。
注意
请先验证是否可以安全地跳过错误。在 MySQL 实用工具中,连接到只读副本并运行以下 MySQL 命令。
SHOW REPLICA STATUS\G
有关返回值的信息,请参阅 MySQL 文档
以前的 MySQL 版本使用的是 SHOW SLAVE STATUS
而不是 SHOW REPLICA STATUS
。如果您使用的 MySQL 版本低于 8.0.23,那么请使用 SHOW SLAVE STATUS
。
您可以通过以下方式跳过只读副本上的错误。
调用 mysql.rds_skip_repl_error 过程
Amazon RDS 提供了一个存储过程,您可以调用该过程以跳过只读副本上的错误。首先连接到您的只读副本,然后发出正确的命令,如下所示。有关更多信息,请参阅 连接到运行 MySQL 数据库引擎的数据库实例。
要跳过错误,请发出以下命令。
CALL mysql.rds_skip_repl_error;
如果您在未遇到复制错误的源数据库实例或只读副本上运行此命令,则此命令不会产生任何影响。
有关更多信息 (如支持 mysql.rds_skip_repl_error
的 MySQL 版本),请参阅 mysql.rds_skip_repl_error。
重要
如果您尝试调用 mysql.rds_skip_repl_error
并遇到以下错误:ERROR 1305 (42000): PROCEDURE
mysql.rds_skip_repl_error does not exist
,请将您的 MySQL 数据库实例升级到最新次要版本或是 mysql.rds_skip_repl_error 中列出的最低次要版本之一。
设置 slave_skip_errors 参数
要跳过一个或多个错误,您可以设置在只读副本上设置 slave_skip_errors
静态参数。您可以将此参数设置为跳过一个或多个特定的复制错误代码。目前,您只能为适用于 MySQL 5.7 的 RDS 数据库实例设置此参数。更改此参数的设置后,确保重启数据库实例,以使新设置生效。有关设置此参数的信息,请参阅 MySQL 文档
我们建议在单独的数据库参数组中设置此参数。您只能将此数据库参数组与需要跳过错误的只读副本关联。遵循此最佳实践可以减少对其他数据库实例和只读副本的潜在影响。
重要
为此参数设置非默认值可能会导致复制不一致。只有在用尽其他选项来解决问题并且确定对只读副本数据的潜在影响时,才将此参数设置为非默认值。