代码改变世界

mongodb备份与恢复

2013-01-30 10:35  service_niao  阅读(257)  评论(0编辑  收藏  举报

>mongodump -h dbhost -d dbname -odbdirectory

-h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017

-d:需要备份的数据库实例,例如:test

-o:备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。

 

>mongorestore -h dbhost -d dbname --directoryperdbdbdirectory

-h:MongoDB所在服务器地址

-d:需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2

--directoryperdb:备份数据所在位置,例如:c:\data\dump\test,这里为什么要多加一个test,而不是备份时候的dump,读者自己查看提示吧!

--drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!

 

[mongo@redhatB tf]$ mongoexport -h 127.0.0.1 -d test -c test_2 -f id,name,address --csv -o test_2.csv
connected to: 127.0.0.1
exported 4 records

备注:以上导出数据库 test 的集合 test_2,并将数据以 csv 格式导出。
-h 表示主机IP或主机名; -d 表示数据库名; -c 表示集合名; -f 表示所选集合的字段;
-o 表示导出的文件名。

mongoexport -h 127.0.0.1 -d test -c test_2 -o test_2.json
connected to: 127.0.0.1
exported 4 records

数据导入
导入json数据
[root@localhost bin]# ./mongoimport -d my_mongodb -c user user.dat
connected to: 127.0.0.1
imported 2 objects
[root@localhost bin]#
导入CSV数据
[root@localhost bin]# ./mongoimport -d my_mongodb -c user --type csv --headerline --file
user_csv.dat
connected to: 127.0.0.1
imported 3 objects
[root@localhost bin]#
参数说明
-type 指明要导入的文件格式
-headerline 批明不导入第一行,因为第一行是列名
-file 指明要导入的文件路径