本文内容来自 YashanDB 官网,原文内容请见 https://doc.yashandb.com/yashandb/23.3/zh/%E5%AE%89%E8%A3%85%E5%92%8C%E5%8D%87%E7%BA%A7/%E5%8D%87%E7%BA%A7/%E5%8D%87%E7%BA%A7%E6%93%8D%E4%BD%9C/%E7%A6%BB%E7%BA%BF%E5%8D%87%E7%BA%A7.html
YashanDB 支持通过 yasboot 工具离线升级已部署的数据库,将数据库二进制文件升级到新版本。
Note:
本文中所有路径、版本号、用户、密码与回显信息等仅为示例,请以实际为准。
注意事项
离线升级要求当前数据库无新业务数据产生,请通过应用手段停止用户业务。
请完成升级前准备要求的各项工作后再进行升级。
升级过程需使用 YashanDB 内置的 yasboot 工具,该工具的命令选项含义及说明请查阅yasboot。
若升级未成功,请执行离线升级回退。如果回退仍不成功,请联系 YashanDB 技术支持解决。
升级成功后,需根据运行日志告警判断是否使用过时参数,告警内容请查阅参数配置中参数初始化章节示例。若使用了过时参数,需根据配置参数中对应参数的介绍判断该参数是否因改名而过时,并且是否需要将该过时参数调整为对应的新参数。若新参数未配置,则过时参数的配置值将自动转换为新参数值。
从 23.2.0.0 版本开始,yasom仲裁选主功能需依赖于已开启操作系统认证。若 23.2.0.0 以下版本中已开启 yasom 仲裁选主(升级前准备中会临时关闭该功能),升级至 23.2.0.0 或以上版本后仍需开启,需先检查并开启操作系统认证,才能保证仲裁选主功能正常使用。
升级成功后,请先确认数据库运行正常再开放用户业务。
操作步骤
# 步骤 1:执行全量备份
YashanDB 提供两种备份的方式,分别是通过 SQL 语句和使用 yasrman 工具,如需了解更多有关备份的语法及说明请查阅备份恢复。
BACKUP DATABASE FULL FORMAT '/home/yashan/full_20221123' TAG 'full' PARALLELISM 3;
复制代码
$ yasrman sys/password@IP:port -c "backup cluster tag 'full_1' format 'full_bak_1'" -D /home/yashan/catalog
复制代码
# 步骤 2:上传新版本安装包
在执行数据库安装的服务器中创建一个空目录作为升级安装包的临时存放路径。
将新版安装包上传至该目录中。
进入升级安装包的存放目录并解压安装包。
$ cd ~/tmp_upgrade
$ tar zxf yashandb-23.3.1.100-linux-x86_64.tar.gz
复制代码
# 步骤 3:升级 yasom/yasagent
以下操作均在升级安装包的存放目录中执行,并请根据实际的升级场景选择对应的操作步骤:
# 场景 1:22.2.x.x 升级至 23.2.x.x 及以上
本文将以 22.2.4.100 版本升级到 23.3.1.100 版本为例。
查看当前 yasom 与 yasagent 版本。
$ ps -ef | grep -E "yasom|yasagent" | grep -v grep
yashan 102280 1 0 16:24 ? 00:00:00 /data/yashan/yasdb_home/yashandb/22.2.4.100/bin/yasagent --init -c yashandb -l 192.168.1.2:1676 --host-id host0001 -k -d
yashan 102323 1 0 16:24 ? 00:00:00 /data/yashan/yasdb_home/yashandb/22.2.4.100/bin/yasom --init -c yashandb -l 192.168.1.2:1675 -k -d
$ /data/yashan/yasdb_home/yashandb/22.2.4.100/bin/yasom -h
Usages: yasom [<flags>] <command>
yasom daemon process, version: Debug 22.2.4.100
复制代码
Copied!
若存在yasom与yasagent进程,执行如下命令或操作系统的进程终止命令将其终止。
复制代码
$ ./bin/yasboot process yasom stop -c yashandb -t hosts.toml && yasboot process yasagent stop -c yashandb -t hosts.toml
stop yasom successfully
stop agent host0002 successfully
stop agent host0001 successfully
复制代码
-c, --cluster:需指定为实际的集群名称
-t, --toml:需指定为旧版本(22.2.x)的服务器配置文件
复制代码
使用目标新版本(23.2.x)的 yasboot 工具托管数据库,其中,join_demo.toml 文件中的 yasdb_home 和 node_path 参数需指定旧版本(22.2.x)的相应路径。
# 场景 2:23.2.x.x 及以上之间升级
本文将以 23.2.4.100 版本升级到 23.3.1.100 版本为例。
查看当前 yasom 与 yasagent 版本。
$ ps -ef | grep -E "yasom|yasagent" | grep -v grep
yashan 102280 1 0 16:24 ? 00:00:00 /data/yashan/yasdb_home/yashandb/23.2.4.100/bin/yasagent --init -c yashandb -l 192.168.1.2:1676 --host-id host0001 -k -d
yashan 102323 1 0 16:24 ? 00:00:00 /data/yashan/yasdb_home/yashandb/23.2.4.100/bin/yasom --init -c yashandb -l 192.168.1.2:1675 -k -d
$ /data/yashan/yasdb_home/yashandb/23.2.4.100/bin/yasom -h
Usages: yasom [<flags>] <command>
yasom daemon process, version: Debug 23.2.4.100
复制代码
升级 yasom 与 yasagent。
$ ./bin/yasboot package upgrade -t /home/yashan/install/hosts.toml -p yashandb-23.3.1.100-linux-x86_64.tar.gz
upgrade package...
install version: yashandb 23.3.1.100
host0001 100% [====================================================================] 3s
upgrade host to yasom...
复制代码
Copied!
如需在升级后使用DBLINK功能和更丰富的内置函数(例如GIS Function、LSFA\_LISTAGG),需先[下载plugin插件包](https://doc.yashandb.com/yashandb/23.3/zh/%E5%AE%89%E8%A3%85%E5%92%8C%E5%8D%87%E7%BA%A7/%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2/%E5%AE%89%E8%A3%85%E5%89%8D%E5%87%86%E5%A4%87/%E4%B8%8B%E8%BD%BD%E8%BD%AF%E4%BB%B6%E5%8C%85)并在升级命令中指定--plugin参数。**升级完成后,无法单独安装该插件包**。
复制代码
$ ./bin/yasboot package upgrade -t /home/yashan/install/hosts.toml -p yashandb-23.3.1.100-linux-x86_64.tar.gz --plugin yashandb-plugins-all-23.3.1.100-linux-x86_64.tar.gz
复制代码
-t, --toml:需指定为旧版本的服务器配置文件hosts.toml
-p, --package:需指定为新版本YashanDB软件包的绝对路径
--plugin:需指定为插件包的绝对路径
复制代码
检查 yasom 与 yasagent 升级后的版本。
$ ps -ef | grep -E "yasom|yasagent" | grep -v grep
yashan 103607 1 0 16:32 ? 00:00:00 /data/yashan/yasdb_home/yashandb/23.3.1.100/bin/yasagent -c yashandb -d
yashan 103650 1 0 16:32 ? 00:00:00 /data/yashan/yasdb_home/yashandb/23.3.1.100/bin/yasom -c yashandb -d
复制代码
# 步骤 4:升级数据库
以下操作均在升级安装包的存放目录中执行。
Caution:
数据库升级过程中出现任何错误,请执行离线升级回退恢复环境,升级成功后无法回退。
查看当前数据库版本。
$ ./bin/yasboot sql -d sys/password@192.168.1.2:1688 -s 'select version from v$instance;'
VERSION
----------------------------------------------------------------
Release 23.2.4.100 x86_64
复制代码
升级数据库。
$ ./bin/yasboot cluster upgrade --cluster yashandb
type | uuid | name | hostid | index | status | return_code | progress | cost
-------------------------------------------------------------------------------------------------------------
task | 9d0041edd55f7d4f | UpgradeYasdbCluster | - | yashandb | SUCCESS | 0 | 100 | 23
------+------------------+---------------------+--------+----------+---------+-------------+----------+------
task completed, status: SUCCESS
复制代码
Copied!
> **Note**:
>
> 升级过程中将对旧版本进行备份,备份文件存储于各个服务器的安装目录下的upgrade\_tmp/backup中。
复制代码
检查数据库升级后的版本。
$ ./bin/yasboot sql -d sys/password@192.168.1.2:1688 -s 'select version from v$instance;'
VERSION
----------------------------------------------------------------
Release 23.3.1.100 x86_64
复制代码
Copied!
> **Note**:
>
> 如果是共享集群升级场景,升级成功后需要执行一次重启命令:
>
> ```
> ./bin/yasboot cluster restart -c yashandb
>
> ```
>
> Copied!
复制代码
# 步骤 5(可选):升级后操作
更新环境变量
升级操作不会修改服务器的YASDB_HOME
、YASDB_DATA
、LD_LIBRARY_PATH
以及PATH
等环境变量,若配置过环境变量,升级后需更新为新版本数据库相应的环境变量,若不更新直接使用 yasdb/yasql 等命令会继续指向旧版本数据库。
开启或关闭某些配置
若为顺利执行升级操作而临时调整过某些配置(例如关闭仲裁),在升级完成后应按需还原配置(例如重新开启仲裁)。
Note:
从 23.2.0.0 版本开始,yasom 仲裁选主功能需依赖于已开启操作系统认证。若 23.2.0.0 以下版本中已开启 yasom 仲裁选主(升级前准备中会临时关闭该功能),升级至 23.2.0.0 或以上版本后仍需开启,需先检查并开启操作系统认证,才能保证仲裁选主功能正常使用。
开启守护进程
若升级后需开启 monit 功能,可参考守护进程完成相关配置。
评论