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

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

时间: 2024-11-04 20:39:16

mongodb的导入/导出/备份/还原的相关文章

mysqldump、into outfile和load data进行数据库导入导出备份差别

遇到了大批量导入导出数据的时候真的比较麻烦,动则几G的数据,操作起来也是比较慢的,而且如果稍有不慎,还要重写处理,最简单的方法也是效率最低的方法就是使用PHP写导入导出数据程序,用Shell来跑PHP,可是大家一直忽略了mysqldump 和mysql的into outfile 与load data ,如果这几个命令使用灵活了,对于数据库导入导出以及备份是很方便的. 使用mysqldump 和 source导入导出备份数据 如果要导出整个数据库或者某一个数据库的一个表,并且保持数据库中表的名字不

windows 导入导出备份MySQL数据库命令行

备份 1    开始菜单 | 运行 | cmd | 2    MySQL命令行导出数据库: 进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd D:\mysql-5.6.24-win32\bin (或者直接将windows的环境变量path中添加该目录) 3    导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令行:mysqldump -u root -p yyp > yyp.sql   (输入后会让你

MongoDB的导入导出(7)

导入/导出可以操作的是本地的mongodb服务器,也可以是远程的. 所以,都有如下通用选项: -h host   主机 --port port    端口 -u username 用户名 -p passwd   密码 mongoexport 导出json格式的文件 问: 导出哪个库,哪张表,哪几列,哪几行? -d  库名 -c  表名 -f  field1,field2...列名 -q  查询条件 -o  导出的文件名 -- csv  导出csv格式(便于和传统数据库交换数据) 例: [[ema

MongoDB的导入导出

一:MongoDB的导出功能 mongodb提供了导入和导出的功能,分别是MongoDB下载目录下的mongoexport.exe和mongoimport.exe文件 ,具体的导出命令格式如下: mongoexport -h dbhost -d dbname -c collectionName -o output 参数说明: -h 数据库地址 -d 指明使用的库 -c 指明要导出的集合 -o 指明要导出的文件名(文件支持多种格式,如txt,wps,xls等) 具体示例: mongoexport

mongodb导入导出备份恢复

mongodb数据库同样离不开必要的维护,如备份.恢复.导入.导出. 其实备份和恢复比导入和导出要方便些,而且一般不会出错,所以大部分时候使用备份和恢复操作就可以了 1. 备份Mongodb mongodump -h RuiyIp -d dataname -o /home/aa/dev/mongodb/data mongodump mongo导出数据库命令 mongodump --help 可以查看该命令下所有的帮助 -h 导出源 -d 要导出的数据库名称 -o 数据库要导出的位置 在终端滚过N

mongodb数据导入导出以及备份恢复

数据导出 mongoexport 假设库里有一张user 表,里面有2 条记录,我们要将它导出 > use my_mongodb switched to db my_mongodb > db.user.find(); { "_id" : ObjectId("4f81a4a1779282ca68fd8a5a"), "uid" : 2, "username" : "Jerry", "age

[elk]elasticsearch dashboard+保留10天内索引+导入导出备份

es dashboard 有两款 head 这款我一直在用 https://github.com/mobz/elasticsearch-head 先修改es的配置文件: elasticsearch.yml追加 http.cors.enabled: true http.cors.allow-origin: "*" docker run -d -v /etc/localtime:/etc/localtime --restart=always -p 9100:9100 mobz/elasti

MongoDB数据导入导出

——————(1)数据导出———————— 导出为JSON格式 mongoexport -d '数据库' -c '表名' -o ***.json 导出为csv mongoexport -d '数据库' -c '表名' --csv -f hostname, startTime -o **.csv //指定每列代表什么 ——————(2)数据导入———————— db.createCollection('log') mongoimport -d ‘数据库’ -c '表名' --file 'json名

mongoDB数据库导入导出

1. mongodump -h 127.0.0.1:27017 -d student -o D:\shujuku   导出  127.0.0.1:27017指的是访问地址,student 指的是数据库的名字 D:\shujuku  指的是想要导出数据库问价的路径2.  mongorestore -h 127.0.0.1:27017 -d student D:\shujuku\student    导入