您好,登錄后才能下訂單哦!
備份前的檢查
> show dbs MyDB 0.0625GB admin (empty) bruce 0.0625GB local (empty) test 0.0625GB > use MyDB switched to db MyDB > db.users.find() { "_id" : ObjectId("4e290aa39a1945747b28f1ee"), "a" : 1, "b" : 1 } { "_id" : ObjectId("4e2cd2182a65c81f21566318"), "a" : 3, "b" : 5 } >
整庫備份
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目錄,這個目錄里面存放該數據庫實例的備份數據。 mongodump的官方說明(可通過mongodump --help查看): 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 ( /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 a mongod server - 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 --journal enable journaling -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)
整庫恢復
mongorestore -h dbhost -d dbname –directoryperdb dbdirectory -h:MongoDB所在服務器地址 -d:需要恢復的數據庫實例,例如:test,當然這個名稱也可以和備份時候的不一樣,比如test2 –directoryperdb:備份數據所在位置,例如:c:\data\dump\test,這里為什么要多加一個test,而不是備份時候的dump,讀者自己查看提示吧! –drop:恢復的時候,先刪除當前數據,然后恢復備份的數據。就是說,恢復后,備份后添加修改的數據都會被刪除,慎用哦! mongorestore的官方說明(可通過mongorestore --help查看): 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 ( /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 a mongod server - 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 --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
單個collection備份
mongoexport -h dbhost -d dbname -c collectionname -f collectionKey -o dbdirectory -h: MongoDB所在服務器地址 -d: 需要恢復的數據庫實例 -c: 需要恢復的集合 -f: 需要導出的字段(省略為所有字段) -o: 表示導出的文件名 mongoexport的官方說明(可通過mongoexport --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 ( /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 a mongod server - 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 --journal enable journaling -d [ --db ] arg database to use -c [ --collection ] arg collection to use (some commands) -f [ --fields ] arg comma separated list of field names e.g. -f name,age --fieldFile arg file with fields names - 1 per line -q [ --query ] arg query filter, as a JSON string --csv export to csv instead of json -o [ --out ] arg output file; if not specified, stdout is used --jsonArray output to a json array rather than one object per line -k [ --slaveOk ] arg (=1) use secondaries for export if available, default true --forceTableScan force a table scan (do not use $snapshot)
單個collection恢復
mongoimport -d dbhost -c collectionname –type csv –headerline –file -type: 指明要導入的文件格式 -headerline: 批明不導入第一行,因為第一行是列名 -file: 指明要導入的文件路徑 mongoimport的官方說明(可通過mongoimport --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 ( /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 a mongod server - 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 --journal enable journaling -d [ --db ] arg database to use -c [ --collection ] arg collection to use (some commands) -f [ --fields ] arg comma separated list of field names e.g. -f name,age --fieldFile arg file with fields names - 1 per line --ignoreBlanks if given, empty fields in csv and tsv will be ignored --type arg type of file to import. default: json (json,csv,tsv) --file arg file to import from; if not specified stdin is used --drop drop collection first --headerline CSV,TSV only - use first line as headers --upsert insert or update objects that already exist --upsertFields arg comma-separated fields for the query part of the upsert. You should make sure this is indexed --stopOnError stop importing at first error rather than continuing --jsonArray load a json array, not one item per line. Currently limited to 16MB.
其他導入與導出操作
1. mongoimport -d my_mongodb -c user user.dat 參數說明: -d 指明使用的庫, 本例中為” my_mongodb” -c 指明要導出的表, 本例中為”user” 可以看到導入數據的時候會隱式創建表結構 2. mongoexport -d my_mongodb -c user -o user.dat 參數說明: -d 指明使用的庫, 本例中為” my_mongodb” -c 指明要導出的表, 本例中為”user” -o 指明要導出的文件名, 本例中為”user.dat”
從上面可以看到導出的方式使用的是JSON 的樣式.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。