|
|
@@ -0,0 +1,89 @@
|
|
|
+
|
|
|
+##MongoDB 备份数据库
|
|
|
+
|
|
|
+ bin/mongodump -h 192.168.1.107:40000 -d nsmongo -c postStore -q {"createdAt" : {"$gte": new Date(2013,4,1,0,0,0), "$lt" : new Date(2013, 5, 1, 0, 0, 0)}} -o /data/back/
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+ bin/mongodump --help
|
|
|
+ --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
|
|
|
+ --authenticationDatabase arg user source (defaults to dbname)
|
|
|
+ --authenticationMechanism arg (=MONGODB-CR)
|
|
|
+ authentication mechanism
|
|
|
+ --dbpath arg directly access mongod database files
|
|
|
+ in the given path, instead of
|
|
|
+ connecting to a mongod server - needs
|
|
|
+ to lock the data directory, so cannot
|
|
|
+ be used if a mongod is currently
|
|
|
+ accessing the same path
|
|
|
+ --directoryperdb each db is in a separate directly
|
|
|
+ (relevant only if dbpath specified)
|
|
|
+ --journal enable journaling (relevant only if
|
|
|
+ dbpath specified)
|
|
|
+ -d [ --db ] arg database to use
|
|
|
+ -c [ --collection ] arg collection to use (some commands)
|
|
|
+ -o [ --out ] arg (=dump) output directory or "-" 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)
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+ mongodump -h dbhost -d dbname -o dbdirectory
|
|
|
+
|
|
|
+ - -h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
|
|
|
+ - -d:需要备份的数据库实例,例如:test
|
|
|
+ - -o:备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。
|
|
|
+
|
|
|
+
|
|
|
+##MongoDB 恢复数据库
|
|
|
+
|
|
|
+ mongorestore -h 192.168.1.107 -p 40000 --d nsmongo -c postStore --directoryperdb /data/back/nsmongo
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+ bin/mongorestore --help
|
|
|
+ -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
|
|
|
+ --authenticationDatabase arg user source (defaults to dbname)
|
|
|
+ --authenticationMechanism arg (=MONGODB-CR) authentication mechanism
|
|
|
+ --dbpath arg directly access mongod database files
|
|
|
+ in the given path, instead of
|
|
|
+ connecting to a mongod server - needs
|
|
|
+ to lock the data directory, so cannot
|
|
|
+ be used if a mongod is currently
|
|
|
+ accessing the same path
|
|
|
+ --directoryperdb each db is in a separate directly (relevant only if dbpath specified)
|
|
|
+ --journal enable journaling (relevant only if dbpath specified)
|
|
|
+ -d [ --db ] arg database to use
|
|
|
+ -c [ --collection ] arg collection to use (some commands)
|
|
|
+ --objcheck validate object before inserting (default)
|
|
|
+ --noobjcheck don't validate object before inserting
|
|
|
+ --filter arg filter to apply before inserting
|
|
|
+ --drop
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+ mongorestore -h dbhost -d dbname --directoryperdb dbdirectory
|
|
|
+
|
|
|
+ - -h:MongoDB所在服务器地址
|
|
|
+ - -d:需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
|
|
|
+ - --directoryperdb:备份数据所在位置,例如:c:\data\dump\test,这里为什么要多加一个test,而不是备份时候的dump,读者自己查看提示吧!
|
|
|
+ - --drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用
|