如何升级部署自己通过源码编译的observer(v3.1.2)到已运行的observer集群

【产品名称】observer

【产品版本】v3.1.1

【问题描述】我自己通过源码(v3.1.2)编译出observer, 如何升级到已运行的集群(正运行的集群observer是v3.1.1版本)

需要一个升级步骤, 3.1.2 改了schema, 不能直接binary 替换, 需要走obd 升级流程, 稍微等一下, 我发一个升级流程文档



1 个赞

好的, 那我自己编译3.1.1 debug版本,是不是可以直接binary 替换? binary替换的话,如果是一个较多节点的集群,有没有什么步骤或者注意事项,我看社区文档也没有具体说,能不能出一个详细点从编译到替换到远程调试的文章

查看obd的文档里面有升级命令:https://github.com/oceanbase/obdeploy/blob/master/docs/docs-cn/obd-commands/cluster-commands.md

非github官方release的包,如自己编译的312,obd是支持升级的,但不保证升级之后是正常的,没有兼容性问题;目前只保证ob github上官方发布的版本的兼容性;

https://github.com/oceanbase/obdeploy/blob/master/docs/zh-CN/3.user-guide/3.obd-command/2.command-group-for-mirroring-and-warehousing.md

obd mirror create -n oceanbase-ce -V 3.1.4-1 -p ./usr/local -t my-oceanbase

可以看看这个 https://wangcy6.github.io/post/oceanbase/2022/oceanbase_day2/
开发部分

debug mode
bash build.sh debug --init --make -j8
cd build_debug
/oceanbase/oceanbase/build_debug
以本地目录为基础创建一个镜像。此命令主要用于使用 OBD 启动自行编译的 OceanBase 开源软件,您可以通过此命令将编译产物加入本地仓库,之后就可以使用 obd cluster 相关的命令启动它
make DESTDIR=./ install 

1.1 在线安装 OBD

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
sudo yum install -y ob-deploy # 该操作只需要在 OB 中控机上执行,因为 OBD 是一个黑屏部署、管理和运维工具,统一从一台机器上发起操作,所以不需要每台机器均安装

obd mirror create -n oceanbase-ce -V 3.1.4-1 -p ./usr/local -t my-oceanbase
obd mirror list

+------------------------------------------------------------------+
|                      Mirror Repository List                      |
+----------------------------+--------+---------+------------------+
| SectionName                | Type   | Enabled | Update Time      |
+----------------------------+--------+---------+------------------+
| oceanbase.community.stable | remote | False   | 2022-08-01 19:49 |
| oceanbase.development-kit  | remote | False   | 2022-08-01 19:49 |
| local                      | local  | -       | 2022-08-02 10:59 |

离线安装部署,必须禁用远程仓库:
禁用远程仓库
obd mirror disable remote
Disable remote ok

[ERROR] Repository(/root/.obd/repository/my-oceanbase/3.1.4-1/my-oceanbase) existed

[root@node1 build_debug]# obd mirror create -n oceanbase-ce -V 3.1.4-1 -p ./usr/local -t 
[root@node1 build_debug]# obd mirror create -n oceanbase-ce -V 3.1.4-1 -p ./usr/local -t my-oceanbase
Package ok
name: oceanbase-ce
version: 3.1.4-1
release:20220814195653
arch: x86_64



后续直接编译好的程序
直接 cp /root/oceanbase/build_debug/src/observer/observer /root/observer/bin/

1 个赞

后续修改的源码编译后md5会变,直接cp 到home_path 可以么?

只能cp吗?官方有提供替换方式吗