- 在本地安装对应版本的mongodb, 参见->使用aliyun安装mongodb,redis
- 建议和你备份的数据库版本完全一致
- 建议使用一个全新的数据库来恢复,因为恢复后的用户名/密码和阿里云的数据库用户名/密码是一样的
- 安装完成新的数据库后不要忙着启动,不然你会前功尽弃
- 这段配置照写,不然等你把后面搞完,发现这里会有问题,因为默认配置是没有
directoryPerDB: true
,如果你启动了,再改配置就启动不了了storage: dbPath: /var/lib/mongodb directoryPerDB: true journal: enabled: true
- 不要把下面的
pidFilePath
设到/var/run/xxx
目录下,不然你会每次重启后就无法启动mongodb,而且惊奇的发现xxx目录消失了,是因为/var/run/
目录下建立文件夹是在内存中processManagement: timeZoneInfo: /usr/share/zoneinfo fork: true pidFilePath: /var/lib/mongodb.pid/mongod.pid
- 改了上面一步,还要改动服务所在的配置文件,把
PIDFile=/var/lib/mongodb.pid/mongod.pid
改成和上面的一致
- 改了上面一步,还要改动服务所在的配置文件,把
- 这段配置照写,不然等你把后面搞完,发现这里会有问题,因为默认配置是没有
- 其他步骤参见->将MongoDB物理备份文件恢复至自建数据库
- 坑1:
解压物理备份文件
这一步,innobackupex --decompress --remove-original /path/to/mongo/data
这条命令的/path/to/mongo/data
而不是配置文件里指定的类似/var/lib/mongodb
的路径,就是当前目录
- 坑2: 有一个步骤没说: 将上一步的所有文件拷贝到配置文件(默认为
/etc/mongod.conf
)指定的storage.dbPath
(默认为:/var/lib/mongodb
), 这一步建议systemctl stop mongod
停掉服务,并清空数据目录(如果你本地数据库之前有数据要保留就另说). 进入数据目录后,并执行chown -R mongodb:mongodb *
- 坑3: 在
WiredTiger存储引擎
这一步按照其要求添加或更改了你的默认的配置文件(/etc/mongod.conf
)的时候, 类似/path/to/xxx
这种路径要改为你自己的,不能照写,尤其是pidFilePath
这一项,因为默认配置文件是没有的,尤其容易照抄出错, 如果你改为如下:/var/run/mongodb/mongod.pid
, 那么记得先把目录创建出来,然后touch文件, 然后chown -R mongodb:mongodb /var/run/mongodb
- 坑1:
- 你最好事先知道你备份的数据的用户名和密码,因为这个恢复了的数据库的用户名和密码和你备份的是一样的
- 获得完全备份的数据库的下载链接进行下载的时候不需要校验权限, 也就是说一个有全限的人拿到这个链接可以四处分发,任何人都可以下载,感觉有点危险
阿里云mongodb物理备份文件回复置自建数据库的一些小坑
最新推荐文章于 2023-04-18 19:21:32 发布