MongoDB数据备份与恢复
连接端口:mongos的端口
备份指定的库
[root@linux ~]# mongodump --port 27017 -d db1 -o /tmp/mongobak
#将db1库备份到/tmp/mongobak目录下
备份目录下会自动生成以库名命名的目录
[root@linux ~]# ls /tmp/mongobak/db1/
cl01.bson cl01.metadata.json
#每个集合会生成2个文件,数据存放在.bson文件中,该文件为二进制文件,不能直接查看
备份指定集合
[root@linux ~]# mongodump --port 27017 -d db1 -c cl01 -o /tmp/mongobak
#依然会在备份目录下生成以库名命名的目录,将备份出的集合存放到该目录中
备份所有库
[root@linux ~]# mongodump --port 27017 -o /tmp/mongobak
导出集合为json文件
[root@linux ~]# mongoexport --port 27017 -d db1 -c cl01 -o /tmp/cl01.json
查看json文件
[root@linux ~]# head -5 /tmp/cl01.json
{"_id":{"$oid":"5dfb6786a2dbe0c90a06c844"},"id":1.0,"test":"testval"}
{"_id":{"$oid":"5dfb6786a2dbe0c90a06c845"},"id":2.0,"test":"testval"}
{"_id":{"$oid":"5dfb6786a2dbe0c90a06c846"},"id":3.0,"test":"testval"}
{"_id":{"$oid":"5dfb6786a2dbe0c90a06c847"},"id":4.0,"test":"testval"}
{"_id":{"$oid":"5dfb6786a2dbe0c90a06c848"},"id":5.0,"test":"testval"}
恢复所有库
[root@linux ~]# mongorestore --port 27017 --drop /tmp/mongobak/
恢复指定的库
[root@linux ~]# mongorestore --port 27017 -d db1 /tmp/mongobak/db1/
恢复指定的集合
[root@linux ~]# mongorestore --port 27017 -d db1 -c cl01 /tmp/mongobak/db1/cl01.bson 将json文件的数据导入集合
[root@linux ~]# mongoimport --port 27017 -d db1 -c cl01 --file /tmp/cl01.json
注意:恢复数据库时,数据库必须先存在,否则报错。
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2022-03-28 夜莺监控Nightingale