mongodb-导入导出

1、用mongodb工具备份和恢复数据库
因为所有这些工具主要是通过与正在运行的mongod实例交互操作,他们可能会影响正在运行的数据库的性能。
影响:
(1)、增加正在运行数据库实例的交互量;
(2)、强制数据库通过内存中所有的数据(造成内存中需要频繁被访问的数据被取代,降低数据库的性能)

二进制BSON转储(小规模部署转储)

Backup a Database with mongodump
mongodump:该方法可以备份整个服务器,数据库或集合(collection,即表),或者可以使用查询备份集的一部分。
mongodump 不转储本地local数据库
(1)mongodump
导出默认端口为27017的所有实例的数据,备份文件的路径为当前路径下的dump/
(2)mongodump --host mongodb.example.net --port 27017
指定ip和端口的数据库实例。
(3)mongodump --out /data/backup/
要指定不同的输出目录,则可以使用–out或-o选项:
(4)mongodump --collection myCollection --db test
指定导出的数据库实例和集合
(5)mongodump --host mongodb1.example.net --port 3017 --username user --password pass --out /opt/backup/mongodump-2013-10-24
备份非本地的mongod实例
mongodump命令导出的文件默认在当前文件夹的/dump目录下面,注意多次导出时会出现文件的覆盖。

mongorestore:回复数据库,这个命令的执行需要这个用户有读写数据库的权限。
使用参数 --oplogReplay 可以解决权限问题
(1)mongorestore --port
还原本地数据库
(2)mongorestore --oplogReplay
导出时用了–oplog参数
(3)mongorestore --host mongodb1.example.net --port 3017 --username user --password pass /opt/backup/mongodump-2013-10-24
还原非本地的数据库实例

在使用mongorestore恢复数据时用–objcheck 检查对象的完整性 --drop 恢复数据库之前先删除collection

避免使用mongoimport and mongoexport操作完整的数据库实例,这两个命令它们不可靠保存所有富BSON数据类型,建议使用mongodump和mongorestore操作。

collection Export with mongoexport
mongoexport:
(1)mongoexport --db users --collection contacts --type=csv --fields name,address --out /opt/backups/contacts.csv
导出数据库users 集合contacts中fild(列)为name和address的数据
可以将 name和address列放在一个文件fields.txt中,在这里插入图片描述
mongoexport --db users --collection contacts --type=csv --fieldFile fields.txt --out /opt/backups/contacts.csv
eg
[root@localhost backups]# mongoexport --db local --collection student --type=csv --fields name,sex --out /opt/backups/student.csv

(2)mongoexport --db sales --collection contacts --out contacts.json
导出json格式
./mongoexport --host 127.0.0.1 --port 27017 --db e-store --collection customer --out customer.json;

(3)mongoexport --host mongodb1.example.net --port 37017 --username user --password pass --collection contacts --db marketing --out mdb1-examplenet.json
远程导出

(4)mongoexport --db sales --collection contacts --query ‘{“field”: 1}’
带查询条件的导出

collection Import with mongoimport
(1)mongoimport --db users --collection contacts --file contacts.json
导入json数据

(2)mongoimport --host mongodb1.example.net --port 37017 --username user --password pass --collection contacts --db marketing --file /opt/backups/mdb1-examplenet.json
导入json数据到远程数据库

(3)mongoimport --db users --collection contacts --type csv --headerline --file /opt/backups/contacts.csv
csv导入
–headerline,使用cvs文件中的第一行字段作为collection中的field

(4)mongoimport --db users --type csv --headerline --file /opt/backups/contacts.csv
在导入的collection名称和文件名称是相同的可以省略 --collection <collection名称>

–ignoreBlanks 在导入时使用这个参数来处理cvs中字段为空的情况

如果只是想简单的复制数据库或collection可以使用如下方法:
copydb、clone、cloneCollection db.copyDatabase()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值