本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
从集群快照还原
Amazon DocumentDB(与 MongoDB 兼容)能够创建存储卷的集群快照。可通过从集群快照还原来创建新集群。在还原集群时,您需提供用于还原的集群快照的名称以及还原创建的新集群的名称。您无法从快照还原到现有集群,因为还原时将新建一个新集群。
当从集群快照还原集群时:
-
此操作仅还原集群,而不还原集群的实例。您必须调用
create-db-instance
操作为还原的集群创建实例,并在--db-cluster-identifier
中指定还原的集群的标识符。您只能在集群可用 后才能创建实例。 -
您无法将加密快照还原到未加密集群。但是,您可以通过指定 Amazon KMS 密钥将未加密快照还原到加密集群。
-
要从加密快照还原集群,您必须有权访问 Amazon KMS 密钥。
您无法将 3.6 集群还原到 4.0 集群,但可以从一个群集版本迁移到另一个群集版本。有关更多信息,请转至 迁Amazon DocumentDB。
使用 Amazon Web Services Management Console 从集群快照进行还原
以下过程说明如何使用 Amazon DocumentDB 管理控制台从集群快照还原 Amazon DocumentDB 集群。
-
登录到Amazon Web Services Management Console,然后在以下位置打开 Amazon DocumentDB 控制台https://console.aws.amazon.com/docdb
. -
在导航窗格中,选择快照,然后选择要用于还原集群的快照左侧的按钮。
提示 如果您在屏幕左侧没有看到导航窗格,请在页面左上角选择菜单图标 (
)。
-
在 Actions (操作) 菜单上,选择 Restore (还原)。
-
在还原快照页面上,填写配置部分。
-
集群标识符— 新集群的名称。您可以接受 Amazon DocumentDB 提供的名称或键入您喜欢的名称。Amazon DocumentDB 提供的名称格式为
docdb-
加上 UTC 时间戳;例如,docdb-yyyy-mm-dd-hh-mm-ss
. -
实例类— 新集群的实例类。您可以接受默认实例类或从下拉列表中选择实例类。
-
实例的数量— 您希望使用此集群创建的实例的数量。您可以接受默认 3 个实例(1 个读/写主实例和 2 个只读副本),或从下拉列表中选择实例数。
-
-
如果您对集群配置满意,请选择 Restore cluster (还原集群) 并等待集群还原。
-
如果您更希望更改某些配置(如指定非默认 Amazon VPC 或安全组),请选择显示高级设置从页面左下角开始,然后继续执行以下步骤。
-
完成 Network settings (网络设置) 部分。
-
Virtual Private Cloud (VPC)— 接受当前 VPC,或者从下拉列表中选择一个 VPC。
-
子网组— 接受
default
子网组,或者从下拉列表中选择一个。 -
VPC 安全组— 接受
default (VPC)
安全组,或者从列表中选择一个。
-
-
完成集群选项部分。
-
数据库端口— 接受默认端口,
27017
或者使用向上或向下箭头来设置要用于应用程序连接的端口。
-
-
完成加密部分。
-
静态加密— 如果您的快照已加密,那么这些选项对您不可用。如果它未加密,您可以选择以下选项之一:
-
要加密所有集群的数据,请选择启用静态加密。如果您选择此选项,则必须指定一个主密钥。
-
要让集群的数据不加密,请选择禁用静态加密。如果您选择此选项,您便已完成加密部分。
-
-
主密钥— 从下拉列表中选择以下选项之一:
-
(默认)aws/rds— 账号和Amazon KMS此选项的后面列出密钥 ID。
-
客户管理的密钥— 此选项仅当您在中创建了 IAM 加密密钥后可用。Amazon Identity and Access Management(IAM) 控制台。您可以选择该密钥来加密集群。
-
输入键 ARN— 在进行筛选框中,输入您的 Amazon 资源名称 (ARN)Amazon KMS键。ARN 的格式为
arn:aws:kms:<region>:<accountID>:key/<key-id>
。
-
-
-
完成 Log exports (日志导出) 部分。
-
选择要发布到 CloudWatch 的日志类型— 选择下列项之一:
-
Enabled (已启用)— 使您的集群能够将 DDL 日志记录导出到 Amazon CloudWatch Logs。
-
Disabled— 阻止您的集群将 DDL 日志导出到 Amazon CloudWatch Logs。Disabled (已禁用) 为默认值。
-
-
IAM 角色— 从列表中,选择RDS 服务相关角色.
-
-
完成 Tags (标签) 部分。
-
添加标签— 在密钥框中,输入集群标签的名称。在 Value (值) 框中,可以选择输入标签值。标签用于Amazon Identity and Access Management(IAM) 策略来管理对 Amazon DocumentDB 资源的访问并控制可将什么操作应用于资源。
-
-
完成 Deletion protection (删除保护) 部分。
-
启用删除保护— 防止意外删除集群。启用该选项后,您将无法删除集群。
-
-
-
选择 Restore cluster (还原集群)。
使用 Amazon CLI 从集群快照进行还原
要使用 Amazon CLI 从快照还原集群,请使用带以下参数的 restore-db-cluster-from-snapshot
操作。有关更多信息,请参阅RestoreDBClusterFromSnapshot。
-
--db-cluster-identifier
– 必需。操作创建的集群的名称。在执行此操作之前,不能存在此名称的集群。集群命名约束:
-
长度为 [1-63] 个字母、数字或连字符。
-
第一个字符必须是字母。
-
不能以连字符结束或包含两个连续连字符。
-
对于每个 Amazon DocumentDB 的每个 Amazon Neptune 和 Amazon DocumentDB 的所有集群(必须是唯一的)Amazon Web Services 账户每区域数。
-
-
--snapshot-identifier
– 必需。用于自其还原的快照的名称。具有此名称的快照必须存在并且处于可用 状态。 -
--engine
– 必需。必须是docdb
。 -
--kms-key-id
— 可选。在还原已加密快照或在从未加密快照还原的同时加密集群时,要使用的 Amazon KMS 密钥标识符的 ARN。如果提供 Amazon KMS 密钥 ID,则会导致使用 Amazon KMS 密钥加密还原的集群(无论快照是否加密)。--kms-key-id
的格式为arn:aws:kms:<region>:<accountID>:key/<key-id>
。如果不为--kms-key-id
参数指定值,则会出现以下情况:-
如果
--snapshot-identifier
中的快照已加密,将使用用于加密快照的同一 Amazon KMS 密钥加密还原的集群。 -
如果
--snapshot-identifier
中的快照未加密,还原的集群也不会加密。
-
对于 Linux、macOS 或 Unix:
aws docdb restore-db-cluster-from-snapshot \ --db-cluster-identifier sample-cluster-restore \ --snapshot-identifier sample-cluster-snapshot \ --engine docdb \ --kms-key-id arn:aws:kms:us-east-1:123456789012:key/SAMPLE-KMS-KEY-ID
对于 Windows:
aws docdb restore-db-cluster-from-snapshot ^ --db-cluster-identifier sample-cluster-restore ^ --snapshot-identifier sample-cluster-snapshot ^ --engine docdb ^ --kms-key-id arn:aws:kms:us-east-1:123456789012:key/SAMPLE-KMS-KEY-ID
此操作的输出将类似于下文。
{
"DBCluster": {
"AvailabilityZones": [
"us-east-1c",
"us-east-1b",
"us-east-1a"
],
"BackupRetentionPeriod": 1,
"DBClusterIdentifier": "sample-cluster-restore",
"DBClusterParameterGroup": "default.docdb4.0",
"DBSubnetGroup": "default",
"Status": "creating",
"Endpoint": "sample-cluster-restore.cluster-node.us-east-1.docdb.amazonaws.com",
"ReaderEndpoint": "sample-cluster-restore.cluster-node.us-east-1.docdb.amazonaws.com",
"MultiAZ": false,
"Engine": "docdb",
"EngineVersion": "4.0.0",
"Port": 27017,
"MasterUsername": "<master-user>",
"PreferredBackupWindow": "02:00-02:30",
"PreferredMaintenanceWindow": "tue:09:50-tue:10:20",
"DBClusterMembers": [],
"VpcSecurityGroups": [
{
"VpcSecurityGroupId": "sg-abcdefgh",
"Status": "active"
}
],
"HostedZoneId": "ABCDEFGHIJKLM",
"StorageEncrypted": true,
"KmsKeyId": "arn:aws:kms:us-east-1:<accountID>:key/<sample-key-id>",
"DbClusterResourceId": "cluster-ABCDEFGHIJKLMNOPQRSTUVWXYZ",
"DBClusterArn": "arn:aws:rds:us-east-1:<accountID>:cluster:sample-cluster-restore",
"AssociatedRoles": [],
"ClusterCreateTime": "2020-04-01T01:43:40.871Z",
"DeletionProtection": true
}
}
在集群状态为可用 后,请为集群创建至少一个实例。
对于 Linux、macOS 或 Unix:
aws docdb create-db-instance \ --db-cluster-identifier sample-cluster-restore \ --db-instance-identifier sample-cluster-restore-instance \ --availability-zone us-east-1b \ --promotion-tier 2 \ --db-instance-class db.r5.large \ --engine docdb
对于 Windows:
aws docdb create-db-instance ^ --db-cluster-identifier sample-cluster-restore ^ --db-instance-identifier sample-cluster-restore-instance ^ --availability-zone us-east-1b ^ --promotion-tier 2 ^ --db-instance-class db.r5.large ^ --engine docdb
此操作的输出将类似于下文。
{
"DBInstance": {
"DBInstanceIdentifier": "sample-cluster-restore-instance",
"DBInstanceClass": "db.r5.large",
"Engine": "docdb",
"DBInstanceStatus": "creating",
"PreferredBackupWindow": "02:00-02:30",
"BackupRetentionPeriod": 1,
"VpcSecurityGroups": [
{
"VpcSecurityGroupId": "sg-abcdefgh",
"Status": "active"
}
],
"AvailabilityZone": "us-west-2b",
"DBSubnetGroup": {
"DBSubnetGroupName": "default",
"DBSubnetGroupDescription": "default",
"VpcId": "vpc-6242c31a",
"SubnetGroupStatus": "Complete",
"Subnets": [
{
"SubnetIdentifier": "subnet-abcdefgh",
"SubnetAvailabilityZone": {
"Name": "us-west-2a"
},
"SubnetStatus": "Active"
},
{
...
}
]
},
"PreferredMaintenanceWindow": "fri:09:43-fri:10:13",
"PendingModifiedValues": {},
"EngineVersion": "4.0.0",
"AutoMinorVersionUpgrade": true,
"PubliclyAccessible": false,
"DBClusterIdentifier": "sample-cluster-restore",
"StorageEncrypted": true,
"KmsKeyId": "arn:aws:kms:us-east-1:<accountID>:key/<sample-key-id>",
"DbiResourceId": "db-ABCDEFGHIJKLMNOPQRSTUVWXYZ",
"CACertificateIdentifier": "rds-ca-2019",
"PromotionTier": 2,
"DBInstanceArn": "arn:aws:rds:us-east-1:<accountID>:db:sample-cluster-restore-instance"
}
}