mongodb的导入/导出/备份/还原
1.mongoexport是mongo自带的数据导入工具,使用方法比较简单,
以下是mongoexport常用的几个参数.
[[email protected] admin]# mongoexport --help
-h [ --host ] # 主机ip
--port # 端口
-u [ --username ] # 验证用户名
-p [ --password ] # 验证密码
--authenticationDatabase # 身份验证库
-d [ --db ] # 目标集合所在库
-c [ --collection ] # 集合
-q [ --query ] # 过滤集合
-o [ --out ] # 输出的目标的位置(路径)
实例一:导出集合中的所有数据。
[[email protected] backup]# mongoexport --host=10.0.26.90 --port=38018 --authenticationDatabase=admin --username=root [email protected] --db=test--collection=players --out=/home/backup/players.txt
connected to: 10.0.26.90:38018
exported 311 records
实例二:导出集合中的部分数据.
[[email protected] backup]# mongoexport --host=10.0.26.90 --port=38018 --authenticationDatabase=admin --username=root [email protected] --db=test --query=‘{_id: ObjectId("54c9a536361ebf304044f104")}‘ --collection=players --out=/home/backup/players.txt
connected to: 10.0.26.90:38018
exported 1 records
Note:1.Mongodump不能多个集合一起导出,只能一个集合一个集合的导出。
2.mongoimport 数据导入工具。
以下是mongoimport 常用的几个参数.
[[email protected] ~]# mongoimport --help
-h [ --host ] # 主机ip
--port arg # 端口
-u [ --username ] # 验证用户名
-p [ --password ] # 验证密码
--authenticationDatabase # 用户验证数据库(即)
-d [ --db ] # 需要备份的数据
-c [ --collection ] # 集合
--drop # 在导入之前删除之前的对象。
--stopOnError # 遇到错误立刻停止导入
实例三 :
[[email protected] /]# mongoimport --host=10.0.26.90 --port=27017 --authenticationDatabase=admin --username=root [email protected] --db=mytest --collection=players /home/data/players.txt --drop
connected to: 10.0.26.90
Sun Jan 25 21:44:06.740 check 9 4711
Sun Jan 25 21:44:06.889 imported 4711 objects
3.mongodump 数据库备份。
以下是mongoimport 常用的几个参数.
[[email protected] backup]# mongodump --help
-h [ --host ] # 主机IP
--port # 端口
-u [ --username ] # 验证用户名
-p [ --password ] # 验证密码
--authenticationDatabase # 指定身份验证库(当需要备份的数据库和身份验证库不一样用到)
-d [ --db ] #指定需要备份的备份db
-o [ --out ] # 输出位置(最好为完整路径)
--oplog #备份oplog日志(这个很重要)
note: 用mongodump 备份数据不能得到一个完整的数据备份,在使用mongodump备份的过程, 不会锁定整个库(也就说在备份过程中,允许数据的写入) ,这种备份方式备份出来的数据不能保证数据的一致性,,为了保证备份出来的数据是一致的,可以使用oplog,来备份,oplog日志(前提是要开启oplog日志)。--oplog 这个参数会强制mongodump备份自备份开始的所有的数据库操作.在备份完最后的一个oplog 的时刻,数据是一致性的。启用--oplog这个参数后,在备份目录中可以看到oplog.bson ,文件 。这个文件中包含备份开始以后的所有数据库操作。这个oplog.bson是一个二进制文件,无法查看。
实例四:mongodump备份单个数据库。
[[email protected] backup]# mongodump --host=10.0.26.90 --port=38018 --username=root [email protected] --authenticationDatabase=admin --db=test --out=/home/backup/backup_gow
connected to: 10.0.26.90:38018
Mon Feb 2 00:45:34.854 DATABASE: gow to /home/bckup/backup_gow/gow
Mon Feb 2 00:45:34.948 gow.system.indexes to /home/bckup/backup_gow/gow/system.indexes.bson
Mon Feb 2 00:45:34.957 31 objects
Mon Feb 2 00:45:34.957 gow.gow to /home/bckup/backup_gow/gow/gow.bson
[[email protected] backup_gow]# ll
total 4
drwxr-xr-x. 2 root root 4096 Feb 2 00:45 gow
实例五:备份多个数据库(所有数据库,local除外)
[[email protected] backup_gow]# mongodump --host=10.0.26.90 --port=38017 --username=root [email protected] --authenticationDatabase=admin --out=/home/bckup/backup_all
connected to: 10.0.26.90:38017
Mon Feb 2 00:49:48.979 all dbs
Mon Feb 2 00:49:49.014 DATABASE: admin to /home/bckup/backup_all/admin
Mon Feb 2 00:49:49.087 admin.system.indexes to /home/bckup/backup_all/admin/system.indexes.bson
[[email protected] backup_all]# ll
total 12
drwxr-xr-x. 2 root root 4096 Feb 2 00:49 admin
drwxr-xr-x. 2 root root 4096 Feb 2 00:49 gow
drwxr-xr-x. 2 root root 4096 Feb 2 00:49 manage
[[email protected] backup_all]# pwd
/home/bckup/backup_all
4.mongorestore数据还原
[email protected] 12013207206620150130]# mongorestore --help
-h [ --host ] #主机ip
--port # 端口
-u [ --username ] # 验证用户名
-p [ --password ] # 验证密码
--authenticationDatabase # 身份验证db
-d [ --db ] # 需要还原的db
--drop # 在导入数据之前删除集合
--oplogReplay # 应用oplog中的日志(这个很重要)
Note:应用oplog.bson文件中的操作。
[[email protected] backup_all]# pwd
/home/bckup/backup_all
[[email protected] backup_all]# ll
total 12
drwxr-xr-x. 2 root root 4096 Feb 2 00:49 admin
drwxr-xr-x. 2 root root 4096 Feb 2 00:49 gow
drwxr-xr-x. 2 root root 4096 Feb 2 00:49 manage
实例一:还原所有db
[[email protected] ~]# mongorestore --host=10.0.26.90 --port=38019 --username=root
[email protected] /home/bckup/backup_all --drop
connected to: 10.0.26.90:38019
Mon Feb 2 02:03:09.125 /home/bckup/backup_all/manage/items.bson
Mon Feb 2 02:03:09.125 going into namespace [manage.items]
Mon Feb 2 02:03:09.125 dropping
[[email protected] backup_gow]# ll
total 4
drwxr-xr-x. 2 root root 4096 Feb 2 00:45 gow
[[email protected] backup_gow]# pwd
/home/bckup/backup_gow
实例二:还原指定db
[[email protected] ~]# mongorestore --host=10.0.26.90 --port=38019
--username=root ,[email protected] /home/bckup/backup_all/gow --db=gow --drop
connected to: 10.0.26.90:38019
Mon Feb 2 02:06:21.012 /home/bckup/backup_all/gow/robots.bson
Mon Feb 2 02:06:21.012 going into namespace [gow.robots]
Mon Feb 2 02:06:21.012 dropping
备份/还原参考链接:
http://my.oschina.net/169/blog/158976