文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MongoDB中怎么利用oplog恢复数据

2023-06-29 23:05

关注

今天小编给大家分享一下MongoDB中怎么利用oplog恢复数据的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

当我们对数据出现误操作的时候,可以利用oplog恢复数据。

使用前提:

数据全备

mongodump -h 172.16.254.133 --port 27017 -o /mongodb/backup/backup

模拟故障

写入数据

handong1:PRIMARY> for (var i = 1; i <= 100; i++) {...    db.test.insert( { id : i , name: "handong" , name1:"handong", name2:"handong", name3:"handong"} )... }WriteResult({ "nInserted" : 1 })handong1:PRIMARY> handong1:PRIMARY> db.test.count()100

模拟误操作

handong1:PRIMARY> db.test.remove({})WriteResult({ "nRemoved" : 100 })handong1:PRIMARY> db.test.count()0

所有文档被误删除。

恢复步骤

备份oplog

mongodump -h 172.16.254.133 --port 27017 -d local -c oplog.rs -o /mongodb/backup2021-04-30T18:32:29.077+0800writing local.oplog.rs to /mongodb/backup/local/oplog.rs.bson2021-04-30T18:32:32.039+0800local.oplog.rs  71082021-04-30T18:32:35.038+0800local.oplog.rs  179122021-04-30T18:32:38.041+0800local.oplog.rs  282262021-04-30T18:32:41.039+0800local.oplog.rs  386422021-04-30T18:32:44.042+0800local.oplog.rs  506792021-04-30T18:32:47.040+0800local.oplog.rs  640012021-04-30T18:32:50.040+0800local.oplog.rs  772652021-04-30T18:32:53.038+0800local.oplog.rs  897392021-04-30T18:32:56.038+0800local.oplog.rs  1024492021-04-30T18:32:57.697+0800local.oplog.rs  1324592021-04-30T18:32:57.697+0800done dumping local.oplog.rs (132459 documents)

解析oplog

bsondump /mongodb/backup/local/oplog.rs.bson  > /mongodb/backup/local/local.log2021-04-30T18:34:27.612+0800132459 objects found

将oplog备份和全备复制到standalone机

scp -r backup/ 172.16.254.130:/mongodb/backup/
scp -r local/ 172.16.254.130:/mongodb/backup/backup

查找误操作时间点

通过查看解析完的日志local.log发现误操作的时间点在1619778429。

进行数据恢复

mongorestore -h 172.16.254.130 --port 27017 --oplogReplay --oplogLimit 1619778429:1 /mongodb/backup/backup2021-04-30T19:00:11.099+0800preparing collections to restore from2021-04-30T19:00:11.100+0800don't know what to do with file "/mongodb/backup/backup/local/111.log", skipping...2021-04-30T19:00:11.100+0800don't know what to do with file "/mongodb/backup/backup/local/local.log", skipping...2021-04-30T19:00:11.116+0800reading metadata for db4.rcmd_1_tag_li_liao from /mongodb/backup/backup/db4/rcmd_1_tag_li_liao.metadata.json2021-04-30T19:00:11.117+0800reading metadata for ycsb.usertable from /mongodb/backup/backup/ycsb/usertable.metadata.json2021-04-30T19:00:11.119+0800reading metadata for db3.db3 from /mongodb/backup/backup/db3/db3.metadata.json2021-04-30T19:00:11.119+0800reading metadata for ycsb1.usertable from /mongodb/backup/backup/ycsb1/usertable.metadata.json2021-04-30T19:00:11.170+0800restoring ycsb.usertable from /mongodb/backup/backup/ycsb/usertable.bson2021-04-30T19:00:11.187+0800restoring ycsb1.usertable from /mongodb/backup/backup/ycsb1/usertable.bson2021-04-30T19:00:11.391+0800restoring db4.rcmd_1_tag_li_liao from /mongodb/backup/backup/db4/rcmd_1_tag_li_liao.bson2021-04-30T19:00:11.580+0800restoring db3.db3 from /mongodb/backup/backup/db3/db3.bson2021-04-30T19:00:11.661+0800no indexes to restore2021-04-30T19:00:11.661+0800finished restoring db3.db3 (6 documents, 0 failures)2021-04-30T19:00:11.662+0800reading metadata for db5.test from /mongodb/backup/backup/db5/test.metadata.json2021-04-30T19:00:12.545+0800restoring db5.test from /mongodb/backup/backup/db5/test.bson2021-04-30T19:00:12.548+0800no indexes to restore2021-04-30T19:00:12.548+0800finished restoring db5.test (0 documents, 0 failures)2021-04-30T19:00:12.548+0800reading metadata for db4.db4 from /mongodb/backup/backup/db4/db4.metadata.json2021-04-30T19:00:13.784+0800no indexes to restore2021-04-30T19:00:13.784+0800finished restoring ycsb1.usertable (30370 documents, 0 failures)2021-04-30T19:00:13.785+0800reading metadata for db4.test1 from /mongodb/backup/backup/db4/test1.metadata.json2021-04-30T19:00:14.099+0800[###################.....]          ycsb.usertable  47.8MB/58.9MB  (81.2%)2021-04-30T19:00:14.099+0800[........................]  db4.rcmd_1_tag_li_liao  79.8MB/3.32GB   (2.3%)2021-04-30T19:00:14.099+08002021-04-30T19:00:14.843+0800[########################]  ycsb.usertable  58.9MB/58.9MB  (100.0%)2021-04-30T19:00:14.843+0800no indexes to restore2021-04-30T19:00:14.843+0800finished restoring ycsb.usertable (43458 documents, 0 failures)2021-04-30T19:00:15.339+0800restoring db4.db4 from /mongodb/backup/backup/db4/db4.bson2021-04-30T19:00:17.077+0800restoring db4.test1 from /mongodb/backup/backup/db4/test1.bson2021-04-30T19:00:17.103+0800[#.......................]  db4.rcmd_1_tag_li_liao  167MB/3.32GB  (4.9%)2021-04-30T19:00:17.104+0800[#.......................]                 db4.db4  8.11MB/137MB  (5.9%)2021-04-30T19:00:17.104+0800[........................]               db4.test1      0B/104MB  (0.0%)2021-04-30T19:00:17.104+08002021-04-30T19:00:20.099+0800[#.......................]  db4.rcmd_1_tag_li_liao  204MB/3.32GB   (6.0%)2021-04-30T19:00:20.099+0800[####....................]                 db4.db4  24.5MB/137MB  (18.0%)2021-04-30T19:00:20.099+0800[#.......................]               db4.test1  4.47MB/104MB   (4.3%)2021-04-30T19:00:20.099+08002021-04-30T19:00:23.099+0800[#.......................]  db4.rcmd_1_tag_li_liao  272MB/3.32GB   (8.0%)2021-04-30T19:00:23.099+0800[######..................]                 db4.db4  39.7MB/137MB  (29.1%)2021-04-30T19:00:23.099+0800[####....................]               db4.test1  20.1MB/104MB  (19.3%)2021-04-30T19:00:23.099+08002021-04-30T19:00:26.102+0800[##......................]  db4.rcmd_1_tag_li_liao  355MB/3.32GB  (10.4%)2021-04-30T19:00:26.102+0800[##########..............]                 db4.db4  58.0MB/137MB  (42.5%)2021-04-30T19:00:26.102+0800[########................]               db4.test1  38.1MB/104MB  (36.7%)2021-04-30T19:00:26.102+08002021-04-30T19:00:29.098+0800[##......................]  db4.rcmd_1_tag_li_liao  401MB/3.32GB  (11.8%)2021-04-30T19:00:29.098+0800[############............]                 db4.db4  73.1MB/137MB  (53.5%)2021-04-30T19:00:29.098+0800[###########.............]               db4.test1  51.8MB/104MB  (49.8%)2021-04-30T19:00:29.098+08002021-04-30T19:00:32.097+0800[###.....................]  db4.rcmd_1_tag_li_liao  494MB/3.32GB  (14.5%)2021-04-30T19:00:32.097+0800[###############.........]                 db4.db4  90.8MB/137MB  (66.5%)2021-04-30T19:00:32.097+0800[###############.........]               db4.test1  67.3MB/104MB  (64.7%)2021-04-30T19:00:32.097+08002021-04-30T19:00:35.100+0800[###.....................]  db4.rcmd_1_tag_li_liao  556MB/3.32GB  (16.3%)2021-04-30T19:00:35.100+0800[###################.....]                 db4.db4   110MB/137MB  (80.5%)2021-04-30T19:00:35.100+0800[###################.....]               db4.test1  86.1MB/104MB  (82.8%)2021-04-30T19:00:35.100+08002021-04-30T19:00:38.097+0800[####....................]  db4.rcmd_1_tag_li_liao  620MB/3.32GB  (18.2%)2021-04-30T19:00:38.097+0800[#####################...]                 db4.db4   124MB/137MB  (91.1%)2021-04-30T19:00:38.097+0800[#######################.]               db4.test1   101MB/104MB  (96.7%)2021-04-30T19:00:38.097+08002021-04-30T19:00:39.023+0800[########################]  db4.test1  104MB/104MB  (100.0%)2021-04-30T19:00:39.023+0800no indexes to restore2021-04-30T19:00:39.023+0800finished restoring db4.test1 (1000000 documents, 0 failures)2021-04-30T19:00:40.386+0800[########################]  db4.db4  137MB/137MB  (100.0%)2021-04-30T19:00:40.386+0800no indexes to restore2021-04-30T19:00:40.386+0800finished restoring db4.db4 (1313657 documents, 0 failures)2021-04-30T19:00:41.097+0800[####....................]  db4.rcmd_1_tag_li_liao  684MB/3.32GB  (20.1%)2021-04-30T19:00:44.097+0800[#####...................]  db4.rcmd_1_tag_li_liao  760MB/3.32GB  (22.3%)2021-04-30T19:00:47.097+0800[#####...................]  db4.rcmd_1_tag_li_liao  836MB/3.32GB  (24.6%)2021-04-30T19:00:50.098+0800[######..................]  db4.rcmd_1_tag_li_liao  906MB/3.32GB  (26.6%)2021-04-30T19:00:53.098+0800[#######.................]  db4.rcmd_1_tag_li_liao  994MB/3.32GB  (29.2%)2021-04-30T19:00:56.098+0800[#######.................]  db4.rcmd_1_tag_li_liao  1.03GB/3.32GB  (31.0%)2021-04-30T19:00:59.098+0800[########................]  db4.rcmd_1_tag_li_liao  1.11GB/3.32GB  (33.3%)2021-04-30T19:01:02.097+0800[########................]  db4.rcmd_1_tag_li_liao  1.18GB/3.32GB  (35.5%)2021-04-30T19:01:05.101+0800[#########...............]  db4.rcmd_1_tag_li_liao  1.26GB/3.32GB  (38.0%)2021-04-30T19:01:08.097+0800[#########...............]  db4.rcmd_1_tag_li_liao  1.32GB/3.32GB  (39.7%)2021-04-30T19:01:11.100+0800[#########...............]  db4.rcmd_1_tag_li_liao  1.37GB/3.32GB  (41.1%)2021-04-30T19:01:14.098+0800[##########..............]  db4.rcmd_1_tag_li_liao  1.43GB/3.32GB  (43.2%)2021-04-30T19:01:17.097+0800[##########..............]  db4.rcmd_1_tag_li_liao  1.50GB/3.32GB  (45.0%)2021-04-30T19:01:20.098+0800[###########.............]  db4.rcmd_1_tag_li_liao  1.54GB/3.32GB  (46.3%)2021-04-30T19:01:23.098+0800[###########.............]  db4.rcmd_1_tag_li_liao  1.58GB/3.32GB  (47.6%)2021-04-30T19:01:26.098+0800[###########.............]  db4.rcmd_1_tag_li_liao  1.64GB/3.32GB  (49.3%)2021-04-30T19:01:29.097+0800[############............]  db4.rcmd_1_tag_li_liao  1.71GB/3.32GB  (51.4%)2021-04-30T19:01:32.097+0800[############............]  db4.rcmd_1_tag_li_liao  1.77GB/3.32GB  (53.2%)2021-04-30T19:01:35.098+0800[#############...........]  db4.rcmd_1_tag_li_liao  1.85GB/3.32GB  (55.7%)2021-04-30T19:01:38.097+0800[#############...........]  db4.rcmd_1_tag_li_liao  1.90GB/3.32GB  (57.2%)2021-04-30T19:01:41.097+0800[##############..........]  db4.rcmd_1_tag_li_liao  1.98GB/3.32GB  (59.5%)2021-04-30T19:01:44.827+0800[##############..........]  db4.rcmd_1_tag_li_liao  2.00GB/3.32GB  (60.3%)2021-04-30T19:01:47.097+0800[##############..........]  db4.rcmd_1_tag_li_liao  2.05GB/3.32GB  (61.8%)2021-04-30T19:01:50.098+0800[###############.........]  db4.rcmd_1_tag_li_liao  2.12GB/3.32GB  (63.9%)2021-04-30T19:01:53.097+0800[###############.........]  db4.rcmd_1_tag_li_liao  2.19GB/3.32GB  (65.9%)2021-04-30T19:01:56.097+0800[################........]  db4.rcmd_1_tag_li_liao  2.26GB/3.32GB  (67.9%)2021-04-30T19:01:59.099+0800[################........]  db4.rcmd_1_tag_li_liao  2.32GB/3.32GB  (69.8%)2021-04-30T19:02:02.098+0800[#################.......]  db4.rcmd_1_tag_li_liao  2.39GB/3.32GB  (72.0%)2021-04-30T19:02:05.097+0800[#################.......]  db4.rcmd_1_tag_li_liao  2.47GB/3.32GB  (74.4%)2021-04-30T19:02:08.097+0800[##################......]  db4.rcmd_1_tag_li_liao  2.52GB/3.32GB  (76.0%)2021-04-30T19:02:11.097+0800[##################......]  db4.rcmd_1_tag_li_liao  2.59GB/3.32GB  (77.8%)2021-04-30T19:02:14.097+0800[###################.....]  db4.rcmd_1_tag_li_liao  2.66GB/3.32GB  (80.0%)2021-04-30T19:02:17.097+0800[###################.....]  db4.rcmd_1_tag_li_liao  2.72GB/3.32GB  (81.9%)2021-04-30T19:02:20.097+0800[####################....]  db4.rcmd_1_tag_li_liao  2.78GB/3.32GB  (83.7%)2021-04-30T19:02:23.097+0800[####################....]  db4.rcmd_1_tag_li_liao  2.85GB/3.32GB  (85.7%)2021-04-30T19:02:26.098+0800[#####################...]  db4.rcmd_1_tag_li_liao  2.94GB/3.32GB  (88.4%)2021-04-30T19:02:29.097+0800[#####################...]  db4.rcmd_1_tag_li_liao  3.00GB/3.32GB  (90.4%)2021-04-30T19:02:32.097+0800[######################..]  db4.rcmd_1_tag_li_liao  3.06GB/3.32GB  (92.1%)2021-04-30T19:02:35.099+0800[######################..]  db4.rcmd_1_tag_li_liao  3.12GB/3.32GB  (93.9%)2021-04-30T19:02:38.097+0800[######################..]  db4.rcmd_1_tag_li_liao  3.15GB/3.32GB  (95.0%)2021-04-30T19:02:41.098+0800[#######################.]  db4.rcmd_1_tag_li_liao  3.21GB/3.32GB  (96.7%)2021-04-30T19:02:44.167+0800[#######################.]  db4.rcmd_1_tag_li_liao  3.26GB/3.32GB  (98.0%)2021-04-30T19:02:47.097+0800[#######################.]  db4.rcmd_1_tag_li_liao  3.32GB/3.32GB  (99.9%)2021-04-30T19:02:47.392+0800[########################]  db4.rcmd_1_tag_li_liao  3.32GB/3.32GB  (100.0%)2021-04-30T19:02:47.393+0800no indexes to restore2021-04-30T19:02:47.393+0800finished restoring db4.rcmd_1_tag_li_liao (379143 documents, 0 failures)2021-04-30T19:02:47.393+0800restoring users from /mongodb/backup/backup/admin/system.users.bson2021-04-30T19:02:50.655+0800admin.tempusers  2.05KB2021-04-30T19:02:50.655+0800admin.tempusers  2.05KB2021-04-30T19:02:51.905+0800replaying oplog2021-04-30T19:02:53.097+0800oplog  483KB2021-04-30T19:02:56.097+0800oplog  20.2MB2021-04-30T19:02:59.100+0800oplog  36.9MB2021-04-30T19:03:02.097+0800oplog  50.1MB2021-04-30T19:03:05.098+0800oplog  69.0MB2021-04-30T19:03:08.097+0800oplog  90.6MB2021-04-30T19:03:11.097+0800oplog  124MB2021-04-30T19:03:14.097+0800oplog  159MB2021-04-30T19:03:17.098+0800oplog  185MB2021-04-30T19:03:20.097+0800oplog  219MB2021-04-30T19:03:23.098+0800oplog  256MB2021-04-30T19:03:26.097+0800oplog  290MB2021-04-30T19:03:29.097+0800oplog  323MB2021-04-30T19:03:32.097+0800oplog  357MB2021-04-30T19:03:35.097+0800oplog  391MB2021-04-30T19:03:38.098+0800oplog  427MB2021-04-30T19:03:41.098+0800oplog  464MB2021-04-30T19:03:44.097+0800oplog  501MB2021-04-30T19:03:47.097+0800oplog  544MB2021-04-30T19:03:50.098+0800oplog  580MB2021-04-30T19:03:53.098+0800oplog  619MB2021-04-30T19:03:56.098+0800oplog  650MB2021-04-30T19:03:59.099+0800oplog  687MB2021-04-30T19:04:02.097+0800oplog  722MB2021-04-30T19:04:05.097+0800oplog  758MB2021-04-30T19:04:08.098+0800oplog  795MB2021-04-30T19:04:11.097+0800oplog  826MB2021-04-30T19:04:14.098+0800oplog  858MB2021-04-30T19:04:17.102+0800oplog  893MB2021-04-30T19:04:20.097+0800oplog  929MB2021-04-30T19:04:23.098+0800oplog  968MB2021-04-30T19:04:26.098+0800oplog  1001MB2021-04-30T19:04:29.097+0800oplog  1002MB2021-04-30T19:04:32.097+0800oplog  1003MB2021-04-30T19:04:35.097+0800oplog  1004MB2021-04-30T19:04:38.097+0800oplog  1004MB2021-04-30T19:04:38.597+0800applied 130029 oplog entries2021-04-30T19:04:38.597+0800oplog  1005MB2021-04-30T19:04:38.614+08002766634 document(s) restored successfully. 0 document(s) failed to restore.

检查恢复结果

> show dbsadmin   0.000GBconfig  0.000GBdb3     0.000GBdb4     3.355GBdb5     0.000GBlocal   0.000GBycsb    0.060GBycsb1   0.041GB> > > use db5switched to db db5> > db.test.count()100

可以看到我们前期插入的100记录以及恢复成功。

以上就是“MongoDB中怎么利用oplog恢复数据”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯