Amazon DocumentDB 集群管理 #
一、集群管理概述 #
1.1 管理内容 #
text
集群管理包括:
├── 实例管理
│ ├── 创建实例
│ ├── 修改实例
│ └── 删除实例
│
├── 参数管理
│ ├── 参数组配置
│ └── 参数修改
│
├── 扩缩容
│ ├── 纵向扩展
│ └── 横向扩展
│
└── 维护操作
├── 版本升级
└── 维护窗口
1.2 管理工具 #
text
管理工具:
├── AWS管理控制台
├── AWS CLI
├── AWS SDK
└── CloudFormation
二、实例管理 #
2.1 创建实例 #
bash
# 创建主实例
aws docdb create-db-instance \
--db-instance-identifier my-primary \
--db-instance-class db.r6g.large \
--engine docdb \
--db-cluster-identifier my-cluster
# 创建只读副本
aws docdb create-db-instance \
--db-instance-identifier my-replica-1 \
--db-instance-class db.r6g.large \
--engine docdb \
--db-cluster-identifier my-cluster
2.2 查看实例 #
bash
# 查看集群实例
aws docdb describe-db-instances \
--db-cluster-identifier my-cluster
# 查看特定实例
aws docdb describe-db-instances \
--db-instance-identifier my-primary
2.3 修改实例 #
bash
# 修改实例规格
aws docdb modify-db-instance \
--db-instance-identifier my-primary \
--db-instance-class db.r6g.xlarge \
--apply-immediately
# 修改实例配置
aws docdb modify-db-instance \
--db-instance-identifier my-primary \
--preferred-maintenance-window "sun:03:00-sun:04:00" \
--apply-immediately
2.4 删除实例 #
bash
# 删除实例
aws docdb delete-db-instance \
--db-instance-identifier my-replica-1
# 注意:不能删除集群中最后一个实例
2.5 故障转移优先级 #
bash
# 设置故障转移优先级
aws docdb modify-db-instance \
--db-instance-identifier my-replica-1 \
--promotion-tier 1 \
--apply-immediately
# 优先级范围:0-15,数字越小优先级越高
三、参数组管理 #
3.1 创建参数组 #
bash
# 创建参数组
aws docdb create-db-cluster-parameter-group \
--db-cluster-parameter-group-name custom-params \
--db-parameter-group-family docdb5.0 \
--description "Custom parameter group"
3.2 修改参数 #
bash
# 修改参数
aws docdb modify-db-cluster-parameter-group \
--db-cluster-parameter-group-name custom-params \
--parameters "ParameterName=audit_logs,ParameterValue=enabled,ApplyMethod=immediate"
3.3 常用参数 #
| 参数 | 说明 | 默认值 |
|---|---|---|
| tls | TLS加密 | enabled |
| audit_logs | 审计日志 | disabled |
| profiler | 性能分析 | disabled |
| slow_op_threshold_ms | 慢查询阈值 | 100 |
| max_connections | 最大连接数 | 自动计算 |
3.4 应用参数组 #
bash
# 应用参数组到集群
aws docdb modify-db-cluster \
--db-cluster-identifier my-cluster \
--db-cluster-parameter-group-name custom-params \
--apply-immediately
3.5 查看参数 #
bash
# 查看参数组
aws docdb describe-db-cluster-parameters \
--db-cluster-parameter-group-name custom-params
四、扩缩容 #
4.1 纵向扩展(实例规格) #
bash
# 扩展主实例
aws docdb modify-db-instance \
--db-instance-identifier my-primary \
--db-instance-class db.r6g.2xlarge \
--apply-immediately
# 扩展副本
aws docdb modify-db-instance \
--db-instance-identifier my-replica-1 \
--db-instance-class db.r6g.2xlarge \
--apply-immediately
4.2 横向扩展(添加副本) #
bash
# 添加只读副本
aws docdb create-db-instance \
--db-instance-identifier my-replica-2 \
--db-instance-class db.r6g.large \
--engine docdb \
--db-cluster-identifier my-cluster \
--availability-zone us-east-1b
4.3 缩容 #
bash
# 缩小实例规格
aws docdb modify-db-instance \
--db-instance-identifier my-primary \
--db-instance-class db.r6g.large \
--apply-immediately
# 删除副本
aws docdb delete-db-instance \
--db-instance-identifier my-replica-2
4.4 扩缩容注意事项 #
text
扩缩容注意:
├── 纵向扩展会有短暂中断
├── 横向扩展不影响可用性
├── 建议在维护窗口执行
├── 扩容前评估需求
└── 监控扩容后性能
五、版本升级 #
5.1 查看可用版本 #
bash
# 查看引擎版本
aws docdb describe-db-engine-versions \
--engine docdb
5.2 升级集群版本 #
bash
# 升级引擎版本
aws docdb modify-db-cluster \
--db-cluster-identifier my-cluster \
--engine-version 5.0.0 \
--apply-immediately
5.3 升级注意事项 #
text
升级注意:
├── 备份数据
├── 检查兼容性
├── 测试环境验证
├── 计划维护窗口
└── 准备回滚方案
六、维护窗口 #
6.1 设置维护窗口 #
bash
# 设置集群维护窗口
aws docdb modify-db-cluster \
--db-cluster-identifier my-cluster \
--preferred-maintenance-window "sun:03:00-sun:04:00" \
--apply-immediately
# 设置实例维护窗口
aws docdb modify-db-instance \
--db-instance-identifier my-primary \
--preferred-maintenance-window "sun:03:00-sun:04:00" \
--apply-immediately
6.2 维护操作 #
text
维护窗口操作:
├── 系统补丁
├── 版本升级
├── 配置更新
├── 安全更新
└── 性能优化
七、集群删除保护 #
7.1 启用删除保护 #
bash
# 启用删除保护
aws docdb modify-db-cluster \
--db-cluster-identifier my-cluster \
--deletion-protection \
--apply-immediately
7.2 删除集群 #
bash
# 删除集群(需先禁用保护)
aws docdb delete-db-cluster \
--db-cluster-identifier my-cluster \
--skip-final-snapshot
# 删除并创建最终快照
aws docdb delete-db-cluster \
--db-cluster-identifier my-cluster \
--final-db-snapshot-identifier my-cluster-final-snapshot
八、标签管理 #
8.1 添加标签 #
bash
# 添加标签
aws docdb add-tags-to-resource \
--resource-name arn:aws:docdb:us-east-1:123:cluster:my-cluster \
--tags Key=Environment,Value=Production Key=Owner,Value=TeamA
8.2 查看标签 #
bash
# 查看标签
aws docdb list-tags-for-resource \
--resource-name arn:aws:docdb:us-east-1:123:cluster:my-cluster
8.3 删除标签 #
bash
# 删除标签
aws docdb remove-tags-from-resource \
--resource-name arn:aws:docdb:us-east-1:123:cluster:my-cluster \
--tag-keys Environment Owner
九、CloudFormation管理 #
9.1 集群模板 #
yaml
AWSTemplateFormatVersion: '2010-09-09'
Description: DocumentDB Cluster
Resources:
DocDBCluster:
Type: AWS::DocDB::DBCluster
Properties:
DBClusterIdentifier: my-cluster
Engine: docdb
EngineVersion: 5.0.0
MasterUsername: admin
MasterUserPassword: !Ref MasterPassword
DBSubnetGroupName: !Ref DocDBSubnetGroup
VpcSecurityGroupIds:
- !Ref DocDBSecurityGroup
BackupRetentionPeriod: 7
PreferredMaintenanceWindow: sun:03:00-sun:04:00
DocDBPrimaryInstance:
Type: AWS::DocDB::DBInstance
Properties:
DBClusterIdentifier: !Ref DocDBCluster
DBInstanceClass: db.r6g.large
DBInstanceIdentifier: my-primary
DocDBReplicaInstance:
Type: AWS::DocDB::DBInstance
Properties:
DBClusterIdentifier: !Ref DocDBCluster
DBInstanceClass: db.r6g.large
DBInstanceIdentifier: my-replica-1
Outputs:
ClusterEndpoint:
Value: !GetAtt DocDBCluster.Endpoint
十、最佳实践 #
10.1 实例规划 #
text
实例规划建议:
├── 生产环境至少2个副本
├── 跨多个可用区部署
├── 根据负载选择规格
├── 预留扩展空间
└── 定期评估需求
10.2 参数配置 #
text
参数配置建议:
├── 启用TLS加密
├── 配置审计日志
├── 设置慢查询阈值
├── 合理设置连接数
└── 定期审查参数
10.3 维护建议 #
text
维护建议:
├── 设置合理的维护窗口
├── 启用删除保护
├── 使用标签管理资源
├── 定期备份
└── 监控集群健康
十一、常见问题 #
11.1 实例创建慢 #
text
原因:
├── 存储初始化
├── 参数组配置
├── 网络配置
└── 安全组配置
解决:
├── 耐心等待
├── 检查配置
└── 查看事件日志
11.2 扩容失败 #
text
原因:
├── 资源配额限制
├── 可用区资源不足
├── 网络问题
└── 权限问题
解决:
├── 检查配额
├── 更换可用区
├── 检查网络
└── 确认权限
十二、总结 #
12.1 管理要点 #
| 操作 | 命令 |
|---|---|
| 创建实例 | create-db-instance |
| 修改实例 | modify-db-instance |
| 删除实例 | delete-db-instance |
| 创建参数组 | create-db-cluster-parameter-group |
| 修改参数 | modify-db-cluster-parameter-group |
| 升级版本 | modify-db-cluster |
12.2 最佳实践总结 #
text
集群管理最佳实践:
├── 合理规划实例数量和规格
├── 配置适当的参数组
├── 设置维护窗口
├── 启用删除保护
├── 使用标签管理
└── 定期审查和优化
下一步,让我们学习备份与恢复!
最后更新:2026-03-27