MongoDB(三) 備份與恢復
阿新 • • 發佈:2019-01-30
MongoDB備份與恢復
1. 備份 mongodump
用法: mongodump
將mongodb裡的資料匯出為.bson檔案
常用配置:
引數 | 用法 |
---|---|
/help | 列印幫助 |
/version | 列印工具版本 |
/v, /verbose: | 指定日誌(v的數量代表了日誌級別, 如:-vvvv, 也可以指定數字, 如:–verbose=N) |
/quiet | 靜默執行, 不列印任何日誌輸出 |
/h, /host: | 指明資料庫伺服器的IP |
/port: | 服務埠 (也可以這麼用 –host hostname:port) |
/u, /username: | 連線伺服器的使用者名稱 |
/p, /password: | 連線資料庫的密碼 |
/authenticationDatabase: | 儲存使用者憑據的資料庫 |
/authenticationMechanism: | 認證機制 |
/d, /db: | 將要備份的資料庫 |
/c, /collection: | 將要備份的集合(資料表) |
/o, /out: | 備份檔案輸出路徑, 預設路徑是bin下的dump 或者指定為’-’ 表示輸出到控制檯(例: -o -) |
2. 恢復 mongorestore
用法: mongorestore
常用配置:
同上
3. 其他方法
有時別人會把整個MongoDB的資料檔案發給你, 這種”備份”方式很不推薦, 因為這樣很有可能在複製檔案的時候有更新操作, 導致拿到的檔案時不完整的, 從而無法恢復. 使用上述備份與恢復方法可以避免這個問題.
如果拿到的是資料檔案:
- 首先看是否有.wt檔案, 如果有, 則說明原始庫用的是WiredTiger引擎, 如果你的MongoDB是3.2以上版本, 則預設就是WiredTiger引擎, 無需額外加引數. 如果沒有.wt檔案, 而是有xxx.ns和xxx.0 xxx.1等檔案, 則說明用的是mmap引擎, 3.2一下版本預設就是這個引擎, 而3.2以上版本需要指定引數:–storageEngine=mmapv1
- 然後看資料夾中是不是每個資料庫都有自己的子資料夾, 這將決定啟動mongod的時候是否需要加引數–directoryperdb, 有子資料夾則需要加這個引數, MongoDB將會去相應的子資料夾中讀取資料檔案
- 最後別忘了加引數–dbpath用於指定你所拿到備庫資料夾的路徑