通过obd升级OceanBase数据库
- 备份数据库
- 升级数据库
- 升级后验证
obd支持升级企业版和社区版OceanBase集群。
- 当前版本:V4.3.5 BP3
- 目标版本:V4.3.5 BP4
备份数据库
建议升级前前对数据库做一次备份。
./obdumper -h127.0.0.1 -P2881-u root -p ****** -t 租户名 -D 数据库名 --ddl --all -f /obdata/backup/DB_NAME/ddl_data ./obdumper -h127.0.0.1 -P2881-u root -p ****** -t 租户名 -D 数据库名 --csv --table'*'-f /obdata/backup/DB_NAME/csv_data升级数据库
obd升级OceanBase数据库支持在线升级和离线升级两种方式。在线升级要求服务器可以连通公网或者镜像仓库中有用于更新的OceanBase数据库的RPM包。
⚠️ 待升级集群租户存在备租户的情况下,需先升级备租户所在集群,或执行
switchover进行主备切换。
下面以离线升级为例进行演示。
- 配置RPM包。将下载好的安装包加入到本地镜像仓库中。
obd mirror clone -f oceanbase-4.3.5.4-xxxxxx.el7.x86_64.rpm- 关闭远程镜像仓库。
obd mirror disable remote- 查询本地镜像仓库中OceanBase数据库版本。
obd mirror listlocal|grepoceanbase-ce最后一列字符串即为OceanBase对应版本的Hash值。
- 如果升级目标版本为
V4.0.x、V4.1.x和V4.2.0 BETA版本时,需要执行当前步骤。否则忽略当前步骤。
使用root用户登录到数据库的sys租户,执行如下命令查看primary_zone配置。
select*from__all_tenant;输出中需关注除sys租户外其他租户对应primary_zone列的值是否为RANDOM。
如果是RANDOM,则需执行如下命令为租户中的Zone配置不同的优先级。
ALTERTENANT 租户名 primary_zone='zone1';- 对OceanBase数据库进行合并操作。
ALTERSYSTEM MAJOR FREEZE;检查合并是否完成:
selectname,valuefromoceanbase.__all_zonewherename='frozen_version'orname='last_merged_version';SELECT*FROMoceanbase.CDB_OB_MAJOR_COMPACTION\G- 合并完成后,执行如下命令升级OceanBase数据库。升级时不能停库。
# 查看deply_nameobd cluster list# 升级数据库# obd cluster upgrade <deploy name> -c <component name> -V <version> [tags]obd cluster upgrade obcluster -c oceanbase -V4.3.5.4 -v升级后验证
命令查看数据库版本:
selectversion();查看集群状态:
obd cluster list obd cluster display<deploy name>References
【1】https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002016131
【2】https://www.oceanbase.com/docs/common-obd-cn-1000000003415263#11-title-obd%20cluster%20upgrade