有时候我们可能需要将云上数据库下载到本地,下面是我们在操作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
补充说明:
(1):设置为true,每个数据库的文件存储在DBPATH指定目录的不同的文件夹中。使用此选项,可以配置的MongoDB将数据存储在不同的磁盘设备上,以提高写入吞吐量或磁盘容量。默认为false。
(2):说明 MongoDB RDS 实例将 directoryperdb 设置为了 ture。 也为我们本地其他MongodB实例的参数设置提供了参考,也建议将 directoryperdb 设置为ture。