mongodb的数据库导出与恢复

ubuntu下导出Mongodb

$ mongodump -h test.xxxx.com:52000 -d dataname -o /home/aa/dev/mongodb/data

mongodump mongo导出数据库命令 mongodump –help 可以查看该命令下所有的帮助

-h 导出源
-d 要导出的数据库名称
-o 数据库要导出的位置

在终端滚过N行之后,数据库导出完成,可以去/home/aa/dev/mongodb/data 目录下查看导出的文件,bson格式的(我导出后没有马上就看到文件,等了一会才出现的,原因不明)

然后数据库恢复使用:mongorestore 命令

$ mongorestore -d cmsdev  /home/xx/dev/mongodb/data/cmsdev

-d 使用的数据库名称
后面直接加你刚才导出的目录,这样是直接恢复所有表

如果-c 是恢复一个表

mongodb提供了两个命令来备份(mongodump )和恢复(mongorestore )数据库。

1.备份(mongodump )

用法 :
[root@web3 3]# mongodump –help
options:
–help                   produce help message
-v [ –verbose ]         be more verbose (include multiple times for more
verbosity e.g. -vvvvv)
-h [ –host ] arg        mongo host to connect to (“left,right” for pairs)
-d [ –db ] arg          database to use
-c [ –collection ] arg  collection to use (some commands)
-u [ –username ] arg    username
-p [ –password ] arg    password
–dbpath arg             directly access mongod data files in the given path,
instead of connecting to a mongod instance – needs
to lock the data directory, so cannot be used if a
mongod is currently accessing the same path
–directoryperdb         if dbpath specified, each db is in a separate
directory
-o [ –out ] arg (=dump) output directory

例子:

[root@web3 ~]# mongodump -h 192.168.1.103 -d citys -o /backup/mongobak/3
connected to: 192.168.1.103
DATABASE: citys  to     /backup/mongobak/3/citys
citys.building to /backup/mongobak/3/citys/building.bson
13650 objects
citys.system.indexes to /backup/mongobak/3/citys/system.indexes.bson
1 objects

备份出来的数据是二进制的,已经经过压缩。比实际数据库要小很多,我的数据库显示占用了260多M,备份后只有2M。

2.恢复(mongorestore )

用法:
[root@web3 3]# mongorestore –help
usage: mongorestore [options] [directory or filename to restore from]
options:
–help                  produce help message
-v [ –verbose ]        be more verbose (include multiple times for more
verbosity e.g. -vvvvv)
-h [ –host ] arg       mongo host to connect to (“left,right” for pairs)
-d [ –db ] arg         database to use
-c [ –collection ] arg collection to use (some commands)
-u [ –username ] arg   username
-p [ –password ] arg   password
–dbpath arg            directly access mongod data files in the given path,
instead of connecting to a mongod instance – needs to
lock the data directory, so cannot be used if a
mongod is currently accessing the same path
–directoryperdb        if dbpath specified, each db is in a separate
directory
–drop                  drop each collection before import
–objcheck              validate object before inserting

–drop参数可以在导入之前把collection先删掉。

例子:

[root@web3 3]# mongorestore -h 127.0.0.1 –directoryperdb /backup/mongobak/3/
connected to: 127.0.0.1
/backup/mongobak/3/citys/building.bson
going into namespace [citys.building]
13667 objects
/backup/mongobak/3/citys/system.indexes.bson
going into namespace [citys.system.indexes]
1 objects

另外mongodb还提供了mongoexport 和 mongoimport 这两个命令来导出或导入数据,导出的数据是json格式的。也可以实现备份和恢复的功能。

例:

mongoexport -d mixi_top_city_prod -c building_45 -q ‘{ “uid” : “10832545” }’ > mongo_10832545.bson

mongoimport -d mixi_top_city -c building_45 –file mongo_10832545.bson

相关文章

发表评论

返回顶部