mongodump及mongorestore是用於備份和恢復mongodb數據庫的兩個命令,位於mongodb安裝目錄的bin文件夾下。
mongodump導出的備份文件為二進制格式,每一個文檔的對應備份文件有兩個,文檔名.bson和文檔名.metadata.json兩個文件。
先看一個mongodump的使用示例:
該命令將vodlite3數據庫備份到/mibackup/目錄下。我們查看mibackup目錄可以看到備份結構如下:
mongodump可用選項如下:
–help
查看幫助信息。
-v [ --verbose ]
顯示更多調試信息。
–version
顯示該命令版本。
-h [ --host ] arg
mongodb數據庫所在主機IP地址。
–port arg
mongodb啟動時所使用的端口。也可以使用 –host:port格式直接指定主機和端口。
–ipv6
是否支持ipv6 。
-u [ --username ] arg
指定登陸用戶名。
-p [ --password ] arg
指定登陸密碼。
–dbpath arg
越過mongod服務器,直接訪問給定路徑的mongod數據庫文件。使用該參數需要鎖定給定的數據目錄,所以需要先關閉使用該目錄的mongod服務。
–directoryperdb
如果指定了dbpath目錄,那么每個db都會給保存到一個單獨的文件夾中。
–journal
enable journaling
-d [ --db ] arg
准備備份的數據庫。
-c [ --collection ] arg
准備備份的集合。
-o [ --out ] arg
導出數據將要保存在的目錄,如參數為“-”,則直接在控制台顯示。
-q [ --query ] arg
json query
–oplog
Use oplog for point-in-time snapshotting
–repair
嘗試修復損壞的數據庫。
–forceTableScan
強制表掃描。
mongorestore用來恢復mongodump導出的數據,語法格式如下:
使用該命令恢復剛才備份的數據:
可用選項如下:
–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
–keepIndexVersion
don’t upgrade indexes to newest version
參考鏈接:
1、mongodump的官方幫助文檔
2、mongodbde備份及恢復策略