1. 程式人生 > 實用技巧 >mongodb的備份與恢復

mongodb的備份與恢復

近日,公司需要對線上mongdb資料進行遷移,此處對操作過程以及過程中遇到的問題做一記錄。(公司資料庫port=20000,與官方埠27017有別)

一、備份

官方:mongodump -h dbhost -d dbname -o dbdirectory
實操:./mongodump -h 192.168.2.144:20000 -d monitor -o /db_back

以上/db_back路徑需提前建好

問題1

如果開啟了驗證登入,是無法直接備份和恢復資料庫的,報如下錯誤,(Failed: error connecting to db server: server returned error on SASL authentication step: Authentication failed

也可試此辦法,但未親測)

解決辦法:

1、新增:-u <username> -p=<password>

2、新增:--authenticationDatabase admin

./mongodump -h 192.168.2.144:20000 -d monitor -u monitor -p=monitor@123 -o /db_back --authenticationDatabase monitor

備份已完成,所得備份檔案如下。

二、恢復

官方:mongorestore -h <hostname><:port> -d dbname <path>
實操:./mongorestore -h 192.168.2.144:20000 -d monitor -u monitor -p=monitor*** -o /db_back/monitor --authenticationDatabase monitor

問題2

版本問題,不支援 -o 選項,使用 --dre=<dbpath>代替

./mongorestore -h 192.168.2.144:20000 -d monitor -u monitor -p=password  --dir=/db_back/monitor --authenticationDatabase monitor

恢復成功