V433升级至V4331失败,集群进入upgrading 状态,OBD无法执行其他指令

  1. 关掉分区合并
    alter system _enable_adaptive_compaction=false tenant all;
    alter system _enable_adaptive_compaction=false tenant all_user;
    alter system _enable_adaptive_compaction=false tenant all_meta;

  2. 检查是否有除原报错的之外的未完成的分区合并任务
    select * from __all_virtual_tablet_compaction_info where max_received_scn > finished_scn;
    和已经报错4016的tablet_id做对比,是否有未完成的分区合并任务,如果有的话,需要等待完成
    select * from __all_virtual_dag_warning_history;

等待完成后

3.下载最新的433rpm包,将rpm包解压后替换原来部署路径下的 ~/observer/bin/observer文件
4.所有zone替换完成后,报错4016的分区应该都会合并成功,将_enable_adaptive_compaction都设置为true

1 个赞

image


执行完三个alter已经一个小时了,未见有结束的迹象。

另外新版本的rpm解压出来,是否只需要在observer上替换bin目录的四个文件?
为什么不是重新执行obd cluster upgrade xxx命令升级?

-rwxr-xr-x 1 root root      5300 Oct 22 17:28 import_srs_data.py
-rwxr-xr-x 1 root root      7172 Oct 22 17:28 import_time_zone_info.py
-rwxr-xr-x 1 root root 687995472 Oct 22 20:51 observer
-rwxr-xr-x 1 root root  32080992 Oct 22 17:30 obshell

只需替换observer即可

麻烦给个ocp界面该集群合并状态截图,当前433版本详细版本号

1.看下详细版本号
./observer -V

2.failed to merge partition(ret=-4016)报错应该在升级前就有了
grep “failed to merge partition” observer.log

3.根据1,2的结果 你可能需要替换下433版本的observer 二进制文件
参考下 OCP报警:failed to merge partition,错误码=4016 - #9,来自 旭辉

4.完成3后再升级4331

第2步只是检查有没有其他合并在进行,卡着的4016还是卡着,不用处理

没装OCP,只有express。

说来也是奇葩,最开始从4.3.0 all in one包开始解压用OBD装的集群,愣是装了个OCP mini版。
我说怎么看别人文章说OCP如何如何全面,我这个express怎么看着就那么mini呢。

使用深入以后发现,这个all in one 压根也不是什么all啊,缺Full的OCP,更别说装obproxy、OMS、其他大的配套了。in one是in one了,但真的是没有all。

我建议整合一下,以后OBD+OCP包打天下就完了,配套可以多,但是安装和维护的源头、界面一定要集中。

1、解压4.3.3.0的RPM,替换所有observer
QQ截图20241101092416

2、设置

alter system _enable_adaptive_compaction=true tenant all;
alter system _enable_adaptive_compaction=true tenant all_user;
alter system _enable_adaptive_compaction=true tenant all_meta;

3、重启无效、升级失败

 obd cluster restart obtest
[ERROR] Deploy "obtest" is upgrading. You could not restart an upgrading cluster.
 obd cluster upgrade obtest -c oceanbase-ce -V 4.3.3.1 
Get local repositories and plugins ok
Open ssh connection ok
Get deployment connections ok
Get standbys info ok
cluster scenario: htap
Start observer ok
observer program health check ok
obshell program health check ok
Connect to observer 10.1.1.52:2881 ok
Exec upgrade_checker.py x
[2024-11-01 09:08:00.460] [DEBUG] __main__.MyError: 'upgrade checker failed with 2 reasons: [1 tenant is merging, please check] , [6 tablet is merging, please check] '
[2024-11-01 09:08:00.460] [DEBUG] [16850] Failed to execute script executer27

目前合并不报错了吧?
all in one有两个oceanbase和ocp

确认下当前版本仍为433
你进入当前集群的config文件目录下修改.data文件
修改status: STATUS_RUNNING

1、修改status成功,可以display集群。

2、再次执行升级失败

[2024-11-01 10:58:09.224] [DEBUG] __main__.MyError: 'upgrade checker failed with 2 reasons: [1 tenant is merging, please check] , [3 tablet is merging, please check] '
[2024-11-01 10:58:09.224] [DEBUG] [16158] Failed to execute script executer27

3、再次陷入upgrading状态

obd cluster display obtest
Deploy "obtest" is upgrading

根据上面的sql再查看下当前合并状态呢

这个在之前关闭合并后替换observer文件不是一已经消失了么。
又出来了?

从来没消失过

修改完状态是否重启集群了?

修改完状态display了一下,正常。没有restart。
直接upgrade,失败。

然后

alter system _enable_adaptive_compaction=true tenant all;
alter system _enable_adaptive_compaction=true tenant all_user;
alter system _enable_adaptive_compaction=true tenant all_meta;

然后再upgrading,还是失败。

alter system _enable_adaptive_compaction=false tenant all;
alter system _enable_adaptive_compaction=false tenant all_user;
alter system _enable_adaptive_compaction=false tenant all_meta;

关闭了,在等它自己结束合并,已经等了二十分钟了。


你应该是10月10号升级到433的吧?