

# 设置从 Amazon RDS 的多可用区数据库集群进行外部复制
<a name="multi-az-db-clusters-external-replication"></a>

可以在多可用区数据库集群和 Amazon RDS 外部的数据库之间设置复制。

外部复制支持多可用区数据库集群在 RDS 数据库实例和外部数据库之间复制数据，无论是在本地还是在其它云环境中。外部复制有利于灾难恢复、数据迁移和维护不同位置的系统之间的一致性。本节涵盖了设置复制的先决条件，如何配置复制过程，以及诸如复制延迟、带宽及与不同数据库引擎的兼容性等关键注意事项。

## RDS for MySQL
<a name="multi-az-db-clusters-external-mysql"></a>

要为 RDS for MySQL 多可用区数据库集群设置外部复制，必须在集群内的数据库实例上将二进制日志文件保留足够长的时间，来确保在 Amazon RDS 删除二进制日志文件之前将更改应用于副本。为此，请通过调用 `mysql.rds_set_configuration` 存储过程并指定 `binlog retention hours` 参数来配置二进制日志保留期。有关更多信息，请参阅 [二进制日志保留小时数](mysql-stored-proc-configuring.md#mysql_rds_set_configuration-usage-notes.binlog-retention-hours)。

`binlog retention hours` 的默认值为 `NULL`，这意味着不保留二进制日志（0 小时）。如果要为多可用区数据库集群设置外部复制，则必须将参数设置为 `NULL` 以外的值。

只能从多可用区数据库集群的写入器数据库实例中配置二进制日志保留，并且该设置会异步传播到所有读取器数据库实例。

此外，我们强烈建议在外部副本上启用基于 GTID 的复制。然后，如果其中一个数据库实例出现故障，则可以从集群中另一个运行状况正常的数据库实例继续复制。有关更多信息，请参阅 MySQL 文档中的 [Replication with Global Transaction Identifiers](https://dev.mysql.com/doc/refman/8.0/en/replication-gtids.html)。

## RDS for PostgreSQL
<a name="multi-az-db-clusters-external-postgres"></a>

要为 RDS for PostgreSQL 多可用区数据库集群设置外部复制，必须启用逻辑复制。有关说明，请参阅[使用多可用区数据库集群为 Amazon RDS 设置 PostgreSQL 逻辑复制](USER_MultiAZDBCluster_LogicalRepl.md)。