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

 

注意:恢复数据库时,数据库必须先存在,否则报错。

posted @ 2023-03-28 11:28  技术颜良  阅读(220)  评论(0编辑  收藏  举报