备份语法:
mongodump命令脚本语法如下:
>mongodump -h dbhost -d dbname -o dbdirectory
- -h:
MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
- -d:
需要备份的数据库实例,例如:test
- -o:
备份的数据存放位置,例如:c:datadump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。
恢复语法:
mongodb使用 mongorestore 命令来恢复备份的数据。
语法
mongorestore命令脚本语法如下:
>mongorestore -h <hostname><:port> -d dbname <path>
- --host <:port>, -h <:port>:
MongoDB所在服务器地址,默认为: localhost:27017
- --db , -d :
需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
- --drop:
恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!
- <path>:
mongorestore 最后的一个参数,设置备份数据所在位置,例如:c:datadump est。
你不能同时指定 <path> 和 --dir 选项,--dir也可以设置备份目录。
- --dir:
指定备份的目录
你不能同时指定 <path> 和 --dir 选项。
1:windows系统环境下mongodb的备份恢复
备份语句:
mongodump.exe -d maxiangqian -o d:sqldata
完成了备份,看下具体的参数:
描述 | |
mongodump --host HOST_NAME --port PORT_NUMBER | mongodump --host w3cschool.cc --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 |
恢复数据:
mongorestore.exe -d maxiangqian d:sqldata
我在恢复数据以前已经删掉了原始数据库,现在这个就没问题了,直接恢复成功。
2:linux下mongodb数据库的备份恢复
备份有两种方式:
看第一种备份方式:
$ mongodump --host mongodb.example.net --port 27017 --db test --collection some --username backup --password passwd
以上会使mongodump连接到mongodb.example.net:27017上的mongod,并且把dbtest中的somecollection备份到dump目录下。
看第二种备份方式:
mongodump --dbpath /data/db --out /data/backup --db test --username backup --password passwd
在这种方式下不需要运行mongod实例,如果已经运行了,必须要停掉。--dbpath指定了数据库文件的位置。 mongodump会直接读取数据库文件,在读取过程中会lock数据文件夹,以防其他Mongodb实例写入而导致数据不一致。--out指定了备份存放的文件夹。
恢复方式:
mongorestore恢复数据的方式与mongodump相对应,也是分为两种:
第一种方式:
$ mongorestore --host mongodb.example.net --port 27017 --db test --collection some --username backup --password password /data/backup
以上会从/data/backup中恢复数据,其中只恢复testdb中somecollection到mongodb.example.net:27017中。如果不指定--host和--portoption,那么mongorestore会默认使用localhost:27017。
如果只想恢复部分数据,可以使用--filteroption:
$ mongorestore --filter '{"field": 1}'
以上会把dump文件夹数据中field为1的document恢复到mongod中。
第二种方式:
$ mongorestore --dbpath /data/db --journal /data/backup
以上可以在mongod没有运行的情况下把数据恢复到/data/db。--journaloption可以确保mongorestore在日志中记录所有的操作,这可以防止恢复操作异常中断(断电、磁盘故障)而引起的数据损坏