zoukankan      html  css  js  c++  java
  • 将 云数据库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

  • 相关阅读:
    uva10129 PlayOnWords(并查集,欧拉回路)
    UVA439 knightMoves (A*启发搜索)
    uva297 Quadtrees (线段树思想,区间操作)
    [uva]AncientMessages象形文字识别 (dfs求连通块)
    [uva816]AbbottsRevenge Abbott的复仇(经典迷宫BFS)
    [dp][uestc]L
    [dp][uestc oj]J
    [uestc oj]H
    [dp uestc oj] G
    [dp]uestc oj 邱老师看电影
  • 原文地址:https://www.cnblogs.com/xuliuzai/p/11322152.html
Copyright © 2011-2022 走看看