将 云数据库MongoDB(阿里云)物理备份文件下载恢复至本地自建数据库 遇到的5个问题
有时候我们可能需要将云上数据库下载到本地,下面是我们在操作MongoDB数据库时遇到的五个小问题。
其实现在RDS的 帮助文档 写的都比较详细了,大家在第一次操作时,可以细读一下,避免一些不必要的问题。

Problem 1
通过wget命令下载 云MongoDB物理备份文件 时,url 中间有特殊字符&,需要把url放在‘’(单引号中)。
否则报错;
[]
[]
[]+ Done Expires=
..........................................................
..........................................................
..........................................................
HTTP request sent, awaiting response... Forbidden
-- :: ERROR : Forbidden. []+ Exit
Problem 2
启动MongoDB服务时,报错。查看启动log,主要的报错信息如下;
--05T15::12.099+ I STORAGE [initandlisten] exception in initAndListen: 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
--05T15::12.099+ I NETWORK [initandlisten] shutdown: going to close listening sockets...
--05T15::12.099+ I NETWORK [initandlisten] removing socket file: /tmp/mongodb-.sock
--05T15::12.099+ I NETWORK [initandlisten] shutdown: going to flush diaglog...
--05T15::12.099+ I CONTROL [initandlisten] now exiting
--05T15::12.099+ I CONTROL [initandlisten] shutting down with code:
从上面的错误提示中可以看出主要是 directoryPerDB 的配置问题。
提示需要将directoryperdb 设置为 true。
Problem 3
当我们将在mongodb 的配置文件中添加以下参数后。
directoryperdb=ture
报错如下:
Aug :: weixin-qq01 mongod[]: 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" : ,
"errmsg" : "already initialized",
"code" : ,
"codeName" : "AlreadyInitialized"
移除原因的副本信息,执行如下命令;
use local
db.system.replset.remove({})
[执行后,重新下服务]
Problem 5
配置副本集时,设置的oplogSize 要和 云数据库 副本集 的一样大。
小于云上设置的oplog,会报错,错误信息如下。[例如本地设置的是1024]
"ok" : ,
"errmsg" : "cmdline oplogsize (1024) different than existing (25600) see: http://dochub.mongodb.org/core/increase-oplog",
"code" : ,
"codeName" : "Location13257"
大于云上设置的的oplogsize,会报错,错误信息如下。[例如本地设置的是1024]
"ok" : ,
"errmsg" : "cmdline oplogsize (31024) different than existing (25600) see: http://dochub.mongodb.org/core/increase-oplog",
"code" : ,
"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
将 云数据库MongoDB(阿里云)物理备份文件下载恢复至本地自建数据库 遇到的5个问题的更多相关文章
- 阿里云RDS备份的tar格式包恢复到本地自建数据库
说明 阿里云RDS-mysql数据库是通过percona-Xtrabackup进行备份的,所以恢复时也需要安装该软件. 另外注意的是:你自己下载的MySQL版本要和阿里云上的MySQL版本一致,不然会 ...
- 将GitLab的数据库导入阿里云PostgreSQL RDS
GitLab的数据库用的是PostgreSQL,之前由于阿里云RDS不支持PostgreSQL,只能将GitLab的数据库部署在云服务器上. 6月1日得知阿里云推出了PostgreSQL RDS,于是 ...
- 【IT名人堂】何云飞:阿里云数据库的架构演进之路
[IT名人堂]何云飞:阿里云数据库的架构演进之路 原文转载自:IT168 如果说淘宝革了零售的命,那么DT革了企业IT消费的命.在阿里巴巴看来,DT时代,企业IT消费的模式变成了“云服务+数据”, ...
- 将GitLab数据库从阿里云PostgreSQL RDS迁移至自建的PostgreSQL服务器
阿里云RDS目前支持的是PostgreSQL 9.4,而gitlab支持的最低版本是PostgreSQL 9.6.1,不升级PostgreSQL,gitlab就无法升级,阿里云RDS短期内不进行升级, ...
- 阿里云场景化阿里云企业数字化转型售前方法PSA
阿里云场景化阿里云企业数字化转型售前方法PSA 目录 01 课程收获 理解企业数字化转型的概念.内涵.本质 了解企业数字化转型的要点.目标和切入点 掌握数字化转型项目售前阶段实践方法 场景化方案 阿里 ...
- 云储存第三方--阿里云OSS VS 又拍云USS
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p. ...
- 云服务器ECS优惠券 阿里云 ecs 5折优惠码 阿里云5折优惠码 阿里云5折推荐码 阿里云优惠码 阿里云的5折优惠券 阿里云服务器购买优惠码 服务器购买优惠码
阿里云代金券 | 阿里云优惠券云服务器ECS,就是阿里云服务器,大家一定要清楚.云服务器ECS优惠券官方领取优惠页面:https://promotion.aliyun.com/ntms/act/amb ...
- 云效(阿里云)流水线 + nginx + uWsgi + flask + python3 基础环境搭建 --备忘
一.开发环境搭建 1.安装python3 yum -y groupinstall "Development tools" yum -y install zlib-devel bzi ...
- .Net Core in Docker - 使用阿里云Codepipeline及阿里云容器镜像服务实现持续集成(CI)
前面已经介绍过了 .Net Core 程序发布到 Docker 容器的内容.但是每次通过 SSH 链接到服务器敲命令,运行脚本也是挺麻烦的一件事.程序员是最懒的,能让电脑解决的问题绝不手动解决,如果当 ...
随机推荐
- [TimLinux] selinux sesearch命令详解
1. 描述 sesearch用于搜索SELinux安全策略规则集,命令来自包:yum install setools-console. 2. 命令 命令使用方法: sesearch [OPTIONS] ...
- 洛谷 题解 P1604 【B进制星球】
题目:P1604 B进制星球 本人提交记录:R6292872 作为一个极其无聊的人,我没事干地写了operator... 思路很简单: 读入b 读入b进制的x,y ans = x + y 输出ans ...
- Docker系列-(3) Docker-compose使用与负载均衡
上一篇文章介绍了docker镜像的制作与发布,本文主要介绍实际docker工程部署中经常用到的docker-compose工具,以及docker的网络配置和负载均衡. Docker-compose介绍 ...
- 各种常用js函数实现
1.bind function bind(fn, context) { var args = Array.prototype.slice.call(arguments, 2); retur ...
- Linux-(3)Linux Shell 使用
三.Linux Shell 3.1 文件管理 3.1.1 ls 命令 显示指定工作目录下的内容及属性信息 ls 命令是Linux下最常用的指令之一.ls命令为英文单词 list 的缩写,正如英文单词 ...
- Spring boot 集成 阿里 Mqtt
因为公司业务需求,需要接入 阿里Mqtt,自己基于Spring写了一个小demo,记录下来,已备以后需要. 第一步 创建一个实体bean用来装载 MqttClient private MqttClie ...
- Django 08
目录 sweetalert弹窗 bulk-create 自定义分页器 sweetalert弹窗 下载sweetalert并存放在Django项目中的静态文件夹中 https://github.com/ ...
- K3cloud、erp系统实时滚动展示未处理数据,监控投诉处理进度
痛点:企业内部erp人工记录产品投诉销售单,是否跟踪处理完客户投诉,结果不能实时透明,当天还有多少未解决的投诉单,也不能实时查看到,除非手工去系统单据查询,很不方便,跟踪也不顺畅! 解决方案:利 ...
- rails 5 功能新增及改变
1.ApplicationRecord 在Rails4中所有的模型都继承自ActiveRecord::Base,不过在Rails5中新引进了一个叫ApplicationRecord的类,存放在: ap ...
- ES6中export default与export的区别
1.export default 和export都可以用于导出常量,函数,文件,模块等: 2.可以在模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使 ...