备份和还原 Amazon RDS Custom for Oracle 数据库实例 - Amazon Relational Database Service

备份和还原 Amazon RDS Custom for Oracle 数据库实例

与 Amazon RDS 相同,RDS Custom 会在数据库实例的备份时段中,创建并保存 RDS Custom for Oracle 数据库实例的自动备份。您还可以手动备份数据库实例。

此过程与拍摄 Amazon RDS 数据库实例的快照相同。RDS Custom 数据库实例的第一个快照包含完整数据库实例的数据。后续快照为增量快照。

使用 AWS Management Console 或 AWS CLI 还原数据库快照。

创建 RDS Custom for Oracle 快照

RDS Custom for Oracle 可创建数据库实例的存储卷快照,并备份整个数据库实例而不仅仅是单个数据库。当您的数据库实例包含容器数据库(CDB)时,该实例的快照包括根 CDB 和所有 PDB。

创建 RDS Custom for Oracle 快照时,请指定要备份哪个 RDS Custom 数据库实例。为您的快照命名,以便稍后通过它进行还原。

当您创建快照时,RDS Custom for Oracle 会为附加到数据库实例的每个卷创建 Amazon EBS 快照。RDS Custom for Oracle 使用根卷的 EBS 快照注册新的 Amazon Machine Image(AMI)。为了使快照轻松与特定数据库实例关联,请使用 DBSnapshotIdentifierDbiResourceIdVolumeType 标记它们。

创建数据库快照会导致短暂的输入/输出暂停。此暂停可持续数秒到几分钟,具体取决于数据库实例的大小和类。快照创建时间因数据库的大小而异。由于快照包含整个存储卷,因此,文件(如临时文件)的大小也会影响创建快照创建时间。要了解创建快照的更多信息,请参阅 为单可用区数据库实例创建数据库快照

使用控制台或 AWS CLI 创建 RDS Custom for Oracle 快照。

创建 RDS Custom 快照
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Databases(数据库)

  3. 在 RDS Custom 数据库实例列表中,选择您想拍摄快照的实例。

  4. 对于操作,选择拍摄快照

    将显示 Take DB snapshot (拍摄数据库快照) 窗口。

  5. Snapshot name(快照名称)框中,请输入快照的名称。

  6. 选择拍摄快照

您可以通过使用 create-db-snapshot AWS CLI 命令创建 RDS Custom 数据库实例的快照。

指定以下选项:

  • --db-instance-identifier – 标识要备份的 RDS Custom 数据库实例

  • --db-snapshot-identifier – 命名 RDS Custom 快照,以便以后通过它进行还原

在此示例中,您将给名为 my-custom-instance 的 RDS Custom 数据库实例创建名为 my-custom-snapshot 的数据库快照。

对于 Linux、macOS 或 Unix:

aws rds create-db-snapshot \ --db-instance-identifier my-custom-instance \ --db-snapshot-identifier my-custom-snapshot

对于 Windows:

aws rds create-db-snapshot ^ --db-instance-identifier my-custom-instance ^ --db-snapshot-identifier my-custom-snapshot

从 RDS Custom for Oracle 数据库快照还原

在还原 RDS Custom for Oracle 数据库实例时,需要提供数据库快照的名称以及新实例的名称。您不能从快照还原到现有的 RDS Custom 数据库实例。还原时将新建一个 RDS Custom for Oracle 数据库实例。

该还原过程与 Amazon RDS 中的还原有以下方式不同:

  • 还原快照之前,RDS Custom for Oracle 会备份现有配置文件。这些文件提供在目录 /rdsdbdata/config/backup 中的还原实例上。RDS Custom for Oracle 会使用原定设置参数还原数据库快照,并用现有参数覆盖以前的数据库配置文件。因此,还原的实例不会保留自定义参数和对数据库配置文件的更改。

  • 还原的数据库的名称与快照中的名称相同。您不能指定不同的名称。(对于 RDS Custom for Oracle,原定设置值为 ORCL。)

要从数据库快照还原 RDS Custom 数据库实例
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择快照

  3. 选择要从其还原的数据库快照。

  4. 对于操作,选择还原快照

  5. 请在 Restore DB instance(还原数据库实例)页面上,为 DB instance identifier(数据库实例标识符)输入还原的 RDS Custom 数据库实例的名称。

  6. 选择还原数据库实例

您可以通过使用 restore-db-instance-from-db-snapshot AWS CLI 命令还原 RDS Custom 数据库快照。

如果要从中还原的快照适用于私有数据库实例,请务必同时指定正确的 db-subnet-group-nameno-publicly-accessible。否则,数据库实例原定设置为可公开访问。以下选项为必填:

  • db-snapshot-identifier – 标识要从中进行还原的快照

  • db-instance-identifier – 指定要从数据库快照创建的 RDS Custom 数据库实例的名称

  • custom-iam-instance-profile – 指定与 RDS Custom 数据库实例的基础 Amazon EC2 实例关联的实例配置文件。

以下代码为 my-custom-instance 还原名为 my-custom-snapshot 的快照。

对于 Linux、macOS 或 Unix:

aws rds restore-db-instance-from-db-snapshot \ --db-snapshot-identifier my-custom-snapshot \ --db-instance-identifier my-custom-instance \ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance \ --no-publicly-accessible

对于 Windows:

aws rds restore-db-instance-from-db-snapshot ^ --db-snapshot-identifier my-custom-snapshot ^ --db-instance-identifier my-custom-instance ^ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance ^ --no-publicly-accessible

将 RDS Custom for Oracle 实例还原到某个时间点

您可以将数据库实例还原到某个特定时间点 (PITR),以创建新数据库实例。要支持 PITR,您的数据库实例必须将备份保留期设置为非零值。

RDS Custom for Oracle 数据库实例的最近可还原时间取决于多个因素,但通常为当前时间的 5 分钟内。要查看某个数据库实例的最近可还原时间,请使用 AWS CLI describe-db-instances 命令,并查看该数据库实例的 LatestRestorableTime 字段中返回的值。要在 Amazon RDS 控制台中查看每个数据库实例的最近可还原时间,请选择自动备份

您可以还原至备份保留期内的任何时间点。要查看每个数据库实例的最早可还原时间,请在 Amazon RDS 控制台中选择自动备份

有关 PITR 的一般信息,请参阅将数据库实例还原到指定时间

RDS Custom for Oracle 的 PITR 注意事项

在 RDS Custom for Oracle 中,PITR 与 Amazon RDS 中的 PITR 有以下重要的区别:

  • 还原的数据库的名称与源数据库实例中的名称相同。您不能指定不同的名称。默认为 ORCL

  • AWSRDSCustomIamRolePolicy 需要新的权限。有关更多信息,请参阅 步骤 2:将访问策略添加到 AWSRDSCustomInstanceRoleForRdsCustomInstance 中

  • RDS Custom for Oracle 的所有数据库实例都必须将备份保留期设置为非零值。

  • 如果更改操作系统或数据库实例时区,PITR 可能无法正常工作。有关更改时区的信息,请参阅Oracle 时区

  • 如果将自动化设置为 ALL_PAUSED,RDS Custom 会暂停上传存档的重做日志文件,包括在最近可还原时间(LRT)之前创建的日志。我们建议您短暂暂停自动化。

    为了进行说明,假设您的 LRT 为 10 分钟前。您暂停了自动化。暂停期间,RDS Custom 不上载存档的重做日志。如果数据库实例崩溃,则只能恢复到暂停时存在的 LRT 之前的一段时间。当您恢复自动化时,RDS Custom 会恢复上载日志。LRT 推进。将适用正常的 PITR 规则。

  • 在 RDS Custom 中,您可以手动指定 RDS Custom 在上载后将存档的重做日志删除之前将其保留的任意小时数。按如下方式指定小时数:

    1. 创建名为 /opt/aws/rdscustomagent/config/redo_logs_custom_configuration.json 的文本文件。

    2. 按以下格式添加 JSON 对象:{"archivedLogRetentionHours" : "num_of_hours"}。该数字必须是一个介于 1–840 之间的整数。

  • 假设您将非 CDB 作为 PDB 插入容器数据库(CDB),然后尝试 PITR。仅当您先前备份了 PDB 时,该操作才会成功。创建或修改 PDB 后,我们建议您始终对其进行备份。

  • 我们建议您不要自定义数据库初始化参数。例如,修改以下参数会影响 PITR:

    • CONTROL_FILE_RECORD_KEEP_TIME 影响上传和删除日志的规则。

    • LOG_ARCHIVE_DEST_n 不支持多个目的地。

    • ARCHIVE_LAG_TARGET 影响最近可还原时间。ARCHIVE_LAG_TARGET 设置为 300,因为恢复点目标(RPO)为 5 分钟。为了实现这一目标,RDS 每 5 分钟切换一次在线重做日志,并将其存储在 Amazon S3 存储桶中。如果日志切换的频率导致 RDS Custom for Oracle 数据库出现性能问题,则可以将数据库实例和存储扩展到具有更高 IOPS 和吞吐量的数据库实例和存储。如果恢复计划需要,可以将 ARCHIVE_LAG_TARGET 初始化参数的设置调整为 60–7200 之间的值。

  • 如果您自定义数据库初始化参数,我们强烈建议您只自定义以下内容:

    • COMPATIBLE

    • MAX_STRING_SIZE

    • DB_FILES

    • UNDO_TABLESPACE

    • ENABLE_PLUGGABLE_DATABASE

    • CONTROL_FILES

    • AUDIT_TRAIL

    • AUDIT_TRAIL_DEST

    对于所有其他初始化参数,RDS Custom 将还原原定设置值。如果修改不在前面列表中的参数,可能会对 PITR 产生不利影响,并导致不可预测的结果。例如,CONTROL_FILE_RECORD_KEEP_TIME 影响上传和删除日志的规则。

您可以使用 AWS Management Console、AWS CLI 或 RDS API 将 RDS Custom 数据库实例还原到某个时间点。

要将 RDS Custom 数据库实例还原至指定时间
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Automated backups(自动备份)。

  3. 选择要还原的 RDS Custom 数据库实例。

  4. 对于 Actions (操作),选择 Restore to point in time (还原到时间点)

    此时会显示还原到时间点窗口。

  5. 选择最近可还原时间以还原到可能的最近时间,或选择自定义来选择时间。

    如果您选择 Custom(自定义),请输入要将实例集群还原到的日期和时间。

    时间以您的本地时区显示,表示为协调世界时 (UTC) 的偏移量。例如,UTC-5 是东部标准时间/中部夏令时。

  6. 对于 DB instance identifier(数据库实例标识符),请输入目标还原后的 RDS Custom 数据库实例的名称。名称必须唯一。

  7. 根据需要选择其他选项,例如数据库实例类。

  8. 选择还原到时间点

通过使用 restore-db-instance-to-point-in-time AWS CLI 命令创建新的 RDS Custom 数据库实例,将数据库实例还原到指定时间。

使用以下选项之一指定要从中恢复的备份:

  • --source-db-instance-identifier mysourcedbinstance

  • --source-dbi-resource-id dbinstanceresourceID

  • --source-db-instance-automated-backups-arn backupARN

custom-iam-instance-profile 选项是必需的。

截至指定的时间,以下示例会将 my-custom-db-instance 还原到名为 my-restored-custom-db-instance 的新数据库实例。

对于 Linux、macOS 或 Unix:

aws rds restore-db-instance-to-point-in-time \ --source-db-instance-identifier my-custom-db-instance\ --target-db-instance-identifier my-restored-custom-db-instance \ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance \ --restore-time 2022-10-14T23:45:00.000Z

对于 Windows:

aws rds restore-db-instance-to-point-in-time ^ --source-db-instance-identifier my-custom-db-instance ^ --target-db-instance-identifier my-restored-custom-db-instance ^ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance ^ --restore-time 2022-10-14T23:45:00.000Z

删除 RDS Custom for Oracle 快照

如果不再需要,您可以删除 RDS Custom for Oracle 管理的数据库快照。对于 Amazon RDS 和 RDS Custom 数据库实例而言,删除过程是相同的。

二进制卷和根卷的 Amazon EBS 快照会在您的账户中保留更长时间,因为它们可能与您账户中运行的某些实例或其他 RDS Custom for Oracle 快照关联。当这些 EBS 快照不再与任何现有 RDS Custom for Oracle 资源(数据库实例或备份)相关后,将会被自动删除。

要删除 RDS Custom 数据库实例的快照
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择快照

  3. 选择要删除的数据库快照。

  4. 对于 Actions(操作),选择 Delete snapshot(删除快照)。

  5. 在确认页面上选择 Delete (删除)

要删除 RDS Custom 快照,请使用 AWS CLI 命令 delete-db-snapshot

以下选项为必填项:

  • --db-snapshot-identifier – 要删除的快照

以下示例将删除 my-custom-snapshot 数据库快照。

对于 Linux、macOS 或 Unix:

aws rds delete-db-snapshot \ --db-snapshot-identifier my-custom-snapshot

对于 Windows:

aws rds delete-db-snapshot ^ --db-snapshot-identifier my-custom-snapshot

删除 RDS Custom for Oracle 自动备份

当不再需要 RDS Custom for Oracle 的保留自动备份时,您可以删除它们。此过程与删除 Amazon RDS 备份的过程相同。

删除保留的自动备份
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Automated backups(自动备份)。

  3. 选择 Retained (保留)

  4. 选择要删除的保留自动备份。

  5. 对于 Actions (操作),选择 Delete (删除)

  6. 在确认页面上,输入 delete me 并选择 Delete (删除)

可以通过使用 AWS CLI 命令 delete-db-instance-automated-backup 删除保留的自动备份。

以下选项用于删除保留的自动备份:

  • --dbi-resource-id – 源 RDS Custom 数据库实例的资源标识符。

    可以通过使用 AWS CLI 命令 describe-db-instance-automated-backups 查找保留自动备份的源数据库实例的资源标识符。

以下示例删除具有源数据库实例资源标识符 custom-db-123ABCEXAMPLE 的保留自动备份。

对于 Linux、macOS 或 Unix:

aws rds delete-db-instance-automated-backup \ --dbi-resource-id custom-db-123ABCEXAMPLE

对于 Windows:

aws rds delete-db-instance-automated-backup ^ --dbi-resource-id custom-db-123ABCEXAMPLE