# 备份及恢复 [官网下载地址](https://www.mongodb.com/try/download/database-tools?tck=docs_databasetools) ![](./15.png) ```bash wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel80-x86_64-100.6.0.tgz tar zxf mongodb-database-tools-rhel80-x86_64-100.6.0.tgz cd mongodb-database-tools-rhel80-x86_64-100.6.0/ mv bin/* /usr/local/mongodb/bin/ ``` ## 备份 ```bash • 备份指定库 • mongodump --host 127.0.0.1 --port 20000 -u root --authenticationDatabase admin -d mydb -o /tmp/mongobak • 它会在/tmp/目录下面生成一个mydb的目录 • 备份所有库 • mongodump --host 127.0.0.1 --port 20000 -u root --authenticationDatabase admin -o /tmp/mongobak/alldatabase • 指定备份集合 • mongodump --host 127.0.0.1 --port 20000 -u root --authenticationDatabase admin -d mydb -c c1 -o /tmp/mongobak/ • 它依然会生成mydb目录,再在这目录下面生成两个文件 • 导出集合为json文件 • mongoexport --host 127.0.0.1 --port 20000 -u root --authenticationDatabase admin -d mydb -c c1 -o /tmp/mydb2/1.json ``` ## 恢复 ```bash • 恢复所有库 • mongorestore -h 127.0.0.1 --port 20000 --drop dir/ //其中dir是备份所有库的目录名字,其中--drop可选,意思是当恢复之前先把之前的数据删除,不建议使用 • 恢复指定库 • mongorestore -d mydb dir/ //-d跟要恢复的库名字,dir就是该库备份时所在的目录 • 恢复集合 • mongorestore -d mydb -c testc dir/mydb/testc.bson // -c后面跟要恢复的集合名字,dir是备份mydb库时生成文件所在路径,这里是一个bson文件的路径 • 导入集合 • mongoimport -d mydb -c testc --file /tmp/testc.json ```