mongodb 4.X
通过mongodump备份+oplog恢复数据.
这个一个基于oplog进行mongodb数据库不完全恢复的模拟,即模拟一个collection误删除的恢复。 模拟场景:
MongoDB Enterprise mongos> use my_userdata
switched to db my_userdata
MongoDB Enterprise mongos> show collections;show collections;
characters
inventory
movies
my_stock
people
Transactions
--以下所有的操作基于collection my_stock来进行开展:
MongoDB Enterprise mongos> db.my_stock.find().pretty()db.my_stock.find().pretty()
{
"_id" : ObjectId("631cc6f96fc89c0c64679c30"),
"name" : "农期指数",
"market" : "OTH",
"ts_code" : "000001.CZC",
"category" : "商品指数",
"exp_date" : null,
"fullname" : "农期指数",
"base_date" : null,
"describle" : null,
"list_date" : null,
"publisher" : "郑州商品交易所",
"base_point" : 1000,
"index_type" : null,
"weight_rule" : "其他"
}
{
"_id" : ObjectId("631cc78c6fc89c0c64679c31"),
"name" : "上证指数",
"market" : "SSE",
"ts_code" : "000001.SH",
"category" : "综合指数",
"exp_date" : null,
"fullname" : "上证综合指数",
"base_date" : "1990-12-19",
"describle" : "上证综合指数由在上海证券交易所上市的符合条件的股票与存托凭证组成样本,反映上海证券交易所上市公司的整体表现。",
"list_date" : "1991-07-15",
"publisher" : "中证公司",
"base_point" : 100,
"index_type" : "中证综合指数",
"weight_rule" : "其他"
}
MongoDB Enterprise mongos>
备份导出数据库
mongodump --host 127.0.0.1:27018 -uadmin -padmin@2020 --authenticationDatabase admin -d my_userdata -o /user_data/mongo_backup
[root@serv-node2 mongo_backup]# mongodump --host 127.0.0.1:27018 -uadmin -padmin@2020 --authenticationDatabase admin -d my_userdata -o /user_data/mongo_backup
2022-09-11T01:59:21.259+0800 writing my_userdata.transactions to /user_data/mongo_backup/my_userdata/transactions.bson
2022-09-11T01:59:21.260+0800 writing my_userdata.inventory to /user_data/mongo_backup/my_userdata/inventory.bson
2022-09-11T01:59:21.261+0800 writing my_userdata.movies to /user_data/mongo_backup/my_userdata/movies.bson
2022-09-11T01:59:21.265+0800 done dumping my_userdata.inventory (5 documents)
2022-09-11T01:59:21.268+0800 writing my_userdata.people to /user_data/mongo_backup/my_userdata/people.bson
2022-09-11T01:59:21.269+0800 writing my_userdata.characters to /user_data/mongo_backup/my_userdata/characters.bson
2022-09-11T01:59:21.281+0800 done dumping my_userdata.characters (2 documents)
2022-09-11T01:59:21.295+0800 writing my_userdata.my_stock to /user_data/mongo_backup/my_userdata/my_stock.bson
2022-09-11T01:59:21.311+0800 done dumping my_userdata.my_stock (2 documents) --记住这个时间点,后面有用。
2022-09-11T01:59:21.591+0800 done dumping my_userdata.transactions (1746 documents)
2022-09-11T01:59:22.412+0800 done dumping my_userdata.people (50474 documents)
2022-09-11T01:59:22.826+0800 done dumping my_userdata.movies (23530 documents)
备份导出数据库某个集合(临时测试的,不需要过多关注)
mongodump --host 127.0.0.1:27018 -uadmin -padmin@2020 --authenticationDatabase admin -d my_userdata -c my_stock -o /user_data/mongo_backup