首批通过分布式安全可靠测评,为关键业务系统打造
升级仲裁服务
更新时间:2026-06-04 17:00:51
本文主要介绍如何使用命令行升级仲裁服务版本。
注意
OceanBase 集群支持 V4.3.0 Beta 版本升级到 V4.3.1 Beta 版本。暂不支持 V4.2.x 系列或更低版本升级到 V4.3.1 Beta 版本,随着版本演进,后续会增加 V4.2.x 版本到 V4.3.x 版本的升级路径支持。
升级限制
如果有 OceanBase 集群关联了此仲裁服务,那么会有以下限制:
在进行 OceanBase 集群版本升级时,需要确保先升级仲裁服务版本,然后再升级 OceanBase 集群版本。
要确认升级的新版本和所有关联集群的版本都兼容。判断两个版本是否兼容需要参考
oceanbase_upgrade_dep.yml中的版本描述,例如,A 版本的can_be_upgraded_to属性为 B(即 B 版本号大于 A),表示 B 版本可以兼容 A 版本,那么相应地 B 版本的仲裁服务也就可以兼容 A 版本的 OceanBase 集群。有关oceanbase_upgrade_dep.yml文件的信息,请参见 OceanBase 集群版本升级下 升级 OceanBase 集群 中的 步骤一:分析 oceanbase_upgrade_dep.yml 文件 章节内容
说明
可以使用系统租户查询视图 oceanbase.DBA_OB_ARBITRATION_SERVICE 检查本 OceanBase 集群是否关联仲裁服务。
操作步骤
步骤一:确认升级流程
请参见 OceanBase 集群版本升级下 升级 OceanBase 集群 中的 步骤一:分析 oceanbase_upgrade_dep.yml 文件 章节内容,确认当前版本至目标版本的升级序列。通过升级序列判断升级流程如下:
当前版本和目标版本之间存在 barrier 版本,那么升级流程为:
- 仲裁服务版本先升级到 barrier 版本。
- (可选)如果有 OceanBase 集群关联了此仲裁服务,所有关联此仲裁服务的 OceanBase 集群升级到 barrier 版本。
- 如果后面还存在其他 barrier 版本,请重复步骤 1~2,直至仲裁服务版本和 OceanBase 集群升级到目标版本的前一个 barrier 版本。
- 仲裁服务版本升级到目标版本。
- 所有关联此仲裁服务的 OceanBase 集群升级到目标版本。
当前版本和目标版本之间不存在 barrier 版本,那么升级流程为:
- 仲裁服务版本升级到目标版本。
- (可选)如果有 OceanBase 集群关联了此仲裁服务,所有关联此仲裁服务的 OceanBase 集群升级到目标版本。
示例如下:
假设升级序列如下:
- V4.1.0.0-100000982023031415 > V4.1.0.0 > V4.1.0.1(barrier) > V4.2.0.0
- V4.1.0.0 > V4.1.0.1 > V4.2.0.0
- V4.3.0.0 > V4.3.0.1 > V4.3.1.0
以下将以两副本 OceanBase 集群加仲裁服务的模式为例介绍升级流程:
升级路径中有 barrier 版本。如果当前版本是 V4.1.0.0-100000982023031415 版本,升级流程如下:
- 您需要先将仲裁服务版本从 V4.1.0.0-100000982023031415 版本升级到 V4.1.0.1(barrier) 版本。
- 再将 OceanBase 集群从 V4.1.0.0-100000982023031415 版本升级到 V4.1.0.1(barrier)版本。
- 仲裁服务版本升级到目标版本 V4.2.0.0。
- OceanBase 集群升级到目标版本 V4.2.0.0。
升级路径中没有 barrier 版本。如果当前版本是 V4.3.0.0 版本,升级流程如下:
- 仲裁服务版本升级到目标版本 V4.3.1.0。
- OceanBase 集群升级到目标版本 V4.3.1.0。
(可选)步骤二:确认是否有处于降级状态的日志流
如果您本次升级的仲裁服务未关联 OceanBase 集群,请忽略此步骤。
在仲裁服务版本升级前需要确认所有关联的 OceanBase 集群中都没有处于降级状态的日志流。如果有处于降级状态的日志流,则不能执行升级,否则可能导致无主。
使用系统租户执行下面 SQL 语句,检查是否有处于降级状态的日志流,如果执行结果非空,说明存在降级的日志流,需中止升级流程。
SELECT tenant_id,ls_id FROM GV$OB_LOG_STAT WHERE role = 'LEADER' AND degraded_list != "";
步骤三:上传并安装目标 RPM 包
使用
scp命令将升级所用到的 OceanBase RPM 包上传到仲裁 Server 节点中。scp $rpm_name admin@$observer_ip:/$rpm_dir参数解释:
$rpm_name:表示 RPM 包的名称。$observer_ip:表示仲裁 Server 节点的 IP。$rpm_dir:表示存放 RPM 包的目录。
示例如下:
scp oceanbase-4.2.0.0-100010022023081911.el7.x86_64.rpm admin@10.10.10.1:/home/admin/rpm使用以下命令安装 OceanBase RPM 包。
注意
如果升级路径中有多个 barrier 版本,按照顺序依次进行安装和升级 barrier 版本,直到成功升级最后的 barrier 版本再安装目标版本的 RPM 包。
rpm -Uvh $rpm_name其中
$rpm_name表示 RPM 包的名称。
步骤四:仲裁服务版本升级
登录仲裁 Server 服务器。
(可选)切换至
admin用户。如果您以
admin用户身份登录到仲裁服务器,请忽略此步骤。示例如下:
[root@xxx /home/admin/oceanbase/etc]# su - admin执行以下命令,查看并获取节点的进程 ID。
ps -ef | grep observer | grep -v grep示例如下:
-bash-4.2$ ps -ef | grep observer | grep -v grep admin 103364 1 99 2022 ? 51-17:24:41 /home/admin/oceanbase/bin/observer执行以下命令,停止仲裁 server 进程。
kill -9 $pid其中,
$pid为仲裁 server 进程 ID。示例如下:
-bash-4.2$ kill -9 103364执行以下命令,重新启动仲裁 server 进程。
-bash-4.2$ cd /home/admin/oceanbase && /home/admin/oceanbase/bin/observer说明
再次启动仲裁 server 进程时不需要指定启动参数,因为之前的启动参数已经写到参数文件里了。
(可选)步骤五:OceanBase 集群版本升级
如果您本次升级的仲裁服务未关联 OceanBase 集群,请忽略此步骤。
OceanBase 集群版本升级的操作步骤,请参见 升级 OceanBase 集群。