使用 MySQL 配置延迟复制 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 MySQL 配置延迟复制

可以使用延迟复制作为灾难恢复策略。使用延迟复制,可指定最短的时间(以秒为单位)以延迟从源到只读副本的复制。如果出现灾难(如意外删除了表),可完成以下步骤以快速从灾难恢复:

注意
  • 在 RDS for MySQL 8.0 上,支持针对 MySQL 8.0.28 及更高版本的延迟复制。在 RDS for MySQL 5.7 上,支持针对 MySQL 5.7.44 及更高版本的延迟复制。

  • 使用存储过程配置延迟复制。无法使用Amazon Web Services Management Console、Amazon CLI 或 Amazon RDS API 配置延迟复制。

  • 在 RDS for MySQL 5.7.44 和更高的 MySQL 5.7 版本以及 RDS for MySQL 8.0.28 和更高的 8.0.x 版本中,您可以在延迟复制配置中使用基于全局事务标识符(GTID)的复制。如果使用基于 GTID 的复制,请使用 mysql.rds_start_replication_until_gtid 存储过程而不是 mysql.rds_start_replication_until 存储过程。有关基于 GTID 的复制的更多信息,请参阅使用基于 GTID 的复制

在创建只读副本时配置延迟复制

要为未来通过数据库实例创建的任何只读副本配置延迟复制,请使用 mysql.rds_set_configuration 参数运行 target delay 存储过程。

在创建只读副本时配置延迟复制
  1. 通过使用 MySQL 客户端,以主用户身份连接到作为只读副本源的 MySQL 数据库实例。

  2. 使用 mysql.rds_set_configuration 参数运行 target delay 存储过程。

    例如,运行以下存储过程,针对从当前数据库实例创建的任何只读副本,指定将复制延迟至少一小时(3600 秒)。

    call mysql.rds_set_configuration('target delay', 3600);
    注意

    运行此存储过程之后,将为使用 Amazon CLI 或 Amazon RDS API 创建的任何只读副本配置延迟指定秒数的复制。

修改现有只读副本的延迟复制

要修改现有只读副本的延迟复制,请运行 mysql.rds_set_source_delay 存储过程。

修改现有只读副本的延迟复制
  1. 使用 MySQL 客户端,以主用户的身份连接到只读副本。

  2. 使用 mysql.rds_stop_replication 存储过程停止复制。

  3. 运行 mysql.rds_set_source_delay 存储过程。

    例如,运行以下存储过程,指定复制到只读副本延迟至少一小时(3600 秒)。

    call mysql.rds_set_source_delay(3600);
  4. 使用 mysql.rds_start_replication 存储过程开始复制。

设置停止复制到只读副本的位置

停止复制到只读副本之后,可使用 mysql.rds_start_replication_until 存储过程开始复制,然后在指定二进制日志文件位置处停止复制。

开始复制到只读副本并在特定位置处停止复制
  1. 通过使用 MySQL 客户端,以主用户的身份连接到源 MySQL 数据库实例。

  2. 运行 mysql.rds_start_replication_until 存储过程。

    以下示例将启动复制并复制更改,直到它到达 120 二进制日志文件中的 mysql-bin-changelog.000777 位置。在灾难恢复方案中,假定位置 120 刚好位于灾难之前。

    call mysql.rds_start_replication_until( 'mysql-bin-changelog.000777', 120);

当到达停止点时,复制将自动停止。将生成以下 RDS 事件:Replication has been stopped since the replica reached the stop point specified by the rds_start_replication_until stored procedure

提升只读副本

在灾难恢复方案中,当复制停止后,您可以将只读副本提升为新的源数据库实例。有关提升只读副本的信息,请参阅 将只读副本提升为独立的数据库实例