將 雲數據庫MongoDB(阿里雲)物理備份文件下載恢復至本地自建數據庫 遇到的5個問題


有時候我們可能需要將雲上數據庫下載到本地,下面是我們在操作MongoDB數據庫時遇到的五個小問題。

其實現在RDS的 幫助文檔 寫的都比較詳細了,大家在第一次操作時,可以細讀一下,避免一些不必要的問題。

 

Problem 1

通過wget命令下載 雲MongoDB物理備份文件 時,url 中間有特殊字符&,需要把url放在‘’(單引號中)。

否則報錯;

[1] 193923
[2] 193924
[2]+  Done                    Expires=1565425103
..........................................................
..........................................................
..........................................................
HTTP request sent, awaiting response... 403 Forbidden
2019-08-05 16:19:50 ERROR 403: Forbidden.


[1]+  Exit 8 

 

Problem 2

啟動MongoDB服務時,報錯。查看啟動log,主要的報錯信息如下;

 

2019-08-05T15:30:12.099+0800 I STORAGE  [initandlisten] exception in initAndListen: 72 Requested option conflicts with current storage engine option for directoryPerDB; you requested false but the current server storage is already set to true and cannot be changed, terminating
2019-08-05T15:30:12.099+0800 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2019-08-05T15:30:12.099+0800 I NETWORK  [initandlisten] removing socket file: /tmp/mongodb-27017.sock
2019-08-05T15:30:12.099+0800 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2019-08-05T15:30:12.099+0800 I CONTROL  [initandlisten] now exiting
2019-08-05T15:30:12.099+0800 I CONTROL  [initandlisten] shutting down with code:100

從上面的錯誤提示中可以看出主要是 directoryPerDB 的配置問題。

提示需要將directoryperdb 設置為 true。

Problem 3

當我們將在mongodb 的配置文件中添加以下參數后。

directoryperdb=ture

報錯如下:

Aug 05 15:47:04 weixin-qq01 mongod[192116]: Error parsing INI config file: the argument ('ture') for option 'directoryperdb' is invalid. Valid choices are 'on|off', 'yes|no', '1|0' and 'true|false'

正確的設置如下;

directoryperdb=on

 

Problem 4

如果雲數據庫是副本集,那么下載還原后的數據庫已也會含有副本集的信息。如果想將還原的數據庫配置成新的副本集,需要移除就的副本集信息。

移除前,添加時會報錯,報錯信息如下;

        "info" : "try querying local.system.replset to see current configuration",
        "ok" : 0,
        "errmsg" : "already initialized",
        "code" : 23,
        "codeName" : "AlreadyInitialized"

移除原因的副本信息,執行如下命令;

use local
db.system.replset.remove({})

[執行后,重新下服務]

 

Problem 5 

配置副本集時,設置的oplogSize 要和 雲數據庫 副本集 的一樣大。

小於雲上設置的oplog,會報錯,錯誤信息如下。[例如本地設置的是1024]

        "ok" : 0,
        "errmsg" : "cmdline oplogsize (1024) different than existing (25600) see: http://dochub.mongodb.org/core/increase-oplog",
        "code" : 13257,
        "codeName" : "Location13257"

大於雲上設置的的oplogsize,會報錯,錯誤信息如下。[例如本地設置的是1024]

        "ok" : 0,
        "errmsg" : "cmdline oplogsize (31024) different than existing (25600) see: http://dochub.mongodb.org/core/increase-oplog",
        "code" : 13257,
        "codeName" : "Location13257"

 

補充說明:

(1):設置為true,每個數據庫的文件存儲在DBPATH指定目錄的不同的文件夾中。使用此選項,可以配置的MongoDB將數據存儲在不同的磁盤設備上,以提高寫入吞吐量或磁盤容量。默認為false。

(2):說明 MongoDB RDS 實例將 directoryperdb 設置為了 ture。 也為我們本地其他MongodB實例的參數設置提供了參考,也建議將 directoryperdb 設置為ture。

(3):查看oplogsize大小的指令;

db.printReplicationInfo()

 (4)阿里雲官方文檔:

  https://help.aliyun.com/document_detail/58329.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM