標籤:mongodb 整庫備份 整庫還原 collection備份
MongoDB之整庫備份還原單表collection備份還原
cd D:\MongoDB\bin
1整庫備份:
mongodump -h dbhost -d dbname -o dbdirectory
-h:MongDB所在伺服器位址,例如:127.0.0.1:27017
-d:需要備份的資料庫執行個體,例如:wlwdb
-o:備份的資料存放位置,例如:D:\MongoDB\data\dump,當然該目錄需要提前建立,在備份完成後,系統自動在dump目錄下建立一個wlwdb目錄,這個目錄裡面存放該資料庫執行個體的備份資料。
eg:
mongodump -h 127.0.0.1 -d wlwdb -o D:\MongoDB\data\dump
可以查看該備份目錄:
mongodump --help
mongodump的官方說明: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)
2整庫恢複:
mongorestore -h dbhost -d dbname –directoryperdb dbdirectory
-h:MongoDB所在伺服器位址
-d:需要恢複的資料庫執行個體,例如:wlwdb(可以和備份時候的不一樣)
–directoryperdb:備份資料所在位置,例如:D:\MongoDB\data\dump\wlwdb
–drop:恢複的時候,先刪除當前資料,然後恢複備份的資料。
eg:
mongorestore -h 127.0.0.1 -d wlwdb –directoryperdb D:\MongoDB\data\dump\wlwdb
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
3單個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)
4單個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.
MongoDB之整庫備份還原單表collection備份還原