基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
使用 obd 升级 OceanBase 集中式数据库
更新时间:2026-06-30 19:28:16
本文介绍如何使用 obd 命令升级 OceanBase 集中式数据库。
升级说明
- 需要先从 V4.2.5 BP3~BP6 版本升级到 V4.2.5 BP7 版本,然后再升级到 V4.4.2 BP1 版本。
- 需要先从 V4.3.5 BP3~BP5 版本升级到 V4.3.5 BP6 版本,然后再升级到 V4.4.2 BP1 版本。
- V4.2.5 BP7 或者 V4.3.5 BP6 版本可直接升级到 V4.4.2 BP1 版本。
前提条件
在开始之前,请确保您已满足以下条件:
已经获取升级所需的安装包
oceanbase-standalone-all-in-one-x.x.x_xxx_xxx_xxxxxxxx.el7.x86_64.tar.gz。详细信息参见 准备安装包。注意
如果是从 V4.2.5 BP3~BP6 或者 V4.3.5 BP3~BP5 版本升级到 V4.4.2 BP1 版本,还需要准备对应的 barrier 版本(V4.2.5 BP7 或者 V4.3.5 BP6)的安装包。
升级时所登录的用户需与部署时所使用的用户一致。
已部署的 OceanBase 集中式版由 obd 管理。
操作步骤
使用之前安装 OceanBase 集中式版的用户登录部署机器,并上传、解压最新的
oceanbase-standalone-all-in-one包。解压命令如下:注意
不要和之前部署的目录在一起,避免新旧安装包混合在一起。
[admin@test001 ~]$ tar -xzf oceanbase-standalone-all-in-one-4.4.2_xxx_xxxxxx.al8.x86_64.tar.gz进入解压后的目录
oceanbase-standalone-all-in-one,查看目录文件。[admin@test001 oceanbase-standalone-all-in-one]$ cd oceanbase-standalone-all-in-one [admin@test001 oceanbase-standalone-all-in-one]$ tree -L 3返回结果如下:
. ├── bin │ ├── env.sh │ ├── install_obd.sh │ ├── install_ob.sh │ ├── uninstall_obd.sh │ └── upgrade.sh ├── obclient │ ├── u01 │ │ └── obclient │ └── usr │ └── lib ├── obd │ ├── etc │ │ └── profile.d │ └── usr │ ├── bin │ └── obd ├── README.md ├── rpms │ ├── alertmanager-0.28.1-32025073111.al8.x86_64.rpm │ ├── grafana-7.5.17-1.al8.x86_64.rpm │ ├── libobclient-2.2.10-22025032014.al8.x86_64.rpm │ ├── obagent-4.2.4-200000022025090416.al8.x86_64.rpm │ ├── obclient-2.2.10-22025032014.al8.x86_64.rpm │ ├── ob-deploy-4.3.0-2.al8.x86_64.rpm │ ├── oceanbase-diagnostic-tool-3.7.2-12025112717.al8.x86_64.rpm │ ├── oceanbase-standalone-4.4.2.1-101000032026041623.al8.x86_64.rpm │ ├── oceanbase-standalone-libs-4.4.2.1-101000032026041623.al8.x86_64.rpm │ └── prometheus-2.37.1-10000272025073110.al8.x86_64.rpm └── VERSION 13 directories, 17 files升级 obd。
升级 obd。
[admin@test001 oceanbase-standalone-all-in-one]$ bash bin/upgrade.sh注意
执行
bash bin/uninstall_obd.sh不需要加 sudo 。在显示的信息内,输入
y,即可进行升级。Detected sudo privileges. Confirm if you want to upgrade oceanbase-all-in-one. [y/n] y等出现如下信息即表示升级完成。
Disable remote ok Trace ID: 7bd73a1a-0e08-11f0-b275-00163e49899d If you want to view detailed obd logs, please run: obd display-trace 7bd73a1a-0e08-11f0-b275-00163e49899d add auto set env logic to profile: /root/.bash_profile Execute this command to apply the environment config:`source ~/.oceanbase-all-in-one/bin/env.sh` Upgrade completed successfully!应用环境配置。
obd 升级完成后,需要应用环境配置,您可复制并执行 obd 安装完后输出的
source ~/.oceanbase-all-in-one/bin/env.sh命令。[admin@test001 oceanbase-standalone-all-in-one]$ source ~/.oceanbase-all-in-one/bin/env.sh
把 barrier 版本的 RPM 包复制到本地镜像仓库。
注意
此步骤仅为 V4.2.5 BP3~BP6 或者 V4.3.5 BP3~BP5 版本升级到 V4.4.2 BP1 版本时需要。
解压 barrier 版本的
oceanbase-standalone-all-in-one包,并在对应的 rpms 文件夹下把 barrier 版本的 RPM 包复制到本地镜像仓库。[admin@test001 ~]$ tar -xzf oceanbase-standalone-all-in-one-4.2.5_bp7_xxx_xxxxxx.el7.x86_64.tar.gz [admin@test001 ~]$ cd oceanbase-standalone-all-in-one/rpms [admin@test001 oceanbase-standalone-all-in-one/rpms]$ obd mirror clone oceanbase-standalone-4.2.5.7-xxxxxxxxxxxxxx.al8.x86_64.rpm获取需要用到的参数。
[admin@test001 oceanbase-standalone-all-in-one]$ obd mirror list local返回结果如下:
+------------------------------------------------------------------------------------------------------------------+ | local Package List | +---------------------------+---------+------------------------+--------+------------------------------------------+ | name | version | release | arch | md5 | +---------------------------+---------+------------------------+--------+------------------------------------------+ | obagent | 4.2.2 | 1xxxxxxxxxxxxxxxx0.el7 | x86_64 | 19xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx554e | | ob-deploy | 3.3.0 | 3.el7 | x86_64 | 11xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx00af | | oceanbase-diagnostic-tool | 3.2.0 | 5xxxxxxxxx1.el7 | x86_64 | 78xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe163 | | oceanbase-standalone | 4.2.5.4 | 1xxxxxxxxxxxxxx212.el7 | x86_64 | 20xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8a6e | | oceanbase-standalone-libs | 4.2.5.4 | 1xxxxxxxxxxxxxx212.el7 | x86_64 | e5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe0c2 | | prometheus | 2.37.1 | 1xxxxxxxxxxxxxx11.el7 | x86_64 | 58xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf263 | | alertmanager | 0.28.1 | 3xxxxxxxx11.al8 | x86_64 | d4xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxce60 | | grafana | 7.5.17 | 1 | x86_64 | 1bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe0d6 | | libobclient | 2.2.10 | 2xxxxxxxxx4.al8 | x86_64 | 83xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1536 | | obagent | 4.2.4 | 2xxxxxxxxxxxxxxx16.al8 | x86_64 | edxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxda3c | | obclient | 2.2.10 | 2xxxxxxxx14.al8 | x86_64 | f5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxaf34 | | ob-deploy | 4.3.0 | 2.al8 | x86_64 | 82xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5d0a | | oceanbase-diagnostic-tool | 3.7.2 | 1xxxxxxxxx7.al8 | x86_64 | ecxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdcf0 | | oceanbase-standalone | 4.4.2.1 | 1xxxxxxxxxxxxxx623.al8 | x86_64 | 15xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx302a | | oceanbase-standalone-libs | 4.4.2.1 | 1xxxxxxxxxxxxxx623.al8 | x86_64 | 2bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3c16 | | prometheus | 2.37.1 | 1xxxxxxxxxxxxxx10.al8 | x86_64 | 63xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx201a | | oceanbase-standalone | 4.2.5.7 | 1xxxxxxxxxxxxxx320.al8 | x86_64 | 2axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx97b8 | +---------------------------+---------+------------------------+--------+------------------------------------------+根据返回的结果,找到正确的目标升级版本,获取相应的参数。在本示例中,以升级到 V4.4.2 BP1 版本为例,对应的参数如下。
- name (-c):oceanbase-standalone
- version (-V):4.4.2.1
- md5 (--usable):15xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx302a
获取之前部署的 OceanBase 集群名。
[admin@test001 oceanbase-standalone-all-in-one]$ obd cluster list返回结果如下:
+--------------------------------------------------------------+ | Cluster List | +------------+-------------------------------+-----------------+ | Name | Configuration Path | Status (Cached) | +------------+-------------------------------+-----------------+ | standalone | /xxxx/.obd/cluster/standalone | running | +------------+-------------------------------+-----------------+根据返回的结果,找到已经部署的 OceanBase 集群名 name:standalone。
对 OceanBase 数据库进行合并操作。
使用 root 用户登录到数据库的 sys 租户,执行如下命令进行合并操作。
obclient [oceanbase]> ALTER SYSTEM MAJOR FREEZE TENANT = all_user;执行如下命令查看是否合并完成。
obclient [oceanbase]> SELECT * FROM oceanbase.CDB_OB_ZONE_MAJOR_COMPACTION;如果查询的结果中 STATUS 为 IDLE 表示合并结束。
升级集中式版 OceanBase。
升级命令如下。
obd cluster upgrade <deploy name> -c <component name> -V <version> [tags]其中:
<deploy name>:为部署名。本示例中部署的集群名为 standalone。-c <component name>:需要升级的组件名。OceanBase 集中式版对应的组件名为 oceanbase-standalone。-V <version>:需要升级的组件的目标版本号。本示例中为 4.4.2.1。--usable:升级中使用的镜像 hash 列表,用 , 间隔。本示例中为 15xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx302a。
关于 obd cluster upgrade 命令的详细介绍,参见 集群命令组。
示例如下:
[admin@test001 oceanbase-standalone-all-in-one]$ obd cluster upgrade standalone -c oceanbase-standalone -V 4.4.2.1 --usable=15xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx302a等待其执行中出现如下内容,输入
y后,等待命令自动执行完成 。If you use a non-official release, we cannot guarantee a successful upgrade or technical support when you fail. Make sure that you want to use the above package to upgrade. [y/n]:验证是否升级成功。
使用 root 用户登录 OceanBase 数据库的 sys 租户,执行如下命令查看数据库版本。
obclient [oceanbase]> SELECT version();此命令输出的数据库版本为升级后的版本,则表示升级成功。