❝开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共2790人左右 1 + 2 + 3 + 4 +5 + 6 + 7 + 8 +9)(1 2 3 4 5 6 7群均已爆满,开8群260+ 9群)
上期写的是非必要不升级,想到这个事情,有一些事情的仔细琢磨琢磨,为什么数据库升级的事情在很多公司都是一个困扰,从一个技术人的观点,升级是一件好事,功能提升了,性能提升了,开发效率和一些数据库使用的痛点也被解决了,为什么就不愿意升级呢?
如果只是个人或这个单位的问题,为什么很多同学都反馈他们单位对于数据库升级这个事情并不积极呢?
这里我们不光需要批判的看,也要找到问题的真相,找到真相解决问题。
这里可以总结出几个可能得原因
1 业务重要程度高,升级数据库会影响业务的运行,产生不必要的风险,同时产生风险后,没有人愿意为之承担责任。
2 开发方并不认为当前的数据库产品有特别大的问题,并不愿意在此事上去消耗他们的精力。
3 运维方无动力升级产品,目前的产品运行良好,也无其他需求方提出异议,对数据库的功能和性能提出需求。
那么总结出来一句话,没有业务和开发的需求,数据库升级起来很难。
那么我们此次为什么升级MONGODB 4.2 4.4 到 6.0,我说一说需求。
一 任何数据库产品都有保质期,这里我们可以参考MongoDB的MongoDB software LifeCycle Schedules 这里MonogDB 4.x 已经停止了生命周期。
https://www.mongodb.com/legal/support-policy/lifecycles
当然这不足以提出升级,但在某些情况时可以提出的。
1 云上的服务商帮助,云上的服务商也是希望客户使用更新的数据库版本,替换掉老的产品,这样有助于他们降本增效。有人说这个怎么理解,云上的成本来自于硬件,一些数据库产品对新型的硬件并不支持,对与先进的硬件技术无法进行匹配,那么必然造成硬件资源的浪费,同时云厂商也要依赖于软件厂商的支持,那么end of life就是说人家数据库厂商不支持了,所以云厂商是希望去推更新版本的数据库产品给客户。
但这一切都不足以推动企业去升级数据库,除非版本太老,比如还有使用MongoDB 3.2的那么你在购买这个数据库产品,人家不支持了。
二、技术特性和吸引和必然性
我们以MongoDB举例,为什么我们此次要升级,主要的原因还是成本,我们在删除数据后,无法进行有效的在线的compact这都是MongoDB的数据库版本太低导致的。业务方和架构方都要求能进行删除数据后的在线数据collections 的收缩,所以必须要用新版本来完善这个事情。
但这样基本都是被动的,而与开发和架构业务多联系,了解他们的开发中的痛处才是我们升级数据库的好机遇。比如他们有时间数据处理的要求,而原有的传统关系型数据库不能满足需求,那么此时你可以提出MOGNODB 6.0有相关的时序性的功能帮助开发和架构完美的解决这类需求的问题,你需要给出文档和操作方面的介绍给他们,此时你不光是一个DBA,你还是一个数据库的推销者。
三、 适可而止的升级与安全升级
这个问题是需要说一下的,主要在于不少从事DBA的同学对于升级的问题都是特别想一次到位,这个想法不要有,升级是没有到位的和数据库本身一直在功能变更时一样的,升级只要达到对应的目的即可,特别新或刚出的数据库版本,在我们这些老DBA的眼里都是坑,尤其核心的业务,我是不会去盲目升级到最新的版本,顶多是这个版本的上一个版本,或这个版本的最新的小版本,且至少1-2年以上。
同时你还要注意升级版本带来的问题,比如4.2 4.4的插入性能比更高版本好的一个原因是 writeConcern从 {w:1}改到{w:majority}这的确会损失性能,这点要进行测试和预估。
那么今天这个故事我就把4.X的一些大问题和 6.0的我们可以使用的技术优势写一写方便有需求的同学使用。
这里我总结一下阿里云的mongodb 4.2 4.4 版本的问题。
1 必须定期更换hidden节点的问题,在进行数据库备份的时候,备份上传期间磁盘会继续上涨,尤其hidden节点,因为不在用户的可见范围内,但hidden 节点本身会影响成本和磁盘空间的上涨,对于云厂商是一个难以解决的问题
2 分片的问题比较多,在4.X我们是不建议使用分片的,主要有以下几个问题
2.1 分片实例数据不均衡尤其在分片中 banlancer 按照分片间的chunks数量来判断是否均衡,存在 jumbo chunk empty chunks 等问题。
jumbo chunk 指的是某个数据块的大小超过了MongoDB的默认限制,如64MB 128MB
这样会直接导致查询和写入性能的降低分片均衡器也无法正常迁移这些超大块。
2.2 balancer 均衡速度慢,横向扩容性能差
在5.0以下的版本是无法快速均衡数据的,热点数据无法快速缓解,balancer的速度无法提升。
2.3 在进行 compact 的操作4.X的版本会有可能进入recovering的状态,这主要还是因为节点进入compact如果没有及时响应各个节点发来的探测信息,则判断此节点进入了无响应,则会产生节点变更状态进入recoverying的状态。
这里4.2.18版本实际上已经解决了上面的问题。但锁的问题解决不了。
基于上的问题,我们你可以整理好一个文档,然后发给相关的部门,把升级的好处以及对他们带来的利益,记住你做一件事,不是有利于你就可以推动而是要有利于其他人,他们才会支持,干活如果都是这样,你还会是项目里面的der。
置顶
PostgreSQL 无服务 Neon and Aurora 新技术下的新经济模式 (翻译)
搞 PostgreSQL多才多艺的人--赵渝强 《PG数据库实战派》
阿里云DTS 产品,你真让我出离愤怒,3年了病还没治好???
专访唐建法-从MongoDB中国第一人到TapData掌门人的故事
天上的“PostgreSQL” 说 地上的 PostgreSQL 都是“小垃圾”宇宙的“PostgreSQL” 说 “地球上的PG” 都是“小垃圾”
云数据库核爆在内部,上云下云话题都是皮外伤!--2025云数据库专栏(二)
云原生 DB 技术将取代K8S为基础云数据库服务-- 2025年云数据库专栏(一)
临时工:数据库人生路,如何救赎自己 -- 答某个迷茫DBA的职业咨询
阿里云DTS 产品,你真让我出离愤怒,3年了病还没治好???
PostgreSQL 相关文章
“PostgreSQL” 高性能主从强一致读写分离,我行,你没戏!
PostgreSQL 添加索引导致崩溃,参数调整需谨慎--文档未必完全覆盖场景
PostgreSQL SQL优化用兵法,优化后提高 140倍速度
PostgreSQL 运维的难与“难” --上海PG大会主题记录
PostgreSQL 什么都能存,什么都能塞 --- 你能成熟一点吗?
全世界都在“搞” PostgreSQL ,从Oracle 得到一个“馊主意”开始
PostgreSQL 加索引系统OOM 怨我了--- 不怨你怨谁
PostgreSQL “我怎么就连个数据库都不会建?” --- 你还真不会!
病毒攻击PostgreSQL暴力破解系统,防范加固系统方案(内附分析日志脚本)
PostgreSQL 远程管理越来越简单,6个自动化脚本开胃菜
PostgreSQL 稳定性平台 PG中文社区大会--杭州来去匆匆
PostgreSQL 分组查询可以不进行全表扫描吗?速度提高上千倍?
POSTGRESQL --Austindatabaes 历年文章整理
PostgreSQL 查询语句开发写不好是必然,不是PG的锅
PostgreSQL 字符集乌龙导致数据查询排序的问题,与 MySQL 稳定 "PG不稳定"
PostgreSQL Patroni 3.0 新功能规划 2023年 纽约PG 大会 (音译)
PostgreSQL 玩PG我们是认真的,vacuum 稳定性平台我们有了
PostgreSQL DBA硬扛 垃圾 “开发”,“架构师”,滥用PG 你们滚出 !(附送定期清理连接脚本)
OceanBase 相关文章
OceanBase 6大学习法--OBCA视频学习总结第六章
OceanBase 6大学习法--OBCA视频学习总结第五章--索引与表设计
OceanBase 6大学习法--OBCA视频学习总结第五章--开发与库表设计
OceanBase 6大学习法--OBCA视频学习总结第四章 --数据库安装
OceanBase 6大学习法--OBCA视频学习总结第三章--数据库引擎
OceanBase 架构学习--OB上手视频学习总结第二章 (OBCA)
OceanBase 6大学习法--OB上手视频学习总结第一章
没有谁是垮掉的一代--记 第四届 OceanBase 数据库大赛
跟我学OceanBase4.0 --阅读白皮书 (OB分布式优化哪里了提高了速度)
跟我学OceanBase4.0 --阅读白皮书 (4.0优化的核心点是什么)
跟我学OceanBase4.0 --阅读白皮书 (0.5-4.0的架构与之前架构特点)
跟我学OceanBase4.0 --阅读白皮书 (旧的概念害死人呀,更新知识和理念)
OceanBase 学习记录-- 建立MySQL租户,像用MySQL一样使用OB
PolarDB 相关文章
PolarDB MySQL 加索引卡主的整体解决方案“PostgreSQL” 高性能主从强一致读写分离,我行,你没戏!
POLARDB 添加字段 “卡” 住---这锅Polar不背
PolarDB 版本差异分析--外人不知道的秘密(谁是绵羊,谁是怪兽)
PolarDB 答题拿-- 飞刀总的书、同款卫衣、T恤,来自杭州的Package(活动结束了)
PolarDB for MySQL 三大核心之一POLARFS 今天扒开它--- 嘛是火
MySQL相关文章
MySQL 的SQL引擎很差吗?由一个同学提出问题引出的实验
用MySql不是MySQL, 不用MySQL都是MySQL 横批 哼哼哈哈啊啊
MYSQL --Austindatabases 历年文章合集
MongoDB 相关文章
MongoDB 大俗大雅,上来问分片真三俗 -- 4 分什么分
MongoDB 大俗大雅,高端知识讲“庸俗” --3 奇葩数据更新方法
MongoDB 大俗大雅,高端的知识讲“通俗” -- 2 嵌套和引用
MongoDB 大俗大雅,高端的知识讲“低俗” -- 1 什么叫多模
MongoDB 合作考试报销活动 贴附属,MongoDB基础知识速通
MongoDB 使用网上妙招,直接DOWN机---清理表碎片导致的灾祸 (送书活动结束)
MongoDB 2023年度纽约 MongoDB 年度大会话题 -- MongoDB 数据模式与建模
MongoDB 双机热备那篇文章是 “毒”
MongoDB 会丢数据吗?在次补刀MongoDB 双机热备
MONGODB ---- Austindatabases 历年文章合集
临时工访谈系列
没有谁是垮掉的一代--记 第四届 OceanBase 数据库大赛
SQL SERVER 系列
SQL SERVER 如何实现UNDO REDO 和PostgreSQL 有近亲关系吗