您现在的位置是:网站首页> 编程资料编程资料
MongoDB利用oplog恢复数据的方法_MongoDB_
2023-05-27
514人已围观
简介 MongoDB利用oplog恢复数据的方法_MongoDB_
当我们对数据出现误操作的时候,可以利用oplog恢复数据。
使用前提:
- 1、环境是副本集
- 2、必须有全备
- 2、全备后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/backup 2021-04-30T18:32:29.077+0800 writing local.oplog.rs to /mongodb/backup/local/oplog.rs.bson 2021-04-30T18:32:32.039+0800 local.oplog.rs 7108 2021-04-30T18:32:35.038+0800 local.oplog.rs 17912 2021-04-30T18:32:38.041+0800 local.oplog.rs 28226 2021-04-30T18:32:41.039+0800 local.oplog.rs 38642 2021-04-30T18:32:44.042+0800 local.oplog.rs 50679 2021-04-30T18:32:47.040+0800 local.oplog.rs 64001 2021-04-30T18:32:50.040+0800 local.oplog.rs 77265 2021-04-30T18:32:53.038+0800 local.oplog.rs 89739 2021-04-30T18:32:56.038+0800 local.oplog.rs 102449 2021-04-30T18:32:57.697+0800 local.oplog.rs 132459 2021-04-30T18:32:57.697+0800 done dumping local.oplog.rs (132459 documents)
解析oplog
bsondump /mongodb/backup/local/oplog.rs.bson > /mongodb/backup/local/local.log 2021-04-30T18:34:27.612+0800 132459 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/backup 2021-04-30T19:00:11.099+0800 preparing collections to restore from 2021-04-30T19:00:11.100+0800 don't know what to do with file "/mongodb/backup/backup/local/111.log", skipping... 2021-04-30T19:00:11.100+0800 don't know what to do with file "/mongodb/backup/backup/local/local.log", skipping... 2021-04-30T19:00:11.116+0800 reading metadata for db4.rcmd_1_tag_li_liao from /mongodb/backup/backup/db4/rcmd_1_tag_li_liao.metadata.json 2021-04-30T19:00:11.117+0800 reading metadata for ycsb.usertable from /mongodb/backup/backup/ycsb/usertable.metadata.json 2021-04-30T19:00:11.119+0800 reading metadata for db3.db3 from /mongodb/backup/backup/db3/db3.metadata.json 2021-04-30T19:00:11.119+0800 reading metadata for ycsb1.usertable from /mongodb/backup/backup/ycsb1/usertable.metadata.json 2021-04-30T19:00:11.170+0800 restoring ycsb.usertable from /mongodb/backup/backup/ycsb/usertable.bson 2021-04-30T19:00:11.187+0800 restoring ycsb1.usertable from /mongodb/backup/backup/ycsb1/usertable.bson 2021-04-30T19:00:11.391+0800 restoring db4.rcmd_1_tag_li_liao from /mongodb/backup/backup/db4/rcmd_1_tag_li_liao.bson 2021-04-30T19:00:11.580+0800 restoring db3.db3 from /mongodb/backup/backup/db3/db3.bson 2021-04-30T19:00:11.661+0800 no indexes to restore 2021-04-30T19:00:11.661+0800 finished restoring db3.db3 (6 documents, 0 failures) 2021-04-30T19:00:11.662+0800 reading metadata for db5.test from /mongodb/backup/backup/db5/test.metadata.json 2021-04-30T19:00:12.545+0800 restoring db5.test from /mongodb/backup/backup/db5/test.bson 2021-04-30T19:00:12.548+0800 no indexes to restore 2021-04-30T19:00:12.548+0800 finished restoring db5.test (0 documents, 0 failures) 2021-04-30T19:00:12.548+0800 reading metadata for db4.db4 from /mongodb/backup/backup/db4/db4.metadata.json 2021-04-30T19:00:13.784+0800 no indexes to restore 2021-04-30T19:00:13.784+0800 finished restoring ycsb1.usertable (30370 documents, 0 failures) 2021-04-30T19:00:13.785+0800 reading metadata for db4.test1 from /mongodb/backup/backup/db4/test1.metadata.json 2021-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+0800 2021-04-30T19:00:14.843+0800 [########################] ycsb.usertable 58.9MB/58.9MB (100.0%) 2021-04-30T19:00:14.843+0800 no indexes to restore 2021-04-30T19:00:14.843+0800 finished restoring ycsb.usertable (43458 documents, 0 failures) 2021-04-30T19:00:15.339+0800 restoring db4.db4 from /mongodb/backup/backup/db4/db4.bson 2021-04-30T19:00:17.077+0800 restoring db4.test1 from /mongodb/backup/backup/db4/test1.bson 2021-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+0800 2021-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+0800 2021-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+0800 2021-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+0800 2021-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+0800 2021-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+0800 2021-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+0800 2021-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+0800 2021-04-30T19:00:39.023+0800 [########################] db4.test1 104MB/104MB (100.0%) 2021-04-30T19:00:39.023+0800 no indexes to restore 2021-04-30T19:00:39.023+0800 finished 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+0800 no indexes to restore 2021-04-30T19:00:40.386+0800 finished 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
相关内容
- MongoDB常用数据类型分享_MongoDB_
- PostgreSQL中的XML操作函数代码_PostgreSQL_
- 用一整天的时间安装postgreSQL NTFS权限_PostgreSQL_
- MongoDB索引类型汇总分享_MongoDB_
- 解决PostgreSQL服务启动后占用100% CPU卡死的问题_PostgreSQL_
- mongoDB数据库索引快速入门指南_MongoDB_
- MongoDB数据库部署环境准备及使用介绍_MongoDB_
- PostgreSQL 创建表分区_PostgreSQL_
- PostgreSQL 安装和简单使用第1/2页_PostgreSQL_
- PostgreSQL 数据库性能提升的几个方面_PostgreSQL_
点击排行
本栏推荐
