备份
备份MongoDB有多种方法,其中比较简单的就是使用mongodump。
docker exec -i <IMAGE_NAME> mongodump -d <DATABASE> --archive > ./mongo/collections.archive
- 以上命令会将<IMAGE_NAME>容器中的<DATABASE>数据库dump到host机器的collections.archive文件中。
- --archive会dump所有collection到一个文件。
- mongodump命令不提供目标路径的话会将dump结果输出到标准输出,这里使用>重定向输出到host的文件。
例如
docker exec -i fe81a51232d0 mongodump -u 'admin' -p '1234566!@#' --authenticationDatabase admin -d t_collections --archive > ./db-bak/dump-collections.archive
还原
这里使用host机器上的collections.archive文件进行还原。
docker exec -i <IMAGE_NAME> mongorestore --archive < ./mongo/collections.archive
- --archive模式导出的备份文件还原时必须也要加上--archive
- mongorestore命令不提供源路径的话会使用标准输入,这里使用<重定向host的文件作为mongorestore的输入。
例如
docker exec -i fe81a51232d0 mongorestore -u 'admin' -p '1234566!@#' --authenticationDatabase admin -d t_collections --archive < ./db-bak/dump-collections.archive
参数作用
参数 作用
-h host
--port 端口
-d 指定数据库
-o 指定备份到哪个目录,不指定应该是直接备份到根目录的/dump文件夹
-u 用户名
-p 密码
test 数据库名称
系统备份成功会在/home/dump目录下自动生成一个数据库名的文件夹/test,里面是全部Collection备份的bson文件。