OB4.2.1系列产品测试报告

2024年 5月 7日 95.2k 0

升级初衷

  • OCP新版本支持备份到OSS和COS这对多备份冗余有很大的帮助
  • OCP升级以后支持更多的检测内容,支持SQL质检检测,分类管理更人性化
  • OB4.2.1是长期支持版本,具有长期可用和可维护特性
  • OB4.2.1优化了很多底层逻辑尤其是LSI阵列卡的回写相关问题(后续是重点升级内容)

OCP4.0.3升级到4.2.1

  1. 升级OBD并升级OCP
    • 升级OCP从本质上来说是使用ocp-all-in-one包去更新当前版本,我之前使用的docker安装的但是非常不方便维护,后续4.0.3的时候就升级为单机部署Mate和OCP了
    • OCP升级官方文档 参考该文档进行文件下载和启用,需要注意的是:升级用户必须与之前安装用户一致,由于之前4.0.3的安装脚本的机制是可以直接创建一个Mate数据库的安装使用该安装方式会导致OBD数据有一点异常,后续会导致OCP重启失败,这个问题后面细说升级前需要找到Mate的用户名密码和安装用户的用户名密码,根据提示填入
    • 数据填写完毕后第一次使用升级工具升级的时候集群是选择不了的,输入你以前安装4.0.3的时候的集群名字直接选择即可被选中
    • 一部部安装后大概率会出现ocpAgent无法更新的问题社区问答参考 出现该问题,大概率会出现该问题,在安装的时候由于一些奇怪的问题导致使用的是一个比较老的task,跳过以后在主机里面重新安装即可生效去主机重新安装的时候有一个坑如果你跳过以后马上去重装也会失败的,需要等待ocpAgent的状态为离线以后再去安装才会成功
  2. 升级OBProxy
    • 升级OBProxy按照文档直接下载对应的包上传以后到obproxy管理页面点击集群找到对应列表进行升级即可,理论上不会有问题,直接升级通过
  3. 使用obdiag检测系统,使用官方的obdiag工具检测系统是否存在配置不足等,如果存在进行一些修复这一步其实很重要,很多异常都会在这一步中被发现

在线业务集群OB4.1.0.1升级到4.2.1.2

  1. 升级OB的初衷是因为OB4.1.0.1的时候存在一个致命缺陷(对我来说)合并超时引发的一些列问题
    • 这个问题最开始发现是我在服务器集群中间OB集群的一个节点迁移到了用LSI阵列卡用英特尔SSD做的阵列中,就发现开始一直出现租户数据合并异常,租户数据备份异常
    • 通过一整天的OB官方工作人员(这里感谢 渠磊 镜水 秃蛙)等工程师对我的帮助,不然这个问题也得不到彻底发现和后续的解决
    • 通过OB官方运维和开发工程师的指导和查询,中间涉及到很多的SQL查询什么的,就不说了,那个过程不重要
      • 结论就是4.2.1之前的OB版本存在阵列卡设置是write back的时候会导致合并异常clog会出现记录和合并问题,该问题要么修改阵列的写入设置为write through要么升级版本到4.2.1.2,但是升级版本必须先解决合并问题,逼不得已又把机器迁移回原来没问题的存储,
      • 通过不断重启zone的方法去触发日志同步来解决该问题 参考这个问答通过不断重启和系统内部合并的的方式查询SELECT * FROM oceanbase.CDB_OB_MAJOR_COMPACTION;查询当前合并情况,最终折腾了两天后成功还是想惹sys租户和自用租户的合并
  2. 合并完成以后就开始升级到最新版本的OB,升级流程大概是先充4.1.0.1升级到4.1.0.2再升级到4.2.0.0再升级到最新版本4.2.1.0
  3. 使用已经升级好的OCP上传对应的组件和OB本身的安装包到集群管理点击升级选择滚动升级进行升级,升级会产生两个任务,一个是监听升级并自行更新数据库的部分数据的,一个是分别自行每一个节点的升级任务的
  4. 由于是滚动升级的,第一个节点在安装的时候就产生了新问题 安装升级时发生异常 安装第三步Install dependencies报错提示previous installed package oceanbase-ce-libs prefix not matched. prev: /home, new: /home/admin/observer 解决方案也很简单删除对应节点的ocp-agent/pkg_store目录下的文件和文件夹即可,另外这个方法也适用于其他组件安装的时候出现类似报错上面
  5. 删除以后,升级继续,一路绿灯到升级完成,完成后重启节点又发生了一点小插曲,我使用obdiag工具检查服务器发现部分配置有问题于是修改了相关配置,由于提示需要关闭swap虚拟内存,在关闭的时候导致数据库的clog存储和数据存储的位置挂载错了,导致一直无法启动,在 秃蛙 的协助下排查出来并解决
  6. 至此OCP和OB全部升级到最新版本在群里面各位工程师的协助下完成了升级,并再也未出现合并异常问题

OBD迁移集中管理及黑屏升级Mate

  1. 由于之前安装OB集群是使用OBD安装的后续安装了OCP进行接管的,但是OBD本身和OCP不在同一个机器上结构有点混乱,于是决定迁移OBD到OCP对应的服务器上进行统一管理
  2. 技术背景:
    • obd其实是一个OB集群管理工具,OCP也是使用集群的概念进行安装的
    • obd工具在安装注册到.bashrc文件以后可以在对应用户直接使用
    • obd工具的配置路径是/home/user/.obd cluster目录是所有集群的配置信息目录,里面存放了集群的所有资料包括集群构建的时候用到的密码(如果忘记了可以这里找回)
    • obd本质上是一个命令行工具,可以进行迁移,只要配置不变不会产生影响注意权限即可
  3. 知道了上面的技术背景以后我就开始干了:
    • 安装obd
    • 复制原本主机的obd配置到新机器
    • 再次确认一下这个用户到其他设备的免密登录或者配置文件里面配置了正确的密码
  4. 好了可以使用新机器进行剩余的操作了,到现在为止我们升级了OCP和升级了OB当时没有升级ocp的数据库到最新版本,所以根据上述流程使用obd黑屏升级mate数据库到最新版本:
    • obd mirror enable remote
    • obd update
    • obd mirror list oceanbase.community.stable | grep oceanbase-ce
    • 确认当前没有备份任务和合并任务
    • obd cluster upgrade obtest -c oceanbase-ce -V 4.1.0.0 --usable=b56ec3d6e75fd01da65abe0ebb8f8b6455d6a8563c77491ee3d19b33abc40e53
    • 分部自行升级命令冲4.1.0.1平滑升级到4.2.1.1期间没有发生任何故事

obdiag1.4问题及升级1.5相关使用情况

  1. obdiag是一个ob诊断工具具体能力可以查看官方文档,我这里主要使用了check进行集群巡检,1.4.0版本在Debian11系统下无法安装在Centos下安装好并配置好巡检设备信息以后开始巡讲
  2. 测试中发现了 使用阵列卡设置写入规则为Write back时Clog合并异常 这个问题并提供了一个 Feature建议在check的时候增加对该问题的检查
  3. 同时在查看检查结果的时候发现了Debian11的内核已经没有net.ipv4.tcp_tw_recycle配置,建议对操作系统版本进行检测区分是否需要检查该位置
  4. 建议开启BBR
  5. 2023-12-151.5.0版本发布,新增了obproxy的巡检,修改了安装文件为二进制防止出现Debian无法安装的情况(但是好像Debian还是没法安装)
OCP4.2.1升级到4.2.1.1
  1. 升级比较顺利,下载最新版本all-in-one进行web升级配置好后直接升级即可成功,升级成功后正常启动进入后台
  2. ocpAgent再次升级失败,从失败日志来看其升级最新版本居然需要依赖上一个版本,ocp_agent/pkg_store目录下上传上一个版本即可完成升级
  3. 升级完毕后开始使用,发现在集群管理的备份恢复界面的发起恢复等功能按钮的CSS异常通过排查发现是element .style这个CSS导致了该问题
  4. 同时还发现任务管理里面的同样为止的重试等按钮的CSS也有问题

测试感受

  1. 这一路升级下来,OB4.2.1.2的稳定性和可靠性给我了很深刻的印象,当然阵列卡那个问题是个比较的问题,已经在新版本修复了
  2. 随着OCP升级到最新版本也支持了使用COS和OSS备份的能力,这又一次提升了系统备份的安全性和可靠性
  3. 4.2.1.2的一些其他新特性和OCP的一些性能巡检也给我们的程序优化带来了巨大的帮助,我们是一个多品牌会员系统的数据库,每天都有海量数据与前端门店和终端用户进行联系,同时也跟其他会员系统或者王者等有着密切的商务联系,基于天猫的发码模式也接入了天猫码商,整体而言一个稳定的大后方为我们业务拓展提到了至关重要的作用
  4. 在使用过程中阿里OceanBase的业务支持团队给我了我们很大的信心可以继续稳定的使用该产品,提供了成长的平台,同时对比其他的分布式数据库从我个人角度上来说OceanBase也有着不可取代的高性能、高可用、易部署、社区生态好等诸多有点,我相信在OceanBase的团队带领下,在大家的不断努力下一定能越来越好,有更多的高可用用户会青睐并持续的使用OceanBase社区版或企业版

建议与展望

  1. 希望OB在未来的一些配件上升级一下部署难易程度,比如将OCP迁移到Golang方便进行二进制部署,不依赖JDK的情况下也能有更好的部署环境等
  2. 希望obdiag推出更多有意思的巡讲策略和task真正支撑起集群的巡讲任务
  3. 希望能能加快文档和案例整理进度,治理好社区,让问题可以得到集中的查询和呈现,为后来人少走弯路打下基础
  4. 希望能多搞一些社区活动加强社区用户粘性加强社区氛围,将OceanBase社区建立成最大的开源分布式数据库社区

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论