

# 使用 RDS for Db2 副本备份
<a name="db2-read-replicas.backups"></a>

您可以创建和还原 RDS for Db2 副本的备份，就像对主数据库操作一样。但是，副本备份的工作方式存在重要差异，特别是在还原时间和备份保留设置方面。

RDS for Db2 对副本同时支持自动备份和手动快照。RDS for Db2 不支持时间点还原。有关 RDS 备份的更多信息，请参阅[备份、还原和导出数据](CHAP_CommonTasks.BackupRestore.md)。

## 副本备份的主要区别
<a name="db2-read-replicas-backups-overview"></a>

副本备份与主数据库备份之间存在以下几点重要区别：
+ 默认情况下，系统不会为副本启用自动备份。
+ 还原操作使用数据库时间而不是备份创建时间。
+ 副本滞后可能会影响实际恢复的数据。有关监控副本滞后的更多信息，请参阅[监控 Db2 复制滞后](db2-troubleshooting-replicas.md#db2-troubleshooting-replicas-lag)。

## 为 RDS for Db2 副本启用自动备份
<a name="db2-read-replicas.backups.turning-on"></a>

RDS for Db2 副本与主数据库不同，默认情况下未启用自动备份。必须手动配置备份保留期才能启用自动备份。将备份保留期设置为非零正值来启用自动备份。

### 控制台
<a name="db2-read-replicas.backups.turning-on-console"></a>

**立即启用自动备份**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择**数据库**，然后选择要修改的数据库实例。

1. 选择**修改**。

1. 对于**备份保留期**，请选择非零正值，例如三天。

1. 选择 **Continue (继续)**。

1. 选择**立即应用**。

1. 选择**修改数据库实例**以保存更改并启用自动备份。

### AWS CLI
<a name="db2-read-replicas.backups.turning-on-cli"></a>

要启用自动备份，请使用 AWS CLI [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 命令。

包括以下参数：
+ `--db-instance-identifier`
+ `--backup-retention-period`
+ `--apply-immediately` 或者 `--no-apply-immediately`

以下示例启用了自动备份并将备份保留期设置为三天。更改将立即应用。

**Example**  
对于 Linux、macOS 或 Unix：  

```
aws rds modify-db-instance \
    --db-instance-identifier my_db_instance  \
    --backup-retention-period 3 \
    --apply-immediately
```
对于：Windows  

```
aws rds modify-db-instance ^
    --db-instance-identifier my_db_instance  ^
    --backup-retention-period 3 ^
    --apply-immediately
```

### RDS API
<a name="db2-read-replicas.backups.turning-on-api"></a>

要启用自动备份，请使用 RDS API [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 操作以及以下必需参数：
+ `DBInstanceIdentifier`
+ `BackupRetentionPeriod`

## 还原 RDS for Db2 副本备份
<a name="db2-read-replicas.backups.restoring"></a>

您可以按照还原主数据库备份的方式还原 RDS for Db2 副本备份。有关更多信息，请参阅 [还原到数据库实例](USER_RestoreFromSnapshot.md)。

还原副本备份时最重要的考虑因素是了解数据库时间和备份创建时间之间的区别，尤其是在存在副本滞后的情况下。

您可以监控复制滞后并确保备份包含预期数据。有关 ReplicaLag 指标的信息，请参阅 [Amazon RDS 的 Amazon CloudWatch 指标](rds-metrics.md)。

### 了解时间差异
<a name="db2-read-replicas-backups-restoring-timing"></a>

还原副本备份时，您必须确定要还原到的时间点。数据库时间指备份中数据的最新应用的事务时间。还原副本备份时，将还原到数据库时间，而不是备份完成的时间。差异很大，因为副本可能会落后于主数据库数分钟或数小时。因此，副本备份的数据库时间可能比快照创建时间早得多。

要查找数据库时间和创建时间之间的差异，请运行 AWS CLI [describe-db-snapshots](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-snapshots.html) 命令或调用 RDS API [DescribeDBSnapshots](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshots.html) 操作。比较 `SnapshotDatabaseTime` 值和 `OriginalSnapshotCreateTime` 值。`SnapshotDatabaseTime` 值是副本备份的所有数据库中最早的数据库时间。`OriginalSnapshotCreateTime` 值是主数据库上最新应用的事务。请注意，多个数据库的复制滞后可能有所不同，数据库时间可能介于这两个时间之间。

以下 AWS CLI 示例显示了两个时间之间的差异：

对于 Linux、macOS 或 Unix：

```
aws rds describe-db-snapshots \
    --db-instance-identifier my_db2_replica \
    --db-snapshot-identifier my_replica_snapshot
```

对于：Windows

```
aws rds describe-db-snapshots ^
    --db-instance-identifier my_db2_replica ^
    --db-snapshot-identifier my_replica_snapshot
```

此命令生成类似于以下示例的输出。

```
{
    "DBSnapshots": [
        {
            "DBSnapshotIdentifier": "my_replica_snapshot",
            "DBInstanceIdentifier": "my_db2_replica", 
            "SnapshotDatabaseTime": "2022-07-26T17:49:44Z",
            ...
            "OriginalSnapshotCreateTime": "2021-07-26T19:49:44Z"
        }
    ]
}
```