食品网站架构,dw个人网站模板下载,wordpress页脚太高,职业教育网站建设目录
一、实验
1.MongoDB 数据库备份与恢复
2.MongoDB 数据表备份与恢复
二、问题
1.MongoDB有哪些命令行工具实现数据备份与恢复 一、实验
1.MongoDB 数据库备份与恢复
#xff08;1#xff09;查看版本
rootnode1:~# mongo --version#xff08;2#xff09;准备…目录
一、实验
1.MongoDB 数据库备份与恢复
2.MongoDB 数据表备份与恢复
二、问题
1.MongoDB有哪些命令行工具实现数据备份与恢复 一、实验
1.MongoDB 数据库备份与恢复
1查看版本
rootnode1:~# mongo --version2准备测试数据mongoDB终端下进行以下操作插入200000条数据
use demo
fotmatnumber (start, end){num Math.round(Math.random() * (end-start)) startif(num10){return 0num;}else{return num;}
}rand_title (i){num Math.round( Math.random() * 10 );num1 Math.round( Math.random() * 10 );return [赠送礼品-num,购物狂欢-num,随便买买-num,愉快购物-num,赠送礼物-num,商品购买-num,买多送多-num,买年货-num,买买买买-num,充值会员-num][num1];
}for(var i0; i200000; i){ db.orders.insert({onumber: ( 0000000000000000 i ).substr( String(i).length ), date: 20fotmatnumber(0,21)-fotmatnumber(1,12)-fotmatnumber(1,31), title: rand_title(i),user_id: parseInt(i/200)1,items :[{ goods_id : parseInt(i/200)1,goods_attr : i, price : 100.0},{ goods_id : parseInt(i/200)2,goods_attr : i1, price : 80.0}]})if(i%100000){print(已经添加了parseInt(i/10000)万条数据);}
} 2查看demo数据库大小
rootnode1:~# mongo
……show dbs;
admin 0.000GB
config 0.000GB
demo 0.010GB
local 0.000GBexit
bye(3) 数据备份
rootnode1:~# mongodump -h 127.0.0.1:27017 -d demo -o backup4删除demo数据库
rootnode1:~# mongo
……show dbs;
admin 0.000GB
config 0.000GB
demo 0.010GB
local 0.000GBuse demo;
switched to db demodb.dropDatabase()
{ dropped : demo, ok : 1 }show dbs;
admin 0.000GB
config 0.000GB
local 0.000GBexit
bye5数据恢复
rootnode1:~# mongorestore -h 127.0.0.1:27017 -d demo --dir /root/backup/demo6查看数据恢复情况
rootnode1:~# mongo
……use dbs;
switched to db dbsshow dbs;
admin 0.000GB
config 0.000GB
demo 0.009GB
local 0.000GB2.MongoDB 数据表备份与恢复
1查询demo数据表的orders数据表文件默认每次20个
……use demo;
switched to db demoshow tables;
ordersdb.orders.find()2输入it遍历查询后20个文件
Type it for moreit 3修改返回结果数据的单页显示数量为30条默认20条 DBQuery.shellBatchSize30
304删除orders表中的多个文档 目前显示剩余190078条文档 db.orders.deleteMany({title:买买买买-1})
{ acknowledged : true, deletedCount : 2037 }db.orders.deleteMany({title:买买买买-3})
{ acknowledged : true, deletedCount : 1988 }db.orders.deleteMany({title:买买买买-4})
{ acknowledged : true, deletedCount : 2062 }db.orders.deleteMany({title:买买买买-5})
{ acknowledged : true, deletedCount : 1902 }db.orders.deleteMany({title:买买买买-8})
{ acknowledged : true, deletedCount : 1933 }db.order.count()
0db.orders.count()
190078exit
bye5数据进行恢复
--drop 恢复数据前先删除MongoDB中的旧数据
rootnode1:~# mongorestore -h 127.0.0.1:27017 -d demo --dir /root/backup/demo --drop
2023-11-26T21:21:23.636-0800 The --db and --collection flags are deprecated for this use-case; please use --nsInclude instead, i.e. with --nsInclude${DATABASE}.${COLLECTION}
2023-11-26T21:21:23.637-0800 building a list of collections to restore from /root/backup/demo dir
2023-11-26T21:21:23.637-0800 reading metadata for demo.orders from /root/backup/demo/orders.metadata.json
2023-11-26T21:21:23.638-0800 dropping collection demo.orders before restoring
2023-11-26T21:21:23.667-0800 restoring demo.orders from /root/backup/demo/orders.bson
2023-11-26T21:21:25.993-0800 finished restoring demo.orders (200000 documents, 0 failures)
2023-11-26T21:21:25.993-0800 no indexes to restore for collection demo.orders
2023-11-26T21:21:25.993-0800 200000 document(s) restored successfully. 0 document(s) failed to restore.6查看恢复情况
rootnode1:~# mongo
……use demo;
switched to db demodb.orders.count()
200000exit
bye7数据导出
rootnode1:~# mongoexport -d demo -c orders -o /root/backup/orders.json --type json
2023-11-26T21:24:52.113-0800 connected to: mongodb://localhost/
2023-11-26T21:24:53.117-0800 [##......................] demo.orders 24000/200000 (12.0%)
2023-11-26T21:24:54.117-0800 [######..................] demo.orders 56000/200000 (28.0%)
2023-11-26T21:24:55.116-0800 [########................] demo.orders 72000/200000 (36.0%)
2023-11-26T21:24:56.116-0800 [############............] demo.orders 104000/200000 (52.0%)
2023-11-26T21:24:57.117-0800 [################........] demo.orders 136000/200000 (68.0%)
2023-11-26T21:24:58.117-0800 [####################....] demo.orders 168000/200000 (84.0%)
2023-11-26T21:24:59.056-0800 [########################] demo.orders 200000/200000 (100.0%)
2023-11-26T21:24:59.056-0800 exported 200000 records8查看导出文件一共200000条 9删除数据表orders
rootnode1:~/backup# mongo
……use demo;
switched to db demoshow tables;
ordersdb.orders.drop()
trueshow tables;exit
bye10导入数据进行恢复
rootnode1:~/backup# mongoimport -d demo -c orders --file /root/backup/orders.json --type json
2023-11-26T21:29:06.494-0800 connected to: mongodb://localhost/
2023-11-26T21:29:09.495-0800 [########................] demo.orders 16.7MB/48.0MB (34.8%)
2023-11-26T21:29:12.495-0800 [################........] demo.orders 32.0MB/48.0MB (66.8%)
2023-11-26T21:29:15.311-0800 [########################] demo.orders 48.0MB/48.0MB (100.0%)
2023-11-26T21:29:15.311-0800 200000 document(s) imported successfully. 0 document(s) failed to import.11查看恢复情况
rootnode1:~/backup# mongo
……use demo
switched to db demoshow tables;
ordersdb.orders.count()
200000exit
bye二、问题
1.MongoDB有哪些命令行工具实现数据备份与恢复
1命令行工具
MongdoDB一共提供了4个命令行工具给我们对数据进行备份与恢复以及导入与导出数据。
2备份与恢复
备份与恢复操作的数据文件格式是bson格式二进制
1数据备份
mongodump -h dbhost -d dbname -o dbdirectory
# 例如备份一个demo的数据库
mongodump -h 127.0.0.1:27017 -d demo -o /root/backup2)数据恢复
mongorestore -h dbhost -d dbname --dir dbdirectory --drop
# 例如恢复上面备份的demo数据库
mongorestore -h 127.0.0.1:27017 -d demo --dir /root/backup/demo
(3) 导入与导出
导入与导出数据的数据文件格式是json格式文本格式
1 数据导出
mongoexport -d dbname -c collectionname -o file --type json/csv -f field
# 例如导出demo数据库的orders集合数据
mongoexport -d demo -c orders -o /root/backup/orders.json --type json2) 数据导入
mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field
# 例如把上面导出的json中的数据导入到demo数据库的orders集合中
mongoimport -d demo -c orders --file /order/backup/orders.json --type json