日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MongoDB整库备份与还原以及单个collection备份、恢复方法

發布時間:2025/3/20 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB整库备份与还原以及单个collection备份、恢复方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
mongodb數據庫維護離不開必要的備份、恢復操作,而且一般不會出錯,所以我們在使用的時候大部分時候使用備份和恢復操作就可以了 mongodump.exe備份的原理是通過一次查詢獲取當前服務器快照,并將快照寫入磁盤中,因此這種方式保存的也不是實時的,因為在獲取快照后,服務器還會有數據寫入,為了保證備份的安全,同樣我們還是可以利用fsync鎖使服務器數據暫時寫入緩存中。

高效開源數據庫(mongodb)下載地址:http://www.jb51.net/softs/41751.html

備份前的檢查
> 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 moreverbosity e.g. -vvvvv)--version print the program's version and exit-h [ --host ] arg mongo host to connect to ( /s1,s2 forsets)--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 givenpath, instead of connecting to a mongod server -needs to lock the data directory, so cannot be usedif a mongod is currently accessing the same path--directoryperdb if dbpath specified, each db is in a separatedirectory--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 moreverbosity 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 givenpath, instead of connecting to a mongod server -needs to lock the data directory, so cannot be usedif a mongod is currently accessing the same path--directoryperdb if dbpath specified, each db is in a separatedirectory--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 moreverbosity e.g. -vvvvv)--version print the program's version and exit-h [ --host ] arg mongo host to connect to ( /s1,s2 forsets)--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 givenpath, instead of connecting to a mongod server -needs to lock the data directory, so cannot be usedif a mongod is currently accessing the same path--directoryperdb if dbpath specified, each db is in a separatedirectory--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. -fname,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 perline-k [ --slaveOk ] arg (=1) use secondaries for export if available, defaulttrue--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 moreverbosity 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 givenpath, instead of connecting to a mongod server -needs to lock the data directory, so cannot be usedif a mongod is currently accessing the same path--directoryperdb if dbpath specified, each db is in a separatedirectory--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 theupsert. 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. Currentlylimited 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 的樣式.

您可能感興趣的文章:

  • 使用mongovue把sqlserver數據導入mongodb的步驟
  • mongodb 數據庫操作--備份 還原 導出 導入

總結

以上是生活随笔為你收集整理的MongoDB整库备份与还原以及单个collection备份、恢复方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。