YashanDB支持通过yasboot工具离线升级已部署的数据库,将数据库二进制文件升级到新版本。
Note: 本文中所有路径、版本号、用户、密码与回显信息等仅为示例,请以实际为准。
YashanDB提供两种备份的方式,分别是通过SQL语句和使用yasrman工具,如需了解更多有关备份的语法及说明请查阅备份恢复。
以下操作均在升级安装包的存放目录中执行,并请根据实际的升级场景选择对应的操作步骤:
本文将以22.2.4.100版本升级到23.3.1.100版本为例。
$ 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
# 获取到yasom和yasagent所在的bin目录,执行-h命令,当前版本为22.2.4.100
$ /data/yashan/yasdb_home/yashandb/22.2.4.100/bin/yasom -h
Usages: yasom [<flags>] <command>
yasom daemon process, version: Debug 22.2.4.1001.查看当前yasom与yasagent版本。
若存在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)的服务器配置文件
2.使用目标新版本(23.2.x)的yasboot工具托管数据库,其中,join_demo.toml文件中的yasdb_home和node_path参数需指定旧版本(22.2.x)的相应路径。
本文将以23.2.4.100版本升级到23.3.1.100版本为例。
1.查看当前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
# 获取到yasom和yasagent所在的bin目录,执行-h命令,当前版本为23.2.4.100
$ /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...
如需在升级后使用DBLINK功能和更丰富的内置函数(例如GIS Function、LSFA_LISTAGG),需先下载plugin插件包并在升级命令中指定--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:需指定为插件包的绝对路径
3.检查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
# 版本已升级为23.3.1.100
以下操作均在升级安装包的存放目录中执行。
Caution: 数据库升级过程中出现任何错误,请执行离线升级回退恢复环境,升级成功后无法回退。
1.查看当前数据库版本
$ ./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
# 当前版本为23.2.4.100 1.查看当前数据库版本。
2.升级数据库。
$ ./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
Note: 升级过程中将对旧版本进行备份,备份文件存储于各个服务器的安装目录下的upgrade_tmp/backup中。
3.检查数据库升级后的版本。
$ ./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
# 版本已升级为23.3.1.100
Note: 如果是共享集群升级场景,升级成功后需要执行一次重启命令: ./bin/yasboot cluster restart -c yashandb
YASDB_HOME
、YASDB_DATA
、LD_LIBRARY_PATH
以及PATH
等环境变量,若配置过环境变量,升级后需更新为新版本数据库相应的环境变量,若不更新直接使用yasdb/yasql等命令会继续指向旧版本数据库。原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。