Mongodb3.4离线升级到4.2


声明:这是我在大学毕业后进入第一家互联网工作学习的内容


背景

生产环境使用的mongodb用的是4.2,线下开发测试环境一直用的是3.4,有需求要用到mongodb的新特性,准备开始升级。

调查

由于是线下环境的升级,所以暂时关闭mongodb没有影响,如果是生产环境在线升级建议找下其他文档。

直接升级

Mongodb3.4离线升级到4.2_第1张图片

官方说明服务升级需要上一个特定版本

如果按照官方来做,我需要先升级3.4到3.6 再从3.6升级到4.0 最后从4.0升级到4.2

emmmmmm,人傻了

删除重装

调研了网上的文档,没找到用这种方式去升级的例子,但是感觉问题不大。

备份重装

备份

注意 mongodump并且不能作为正在进行分片事务的4.2+分片群集的备份策略的一部分,因为使用创建的备份 不能保持分片事务的原子性保证。

由于应用中不涉及mongodb事务,所以使用mongodump/mongorestore直接全库导入导出即可。

导出
mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径 
导入
mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 --drop 文件存在路径

如果想导出所有数据库,可以去掉-d

[root@dev-data-01 mongodb]# pwd
/root/mongodb
[root@dev-data-01 mongodb]# mongodump -h 127.0.0.1 --port 27017 -uroot -p123456 -o /root/mongodb/
[root@dev-data-01 mongodb]# ll
total 8
drwxr-xr-x. 2 root root 4096 May 12 15:13 admin
drwxr-xr-x. 2 root root   98 May 12 15:13 mercury
drwxr-xr-x. 2 root root 4096 May 12 15:13 xc_cms

这样就导出来了

重装

重装我踩过很多坑,但是都在一个博客中找到了所有的报错解决方案,写的比较全面,详情请看参考资料

我用的是yum安装,如果是用二进制包安装的思路也一样

1.停止mongodb服务

2.卸载mongodb及日志、数据等

3.重装新的mongodb

删除

systemctl stop mongod
yum erase $(rpm -qa | grep mongodb-org)  #卸载
rm -rf /var/log/mongodb   #删除日志
rm -rf /var/lib/mongo     #删除数据
rm -rf /etc/yum.repos.d/mongodb-org-3.4.repo #删除原mongodb的yum源

安装

添加yum源
vim /etc/yum.repos.d/mongodb-org-4.2.repo

[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

安装
yum install mongodb-org -y

配置
vim /etc/mongod.conf
将bindIp: 127.0.0.1改成bindIp: 0.0.0.0 

启动
systemctl start mongod

查看状态
systemctl status mongod

导入

注意! 在导入数据前不要开启安全认证,否则可能出现权限不足等问题

[root@dev-data-01 mongodb]# mongorestore /root/mongodb/

修改配置文件,开启密码验证
vim /etc/mongod.conf

security:
       authorization: enabled
       
重启mongodb
systemctl restart mongod

至此,mongodb升级完成~~~

参考资料

Mongodb常见错误与解决方法小结(Mongodb中经常出现的错误)

Mongodb官方备份命令


版权声明:

原创不易,洗文可耻。除非注明,本博文章均为原创,转载请以链接形式标明本文地址。
/article/109091.htm)

Mongodb官方备份命令


版权声明:

原创不易,洗文可耻。除非注明,本博文章均为原创,转载请以链接形式标明本文地址。

你可能感兴趣的:(Mongodb)