mysql.rds_skip_repl_error - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

mysql.rds_skip_repl_error

跳过并删除 MySQL 数据库实例上的复制错误。

语法

CALL mysql.rds_skip_repl_error;

使用说明

主用户必须运行 mysql.rds_skip_repl_error 过程。

要确定是否存在错误,请运行 MySQL SHOW REPLICA STATUS\G 命令。如果复制错误不太严重,您可以运行 mysql.rds_skip_repl_error 以跳过该错误。如果有多个错误,mysql.rds_skip_repl_error 会删除第一个错误,并警告存在其他错误。然后,您可以使用 SHOW REPLICA STATUS\G 确定要对下一个错误采取的适当操作。有关返回值的信息,请参阅 MySQL 文档

注意

以前的 MySQL 版本使用的是 SHOW SLAVE STATUS 而不是 SHOW REPLICA STATUS。如果你在 8.0.23 之前使用的是 MySQL 版本,那么请使用 SHOW SLAVE STATUS

想要了解更多有关解决 Amazon RDS 的复制错误的信息,请参阅 排查 MySQL 只读副本问题

重要

如果尝试调用 mysql.rds_skip_repl_error,您可能会遇到以下错误:ERROR 1305 (42000): PROCEDURE mysql.rds_skip_repl_error does not exist。如果这样做,请将 MySQL 数据库实例升级到最新的次要版本或本主题中列出的最低次要版本之一。

复制已停止错误

调用 mysql.rds_skip_repl_error 命令时,您可能会收到一条错误消息,指出复制副本已关闭或禁用。

出现该错误消息是由于复制已停止且无法重新启动。

如果您需要跳过大量错误,复制滞后时间可能会超出二进制日志 (binlog) 文件的默认保留期。在这种情况下,您可能会遇到一个严重错误,这是由于在只读副本上重放之前清除 binlog 文件而造成的。此清除会导致复制停止,而您将无法再调用 mysql.rds_skip_repl_error 命令以跳过复制错误。

您可以增加在源数据库实例上保留 binlog 文件的小时数以缓解该问题。在增加二进制日志保留时间后,您可以重新启动复制进程,并根据需要调用 mysql.rds_skip_repl_error 命令。

要设置 binlog 保留时间,请使用 mysql.rds_set_configuration 过程,并指定 'binlog retention hours' 配置参数以及在数据库集群上保留 binlog 文件的小时数。以下示例将 binlog 文件的保留期设置为 48 个小时。

CALL mysql.rds_set_configuration('binlog retention hours', 48);