使用适用于 Amazon RDS for Db2 的副本
要在 RDS for Db2 数据库实例之间配置复制,您可以创建副本数据库。有关 RDS for Db2 副本和其它数据库引擎之间的差异摘要,请参阅数据库引擎的只读副本之间的差异。
Db2 副本数据库是主数据库的物理副本。处于备用模式的 Db2 副本称为备用副本。Db2 不支持在副本中进行读或写操作,但您可以提升副本以使其变为可写。提升的副本拥有提出提升请求时的已复制数据。RDS for Db2 使用 Db2 高可用性灾难恢复(HADR)来进行复制。有关更多信息,请参阅 IBM Db2 文档中的 High availability disaster recovery (HADR)
备用副本
创建或修改 Db2 副本时,可以将其置于备用模式。对于备用副本,Db2 环境变量 DB2_HADR_ROS
设置为 OFF
,以便副本数据库不接受用户连接。备用副本的主要用途是跨区域灾难恢复。
备用副本无法为只读工作负载提供服务。备用副本没有任何归档日志。
您可以从一个源数据库实例创建最多三个副本。
数据库激活
Db2 HADR 是在数据库级别配置的。创建副本后,将为所有 Db2 数据库(包括 RDS 完全管理的 rdsadmin
)设置 HADR。在创建 Db2 副本之前,必须显式激活所有数据库。否则,副本创建将失败,并且 Amazon RDS 发出一个事件。在数据库实例拥有一个或多个副本后,您无法使用 rdsadmin.activate_database
或 rdsadmin.deactivate_database
存储过程来激活或停用数据库实例上的任何数据库。但是,您可以调用 rdsadmin.reactivate_database
存储过程来重新激活数据库。有关更多信息,请参阅用于管理 RDS for Db2 数据库的存储过程。
HADR 配置
可以通过连接到数据库,然后运行 db2 get db cfg
来查看该数据库的所有 HADR 配置。
归档日志保留
满足以下条件后,Amazon RDS 会清除主数据库实例中的日志:
-
这些日志至少保留了两个小时。
-
归档日志保留时间的设置已过期。
-
归档日志已成功复制到所有副本数据库实例。此条件既适用于同一 Amazon Web Services 区域中的数据库实例,也适用于跨区域数据库实例。
有关如何设置存档日志保留时间的信息,请参阅rdsadmin.set_archive_log_retention。
Amazon RDS 会单独检查和清理每个数据库。如果数据库丢失 HADR 连接或者无法获得有关该连接的信息,Amazon RDS 将跳过该数据库并且不会清除归档日志。
Db2 复制过程中的中断
当您创建副本时,Amazon RDS 会制作源数据库实例的数据库快照,然后开始复制。数据库快照操作开始时,源数据库实例会经历非常短暂的 I/O 暂停。这种 I/O 暂停通常持续大约一秒时间。但是,如果源数据库实例为多可用区部署,则源数据库实例不会经历任何 I/O 暂停。这是因为在多可用区部署中,快照取自辅助数据库实例。
数据库快照变成 Db2 副本。Amazon RDS 为源数据库和副本设置必要的参数和权限,而不会经历任何服务中断。同样,如果删除副本,也不会发生中断。