以下 AWS CLI 配置示例显示了使用运行 Amazon DocumentDB 5.0.0 的 Amazon DocumentDB 预配置集群的迁移过程,该集群不需要升级引擎版本即可开始使用 DocumentDB 无服务器。集群名为 sample,从名为 sample、sample2 和 sample3 的三个预置实例开始。在此示例中,将这三个实例替换为三个无服务器实例。集群名为 sample-cluster,从名为 sample-provisioned-instance-1 和 sample-provisioned-instance-2 的两个预置实例(一个写入器实例和一个读取器实例)开始。
在以下示例中,user input placeholder使用您自己的信息或配置参数替换每个示例。
使用 aws docdb describe-db-clusters 操作确定集群的状态。以下代码将查找集群 sample-cluster 的状态并以表格形式输出结果:
aws docdb describe-db-clusters \
--db-cluster-identifier sample-cluster \
--query 'DBClusters[*].DBClusterMembers' \
--output table
--------------------------------------------------------------------------------------------------------
| DescribeDBClusters |
+--------------------------------+---------------------------------+------------------+----------------+
| DBClusterParameterGroupStatus | DBInstanceIdentifier | IsClusterWriter | PromotionTier |
+--------------------------------+---------------------------------+------------------+----------------+
| in-sync | sample-provisioned-instance-2 | False | 1 |
| in-sync | sample-provisioned-instance-1 | True | 1 |
+--------------------------------+---------------------------------+------------------+----------------+
添加集群的扩缩配置:
aws docdb modify-db-cluster \
--db-cluster-identifier sample-cluster \
--serverless-v2-scaling-configuration MinCapacity=0.5,MaxCapacity=16
添加无服务器实例。在此示例中,添加了名为 sample-serverless-instance-1 和 sample-serverless-instance-2 的新无服务器实例:
aws docdb create-db-instance \
--db-cluster-identifier sample-cluster \
--db-instance-identifier sample-serverless-instance-1 \
--db-instance-class db.serverless \
--engine docdb
aws docdb create-db-instance \
--db-cluster-identifier sample-cluster \
--db-instance-identifier sample-serverless-instance-2 \
--db-instance-class db.serverless \
--engine docdb
输入以下内容,等待无服务器实例可用后再继续:
aws docdb wait db-instance-available \
--db-instance-identifier sample-serverless-instance-1
aws docdb wait db-instance-available \
--db-instance-identifier sample-serverless-instance-2
执行失效转移以使新的 sample-serverless-instance-1 实例成为集群写入器。
aws docdb failover-db-cluster \
--db-cluster-identifier sample-cluster \
--target-db-instance-identifier sample-serverless-instance-1
故障转移需要几秒钟才能完成,之后 sample-serverless-instance -1 成为集群写入器。使用以下输入来验证这一点:
aws docdb describe-db-clusters \
--db-cluster-identifier sample-cluster \
--query 'DBClusters[*].DBClusterMembers' \
--output table
--------------------------------------------------------------------------------------------------------
| DescribeDBClusters |
+--------------------------------+---------------------------------+------------------+----------------+
| DBClusterParameterGroupStatus | DBInstanceIdentifier | IsClusterWriter | PromotionTier |
+--------------------------------+---------------------------------+------------------+----------------+
| in-sync | sample-provisioned-instance-2 | False | 1 |
| in-sync | sample-provisioned-instance-1 | False | 1 |
| in-sync | sample-serverless-instance-2 | False | 1 |
| in-sync | sample-serverless-instance-1 | True | 1 |
+--------------------------------+---------------------------------+------------------+----------------+
最后,删除原始的预置实例:
aws docdb delete-db-instance \
--db-instance-identifier sample-provisioned-instance-1
aws docdb delete-db-instance \
--db-instance-identifier sample-provisioned-instance-2