备份与恢复 #
一、备份概述 #
1.1 备份类型 #
text
备份类型:
├── 自动备份
│ ├── 自动创建
│ ├── 保留期可配置
│ └── 支持时间点恢复
├── 手动快照
│ ├── 手动创建
│ ├── 永久保留
│ └── 可跨区域复制
└── 快照导出
└── 导出到S3
1.2 备份特点 #
text
Neptune备份特点:
├── 增量备份
├── 不影响性能
├── 自动存储复制
├── 加密存储
└── 跨可用区
二、自动备份 #
2.1 配置自动备份 #
bash
# 设置备份保留期
aws neptune modify-db-cluster \
--db-cluster-identifier my-neptune-cluster \
--backup-retention-period 7 \
--preferred-backup-window "03:00-04:00"
2.2 备份保留期 #
text
保留期选项:
├── 0:禁用自动备份
├── 1-35天:标准保留期
└── 建议:生产环境至少7天
2.3 时间点恢复 #
bash
# 恢复到指定时间点
aws neptune restore-db-cluster-to-point-in-time \
--source-db-cluster-identifier my-neptune-cluster \
--db-cluster-identifier my-neptune-restored \
--restore-to-time "2024-01-15T10:00:00Z"
# 恢复到最近时间
aws neptune restore-db-cluster-to-point-in-time \
--source-db-cluster-identifier my-neptune-cluster \
--db-cluster-identifier my-neptune-restored \
--use-latest-restorable-time
三、手动快照 #
3.1 创建快照 #
bash
# 创建集群快照
aws neptune create-db-cluster-snapshot \
--db-cluster-snapshot-identifier my-snapshot-2024-01-15 \
--db-cluster-identifier my-neptune-cluster
# 查看快照状态
aws neptune describe-db-cluster-snapshots \
--db-cluster-snapshot-identifier my-snapshot-2024-01-15
3.2 从快照恢复 #
bash
# 从快照恢复集群
aws neptune restore-db-cluster-from-snapshot \
--db-cluster-identifier my-neptune-restored \
--snapshot-identifier my-snapshot-2024-01-15 \
--db-subnet-group-name my-neptune-subnet
# 创建实例
aws neptune create-db-instance \
--db-instance-identifier my-neptune-restored-primary \
--db-instance-class db.r5.large \
--engine neptune \
--db-cluster-identifier my-neptune-restored
3.3 管理快照 #
bash
# 列出所有快照
aws neptune describe-db-cluster-snapshots
# 删除快照
aws neptune delete-db-cluster-snapshot \
--db-cluster-snapshot-identifier my-old-snapshot
# 复制快照
aws neptune copy-db-cluster-snapshot \
--source-db-cluster-snapshot-identifier arn:aws:rds:region:account:snapshot:source-snapshot \
--target-db-cluster-snapshot-identifier my-copied-snapshot
四、跨区域复制 #
4.1 复制快照到其他区域 #
bash
# 复制到其他区域
aws neptune copy-db-cluster-snapshot \
--source-db-cluster-snapshot-identifier arn:aws:rds:us-east-1:account:snapshot:my-snapshot \
--target-db-cluster-snapshot-identifier my-snapshot-copy \
--source-region us-east-1 \
--region us-west-2
4.2 跨区域恢复 #
bash
# 在目标区域恢复
aws neptune restore-db-cluster-from-snapshot \
--db-cluster-identifier my-neptune-dr \
--snapshot-identifier my-snapshot-copy \
--region us-west-2
五、快照导出 #
5.1 导出到S3 #
bash
# 创建导出任务
aws neptune start-export-task \
--export-task-identifier my-export \
--source-arn arn:aws:rds:region:account:snapshot:my-snapshot \
--s3-bucket-name my-export-bucket \
--iam-role-arn arn:aws:iam::account:role/neptune-export-role \
--kms-key-id arn:aws:kms:region:account:key/key-id
5.2 导出格式 #
text
导出格式:
├── Parquet:列式存储
├── CSV:逗号分隔
└── JSON:JSON格式
六、备份策略 #
6.1 推荐备份策略 #
text
备份策略建议:
├── 自动备份:7-35天保留期
├── 每日快照:保留7天
├── 每周快照:保留4周
├── 每月快照:保留12个月
└── 跨区域复制:关键快照
6.2 自动化备份脚本 #
bash
#!/bin/bash
CLUSTER_ID="my-neptune-cluster"
DATE=$(date +%Y-%m-%d)
SNAPSHOT_ID="daily-${DATE}"
# 创建快照
aws neptune create-db-cluster-snapshot \
--db-cluster-snapshot-identifier ${SNAPSHOT_ID} \
--db-cluster-identifier ${CLUSTER_ID}
# 删除7天前的快照
OLD_DATE=$(date -d "-7 days" +%Y-%m-%d)
OLD_SNAPSHOT="daily-${OLD_DATE}"
aws neptune delete-db-cluster-snapshot \
--db-cluster-snapshot-identifier ${OLD_SNAPSHOT} || true
七、恢复测试 #
7.1 恢复测试流程 #
text
恢复测试步骤:
├── 1. 创建测试环境
├── 2. 从快照恢复
├── 3. 验证数据完整性
├── 4. 验证应用连接
├── 5. 记录恢复时间
└── 6. 清理测试环境
7.2 恢复验证脚本 #
bash
#!/bin/bash
# 恢复集群
aws neptune restore-db-cluster-from-snapshot \
--db-cluster-identifier test-restore \
--snapshot-identifier my-snapshot
# 等待集群可用
aws neptune wait db-cluster-available \
--db-cluster-identifier test-restore
# 验证数据
curl -X POST https://test-restore-endpoint:8182/status
# 清理
aws neptune delete-db-cluster \
--db-cluster-identifier test-restore \
--skip-final-snapshot
八、灾难恢复 #
8.1 DR架构 #
text
DR架构选项:
├── 备份恢复
│ └── RTO: 小时级, RPO: 分钟级
├── 跨区域复制
│ └── RTO: 小时级, RPO: 小时级
├── 全球数据库
│ └── RTO: 分钟级, RPO: 秒级
└── 多活架构
└── RTO: 秒级, RPO: 秒级
8.2 DR演练 #
text
DR演练步骤:
├── 1. 触发DR流程
├── 2. 在备用区域恢复
├── 3. 验证数据完整性
├── 4. 切换应用流量
├── 5. 验证业务功能
└── 6. 记录演练结果
九、最佳实践 #
9.1 备份最佳实践 #
text
备份建议:
├── 启用自动备份
├── 定期创建手动快照
├── 配置跨区域复制
├── 定期测试恢复
└── 监控备份状态
9.2 恢复最佳实践 #
text
恢复建议:
├── 记录恢复步骤
├── 定期演练恢复
├── 验证数据完整性
├── 监控恢复时间
└── 保留恢复日志
十、总结 #
备份与恢复要点:
| 项目 | 说明 |
|---|---|
| 自动备份 | 时间点恢复 |
| 手动快照 | 永久保留 |
| 跨区域复制 | 灾难恢复 |
| 快照导出 | 数据迁移 |
| 恢复测试 | 验证可用性 |
最佳实践:
- 启用自动备份
- 定期创建快照
- 配置跨区域复制
- 定期测试恢复
- 监控备份状态
下一步,让我们学习安全配置!
最后更新:2026-03-27