Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊 Aurora DSQL 恢复
概览
要恢复 Amazon Aurora DSQL 单区域集群,请使用 Amazon Backup 控制台或 CLI 选择要还原的恢复点(备份)。要恢复 Aurora DSQL 多区域集群,请同时使用和 Amazon Backup Aurora DSQL CLI。
包括名称、集群加密和删除保护,然后启动对新创建的集群的还原。
恢复 Aurora DSQL 单区域集群
您可以使用 Amazon Backup 控制台或 Amazon CLI,将 Aurora DSQL 集群还原到单个区域。
- Console
-
在 https://console.aws.amazon.com/backup 上打开 Amazon Backup 控制台。
-
选择要还原的恢复点旁边的 “恢复” 按钮。
-
为要将恢复点恢复到的新集群配置设置。
-
默认情况下,AMK(Amazon 托管密钥)将用于加密恢复的数据。您也可以指定其他密钥。
-
默认情况下,Aurora 集群的@@ 删除保护处于启用状态,但取消选中该复选框可关闭该选项。
-
检查设置;如果设置令人满意,请选择 “恢复备份” 按钮。
Amazon Backup 将创建一个新的 Aurora DSQL 集群。
- Amazon CLI
-
单一区域恢复
-
使用 CLI 命令aws backup start-restore-job
从指定的恢复点恢复 Aurora 集群。
-
包括还原任务所需的元数据。
{
"recoveryPointArn": "arn",
"tags": tags
,
"metadata": {
"regionalConfig": [ // optional; if omitted, defaults are used
{
"deletionProtectionEnabled": true, // boolean
"primaryEncrpytkmsKeyIdionKey": "my_key"
}
]
}
}
恢复 Aurora DSQL 多区域集群
您可以将 Aurora DSQL 集群的备份还原到多个区域,方法是先使用 Amazon Backup CLI 恢复相同的恢复点,然后使用 Aurora DSQL CLI update-cluster
链接新创建的集群。
如果您的备份计划包含自动为指定区域之一创建跨区域副本的规则,则创建的副本可用于此多区域还原。
首先,选择存储在美国东部(弗吉尼亚北部)、美国东部(俄亥俄州)或美国西部(俄勒冈)的备份库中的恢复点 Amazon Web Services 区域。然后,将恢复点复制到其他列出的区域之一(不支持的区域将导致恢复操作失败)。接下来,为每个集群启动还原作业。最后,使用update-cluster
命令链接新创建的 DSQL 集群。
各个步骤如下所示:
- Console
-
目前无法通过 Amazon Backup 控制台进行多区域恢复。您可以按照备选选项卡中的步骤 Amazon CLI 通过创建多区域还原。
- Amazon CLI
-
多区域恢复是通过使用 CL Amazon Backup I 命令启动两个恢复任务来实现的,每个任务位于不同的区域。然后,在开始这些任务后的 24 小时内,使用 Aurora DSQL CLI 来链接在还原任务中创建的新集群。
第一个恢复点和该恢复点的副本都必须位于以下区域之一。如果集群位于未列出的区域,则操作将失败。
-
美国东部(弗吉尼亚州北部)
-
美国东部(俄亥俄州)
-
美国西部(俄勒冈州)
通过以下方式进行多区域恢复 Amazon CLI
-
确保您计划恢复的恢复点已复制到至少一个其他区域。
如果您在两个区域中没有匹配的恢复点,请参阅跨创建备份副本 Amazon Web Services 区域和 StartCopyJob
,了解如何创建恢复点(备份)的跨区域副本(备份)。
-
使用 CLI 命令aws
backup start-restore-job
在第一个区域创建还原任务,从指定的恢复点恢复 Aurora 集群。
包括还原任务所需的元数据。
{
"recoveryPointArn": "arn",
"tags": tags
,
"metadata": {
"regionalConfig": [
{
"deletionProtectionEnabled": true, // boolean
"primaryEncrpytkmsKeyIdionKey": "my_key"
}
]
}
}
以下是来源区域为美国东部(弗吉尼亚北部)的包含属性的示例:
{
// sourceRegion: us-east-1
"recoveryPointArn": "arn",
"metadata": {
"witnessRegion": "us-east-2",
"regionalConfig": [
{
"region": "us-east-1",
"deletionProtectionEnabled": true,
"kmsKeyId": "my_key"
}
]
}
// If additional metadata is included, Amazon Backup will return an exception
}
-
通过执行接下来的两个子步骤,您可以在第二个区域中识别出用于此操作的相同恢复点。
-
在第一个区域中,调用 CLI 命令aws backup
describe-recovery-point
。
在输出中,保存 CreationTime、 BackupPlan ID 和 resourceArn 的信息。
-
在第二个区域中,使用aws backup
list-recovery-point-by-backup-vault
,包括你从前一个命令中保存的元数据(CreationTime、 BackupPlan ID、resourceArn)。
按这些属性进行筛选,找到确切的恢复点,即第一个区域的备份副本。此操作所需的两个完全相同的恢复点将具有相同 CreationTime的 BackupPlan ID 和 resourceArn。
你可以 Amazon CLI 使用以下命令设置/切换 Amazon 区域:aws
configure set
aws configure set region region_name
-
使用 CLI 命令在第二个区域创建还原任务aws
backup start-restore-job
。
验证是否满足以下条件:
-
在发送第一个start-restore-job
命令后的 24 小时内,使用两次命令将 Aurora DSQL 集群更新为两个还原任务,每个区域各使用一aws dsql update-cluster
次。这将链接两个新创建的集群,以确保它们使用正确的集群 ARN 而不是恢复点 ARN。
-
aws configure set region
region1_name
-
aws dsql update-cluster
-
aws configure set region
region2_name
-
aws dsql update-cluster
恢复点位于美国西部(俄勒冈)地区的集群更新示例:
aws dsql update-cluster
--multi-region-properties
Clusters=[
arn:aws:dsql:us-east-1:111122223333:cluster/abc,
arn:aws:dsql:us-east-2:111122223333:cluster/def,
],
WitnessRegion=us-west-2
解决 Aurora DSQL 还原问题
如果您在备份或还原过程中遇到任何问题,可以在 Amazon Backup 控制台中或使用查看备份和还原任务的状态 Amazon CLI。此外,您可以查看 Amazon CloudTrail 日志,了解与您的 Amazon Backup 操作相关的任何相关错误消息或事件。
Aurora DSQL 恢复常见问题解答
-
“我能否使用 Amazon Backup Aurora DSQL 控制台中的 Aurora DSQL?”
不可以,您只能通过 Amazon Backup 控制台、SDK 或 CLI 执行备份和恢复以及管理备份。
-
“Aurora DSQL 可用的备份粒度是多少? 我能否备份集群中的特定表或数据库”
您只能备份和恢复整个 Aurora DSQL 集群。
-
“Aurora DSQL 的备份是完整备份还是增量备份?”
Aurora DSQL 集群的恢复点(备份)是您的集群的完整备份。
-
“我能否为我的 Aurora DSQL 多区域集群创建备份?”
是的,您可以使用与在单个区域中创建单个集群的备份相同的步骤为多区域集群中的每个集群创建备份。 Amazon Backup 建议在计划从中恢复多区域群集的另一个区域创建备份的跨区域副本作为最佳实践,因为多区域还原需要同一恢复点的两个相同副本 [此操作中相同意味着恢复点具有相同的资源名称和创建时间]。
-
“恢复后的集群会覆盖我现有的集群吗?”
不是。 恢复 Aurora DSQL 数据时, Amazon Backup 会根据您的快照创建一个新集群;恢复的集群不会覆盖源集群。