教程:使用 AWS CLI 从数据库集群快照中还原数据库集群
在本教程中,您使用 AWS CLI 从数据库集群快照中还原数据库集群。使用 AWS CLI 从快照还原恢复数据库集群有两个步骤:
还原数据库集群
您使用 restore-db-cluster-from-snapshot
命令。以下选项为必填:
-
--db-cluster-identifier
– 已还原的数据库集群的名称。 -
--snapshot-identifier
– 要从中进行还原的数据库快照的名称。 -
--engine
– 已还原的数据库集群的数据库引擎。它必须与源数据库集群的数据库引擎兼容。选项如下:
-
aurora-mysql
– 与 Aurora MySQL 5.7 和 8.0 兼容。 -
aurora-postgresql
– 与 Aurora PostgreSQL 兼容。
在此示例中,我们使用的是
aurora-mysql
。 -
-
--engine-version
– 已还原的数据库集群的版本。在此示例中,我们使用与 MySQL 8.0 兼容的版本。
以下示例从名为 my-57-cluster-snapshot
的数据库集群快照中还原与 Aurora MySQL 8.0 兼容的名为 my-new-80-cluster
的数据库集群。
还原数据库集群
-
使用以下命令之一。
对于 Linux、macOS 或 Unix:
aws rds restore-db-cluster-from-snapshot \ --db-cluster-identifier
my-new-80-cluster
\ --snapshot-identifiermy-57-cluster-snapshot
\ --engine aurora-mysql \ --engine-version8.0.mysql_aurora.3.02.0
对于 Windows:
aws rds restore-db-cluster-from-snapshot ^ --db-cluster-identifier
my-new-80-cluster
^ --snapshot-identifiermy-57-cluster-snapshot
^ --engine aurora-mysql ^ --engine-version8.0.mysql_aurora.3.02.0
输出与以下内容类似。
{ "DBCluster": { "AllocatedStorage": 1, "AvailabilityZones": [ "eu-central-1b", "eu-central-1c", "eu-central-1a" ], "BackupRetentionPeriod": 14, "DatabaseName": "", "DBClusterIdentifier": "my-new-80-cluster", "DBClusterParameterGroup": "default.aurora-mysql8.0", "DBSubnetGroup": "default", "Status": "creating", "Endpoint": "my-new-80-cluster.cluster-############.eu-central-1.rds.amazonaws.com", "ReaderEndpoint": "my-new-80-cluster.cluster-ro-############.eu-central-1.rds.amazonaws.com", "MultiAZ": false, "Engine": "aurora-mysql", "EngineVersion": "8.0.mysql_aurora.3.02.0", "Port": 3306, "MasterUsername": "admin", "PreferredBackupWindow": "01:55-02:25", "PreferredMaintenanceWindow": "thu:21:14-thu:21:44", "ReadReplicaIdentifiers": [], "DBClusterMembers": [], "VpcSecurityGroups": [ { "VpcSecurityGroupId": "sg-########", "Status": "active" } ], "HostedZoneId": "Z1RLNU0EXAMPLE", "StorageEncrypted": true, "KmsKeyId": "arn:aws:kms:eu-central-1:123456789012:key/#######-5ccc-49cc-8aaa-############", "DbClusterResourceId": "cluster-ZZ12345678ITSJUSTANEXAMPLE", "DBClusterArn": "arn:aws:rds:eu-central-1:123456789012:cluster:my-new-80-cluster", "AssociatedRoles": [], "IAMDatabaseAuthenticationEnabled": false, "ClusterCreateTime": "2022-07-05T20:45:42.171000+00:00", "EngineMode": "provisioned", "DeletionProtection": false, "HttpEndpointEnabled": false, "CopyTagsToSnapshot": false, "CrossAccountClone": false, "DomainMemberships": [], "TagList": [] } }
创建主(写入器)数据库实例
要创建主(写入器)数据库实例,请使用 create-db-instance
命令。以下选项为必填:
-
--db-cluster-identifier
– 已还原的数据库集群的名称。 -
--db-instance-identifier
– 主数据库实例的名称。 -
--db-instance-class
– 主数据库实例类的实例名称。在此示例中,我们使用的是db.t3.medium
。注意
建议仅将 T 数据库实例类用于开发和测试服务器,或其他非生产服务器。有关 T 实例类的更多详细信息,请参阅数据库实例类类型。
-
--engine
–主数据库实例的数据库引擎。它必须与已还原的数据库集群使用的数据库引擎相同。选项如下:
-
aurora-mysql
– 与 Aurora MySQL 5.7 和 8.0 兼容。 -
aurora-postgresql
– 与 Aurora PostgreSQL 兼容。
在此示例中,我们使用的是
aurora-mysql
。 -
以下示例在已还原的与 Aurora MySQL 8.0 兼容且名为 my-new-80-cluster
的数据库集群中创建一个名为 my-new-80-cluster-instance
的主(写入器)数据库实例。
创建主数据库实例
-
使用以下命令之一。
对于 Linux、macOS 或 Unix:
aws rds create-db-instance \ --db-cluster-identifier my-new-80-cluster \ --db-instance-identifier
my-new-80-cluster-instance
\ --db-instance-classdb.t3.medium
\ --engine aurora-mysql对于 Windows:
aws rds create-db-instance ^ --db-cluster-identifier my-new-80-cluster ^ --db-instance-identifier
my-new-80-cluster-instance
^ --db-instance-classdb.t3.medium
^ --engine aurora-mysql
输出与以下内容类似。
{ "DBInstance": { "DBInstanceIdentifier": "my-new-80-cluster-instance", "DBInstanceClass": "db.t3.medium", "Engine": "aurora-mysql", "DBInstanceStatus": "creating", "MasterUsername": "admin", "AllocatedStorage": 1, "PreferredBackupWindow": "01:55-02:25", "BackupRetentionPeriod": 14, "DBSecurityGroups": [], "VpcSecurityGroups": [ { "VpcSecurityGroupId": "sg-########", "Status": "active" } ], "DBParameterGroups": [ { "DBParameterGroupName": "default.aurora-mysql8.0", "ParameterApplyStatus": "in-sync" } ], "DBSubnetGroup": { "DBSubnetGroupName": "default", "DBSubnetGroupDescription": "default", "VpcId": "vpc-2305ca49", "SubnetGroupStatus": "Complete", "Subnets": [ { "SubnetIdentifier": "subnet-########", "SubnetAvailabilityZone": { "Name": "eu-central-1a" }, "SubnetOutpost": {}, "SubnetStatus": "Active" }, { "SubnetIdentifier": "subnet-########", "SubnetAvailabilityZone": { "Name": "eu-central-1b" }, "SubnetOutpost": {}, "SubnetStatus": "Active" }, { "SubnetIdentifier": "subnet-########", "SubnetAvailabilityZone": { "Name": "eu-central-1c" }, "SubnetOutpost": {}, "SubnetStatus": "Active" } ] }, "PreferredMaintenanceWindow": "sat:02:41-sat:03:11", "PendingModifiedValues": {}, "MultiAZ": false, "EngineVersion": "8.0.mysql_aurora.3.02.0", "AutoMinorVersionUpgrade": true, "ReadReplicaDBInstanceIdentifiers": [], "LicenseModel": "general-public-license", "OptionGroupMemberships": [ { "OptionGroupName": "default:aurora-mysql-8-0", "Status": "in-sync" } ], "PubliclyAccessible": false, "StorageType": "aurora", "DbInstancePort": 0, "DBClusterIdentifier": "my-new-80-cluster", "StorageEncrypted": true, "KmsKeyId": "arn:aws:kms:eu-central-1:534026745191:key/#######-5ccc-49cc-8aaa-############", "DbiResourceId": "db-5C6UT5PU0YETANOTHEREXAMPLE", "CACertificateIdentifier": "rds-ca-2019", "DomainMemberships": [], "CopyTagsToSnapshot": false, "MonitoringInterval": 0, "PromotionTier": 1, "DBInstanceArn": "arn:aws:rds:eu-central-1:123456789012:db:my-new-80-cluster-instance", "IAMDatabaseAuthenticationEnabled": false, "PerformanceInsightsEnabled": false, "DeletionProtection": false, "AssociatedRoles": [], "TagList": [] } }