mysql.rds_skip_repl_error - Amazon Relational Database Service

mysql.rds_skip_repl_error

跳过并删除 MySQL 数据库只读副本上的复制错误。

语法

CALL mysql.rds_skip_repl_error;

使用说明

主用户必须对只读副本运行 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。如果您使用的 MySQL 版本低于 8.0.23,那么请使用 SHOW SLAVE STATUS

想要了解更多有关解决 Amazon RDS 的复制错误的信息,请参阅 排查 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);