mongodb的导入/导出/备份/还原


mongodb的导入/导出/备份/还原


1.mongoexportmongo自带的数据导入工具,使用方法比较简单,

以下是mongoexport常用的几个参数.

[root@localhost admin]# mongoexport --help  

  -h [ --host ]              #  主机ip 

  --port                   # 端口 

  -u [ --username ]          # 验证用户名          

  -p [ --password ]          # 验证密码           

  --authenticationDatabase   # 身份验证库        

  -d [ --db ]               # 目标集合所在库       

  -c [ --collection ]         # 集合     

  -q [ --query ]            # 过滤集合     

  -o [ --out ]              # 输出的目标的位置(路径)

 

实例一:导出集合中的所有数据。

[root@localhost backup]# mongoexport --host=10.0.26.90  --port=38018  --authenticationDatabase=admin --username=root --password=test@2014 --db=test--collection=players  --out=/home/backup/players.txt 

connected to: 10.0.26.90:38018

exported 311 records

   

实例二:导出集合中的部分数据.

[root@localhost backup]# mongoexport --host=10.0.26.90  --port=38018  --authenticationDatabase=admin --username=root  --password=test@2014 --db=test --query=‘{_id: ObjectId("54c9a536361ebf304044f104")}‘  --collection=players --out=/home/backup/players.txt 

connected to: 10.0.26.90:38018

exported 1 records

 

Note1.Mongodump不能多个集合一起导出,只能一个集合一个集合的导出。

      

 

2.mongoimport 数据导入工具。 

 以下是mongoimport 常用的几个参数.

 [root@localhost ~]# mongoimport  --help  

 -h [ --host ]                 # 主机ip       

 --port arg                   # 端口        

 -u [ --username ]             # 验证用户名

 -p [ --password ]             # 验证密码 

 --authenticationDatabase      # 用户验证数据库()  

 -d [ --db ]                  # 需要备份的数据

 -c [ --collection ]            # 集合  

 --drop                      #  在导入之前删除之前的对象。        

 --stopOnError               #  遇到错误立刻停止导入

 

 

 

实例三 :

[root@localhost /]# mongoimport  --host=10.0.26.90 --port=27017 --authenticationDatabase=admin  --username=root --password=anyu@2014 --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 常用的几个参数.

 [root@localhost 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备份单个数据库。

[root@localhost backup]# mongodump --host=10.0.26.90 --port=38018 --username=root  --password=test@2014 --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

 

[root@localhost backup_gow]# ll

total 4

drwxr-xr-x. 2 root root 4096 Feb  2 00:45 gow

 

 

 

 

实例五:备份多个数据库(所有数据库,local除外)

 [root@localhost backup_gow]# mongodump --host=10.0.26.90 --port=38017 --username=root  --password=test@2014  --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

 

 

[root@localhost 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

[root@localhost backup_all]# pwd

/home/bckup/backup_all

 

4.mongorestore数据还原

root@localhost 12013207206620150130]# mongorestore  --help  

  -h [ --host ]               #主机ip

  --port                     # 端口

  -u [ --username ]            # 验证用户名

  -p [ --password ]            # 验证密码 

  --authenticationDatabase     #  身份验证db

  -d [ --db ]                  # 需要还原的db

  --drop                     #  在导入数据之前删除集合

  --oplogReplay              # 应用oplog中的日志(这个很重要)  

 

Note:应用oplog.bson文件中的操作。

 

 

 

 

 

 

[root@localhost backup_all]# pwd

/home/bckup/backup_all

[root@localhost 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

[root@localhost ~]# mongorestore --host=10.0.26.90 --port=38019 --username=root

--password=test@2014   /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

 

 

[root@localhost backup_gow]# ll

total 4

drwxr-xr-x. 2 root root 4096 Feb  2 00:45 gow

[root@localhost backup_gow]# pwd

/home/bckup/backup_gow

 

实例二:还原指定db

[root@localhost ~]# mongorestore --host=10.0.26.90 --port=38019  

--username=root  ,--password=test@2014  /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

 


本文出自 “SQLServer MySQL” 博客,请务必保留此出处http://dwchaoyue.blog.51cto.com/2826417/1610866

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。