阿里云mongodb逻辑备份还原预案和恢复oplog增量数据

本文详细介绍了如何使用阿里云DBS服务将MongoDB逻辑备份恢复到ECS自建数据库,并通过DTS服务迁移数据到阿里云MongoDB。整个过程包括全量恢复和增量(oplog)恢复,涉及恢复时间、操作步骤和命令示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总结:通过DBS恢复到ECS自建数据库,耗费51分钟,从ECS自建数据库通过DTS迁移数据到阿里云mongodb耗费5分钟.总耗时大概在60分钟以内.
阿里云物理恢复和逻辑恢复时间比较
通过阿里云DBS恢复mongodb集合的操作步骤:
一:点击下面DBS的备份计划:
DBS备份计划
二:点击“恢复数据库”
恢复数据库
三:填写需要恢复的时间点,选择ECS自建数据库,输入端口,账号和密码,测试通过
恢复数据到自建实例
四:按需要恢复数据集合,可以恢复整个数据库,或者其中几个集合或者一个集合
选择数据库
选择集合
六:点击“立即启动”,进行数据恢复
预检查
七:下面是恢复进度,这次选择一个集合,全量结构前置恢复进度,全量数据恢复进度 这两个步骤只是需要1分钟就完成.增量日志恢复需要20分钟左右,全量结构后置恢复进度需要28分钟.
恢复进度

八:使用阿里云DTS服务进行集合还原目标集合的数据:
DTS

九:按照要求填写下面内容,进入下一步:
DTS配置

十:选择要恢复的对象,进行还原操作,可以更改集合名称:
还原映射关系

十一:预检查通过,进行下一步:

在这里插入图片描述

十二:选择购买服务,进行下一步.
在这里插入图片描述

十三:数据迁移成功.

迁移成功后返回
还原后的文档数
十四:增量还原oplog操作日志
恢复单个文档命令:
mongorestore --host dds-*****.mongodb.rds.aliyuncs.com:3717 -u root --authenticationDatabase admin -d qdy_ecloud_contract_mongodb qdy_ecloud_contract_mongodb/

#oplog全量导出:
pre预发布:
mongodump -h dds-*****.mongodb.rds.aliyuncs.com --port 3717 --username root --password ****** --authenticationDatabase admin -d local -c oplog.rs -o ./pre_oplog_restore_all
2019-12-03T10:14:56.554+0800 writing local.oplog.rs to
2019-12-03T10:14:59.519+0800 [################…] local.oplog.rs 673490/974045 (69.1%)
2019-12-03T10:15:02.475+0800 [########################] local.oplog.rs 974045/974045 (100.0%)
2019-12-03T10:15:02.475+0800 done dumping local.oplog.rs (974045 documents)

#oplog根据条件导出:
文档按照正则表达式和指定的时间进行匹配:
mongodump -h dds-*****.mongodb.rds.aliyuncs.com --port 3717 --username root --password ****** --authenticationDatabase admin -d local -c oplog.rs -q ‘{ts:{KaTeX parse error: Expected 'EOF', got '}' at position 27: …p(1574989801,2)}̲,"ns":{"regex":“contract”}}’ -o ./pre_oplog_restore_incr
2019-12-03T10:30:30.950+0800 writing local.oplog.rs to
2019-12-03T10:30:32.306+0800 done dumping local.oplog.rs (125000 documents)

指定的文档名称和时间:
mongodump -h dds-*****.mongodb.rds.aliyuncs.com --port 3717 --username root --password ****** --authenticationDatabase admin -d local -c oplog.rs -q ‘{ts:{$gt:Timestamp(1574989801,2)},“ns”:“qdy_ecloud_contract_mongodb.contract”}’ -o ./pre_oplog_restore_incr
2019-12-03T10:36:43.052+0800 writing local.oplog.rs to
2019-12-03T10:36:44.206+0800 done dumping local.oplog.rs (57509 documents)

恢复前的文档数:
db.contract.count()
48106
恢复oplog日志:
mongorestore --host dds-*****.mongodb.rds.aliyuncs.com:3717 -u root --authenticationDatabase admin --oplogReplay ./pre_oplog_restore_incr/
出错信息如下,报唯一索引键冲突的错误:
2019-12-03T11:01:03.901+0800 preparing collections to restore from
2019-12-03T11:01:03.901+0800 replaying oplog
2019-12-03T11:01:06.877+0800 oplog 413KB

2019-12-03T11:01:56.795+0800 oplog 6.83MB
2019-12-03T11:01:56.795+0800 Failed: restore error: error applying oplog: applyOps: E11000 duplicate key error collection: qdy_ecloud_contract_mongodb.contract index: index_contract_code dup key: { : null }

恢复后的记录数:
48424

删除唯一索引后,恢复的记录数:49003

重新创建唯一索引:
db.contract.createIndex({code : 1}, {unique: true});

至此,所有增量数据都恢复成功.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值