复制 Amazon RDS 的数据库快照 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

复制 Amazon RDS 的数据库快照

使用 Amazon RDS,您可以复制自动备份或手动数据库快照。在复制快照后,该副本为手动快照。可以创建自动备份或手动快照的多个副本,但每个副本必须具有唯一的标识符。

您可以复制位于同一 Amazon Web Services 区域中的快照,可以跨 Amazon Web Services 区域复制快照,也可以复制共享快照。

复制数据库快照

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

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

您可以使用 Amazon Web Services Management Console​、Amazon CLI 或 RDS API 复制数据库快照。

以下过程使用 Amazon Web Services Management Console,在同一 Amazon Web Services 区域中或跨区域复制加密或未加密数据库快照。

复制数据库快照
  1. 登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

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

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

  4. 对于 Actions (操作),请选择 Copy snapshot (复制快照)

    会显示 Copy snapshot (复制快照) 页面。

    复制数据库快照
  5. 对于 Target option group (optional) [目标选项组(可选)],如果需要,则选择新的选项组。

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

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

  6. (可选)要将数据库快照复制到其他 Amazon Web Services 区域,请对 Destination Region(目标区域)选择新 Amazon Web Services 区域。

    注意

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

  7. 对于 New DB snapshot identifier(新数据库快照标识符),键入数据库快照副本的名称。

    可以创建自动备份或手动快照的多个副本,但每个副本必须具有唯一的标识符。

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

  9. (可选)对于加密,请执行以下操作:

    1. 如果数据库快照未加密,但需要加密副本,请选择 Enable Encryption (启用加密)

      注意

      如果数据库快照已加密,则必须对副本进行加密,因此已选中复选框。

    2. 对于 Amazon KMS key,指定用于加密数据库快照副本的 KMS 密钥标识符。

  10. 选择 Copy snapshot (复制快照)

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

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

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

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

    • 如果源快照与副本位于同一 Amazon Web Services 区域中,并且已与您的 Amazon Web Services 账户共享,则指定有效的数据库快照 ARN。例如,arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805

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

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

    • 如果您复制加密快照,则此参数对于源 Amazon Web Services 区域必须为 ARN 格式,并且必须匹配 PreSignedUrl 参数中的 SourceDBSnapshotIdentifier

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

  • --copy-option-group – 从已与您的 Amazon Web Services 账户 共享的快照中复制选项组。

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

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

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

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

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

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

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

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

    • 如果将加密快照复制到不同 Amazon Web Services 区域,必须为目标 Amazon Web Services 区域指定 KMS 密钥。KMS 密钥是特定于创建它们的 Amazon Web Services 区域,您无法将一个 Amazon Web Services 区域的加密密钥用于另一个 Amazon Web Services 区域。

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

以下代码使用新名称 mydbsnapshotcopy,在与源快照相同的 Amazon Web Services 区域中创建快照的副本。创建副本时,原始快照上的数据库选项组和标签都复制到快照副本。

对于 Linux、macOS 或 Unix:

aws rds copy-db-snapshot \ --source-db-snapshot-identifier arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805 \ --target-db-snapshot-identifier mydbsnapshotcopy \ --copy-option-group \ --copy-tags

对于 Windows:

aws rds copy-db-snapshot ^ --source-db-snapshot-identifier arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805 ^ --target-db-snapshot-identifier mydbsnapshotcopy ^ --copy-option-group ^ --copy-tags
例 从未加密快照,跨区域

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

对于 Linux、macOS 或 Unix:

aws rds copy-db-snapshot \ --source-db-snapshot-identifier arn:aws: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:rds:us-east-1:123456789012:snapshot:mysql-instance1-snapshot-20130805 ^ --target-db-snapshot-identifier mydbsnapshotcopy
例 从加密快照,跨区域

以下代码示例将加密的数据库快照从美国西部(俄勒冈州)区域复制到美国东部(弗吉尼亚州北部)。在目标 (us-east-1) 区域运行该命令。

对于 Linux、macOS 或 Unix:

aws rds copy-db-snapshot \ --source-db-snapshot-identifier arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115 \ --target-db-snapshot-identifier mydbsnapshotcopy \ --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:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115 ^ --target-db-snapshot-identifier mydbsnapshotcopy ^ --kms-key-id my-us-east-1-key ^ --option-group-name custom-option-group-name

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

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

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

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

    • 如果源快照与副本位于同一 Amazon Web Services 区域中,并且已与您的 Amazon Web Services 账户共享,则指定有效的数据库快照 ARN。例如,arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805

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

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

    • 如果您复制加密快照,则此参数对于源 Amazon Web Services 区域必须为 ARN 格式,并且必须匹配 PreSignedUrl 参数中的 SourceDBSnapshotIdentifier

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

  • CopyOptionGroup – 将该参数设置为 true 可将选项组从共享快照复制到快照的副本。默认为 false

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

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

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

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

  • KmsKeyId – 加密的数据库快照的 KMS 密钥标识符。KMS 密钥标识符是 Amazon Resource Name (ARN)、密钥标识符或 KMS 密钥的密钥别名。

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

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

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

    • 如果将加密快照复制到不同 Amazon Web Services 区域,必须为目标 Amazon Web Services 区域指定 KMS 密钥。KMS 密钥特定于创建它们的 Amazon Web Services 区域,您无法将一个 Amazon Web Services 区域中的加密密钥用于另一个 Amazon Web Services 区域。

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

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

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

    • DestinationRegion – 加密数据库快照将复制到的 Amazon Web Services 区域。此 Amazon Web Services 区域与调用包含此预签名 URL 的 CopyDBSnapshot 操作的区域为同一区域。

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

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

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

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

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

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

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,在 美国西部(加利福尼亚北部) 区域中创建快照的副本。

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 (N. Virginia) 区域中创建快照的副本。

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

限制

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

  • 无法将快照复制到中国(北京)区域或 中国(宁夏)区域或从这两个区域复制快照。

  • 您可以在 Amazon GovCloud(美国东部)和 Amazon GovCloud(美国西部)之间复制快照。但是,您不能在这些 GovCloud(美国)区域和非 GovCloud(美国)区域的区域之间复制快照。

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

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

  • 当您为同一源数据库实例请求多个快照副本时,它们将在内部排队。在先前的快照副本完成之后,稍后请求的副本才会启动。有关更多信息,请参阅 Amazon 知识中心里的为什么我的 EC2 AMI 或 EBS 快照创建速度很慢?

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

  • 如果某个副本在您启动另一个副本时仍处于挂起状态,则第二个副本在第一个副本完成后才开始。

  • 您无法复制多可用区数据库集群的快照

  • 您只能将使用 io2 卷的数据库实例的快照复制到有 io2 Block Express 卷可用的 Amazon Web Services 区域。有关更多信息,请参阅 Amazon RDS 数据库实例存储

注意事项

有关复制数据库快照的注意事项,请参阅以下主题。

快照保留

在以下几种情况下,Amazon RDS 会删除自动备份:

  • 在保留期结束时。

  • 对数据库实例禁用自动备份时。

  • 删除数据库实例时。

如果要长期保留自动快照,则可复制它以创建一个手动快照。该快照在您删除之前将会一直保留。如果手动快照超出了默认存储空间,则可能会产生 Amazon RDS 存储成本。

共享快照复制注意事项

您可以复制其他 Amazon Web Services 账户与您共享的快照。在某些情况下,您可以从另一个 Amazon Web Services 账户复制共享的加密快照。在这些情况下,您必须有权访问用于加密快照的 Amazon KMS key。

注意

对于您复制的共享快照,将向您收取 Amazon RDS 存储费用。Amazon RDS 可能会将源数据库实例的 ARN 附加到您复制的快照中。

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

注意

如果未加密或使用与初始完整快照相同的 KMS 密钥进行加密,则支持在同一 Amazon Web Services 区域中复制共享增量快照。如果您在复制后续快照时使用其他 KMS 密钥对其进行加密,则这些共享快照是完整快照。有关更多信息,请参阅 增量快照复制的注意事项

加密快照复制的注意事项

您可以复制已使用 KMS 密钥加密的快照。如果您复制加密的快照,则此快照的副本也必须加密。如果在同一 Amazon Web Services 区域内复制加密的快照,可使用与原始快照相同的 KMS 密钥加密此副本。也可指定不同的 KMS 密钥。

如果跨区域复制加密快照,则必须指定在目标 Amazon Web Services 区域中有效的 KMS 密钥。该密钥可以是某个区域的专用 KMS 密钥,也可以是多区域密钥。有关多区域 KMS 密钥的更多信息,请参阅在 Amazon KMS 中使用多区域密钥

源快照在复制过程中保持加密状态。有关更多信息,请参阅“Amazon RDS 加密的数据库实例的限制”。

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

有关 Amazon RDS 的 Amazon KMS 密钥管理的更多信息,请参阅 Amazon KMS key 管理

增量快照复制的注意事项

增量快照仅包含在同一数据库实例的最近快照后发生更改的数据。与完整快照复制相比,增量快照复制速度更快,产生的存储成本更低。

快照副本是否为增量副本是由最近完成的快照副本和源快照决定的。如果删除了最新的快照副本,则下一个副本是完整副本,而不是增量副本。快照副本的类型将与源快照相同。如果源快照是增量快照,则快照副本将是增量快照。

在跨 Amazon Web Services 账户复制快照时,仅当满足以下所有条件时,副本才是增量副本:

  • 最新的快照副本是同一个源数据库实例的副本,并且仍位于目标账户中。

  • 目标账户中的所有快照副本均未加密,或者是使用同一 KMS 密钥加密的。

  • 如果源数据库实例是多可用区实例,则自上次从该实例拍摄快照以来,它从未故障转移到其他可用区。

以下示例说明了完整快照和增量快照之间的区别。同样适用于共享快照和非共享快照。

快照 加密密钥 完整或增量
S1 K1 完整
S2 K1 S1 的增量
S3 K1 S2 的增量
S4 K1 S3 的增量
S1 (S1C) 的副本 K2 完整
S2 (S2C) 的副本 K3 完整
S3 (S3C) 的副本 K3 S2C 的增量
S4 (S4C) 的副本 K3 S3C 的增量
S4 (S4C2) 的副本 2 K4 完整
注意

在这些示例中,仅当先前的快照仍然存在时,快照 S2、S3 和 S4 才是增量快照。

这同样适用于副本。仅当先前的副本仍然存在时,快照副本 S3C 和 S4C 才是增量副本。

有关跨 Amazon Web Services 区域复制增量快照的信息,请参阅完整和增量拷贝

跨区域快照复制的注意事项

您可以跨 Amazon Web Services 区域复制数据库快照。但是,跨区域快照复制具有某些限制和注意事项。

请求跨区域数据库快照复制

要与源区域通信以请求跨区域数据库快照副复制,请求者(IAM 角色或 IAM 用户)必须有权访问源数据库快照和源区域。

请求者的 IAM 策略中的某些条件可能会导致请求失败。以下示例假定您要将数据库快照从 美国东部(俄亥俄州) 复制到 US East (N. Virginia)。这些示例显示了请求者的 IAM 策略中导致请求失败的条件:

  • 请求者的策略对于 aws:RequestedRegion 具有条件限制。

    ... "Effect": "Allow", "Action": "rds:CopyDBSnapshot", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": "us-east-1" } }

    请求失败,因为该策略不允许访问源区域。要想请求成功,请指定源区域和目标区域。

    ... "Effect": "Allow", "Action": "rds:CopyDBSnapshot", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": [ "us-east-1", "us-east-2" ] } }
  • 请求者的策略不允许访问源数据库快照。

    ... "Effect": "Allow", "Action": "rds:CopyDBSnapshot", "Resource": "arn:aws:rds:us-east-1:123456789012:snapshot:target-snapshot" ...

    要想请求成功,请指定源快照和目标快照。

    ... "Effect": "Allow", "Action": "rds:CopyDBSnapshot", "Resource": [ "arn:aws:rds:us-east-1:123456789012:snapshot:target-snapshot", "arn:aws:rds:us-east-2:123456789012:snapshot:source-snapshot" ] ...
  • 请求者的政策拒绝 aws:ViaAWSService

    ... "Effect": "Allow", "Action": "rds:CopyDBSnapshot", "Resource": "*", "Condition": { "Bool": {"aws:ViaAWSService": "false"} }

    与源区域的通信由 RDS 代表请求者进行。要想请求成功,请不要拒绝 Amazon 服务发出的调用。

  • 请求者的策略对于 aws:SourceVpcaws:SourceVpce 具有条件限制。

    这些请求可能会失败,因为 RDS 对远程区域进行调用时,它并非来自指定的 VPC 或 VPC 端点。

如果您需要使用可能导致请求失败的上述某个条件,则可以在策略中包含第二个带有 aws:CalledVia 的语句,以便请求成功。例如,您可以使用带有 aws:CalledViaaws:SourceVpce,如下所示:

... "Effect": "Allow", "Action": "rds:CopyDBSnapshot", "Resource": "*", "Condition": { "Condition" : { "ForAnyValue:StringEquals" : { "aws:SourceVpce": "vpce-1a2b3c4d" } } }, { "Effect": "Allow", "Action": [ "rds:CopyDBSnapshot" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": [ "rds.amazonaws.com" ] } } }

有关更多信息,请参阅 IAM 用户指南中的 IAM 中的策略和权限

授权快照副本

跨区域数据库快照复制请求返回 success 后,RDS 将在后台启动副本。已创建 RDS 访问源快照的授权。此授权将源数据库快照链接到目标数据库快照,并允许 RDS 仅复制到指定的目标快照。

RDS 使用服务链接的 IAM 角色中的 rds:CrossRegionCommunication 权限对授权进行验证。如果副本获得授权,RDS 将与源区域通信并完成复制。

RDS 无权访问之前未经 CopyDBSnapshot 请求授权的数据库快照。复制完成后,将撤销授权。

RDS 使用服务链接的角色来验证源区域中的授权。如果在复制过程中删除了服务链接的角色,则复制将失败。

有关更多信息,请参阅 IAM 用户指南中的使用服务相关角色

使用 Amazon Security Token Service 凭证

来自全局 Amazon Security Token Service (Amazon STS) 端点的会话令牌仅在默认启用的 Amazon Web Services 区域(商业区域)中有效。在 assumeRole 中使用来自 Amazon STS API 操作的凭证时, 如果源区域是选择加入区域,请使用区域端点。否则,请求将失败。发生这种情况的原因是,您的凭证必须在两个区域都有效,而在使用区域 Amazon STS 端点时,仅选择加入区域有效。

要使用全局端点,请确保在操作中为两个区域都启用了该端点。在 Amazon STS 账户设置中将全局端点设置为 Valid in all Amazon Web Services 区域

同样的规则也适用于预签名 URL 参数中的凭证。

有关更多信息,请参阅《IAM 用户指南》中的在 Amazon Web Services 区域中管理 Amazon STS

延迟和多个复制请求

根据所涉及的 Amazon Web Services 区域和要复制的数据量,可能需要数小时才能完成跨区域快照复制。

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

完整和增量拷贝

在向与源快照不同的 Amazon Web Services 区域复制快照时,即使复制增量快照,第一个副本也是完整快照副本。完整快照副本包含还原数据库实例需要的所有数据和元数据。在第一个快照副本后,可将同一数据库实例的增量快照复制到同一个 Amazon Web Services 账户内的相同目标区域。有关增量快照的更多信息,请参阅增量快照复制的注意事项

已加密和未加密快照均支持跨 Amazon Web Services 区域的增量快照复制。

在跨 Amazon Web Services 区域复制快照时,如果满足以下条件,则副本为增量副本:

  • 此前已将快照复制到目标区域。

  • 最新的快照副本仍位于目标区域中。

  • 目标区域中的所有快照副本均未加密,或者是使用同一 KMS 密钥加密的。

选项组的注意事项

数据库选项组特定于在其中创建它们的 Amazon Web Services 区域,您不能将一个 Amazon Web Services 区域中的选项组用于另一个 Amazon Web Services 区域。

对于 Oracle 数据库,您可以使用 Amazon CLI 或 RDS API 从与您的 Amazon Web Services 账户共享的快照中复制自定义数据库选项组。您只能在同一 Amazon Web Services 区域内复制选项组。如果选项组已复制到目标账户,并且在复制后未对其进行任何更改,则不会复制该选项组。如果之前已复制过源选项组,但在复制后发生了变化,则 RDS 会将新版本复制到目标账户。不会复制原定设置选项组。

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

在某些情况下,您可以复制快照而不是为快照指定新的选项组。在这些情况下,还原快照时,数据库实例将获得默认选项组。要为新的数据库实例提供与原始数据库实例相同的选项,请执行以下操作:

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

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

参数组的注意事项

跨区域复制快照时,复制不包括由原始数据库实例使用的参数组。当您还原快照来创建新数据库实例时,该数据库实例会获得创建该实例的 Amazon Web Services 区域的默认参数组。要为新的数据库实例提供与源数据库实例相同的参数组,请执行以下操作:

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

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