Amazon Relational Database Service
用户指南 (API 版本 2014-10-31)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

复制快照

使用 Amazon RDS,您可以复制自动或手动数据库快照。在复制快照后,该副本为手动快照。

您可以复制位于相同 AWS 区域中的快照,可以跨 AWS 区域复制快照,也可以在 AWS 账户之间复制快照。

将自动快照复制到另一个 AWS 账户是包含两个步骤:首先从自动快照创建手动快照,然后将手动快照复制到其他账户。

限制

复制快照时,存在以下一些限制:

  • 您不能向或者从以下 AWS 区域复制快照:中国(北京) 或 中国 (宁夏)。

  • 您可以在 AWS GovCloud(美国东部) 与 AWS GovCloud (US-West) 之间复制快照,但不能在这些 AWS GovCloud (US) 区域与其他 AWS 区域之间复制快照。

  • 如果您在目标快照可用之前删除了源快照,则快照复制将失败。在删除源快照之前,请确保目标快照的状态为 AVAILABLE

  • 每个账户最多可以同时进行到同一目标区域的五个快照复制请求。

  • 如果数据库快照是从使用 AWS CloudHSM Classic 存储 TDE 密钥的 Oracle 数据库实例创建,则您无法跨区域复制该数据库快照。

  • 根据所涉及的区域和要复制的数据量,可能需要数小时才能完成跨区域快照复制。如果有大量跨区域快照复制请求来自给定源 AWS 区域,则 Amazon RDS 可能将来自该源 AWS 区域的新跨区域复制请求排入队列,直到完成某些正在进行的复制。当复制请求在队列中时,不显示有关这些复制请求的进度信息。复制开始后即显示进度信息。

快照保留

当自动数据库快照的保留期结束时,当为数据库实例禁用自动数据库快照时,或者当删除数据库实例时,Amazon RDS 将会删除自动数据库快照。如果要长期保留自动快照,则可复制它以创建一个手动数据库快照。该快照在您删除它之前将会一直保留。如果超出了默认存储空间,Amazon RDS 存储费用可能会应用于手动快照。

复制共享快照

您可以复制其他 AWS 账户与您共享的快照。如果要复制从其他 AWS 账户共享的加密快照,您必须具有用于加密此快照的 KMS 加密密钥的访问权限。

您可以跨区域复制共享数据库快照,前提是该快照未加密。不过,如果该共享数据库快照已加密,则您只能在相同 AWS 区域中对其进行复制。

处理加密

您可以复制已使用 AWS KMS 加密密钥加密的快照。如果您复制加密的快照,则此快照的副本也必须加密。如果在相同 AWS 区域内复制加密的快照,可使用原始快照的 KMS 加密密钥来加密此副本,也可指定不同的 KMS 加密密钥。如果您跨区域复制加密的快照,由于 KMS 密钥是区域特定的,所以您不能使用与源快照相同的 KMS 加密密钥。相反,您必须指定在目标 AWS 区域中有效的 KMS 密钥。

您还可加密未加密快照的副本。这样,您可以快速为之前未加密的数据库实例增加加密功能。也就是说,您可以在准备好加密数据库实例快照时创建该快照,然后创建该快照的副本并指定 KMS 加密密钥以加密该快照副本。之后您可从加密的快照还原加密的数据库实例。

跨 AWS 区域复制快照

在向与源快照的 AWS 区域不同的 AWS 区域复制快照时,即使复制增量快照,第一个副本也是完整快照副本。完整快照副本包含还原数据库实例需要的所有数据和元数据。在第一个快照副本后,可将同一数据库实例的增量快照复制到相同目标区域。

增量快照仅包含在同一数据库实例的最近快照后发生更改的数据。与完整快照复制相比,增量快照复制速度更快,产生的存储成本更低。已加密和未加密快照均支持跨 AWS 区域的增量快照复制。

根据所涉及的 AWS 区域和要复制的数据量,可能需要数小时才能完成跨区域快照复制。有时,某一给定的源 AWS 区域可能会发出大量跨区域快照复制请求。在这种情况下,Amazon RDS 可能会将来自该源 AWS 区域的新跨区域复制请求排入队列,直至某些区域正在进行的复制完成。当复制请求在队列中时,不显示有关这些复制请求的进度信息。复制开始后即显示进度信息。

注意

当复制的源快照是快照副本时,该副本不是增量式的,因为快照副本不包括增量副本所需的元数据。

选项组注意事项

选项组特定于创建它们时所在的 AWS 区域,AWS 区域的加密密钥选项组不能用于另一个 AWS 区域。

在您跨区域复制快照时,可以为快照指定新选项组。我们建议您在复制快照之前准备新选项组。在目标 AWS 区域,使用与原始数据库实例相同的设置创建选项组。如果新 AWS 区域中已存在选项组,也可以使用它。

如果您复制快照并且没有为快照指定新选项组,则在您还原它时,数据库实例将获取默认选项组。要为新的数据库实例提供与原始数据库实例或数据库集群相同的选项组,您必须执行以下操作:

  1. 在目标 AWS 区域,使用与原始数据库实例相同的设置创建选项组。如果新 AWS 区域中已存在选项组,也可以使用它。

  2. 在目标 AWS 区域中还原快照之后,修改新数据库实例,并添加上一步中的新选项组或现有选项组。

参数组注意事项

跨区域复制快照时,复制不包括由原始数据库实例。当您还原快照来创建新数据库实例,该数据库实例获取在其中执行创建操作的 AWS 区域的默认参数组。要为新的数据库实例提供与源相同的参数组,您必须执行以下操作:

  1. 在目标 AWS 区域,使用与原始数据库实例相同的设置创建数据库设置组。如果新 AWS 区域中已存在选项组,也可以使用它。

  2. 在目标 AWS 区域中还原快照之后,修改新数据库实例,并添加上一步中的新参数组或现有参数组。

复制数据库快照

使用此主题中的过程复制数据库快照。有关复制快照的概述,请参阅复制快照

对于每个 AWS 账户,一次最多可以从一个 AWS 区域向另一个 AWS 区域复制 5 个数据库快照。如果将数据库快照复制到另一个 AWS 区域,可创建保留在该 AWS 区域中的手动数据库快照。从源 AWS 区域复制数据库快照会产生 Amazon RDS 数据传输费。

在新 AWS 区域中创建数据库快照副本后,该数据库快照副本的行为与该 AWS 区域中所有其他数据库快照的行为相同。

您可以使用 AWS 管理控制台​、AWS CLI 或 RDS API 复制数据库快照。

AWS 管理控制台

该过程使用 AWS 管理控制台,在相同 AWS 区域中或跨区域复制加密或未加密数据库快照。

复制数据库快照

  1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择 Snapshots

  3. 选择要复制的数据库快照。

  4. 选择操作,然后选择复制快照。此时显示 Make Copy of DB Snapshot 页面。

    
							复制数据库快照
  5. (可选) 要将数据库快照复制到其他 AWS 区域,请对 Destination Region 选择新 AWS 区域。

    注意

    目标 AWS 区域必须具有与源 AWS 区域相同的可用数据库引擎版本。

  6. 对于 New DB Snapshot Identifier,键入数据库快照副本的名称。

  7. (可选) 对于 Target Option Group,选择新选项组。

    如果将快照从一个 AWS 区域复制到另一个 AWS 区域,并且数据库实例使用非默认选项组,则指定该选项。

    如果源数据库实例为 Oracle 或 Microsoft SQL Server 使用透明数据加密,则在跨区域复制时必须指定该选项。有关更多信息,请参阅选项组注意事项

  8. (可选) 选择 Copy Tags 将标签和值从快照复制到快照的副本。

  9. (可选) 对于 Enable Encryption,选择下列选项之一:

    • 如果数据库快照未加密,且不需要加密该副本,请选择禁用加密

    • 如果数据库快照未加密,但需要加密该副本,请选择启用加密。在这种情况下,对于 Master Key,请指定用于加密数据库快照副本的 KMS 密钥标识符。

    • 如果数据库快照已加密,请选择启用加密。在这种情况下,必须加密该副本,因此,为已选中状态。对于 Master Key,指定用于加密数据库快照副本的 KMS 密钥标识符。

  10. 选择 Copy Snapshot

CLI

您可以使用 AWS CLI 命令 copy-db-snapshot 复制数据库快照。如果要将快照复制到新 AWS 区域,请在新 AWS 区域中运行该命令。

以下选项用于复制数据库快照。并非所有情况下都需要所有选项。使用以下说明和示例来确定要使用的选项。

  • --source-db-snapshot-identifier – 源数据库快照的标识符。

    • 如果源快照与副本位于相同 AWS 区域中,则指定有效的数据库快照标识符。例如:rds:mysql-instance1-snapshot-20130805

    • 如果源快照与副本位于不同 AWS 区域,则指定有效的数据库快照 ARN。例如:arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805

    • 如果从共享的手动数据库快照进行复制,则该参数必须为共享的数据库快照的 Amazon 资源名称 (ARN)。

    • 如果要复制加密快照,则该参数必须采用源 AWS 区域的 ARN 格式,并且必须匹配 SourceDBSnapshotIdentifier 参数中的 PreSignedUrl

  • --target-db-snapshot-identifier – 加密数据库快照的新副本的标识符。

  • --copy-tags – 包括复制标签选项以将标签和值从快照复制到快照的副本。

  • --option-group-name – 与快照的副本关联的选项组。

    如果将快照从一个 AWS 区域复制到另一个 AWS 区域,并且数据库实例使用非默认选项组,则指定该选项。

    如果源数据库实例为 Oracle 或 Microsoft SQL Server 使用透明数据加密,则在跨区域复制时必须指定该选项。有关更多信息,请参阅选项组注意事项

  • --kms-key-id – 加密数据库快照的 AWS KMS 密钥 ID。KMS 密钥 ID 是 Amazon 资源名称 (ARN)、KMS 密钥标识符或 KMS 加密密钥的 KMS 密钥别名。

    • 如果您从 AWS 账户复制加密的数据库快照,则可以为该参数指定值来使用新的 KMS 加密密钥加密副本。如果您不为该参数指定值,则使用与源数据库快照相同的 KMS 密钥来加密数据库快照的副本。

    • 如果您复制从其他 AWS 账户共享的加密数据库快照,则必须为该参数指定值。

    • 如果您在复制未加密快照时指定该参数,则将加密副本。

    • 如果将加密快照复制到不同 AWS 区域,则必须为目标 AWS 区域指定 KMS 密钥。KMS 加密密钥特定于创建它时所在的 AWS 区域,AWS 区域的加密密钥不能用于另一个 AWS 区域。

  • --source-region – 源数据库快照的 AWS 区域的 ID。如果将加密快照复制到不同 AWS 区域,则必须指定该选项。

例 从未加密快照,到相同区域

以下代码使用新名称 mydbsnapshotcopy,在与源快照相同的 AWS 区域中创建快照的副本。创建副本时,原始快照上的所有标签都将复制到快照副本。

针对 Linux、OS X 或 Unix:

aws rds copy-db-snapshot \ --source-db-snapshot-identifier mysql-instance1-snapshot-20130805 \ --target-db-snapshot-identifier mydbsnapshotcopy \ --copy-tags

对于 Windows:

aws rds copy-db-snapshot ^ --source-db-snapshot-identifier mysql-instance1-snapshot-20130805 ^ --target-db-snapshot-identifier mydbsnapshotcopy ^ --copy-tags

例 从未加密快照,跨区域

以下代码使用新名称 mydbsnapshotcopy,在运行命令的 AWS 区域中创建快照的副本。

针对 Linux、OS X 或 Unix:

aws rds copy-db-snapshot \ --source-db-snapshot-identifier arn:aws-cn:rds:us-east-1:123456789012:snapshot:mysql-instance1-snapshot-20130805 \ --target-db-snapshot-identifier mydbsnapshotcopy

对于 Windows:

aws rds copy-db-snapshot ^ --source-db-snapshot-identifier arn:aws-cn:rds:us-east-1:123456789012:snapshot:mysql-instance1-snapshot-20130805 ^ --target-db-snapshot-identifier mydbsnapshotcopy

例 从加密快照,跨区域

以下代码示例将加密的数据库快照从 us-west-2 区域复制到 us-east-1 区域。在 us-east-1 区域中运行命令。

针对 Linux、OS X 或 Unix:

aws rds copy-db-snapshot \ --source-db-snapshot-identifier arn:aws-cn:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115 \ --target-db-snapshot-identifier mydbsnapshotcopy \ --source-region us-west-2 \ --kms-key-id my-us-east-1-key \ --option-group-name custom-option-group-name

对于 Windows:

aws rds copy-db-snapshot ^ --source-db-snapshot-identifier arn:aws-cn:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115 ^ --target-db-snapshot-identifier mydbsnapshotcopy ^ --source-region us-west-2 ^ --kms-key-id my-us-east-1-key ^ --option-group-name custom-option-group-name
API

您可以使用 Amazon RDS API 操作 CopyDBSnapshot 复制数据库快照。如果将快照复制到新 AWS 区域,请在新 AWS 区域中执行操作。

以下参数用于复制数据库快照。并非所有情况下都需要所有参数。使用以下说明和示例来确定要使用的参数。

  • SourceDBSnapshotIdentifier – 源数据库快照的标识符。

    • 如果源快照与副本位于相同 AWS 区域中,则指定有效的数据库快照标识符。例如:rds:mysql-instance1-snapshot-20130805

    • 如果源快照与副本位于不同 AWS 区域,则指定有效的数据库快照 ARN。例如:arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805

    • 如果从共享的手动数据库快照进行复制,则该参数必须为共享的数据库快照的 Amazon 资源名称 (ARN)。

    • 如果要复制加密快照,则该参数必须采用源 AWS 区域的 ARN 格式,并且必须匹配 SourceDBSnapshotIdentifier 参数中的 PreSignedUrl

  • TargetDBSnapshotIdentifier – 加密数据库快照的新副本的标识符。

  • CopyTags – 将该参数设置为 true 可将标签和值从快照复制到快照的副本。默认为 false

  • OptionGroupName – 与快照的副本关联的选项组。

    如果将快照从一个 AWS 区域复制到另一个区域,并且数据库实例使用非默认选项组,则指定该参数。

    如果源数据库实例为 Oracle 或 Microsoft SQL Server 使用透明数据加密,则在跨区域复制时必须指定该参数。有关更多信息,请参阅选项组注意事项

  • KmsKeyId – 加密数据库快照的 AWS KMS 密钥 ID。KMS 密钥 ID 是 Amazon 资源名称 (ARN)、KMS 密钥标识符或 KMS 加密密钥的 KMS 密钥别名。

    • 如果您从 AWS 账户复制加密的数据库快照,则可以为该参数指定值来使用新的 KMS 加密密钥加密副本。如果您不为该参数指定值,则使用与源数据库快照相同的 KMS 密钥来加密数据库快照的副本。

    • 如果您复制从其他 AWS 账户共享的加密数据库快照,则必须为该参数指定值。

    • 如果您在复制未加密快照时指定该参数,则将加密副本。

    • 如果将加密快照复制到不同 AWS 区域,则必须为目标 AWS 区域指定 KMS 密钥。KMS 加密密钥特定于创建它时所在的 AWS 区域,AWS 区域的加密密钥不能用于另一个 AWS 区域。

  • PreSignedUrl – 包含要复制的源数据库快照的源 AWS 区域中,CopyDBSnapshot API 操作的包含签名版本 4 签名请求的 URL。

    使用 Amazon RDS API 从其他 AWS 区域复制加密数据库快照时,必须指定该参数。使用 AWS CLI 从其他 AWS 区域复制加密数据库快照时,必须指定源区域选项而非该参数。

    预签名 URL 必须是对 CopyDBSnapshot API 操作的有效请求,该操作能够在包含要复制的加密数据库快照的源 AWS 区域中执行。预签名 URL 请求必须包含以下参数值:

    • DestinationRegion - 加密数据库快照将复制到的 AWS 区域。此 AWS 区域与调用包含此预签名 URL 的 CopyDBSnapshot 操作的区域相同。

      例如,如果将加密数据库快照从 us-west-2 区域复制到 us-east-1 区域,则需要在 us-east-1 区域中调用 CopyDBSnapshot 操作,并提供包含对 us-west-2 区域中 CopyDBSnapshot 操作调用的预签名 URL。对于本示例,预签名 URL 中的 DestinationRegion 必须设置为 us-east-1 区域。

    • KmsKeyId - 要用于对目标 AWS 区域中的数据库快照副本进行加密的密钥的 KMS 密钥标识符。这与在目标 AWS 区域中调用的 CopyDBSnapshot 操作以及预签名 URL 中包含的操作的标识符相同。

    • SourceDBSnapshotIdentifier - 要复制的加密快照的数据库快照标识符。此标识符必须采用源 AWS 区域的 Amazon 资源名称 (ARN) 格式。例如,如果您从 us-west-2 区域复制加密数据库快照,则 SourceDBSnapshotIdentifier 应类似于以下实例:arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115

    有关签名版本 4 签名请求的更多信息,请参阅:

例 从未加密快照,到相同区域

以下代码使用新名称 mydbsnapshotcopy,在与源快照相同的 AWS 区域中创建快照的副本。创建副本时,原始快照上的所有标签都将复制到快照副本。

https://rds.us-west-1.amazonaws.com/ ?Action=CopyDBSnapshot &CopyTags=true &SignatureMethod=HmacSHA256 &SignatureVersion=4 &SourceDBSnapshotIdentifier=mysql-instance1-snapshot-20130805 &TargetDBSnapshotIdentifier=mydbsnapshotcopy &Version=2013-09-09 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20140429/us-west-1/rds/aws4_request &X-Amz-Date=20140429T175351Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=9164337efa99caf850e874a1cb7ef62f3cea29d0b448b9e0e7c53b288ddffed2

例 从未加密快照,跨区域

以下代码使用新名称 mydbsnapshotcopy,在 us-west-1 区域中创建快照的副本。

https://rds.us-west-1.amazonaws.com/ ?Action=CopyDBSnapshot &SignatureMethod=HmacSHA256 &SignatureVersion=4 &SourceDBSnapshotIdentifier=arn%3Aaws%3Ards%3Aus-east-1%3A123456789012%3Asnapshot%3Amysql-instance1-snapshot-20130805 &TargetDBSnapshotIdentifier=mydbsnapshotcopy &Version=2013-09-09 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20140429/us-west-1/rds/aws4_request &X-Amz-Date=20140429T175351Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=9164337efa99caf850e874a1cb7ef62f3cea29d0b448b9e0e7c53b288ddffed2

例 从加密快照,跨区域

以下代码使用新名称 mydbsnapshotcopy,在 us-east-1 区域中创建快照的副本。

https://rds.us-east-1.amazonaws.com/ ?Action=CopyDBSnapshot &KmsKeyId=my-us-east-1-key &OptionGroupName=custom-option-group-name &PreSignedUrl=https%253A%252F%252Frds.us-west-2.amazonaws.com%252F %253FAction%253DCopyDBSnapshot %2526DestinationRegion%253Dus-east-1 %2526KmsKeyId%253Dmy-us-east-1-key %2526SourceDBSnapshotIdentifier%253Darn%25253Aaws%25253Ards%25253Aus-west-2%25253A123456789012%25253Asnapshot%25253Amysql-instance1-snapshot-20161115 %2526SignatureMethod%253DHmacSHA256 %2526SignatureVersion%253D4 %2526Version%253D2014-10-31 %2526X-Amz-Algorithm%253DAWS4-HMAC-SHA256 %2526X-Amz-Credential%253DAKIADQKE4SARGYLE%252F20161117%252Fus-west-2%252Frds%252Faws4_request %2526X-Amz-Date%253D20161117T215409Z %2526X-Amz-Expires%253D3600 %2526X-Amz-SignedHeaders%253Dcontent-type%253Bhost%253Buser-agent%253Bx-amz-content-sha256%253Bx-amz-date %2526X-Amz-Signature%253D255a0f17b4e717d3b67fad163c3ec26573b882c03a65523522cf890a67fca613 &SignatureMethod=HmacSHA256 &SignatureVersion=4 &SourceDBSnapshotIdentifier=arn%3Aaws%3Ards%3Aus-west-2%3A123456789012%3Asnapshot%3Amysql-instance1-snapshot-20161115 &TargetDBSnapshotIdentifier=mydbsnapshotcopy &Version=2014-10-31 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20161117/us-east-1/rds/aws4_request &X-Amz-Date=20161117T221704Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=da4f2da66739d2e722c85fcfd225dc27bba7e2b8dbea8d8612434378e52adccf