声明:这是我在大学毕业后进入第一家互联网工作学习的内容
背景
生产环境使用的mongodb用的是4.2,线下开发测试环境一直用的是3.4,有需求要用到mongodb的新特性,准备开始升级。
调查
由于是线下环境的升级,所以暂时关闭mongodb没有影响,如果是生产环境在线升级建议找下其他文档。
直接升级
官方说明服务升级需要上一个特定版本
如果按照官方来做,我需要先升级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中经常出现的错误)
版权声明:
原创不易,洗文可耻。除非注明,本博文章均为原创,转载请以链接形式标明本文地址。
/article/109091.htm)
版权声明:
原创不易,洗文可耻。除非注明,本博文章均为原创,转载请以链接形式标明本文地址。