根据我的研究,我发现使用CLI创建一个Aurora集群,其中包含来自现有快照的实例的唯一方法是遵循以下步骤:
1)从现有群集创建快照
2)从快照启动集群
3)将实例添加到集群
因此,我使用最新AWS CLI版本运行的命令就是这些(以及输出):
aws rds create-db-cluster-snapshot \
--db-cluster-snapshot-identifier analytics-replica-db \
--db-cluster-identifier prodcluster
- >
{
"DBClusterSnapshot": {
"Engine": "aurora",
"SnapshotCreateTime": "2017-07-24T15:08:12.836Z",
"VpcId": "vpc-ID",
"DBClusterIdentifier": "cluster_name",
"DBClusterSnapshotArn": "arn:aws:rds:eu-west-1:aws_account:cluster-snapshot:analytics-replica-db",
"MasterUsername": "db_username",
"LicenseModel": "aurora",
"Status": "creating",
"PercentProgress": 0,
"DBClusterSnapshotIdentifier": "analytics-replica-db",
"IAMDatabaseAuthenticationEnabled": false,
"ClusterCreateTime": "2016-04-14T11:10:02.413Z",
"StorageEncrypted": false,
"AllocatedStorage": 1,
"EngineVersion": "5.6.10a",
"SnapshotType": "manual",
"AvailabilityZones": [
"eu-west-1a",
"eu-west-1b",
"eu-west-1c"
],
"Port": 0
}
}
之后,我使用以下方法创建集群:
aws rds restore-db-cluster-from-snapshot \
--db-cluster-identifier analytics-replica-cluster \
--snapshot-identifier analytics-replica-db \
--engine aurora \
--port 3306 \
--db-subnet-group-name this_is_a_subnet_group \
--database-name this_is_the_database_name_equal_to_original_cluster_db \
--vpc-security-group-ids this_is_a_random_security_group \
--no-enable-iam-database-authentication
输出:
{
"DBCluster": {
"MasterUsername": "this_is_the_same_username_as_the_one_on_original_db",
"ReaderEndpoint": "this_is_the_new_RDS_endpoint_of_cluster",
"ReadReplicaIdentifiers": [],
"VpcSecurityGroups": [
{
"Status": "active",
"VpcSecurityGroupId": "this_is_that_security_group"
}
],
"HostedZoneId": "Z29XKXDKYMONMX",
"Status": "creating",
"MultiAZ": false,
"PreferredBackupWindow": "23:50-00:20",
"DBSubnetGroup": "this_is_a_subnet_group",
"AllocatedStorage": 1,
"BackupRetentionPeriod": 10,
"PreferredMaintenanceWindow": "fri:03:34-fri:04:04",
"Engine": "aurora",
"Endpoint": "this_is_the_new_RDS_endpoint_of_reader",
"AssociatedRoles": [],
"IAMDatabaseAuthenticationEnabled": false,
"ClusterCreateTime": "2017-07-24T15:11:07.003Z",
"EngineVersion": "5.6.10a",
"DBClusterIdentifier": "analytics-replica-cluster",
"DbClusterResourceId": "cluster-resource_id",
"DBClusterMembers": [],
"DBClusterArn": "arn:aws:rds:eu-west-1:aws_account:cluster:analytics-replica-cluster",
"StorageEncrypted": false,
"DatabaseName": "this_is_the_database_name_equal_to_original_cluster_db",
"DBClusterParameterGroup": "default.aurora5.6",
"AvailabilityZones": [
"eu-west-1a",
"eu-west-1b",
"eu-west-1c"
],
"Port": 3306
}
}
现在,我想做的只是运行这个 - >
aws rds create-db-instance \
--db-name this_is_the_database_name_equal_to_original_cluster_db \
--db-instance-identifier analytics-replica-instance \
--db-instance-class "db.r3.large" \
--publicly-accessible \
--no-enable-iam-database-authentication \
--db-cluster-identifier analytics-replica-cluster \
--engine aurora
我得到了这个 - >
An error occurred (InvalidParameterCombination) when calling the CreateDBInstance operation: The requested DB Instance will be a member of a DB Cluster. Set database name for the DB Cluster.
有人可以告诉我为什么它恨我?
答案 0 :(得分:0)
对于面临相同问题的任何人,将新实例添加到aurora群集时,某些选项不可用。
该错误在开始时比较棘手,但是很容易理解。最后一部分Set database name for the DB Cluster.
表示真正的问题,在大多数情况下,您需要删除该属性。
另一个示例An error occurred (InvalidParameterCombination) when calling the CreateDBInstance operation: The requested DB Instance will be a member of a DB Cluster. Set backup retention period for the DB Cluster.
,您需要删除--backup-retention-period