Aurora 与 MySQL 之间或 Aurora 与其他 Aurora 数据库集群之间的复制(二进制日志复制)
Amazon Aurora MySQL 与 MySQL 兼容,因此您可以在 MySQL 数据库与 Amazon Aurora MySQL 数据库集群之间设置复制。此类复制使用 MySQL 二进制日志复制,也称为二进制日志复制。如果将二进制日志复制与 Aurora 结合使用,建议您的 MySQL 数据库运行 MySQL 版本 5.5 或更高版本。您可以在 Aurora MySQL 数据库集群为复制源或副本的位置设置复制。您可以使用 Amazon RDS MySQL 数据库实例、Amazon RDS 外部的 MySQL 数据库或其他 Aurora MySQL 数据库集群进行复制。
注意
您不能使用二进制日志复制以复制到某些类型的 Aurora 数据库集群或从中进行复制。特别是,二进制日志复制不可用于 Aurora Serverless v1 集群。如果 SHOW MASTER STATUS
和 SHOW
SLAVE STATUS
(Aurora MySQL 版本 2)或 SHOW REPLICA STATUS
(Aurora MySQL 版本 3)语句不返回任何输出,请检查您使用的集群是否支持二进制日志复制。
您还可以在其他 AWS 区域中的 RDS for MySQL 数据库实例或 Aurora MySQL 数据库集群之间进行复制。跨 AWS 区域执行复制时,请确保您的数据库集群和数据库实例可公开访问。如果 Aurora MySQL 数据库集群位于您的 VPC 的私有子网中,请在 AWS 区域之间使用 VPC 对等。有关更多信息,请参阅 VPC 中的数据库集群由另一 VPC 中的 EC2 实例访问。
如果要在 Aurora MySQL 数据库集群和另一个 AWS 区域中的 Aurora MySQL 数据库集群之间配置复制,您可以在与源数据库集群不同的 AWS 区域 中创建一个 Aurora MySQL 数据库集群作为只读副本。有关更多信息,请参阅 跨 AWS 区域复制 Amazon Aurora MySQL 数据库集群。
使用 Aurora MySQL 版本 2 和 3,您可以在 Aurora MySQL 与为复制使用全局事务标识符(GTID)的外部源或目标之间进行复制。请确保 Aurora MySQL 数据库集群中的 GTID 相关参数具有与外部数据库的 GTID 状态兼容的设置。若要了解如何执行此操作,请参阅 使用基于 GTID 的复制。在 Aurora MySQL 版本 3.01 及更高版本中,您可以选择如何将 GTID 分配给从不使用 GTID 的源复制的事务。有关控制该设置的存储过程的信息,请参阅 mysql.rds_assign_gtids_to_anonymous_transactions(Aurora MySQL 版本 3)。
警告
在 Aurora MySQL 与 MySQL 之间复制时,请确保仅使用 InnoDB 表。如果有 MyISAM 表需要复制,可以在设置复制之前使用以下命令将其转换为 InnoDB。
alter table <schema>.<table_name> engine=innodb, algorithm=copy;
在以下各节中,设置复制、停止复制、扩展数据库的读取、优化二进制日志复制以及设置增强型二进制日志。