MongoDB导出-导入-迁移
linux环境下,将mongodb迁移到同机器,不同端口上。
命令参数:
[mongodb@pera bin]$ ./mongodump --help
Export MongoDB data to BSON files.
options:
--help produce help message
-v [ --verbose ] be more verbose (include multiple times for more
verbosity e.g. -vvvvv)
--version print the program's version and exit
-h [ --host ] arg mongo host to connect to ( <set name>/s1,s2 for
sets)
--port arg server port. Can also use --host hostname:port
--ipv6 enable IPv6 support (disabled by default)
-u [ --username ] arg username
-p [ --password ] arg password
--dbpath arg directly access mongod database files in the given
path, instead of connecting toa mongod server -
needs to lock the datadirectory, so cannot be used
if a mongod is currentlyaccessing the same path
--directoryperdb if dbpath specified, each db is in a separate
directory
--journal enable journaling
-d [ --db ] arg database to use
-c [ --collection ] arg collectionto use (some commands)
-o [ --out ] arg (=dump) output directoryor "-" for stdout
-q [ --query ] arg json query
--oplog Use oplog for point-in-time snapshotting
--repair try to recover a crashed database
--forceTableScan force a table scan (do not use $snapshot)
[mongodb@pera bin]$ ./mongorestore --help
Import BSON files into MongoDB.
usage: ./mongorestore [options] [directory or filenameto restore from]
options:
--help produce help message
-v [ --verbose ] be more verbose (include multiple times for more
verbosity e.g. -vvvvv)
--version print the program's version and exit
-h [ --host ] arg mongo host to connect to ( <set name>/s1,s2 for sets)
--port arg server port. Can also use --host hostname:port
--ipv6 enable IPv6 support (disabled by default)
-u [ --username ] arg username
-p [ --password ] arg password
--dbpath arg directly access mongod database files in the given
path, instead of connecting to amongod server -
needs to lock the data directory, socannot be used
if a mongod is currently accessingthe same path
--directoryperdb if dbpath specified, each db is in a separate
directory
--journal enable journaling
-d [ --db ] arg database to use
-c [ --collection ] arg collection to use(some commands)
--objcheck validate object before inserting
--filter arg filter to apply before inserting
--drop drop each collection before import
--oplogReplay replay oplog for point-in-time restore
--oplogLimit arg exclude oplog entries newer than provided timestamp
(epoch[:ordinal])
--keepIndexVersion don't upgrade indexes to newest version
--noOptionsRestore don't restore collection options
--noIndexRestore don't restore indexes
--w arg (=1) minimum number of replicas per write
主机信息:
[root@pera ~]# more /etc/redhat-release
Red Hat Enterprise Linux Server release 5.6(Tikanga)
[root@pera ~]# uname -a
Linux pera 2.6.18-238.el5xen #1 SMP Sun Dec 1914:42:02 EST 2010 x86_64 x86_64 x86_64 GNU/Linux
[root@pera ~]# more /proc/cpuinfo |grepmodel
model : 15
model name : Intel(R)Pentium(R) Dual CPU E2180 @ 2.00GHz
model : 15
model name : Intel(R)Pentium(R) Dual CPU E2180 @ 2.00GHz
[root@pera ~]# cat /proc/meminfo |grep Mem
MemTotal: 1784832 kB
MemFree: 5528kB
[root@pera ~]# free
total used free shared buffers cached
Mem: 1784832 1777060 7772 0 964 1600104
-/+ buffers/cache: 175992 1608840
Swap: 5144568 150492 4994076
使用mongodump数据导出
[root@pera bin]# su -mongodb
[mongodb@pera bin]$ ./mongo
MongoDB shell version: 2.2.2
connecting to: test
> show dbs
admin (empty)
bamuta 19.9443359375GB
local 6.2001953125GB
>
[mongodb@pera bin]$ ./mongodump -d bamuta -o/home/mongodb/backupdmp/
connected to: 127.0.0.1
Mon Sep 9 13:53:53 DATABASE: bamuta to /home/mongodb/backupdmp/bamuta
Mon Sep 9 13:53:53 bamuta.system.usersto /home/mongodb/backupdmp/bamuta/system.users.bson
Mon Sep 9 13:53:53 1 objects
Mon Sep 9 13:53:53 Metadatafor bamuta.system.users to /home/mongodb/backupdmp/bamuta/system.users.metadata.json
Mon Sep 9 13:53:53 bamuta.DataInfoto /home/mongodb/backupdmp/bamuta/DataInfo.bson
Mon Sep 9 13:53:56 64300/9301940 0% (objects)
Mon Sep 9 13:53:59 132100/9301940 1% (objects)
Mon Sep 9 14:07:19 9257300/9301940 99% (objects)
Mon Sep 9 14:07:22 9295600/9301940 99% (objects)
Mon Sep 9 14:07:22 9301940 objects
Mon Sep 9 14:07:22 Metadatafor bamuta.DataInfo to /home/mongodb/backupdmp/bamuta/DataInfo.metadata.json
查看备份的文件:
[mongodb@pera bamuta]$ ls -sh
5.3G DataInfo.bson 4.0KDataInfo.metadata.json 4.0K system.users.bson 4.0Ksystem.users.metadata.json
在另1个端口导入。
先在这个端口创建服务,用户
./mongod --port27019 --dbpath /home/mongodb/mongodbsoft/data27019 --logpath/home/mongodb/mongodbsoft/log27019/
./mongo --port27019
> use bamuta
> db.addUser ("bamuta","bamuta");
然后导入
[mongodb@pera bin]$ ./mongorestore-d bamuta --port 27019 /home/mongodb/backupdmp/bamuta
connected to: 127.0.0.1:27019
Tue Sep 10 13:46:21 /home/mongodb/backupdmp/bamuta/DataInfo.bson
Tue Sep 10 13:46:21 going intonamespace [bamuta.DataInfo]
Tue Sep 10 13:46:21 warning: Restoring to bamuta.DataInfowithout dropping. Restored data will be inserted without raising errors; checkyour server log
Tue Sep 10 13:46:24 42747425/5670385368 0% (bytes)
Tue Sep 10 13:46:27 67203485/5670385368 1% (bytes)
Tue Sep 10 13:46:30 91269402/5670385368 1% (bytes)
Tue Sep 10 13:46:33 116882155/5670385368 2% (bytes)
Tue Sep 10 14:14:18 5659258036/5670385368 99% (bytes)
9301940 objects found
Tue Sep 10 14:14:20 Creatingindex: { key: { _id: 1 }, ns: "bamuta.DataInfo", name:"_id_" }
Tue Sep 10 15:00:55 warning: Restoring to bamuta.system.userswithout dropping. Restored data will be inserted without raising errors; checkyour server log
1 objects found
Tue Sep 10 15:00:55 Creatingindex: { key: { _id: 1 }, ns: "bamuta.system.users", name:"_id_" }
检查结果
> show dbs
bamuta 13.947265625GB
local (empty)
test 0.203125GB
可参考的官方文档:
http://docs.mongodb.org/manual/reference/program/mongodump/
http://docs.mongodb.org/manual/reference/program/mongorestore/