AWS-CLI:在从快照创建的现有集群中创建 RDS Aurora 数据库实例

Posted

技术标签:

【中文标题】AWS-CLI:在从快照创建的现有集群中创建 RDS Aurora 数据库实例【英文标题】:AWS-CLI : Create RDS Aurora DB instance into existing cluster created from snapshot 【发布时间】:2017-12-30 06:30:39 【问题描述】:

根据我的研究,我发现使用 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

哪个输出

调用 CreateDBInstance 操作时发生错误 (InvalidParameterCombination):请求的数据库实例将成为数据库集群的成员。为数据库集群设置数据库名称。

有人能告诉我它为什么讨厌我吗?

【问题讨论】:

不要传递--db-name,因为这是在集群上设置的,而不是在实例上。 “请求的数据库实例将是数据库集群的成员。[您只能]为数据库集群[而不是实例]设置[该]数据库名称。” 谢谢!稍后在集群上没有 --db-name 的情况下再试一次 你是对的!我对错误消息的理解很差。非常感谢您的帮助!!! 【参考方案1】:

对于面临相同问题的任何人,当您将新实例添加到极光集群时,某些选项不可用。

这个错误一开始很棘手,但很容易理解。最后一部分,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

【讨论】:

以上是关于AWS-CLI:在从快照创建的现有集群中创建 RDS Aurora 数据库实例的主要内容,如果未能解决你的问题,请参考以下文章

在python中创建日期时间索引

如何在大查询中在现有表上创建分区和集群?

如何在 Kivy 或 KivyMD 中创建类似快照的按钮?

在从作业中创建 pos 时,由于并发更新而无法序列化访问

在现有订阅和资源组的现有函数应用中创建 Azure 函数

python - 在批量python中创建资源时如何跳过现有对象实例