MongoDB备份和恢复
数据备份
在 MongoDB 中我们可以使用 mongodump 命令来对 MongoDB 进行数据备份,该命令可以导出所有数据到指定目录中,也可以通过参数将导出数据转存的服务器。其语法格式如下:mongodump -h dbhost -d dbname -o dbdirectory
参数说明如下:- -h:MongDB 所在服务器的地址,例如:127.0.0.1,同时也可以指定端口号,例如:127.0.0.1:27017;
- -d:需要备份的数据库实例,例如:test;
- -o:备份数据存放的位置,例如:c:\data\dump,该目录需要提前建立,在备份完成后,系统会自动在 dump 目录下建立一个 test 目录,并在这个目录里面存放该数据库实例的备份数据。
【示例】假设在电脑本地(127.0.0.1)的 27017 端口运行 MongoDB 服务,然后打开命令提示符(CMD)窗口并进入 MongoDB 安装目录下的 bin 目录,最后输入
mongodump
命令,运行结果如下:
C:\Users\79330>D:
D:\>cd install/MongoDB/bin
D:\install\Mongodb\bin>mongodump
2021-02-25T11:22:39.468+0800 writing admin.system.version to
2021-02-25T11:22:39.516+0800 done dumping admin.system.version (1 document)
2021-02-25T11:22:39.516+0800 writing bianchengbang.course to
2021-02-25T11:22:39.517+0800 done dumping bianchengbang.course (3 documents)
mongodump
命令将连接到运行于
127.0.0.1:27017
的 MongoDB 服务器上,并将服务器中的所有数据备份到 MongoDB 安装目录下的 /bin/dump/ 目录下。
下表中列举了可以与
mongodump
命令一起使用的参数列表:
语法 | 描述 | 实例 |
---|---|---|
mongodump --host HOST_NAME --port PORT_NUMBER | 该命令将备份所有 MongoDB 数据 | mongodump --host xnip.cn --port 27017 |
mongodump --dbpath DB_PATH --out BACKUP_DIRECTORY | 该命令将仅备份指定路径上的指定数据库 | mongodump --dbpath /data/db/ --out /data/backup/ |
mongodump --collection COLLECTION --db DB_NAME | 该命令将备份指定数据库的集合 | mongodump --collection mycol --db test |
恢复数据
要想还原备份的数据,您可以使用 MongoDB 的 mongorestore
命令,此命令会从备份目录还原所有数据,语法格式如下:
mongorestore
【示例】下面通过一个简单的示例演示一下 mongorestore
命令的使用:
D:\install\Mongodb\bin>mongorestore
2021-02-25T13:26:27.757+0800 using default 'dump' directory
2021-02-25T13:26:27.775+0800 preparing collections to restore from
2021-02-25T13:26:27.776+0800 reading metadata for bianchengbang.course from dump\bianchengbang\course.metadata.json
2021-02-25T13:26:27.791+0800 restoring bianchengbang.course from dump\bianchengbang\course.bson
2021-02-25T13:26:27.800+0800 restoring indexes for collection bianchengbang.course from metadata
2021-02-25T13:26:27.813+0800 finished restoring bianchengbang.course (3 documents)
2021-02-25T13:26:27.814+0800 done