oceanbase社区版4.2.5.0升级失败后,给表添加字段报错,升级状态已重置

【 使用环境 】生产环境
【 OB or 其他组件 】OB
【 使用版本 】4.2.5.0
【问题描述】oceanbase社区版4.2.5.0升级失败后,给表添加字段报错,升级状态已重置
【复现路径】升级4.2.5.7版本失败后执行DDL增加字段报错

报错: 4179 - Operation not allowed now

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

2 个赞

根据您提供的问题描述,您在升级 OceanBase 社区版 4.2.5.0 后遇到了给表添加字段时出现错误 4179 的情况。我们可以通过使用 obdiag 工具来帮助您收集相关日志并进行初步诊断。请按照以下步骤操作:

日志采集场景: DDL 失败
日志采集命令: obdiag gather scene run --scene=observer.ddl_failure

请您执行上述命令来收集日志,并将生成的日志压缩包发送给我们。这将有助于我们了解导致该错误的具体原因。

为了进一步确定问题的具体情况,请您回答以下几个问题:

  1. 您是在哪个步骤遇到了升级失败的情况?
  2. 能否提供具体的错误消息或错误代码?
  3. 在尝试添加字段之前是否执行了其他 DDL 操作?
  4. 您是否有该表的结构定义或创建语句可以提供?
  5. 可以分享一下您当前的数据库版本信息吗?

这些信息将帮助我们更快地定位并解决问题。感谢您的配合!

附上敏捷诊断工具 obdiag 使用帮助链接

1 个赞

oceanbase给表添加字段报错:

[2026-04-13 18:42:13.670291] WDIAG [SQL.PC] common_free (ob_lib_cache_object_manager.cpp:141) [324451][T1_L0_G0][T1][YB420A8B0C26-00064F549E070F92-0-0] [lt=5][errcode=0] set logical del time(cache_obj->get_logical_del_time()=4491611825900, cache_obj->added_lc()=false, cache_obj->get_object_id()=6681, cache_obj->get_tenant_id()=1, lbt()=“0x16860b36 0xc5697ae 0x5d2dc13 0x5d1ebee 0x5d12b7b 0x5d0b584 0x5cf7d4b 0xb92bf94 0x1695afae 0x7fcc75234f1b 0x7fcc7516a1c0”)

1 个赞

继续睡觉了

1 个赞

住院部门的世界

1 个赞

省钱快报

1 个赞

打卡

2 个赞

能把DDL操作以后的observer.log日志 都发一下么?怀疑是升级失败了 导致的DDL不能操作

show parameters like ‘_upgrade_stage’

select * from DBA_OB_CLUSTER_EVENT_HISTORY where event like ‘%upgra%’ limit 5;
查一下

你是从424版本升级上来的是么?使用ocp升级的么?升级没有成功 你们跳过去了是么?
这个信息 也查一下 看看现在的版本信息
select SVR_IP,ZONE,MODIFY_TIME,BUILD_VERSION from DBA_OB_SERVERS ;

这个感觉多半是升级失败或有问题,敬待后面怎么解决,学习一下

从4.2.5.0 → 4.2.5.7 失败

DDL报错
observer.log (9.6 KB)

所有的DDL操作都不允许, 写入读取数据没问题

升级失败导致的 是ocp升级的么?如果是 把升级的日志信息发一下

升级日志在哪个目录了, 很久之前升级的, obd升级的, 最近才发现DDL报错, 版本升级先不考虑, 现在能解决DDL操作问题是关键的

现在就是在解决DDL问题 应该是升级中断导致的

三个zone都检查一下 看看具体的问题
python /ob安装的路径/etc/upgrade_health_checker.py -h 127.0.0.1 -P 2881 -u ‘root@sys’ -p ‘’ -z ‘zone1’

看一下这几个日志文件 能否找到在 RS 节点observer 部署目录的 upgrade 子目录下
upgrade_checker.log

upgrade_cluster_health_checker.log

upgrade_post.log

upgrade_pre.log

healthcheck 报错:
[root@1-zqq-0002 log]# python3 /data_ssd/bsc/db-cluster-1/etc/upgrade_health_checker.py -h 127.0.0.1 -P 2881 -u root -p -z ‘zone1’
Traceback (most recent call last):
File “/data_ssd/bsc/db-cluster-1/etc/upgrade_health_checker.py”, line 8, in
import mysql.connector
ModuleNotFoundError: No module named ‘mysql’

部署目录下也没有upgrade子目录, 三台服务器都看了没有找到 :joy:

让你用python执行 你用python3执行 执行看着报错了 :sweat: 你用find命令找一下文件 看看能否查找到

两个命令都执行了的 :joy: