通过obd升级OceanBase数据库

通过obd升级OceanBase数据库

obd支持升级企业版和社区版OceanBase集群。

  • 当前版本:V4.3.5 BP3
  • 目标版本:V4.3.5 BP4

备份数据库

建议升级前前对数据库做一次备份。

./obdumper -h 127.0.0.1 -P 2881 -u root -p ****** -t 租户名 -D 数据库名 --ddl --all -f /obdata/backup/DB_NAME/ddl_data
./obdumper -h 127.0.0.1 -P 2881 -u root -p ****** -t 租户名 -D 数据库名 --csv --table '*' -f /obdata/backup/DB_NAME/csv_data

升级数据库

obd升级OceanBase数据库支持在线升级和离线升级两种方式。在线升级要求服务器可以连通公网或者镜像仓库中有用于更新的OceanBase数据库的RPM包。

⚠️ 待升级集群租户存在备租户的情况下,需先升级备租户所在集群,或执行switchover进行主备切换。

下面以离线升级为例进行演示。

  1. 配置RPM包。将下载好的安装包加入到本地镜像仓库中。
obd mirror clone -f oceanbase-4.3.5.4-xxxxxx.el7.x86_64.rpm
  1. 关闭远程镜像仓库。
obd mirror disable remote
  1. 查询本地镜像仓库中OceanBase数据库版本。
obd mirror list local | grep oceanbase-ce

最后一列字符串即为OceanBase对应版本的Hash值。

  1. 如果升级目标版本为V4.0.xV4.1.xV4.2.0 BETA版本时,需要执行当前步骤。否则忽略当前步骤。

使用root用户登录到数据库的sys租户,执行如下命令查看primary_zone配置。

select * from __all_tenant;

输出中需关注除sys租户外其他租户对应primary_zone列的值是否为RANDOM

如果是RANDOM,则需执行如下命令为租户中的Zone配置不同的优先级。

ALTER TENANT 租户名 primary_zone='zone1';
  1. 对OceanBase数据库进行合并操作。
ALTER SYSTEM MAJOR FREEZE;

检查合并是否完成:

select name,value from oceanbase.__all_zone where name='frozen_version' or name='last_merged_version';

SELECT * FROM oceanbase.CDB_OB_MAJOR_COMPACTION\G
  1. 合并完成后,执行如下命令升级OceanBase数据库。升级时不能停库。
# 查看deply_name
obd cluster list

# 升级数据库
# obd cluster upgrade <deploy name> -c <component name> -V <version> [tags]
obd cluster upgrade obcluster -c oceanbase -V 4.3.5.4 -v

升级后验证

命令查看数据库版本:

select version();

查看集群状态:

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

OceanBase数据库的相关信息包括安装部署、使用配置等方面。 在安装部署上,有基于docker和基于linux服务器两种方式。基于docker快速安装时,需下载OceanBase数据库镜像,查看镜像后启动OceanBase数据库,并查看是否启动成功;基于linux部署时,要进行在线安装obd,配置obd后部署OceanBase数据库。例如使用命令 `dkrun -p 6881:2881 --name obce-mini -d -e OB_HOME_PATH="/root/obce" -e OB_TENANT_NAME="obmysql" oceanbase/obce-mini` 进行相关容器操作 [^1][^3]。 在使用配置方面,配置系统文件时,可通过 `sudo vim /etc/sysctl.conf` 编辑,复制以下内容: ```plaintext # for oceanbase # 修改内核异步 I/O 限制 fs.aio-max-nr = 1048576 # 网络优化 net.core.somaxconn = 2048 net.core.netdev_max_backlog = 10000 net.core.rmem_default = 16777216 net.core.wmem_default = 16777216 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_fin_timeout = 15 net.ipv4.tcp_slow_start_after_idle = 0 vm.swappiness = 0 vm.min_free_kbytes = 2097152 vm.overcommit_memory = 0 fs.file-max = 6573688 fs.pipe-user-pages-soft = 0 # 修改进程可以拥有的虚拟内存区域数量 vm.max_map_count = 655360 # 此处为 OceanBase 数据库的 data 目录 kernel.core_pattern = /data/core-%e-%p-%t ``` 这些配置有助于优化OceanBase数据库的运行环境 [^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GottdesKrieges

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值