

# 数据库引擎的只读副本之间的差异
<a name="USER_ReadRepl.Overview.Differences"></a>

由于 Amazon RDS 数据库引擎实施复制的方式不同，因此您应了解几个显著差异。

## Db2
<a name="USER_ReadRepl.Overview.Differences.Db2"></a>

RDS for Db2 的副本具有以下功能和行为：
+ **复制方法**：物理复制。
+ **事务日志清除**：当满足以下条件时，RDS for Db2 会清除主数据库实例中的日志：
  + 这些日志至少保留了两个小时。
  + 归档日志保留时间设置已过期。
  + RDS for Db2 已成功将日志复制到所有副本数据库实例。

  这同时适用于相同 AWS 区域数据库实例和跨区域数据库实例。有关如何设置存档日志保留时间的信息，请参阅[rdsadmin.set\$1archive\$1log\$1retention](db2-sp-managing-databases.md#db2-sp-set-archive-log-retention)。
+ **可写副本**：Db2 副本是物理副本，而 Db2 不支持写入副本。您可以提升副本以使其变为可写。提升的副本拥有提出提升请求时的已复制数据。
+ **备份** – RDS for Db2 副本支持自动备份和手动快照。
+ **并行复制** – 归档日志数据始终会从主数据库并行传输到其所有副本。
+ **备用状态** – 备用副本的主要用途是跨区域灾难恢复。有关信息，请参阅[使用适用于 Amazon RDS for Db2 的副本](db2-replication.md)。

## MariaDB 和 MySQL
<a name="USER_ReadRepl.Overview.Differences.MariaDBMySQL"></a>

RDS for MariaDB 和 RDS for MySQL 的只读副本具有以下功能和行为：
+ **复制方法**：逻辑复制。
+ **事务日志清除**：RDS for MariaDB 和 RDS for MySQL 保留尚未应用的任何二进制日志。
+ **可写副本**：可将 MariaDB 或 MySQL 只读副本启用为可写。
+ **备份** – RDS for MariaDB 或 RDS for MySQL 只读副本支持自动备份和手动快照。
+ **并行复制** – 所有受支持的 MariaDB 和 MySQL 版本均支持并行复制线程。
+ **装载状态**：不支持。

## Oracle
<a name="USER_ReadRepl.Overview.Differences.Oracle"></a>

RDS for Oracle 的只读副本具有以下功能和行为：
+ **复制方法**：物理复制。
+ **事务日志清除**：如果主数据库实例没有跨区域只读副本，则 Amazon RDS for Oracle 会在源数据库实例上至少保留两个小时的事务日志。两小时之后或在传递存档日志保留小时数设置之后从源数据库实例中清除日志，以时间较长者为准。传递存档日志保留小时数设置之后，仅当日志已成功应用到数据库时，才会从只读副本清除日志。

  在某些情况下，主数据库实例可能具有一个或多个跨区域只读副本。如果是这样，则 Amazon RDS for Oracle 将保留源数据库实例上的事务日志，直到将它们传输并应用到所有跨区域只读副本为止。

  有关如何设置存档日志保留时间的信息，请参阅[保留存档重做日志](Appendix.Oracle.CommonDBATasks.RetainRedoLogs.md)。
+ **可写副本**：Oracle 只读副本是物理副本，Oracle 不支持写入只读副本。您可以提升只读副本以将它设置为可写。提升的只读副本拥有提出提升请求时的已复制数据。
+ **备份** – RDS for Oracle 只读副本支持自动备份和手动快照。
+ **并行复制**：重做日志数据始终会从主数据库并行传输到其所有只读副本。
+ **装载状态** – 装载副本的主要用途是跨区域灾难恢复。装载副本不需要具有 Active Data Guard 许可证。有关更多信息，请参阅 [使用 Amazon RDS for Oracle 的只读副本](oracle-read-replicas.md)。

## PostgreSQL
<a name="USER_ReadRepl.Overview.Differences.PostgreSQL"></a>

RDS for PostgreSQL 的只读副本具有以下功能和行为：
+ **复制方法**：物理复制。
+ **事务日志清除**：PostgreSQL 具有参数 `wal_keep_segments`，该参数指示保留多少个提前写入日志（WAL）文件以便为只读副本提供数据。该参数值指定要保留的日志的数量。
+ **可写副本**：PostgreSQL 只读副本是一个物理副本，PostgreSQL 不支持使只读副本变为可写。
+ **备份**：RDS for PostgreSQL 只读副本支持手动快照。仅 RDS for PostgreSQL 14.1 及更高版本支持只读副本的自动备份。您无法为早于 14.1 的 RDS for PostgreSQL 版本的 PostgreSQL 只读副本启用自动备份。对于 RDS for PostgreSQL 13 和更早版本，如果需要只读副本的备份，请从只读副本创建快照。
+ **并行复制**：PostgreSQL 是一个处理复制的过程。
+ **装载状态**：不支持。

## SQL Server
<a name="USER_ReadRepl.Overview.Differences.SQLServer"></a>

RDS for SQL Server 的只读副本具有以下功能和行为：
+ **复制方法**：物理复制。
+ **事务日志清除**：辅助副本不再需要主副本上事务日志文件的虚拟日志文件（VLF）后，可以截断该文件。

  只有在副本中稳定了日志记录时，才能将 VLF 标记为非活动。无论磁盘子系统在主副本中的速度如何，事务日志都将保留 VLF，直到最慢的副本已进行稳定。
+ **可写副本**：SQL Server 只读副本是物理副本，也不支持写入。您可以提升只读副本以将它设置为可写。提升的只读副本拥有提出提升请求时的已复制数据。
+ **备份**：RDS for SQL Server 只读副本不支持自动备份和手动快照。
+ **并行复制**：重做日志数据始终会从主数据库并行传输到其所有只读副本。
+ **装载状态**：不支持。