OBD从2.0升级到2.4.1,重启后无法正常启动数据库,提示 'oceanbase.__all_server' doesn't exist

【 使用环境 】生产环境
【 OB or 其他组件 】
【 使用版本 】obd 2.0 oceanbase 4.1.0
【问题描述】obd 2.0 部署的数据库正常运行了半年,然后升级了obd2.0到2.4.1,能够提示升级正常启动。重启数据库后obagent和obproxy启动更成功,ocp-express 一直等待超时,observer提示了init初始化。查看日志提示:

pymysql.err.ProgrammingError: (1146, “Table ‘oceanbase.__all_server’ doesn’t exist”)
OBD-5000: select * from oceanbase.__all_server execute failed

此时使用 obclient 连接任意一个节点,空密码就能登陆,但 show database;出现 “Table ‘oceanbase.__all_server’ doesn’t exist” 错误

【复现路径】操作步骤如下:
1.使用了obd 按照官方文档进行了 obd的离线升级,并提示升级成功。使用
obd --version 显示版本2.4.1。 此时未重启集群,整个数据库可以使用。
2.使用obd工具对 agent进行了升级,提示升级成功。 此时未重启集群,整个数据库可以使用。
3.使用obd工具对ocp-express进行升级,提示 admin 密码为空,停止升级ocp-express
此时未重启集群,整个数据库可以使用。
4.重启集群,出现ocp-express无法启动直到超时,observer 出现init,使用空密码可以登陆,查询表为空
5.尝试多次重启集群后一直出现同样问题,停止了集群

【附件及日志】
链接:百度网盘-链接不存在
提取码:d2ii
–来自百度网盘超级会员V6的分享

确认下,该问题是否已经解决

1 个赞

暂时还未解决,目前定位到问题是不在升级,而是在ocp-express界面上设置了 租户的内存和cpu,将这两个值调整成了最大值。多个官方人员这几天一直在尽心尽力协助我们处理这个问题,似乎是我们所安装的4.1版本的一个算法bug。目前官方人员一直在协助我们想办法跳过cpu和内存最大值的这个配置问题,但暂时还未成功。
在此期间,非常感谢官方人员放弃了自己的假期协助我们解决问题 :+1: :+1: :+1:

结帖,目前已经解决。感谢官方的技术大佬,辛苦的帮忙我们提出各种解决方案。
具体解决方案如下:
我们一共3台节点。
1.将其中一台节点拉出来强制单节点运行;
2.发现还是无法用用户名和密码登陆
3.官方提供了gdb调试脚本,通过脚本强制将内存中的cpu值修改掉
4.正常运行单节点,并恢复数据

本次总结如下:
1.数据库不要放在sys租户下,我们因为是第一次尝试使用,没有对数据库仔细研究,将所有用户数据放在了sys租户下
2.尽量不要使用beta版本,我们当时为了使用ocp-express,将原有的库升级到了beta版本

再次感谢官方以及相关技术人员的协助 :+1: :+1: :+1:

1 个赞

目前问题已解决,感谢版主的关注