使用 RDS for Db2 副本备份
您可以创建和还原 RDS for Db2 副本的备份,就像对主数据库操作一样。但是,副本备份的工作方式存在重要差异,特别是在还原时间和备份保留设置方面。
RDS for Db2 对副本同时支持自动备份和手动快照。RDS for Db2 不支持时间点还原。有关 RDS 备份的更多信息,请参阅备份、还原和导出数据。
副本备份的主要区别
副本备份与主数据库备份之间存在以下几点重要区别:
-
默认情况下,系统不会为副本启用自动备份。
-
还原操作使用数据库时间而不是备份创建时间。
-
副本滞后可能会影响实际恢复的数据。有关监控副本滞后的更多信息,请参阅监控 Db2 复制滞后。
为 RDS for Db2 副本启用自动备份
RDS for Db2 副本与主数据库不同,默认情况下未启用自动备份。必须手动配置备份保留期才能启用自动备份。将备份保留期设置为非零正值来启用自动备份。
立即启用自动备份
登录 Amazon Web Services 管理控制台 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择数据库,然后选择要修改的数据库实例。
-
选择修改。
-
对于备份保留期,请选择非零正值,例如三天。
-
选择 Continue (继续)。
-
选择立即应用。
-
选择修改数据库实例以保存更改并启用自动备份。
要启用自动备份,请使用 Amazon CLI modify-db-instance 命令。
包括以下参数:
-
--db-instance-identifier -
--backup-retention-period -
--apply-immediately或者--no-apply-immediately
以下示例通过将备份保留期设置为三天来启用自动备份。更改将立即应用。
对于 Linux、macOS 或 Unix:
aws rds modify-db-instance \ --db-instance-identifiermy_db_instance\ --backup-retention-period 3 \ --apply-immediately
对于:Windows
aws rds modify-db-instance ^ --db-instance-identifiermy_db_instance^ --backup-retention-period 3 ^ --apply-immediately
要启用自动备份,请使用 RDS API ModifyDBInstance 操作以及以下必需参数:
-
DBInstanceIdentifier -
BackupRetentionPeriod
还原 RDS for Db2 副本备份
您可以按照还原主数据库备份的方式还原 RDS for Db2 副本备份。有关更多信息,请参阅 还原到数据库实例。
还原副本备份时最重要的考虑因素是了解数据库时间和备份创建时间之间的区别,尤其是在存在副本滞后的情况下。
您可以监控复制滞后并确保备份包含预期数据。有关 ReplicaLag 指标的信息,请参阅Amazon RDS 的 Amazon CloudWatch 指标。
了解时间差异
还原副本备份时,您必须确定要还原到的时间点。数据库时间指备份中数据的最新应用的事务时间。还原副本备份时,将还原到数据库时间,而不是备份完成的时间。差异很大,因为副本可能会落后于主数据库数分钟或数小时。因此,副本备份的数据库时间可能比快照创建时间早得多。
要查找数据库时间和创建时间之间的差异,请运行 Amazon CLI describe-db-snapshots 命令或调用 RDS API DescribeDBSnapshots 操作。比较 SnapshotDatabaseTime 值和 OriginalSnapshotCreateTime 值。SnapshotDatabaseTime 值是副本备份的所有数据库中最早的数据库时间。OriginalSnapshotCreateTime 值是主数据库上最新应用的事务。请注意,多个数据库的复制滞后可能有所不同,数据库时间可能介于这两个时间之间。
以下 Amazon CLI 示例显示了两个时间之间的差异:
对于 Linux、macOS 或 Unix:
aws rds describe-db-snapshots \ --db-instance-identifiermy_db2_replica\ --db-snapshot-identifiermy_replica_snapshot
对于:Windows
aws rds describe-db-snapshots ^ --db-instance-identifiermy_db2_replica^ --db-snapshot-identifiermy_replica_snapshot
此命令生成类似于以下示例的输出。
{ "DBSnapshots": [ { "DBSnapshotIdentifier": "my_replica_snapshot", "DBInstanceIdentifier": "my_db2_replica", "SnapshotDatabaseTime": "2022-07-26T17:49:44Z", ... "OriginalSnapshotCreateTime": "2021-07-26T19:49:44Z" } ] }