
升级补丁包说明V009R001C010PS009 版本支持将某些基线版本的数据库系统平滑升级至对应的补丁版本而不需要通过sys_dump/sys_restore对数据库的数据进行升级。V009R001C010PS009 补丁包如下包名说明kingbase-server-V009R001C010PS009-linux-x86_64.tarx86补丁包kingbase-server-V009R001C010PS009-linux-aarch64.taraarch64补丁包kingbase-server-V009R001C010PS009-linux-KunPeng.tar鲲鹏补丁包升级支持范围升级支持的基线版本类型基线版本号通用机V009R001C010B0004V009R001C010B0004PS001V009R001C010B0004PS002V009R001C010PS009V009R001C010PS006升级支持的平台机器类型CPU类型操作系统升级的补丁包通用机x86麒麟V10kingbase-server-V009R001C010PS009-linux-x86_64.tar飞腾麒麟V10kingbase-server-V009R001C010PS009-linux-aarch64.tar鲲鹏麒麟V10kingbase-server-V009R001C010PS009-linux-KunPeng.tarUnix/Linux平台升级操作升级前准备3.1.1 版本号检查检查待升级的环境上部署的数据库的版本号是否在升级的基线版本中见2.1。如果版本号不在2.1的基线版本中建议不做升级。查看版本号查看升级后的版本号是否正确确保升级后服务端是正确的版本# 在bin目录下查看服务端程序kingbase的版本是否正确$ cd /home/Kingbase/ES/V9/Server/bin$ ./kingbase -V# 查看客户端程序ksql的版本是否正确$ ./ksql -V[kingbasekesdb bin]$ ./kingbase -Vkingbase (KingbaseES) V009R001C010[kingbasekesdb bin]$ ./ksql -Vksql (KingbaseES) V009R001C010[kingbasekesdb bin]$3.1.2 升级环境检查检查磁盘空间是否足够可通过df -h等命令查看3.1.3 升级支持的场景单机场景集群场景3.1.4 升级注意事项程序升级需要停止数据库服务有可能会导致业务受到影响请避开业务高峰期升级。升级操作步骤3.2.1 通用机单机升级假定Kingbase单机数据库相关目录如下# 数据目录/home/Kingbase/ES/V9/data/# 安装目录/home/Kingbase/ES/V9/Server# 可执行程序目录/home/Kingbase/ES/V9/Server/bin停数据库# 在bin目录下执停数据库命令$ cd /home/Kingbase/ES/V9/Server/bin$ ./sys_ctl stop -D /home/Kingbase/ES/V9/data/备份数据备份bin、lib、share、include目录以及data数据目录如果数据已经备份则可不再备份建议备份数据的目录与原data目录处于不同目录中。# 新建存储备份的目录$ mkdir -p /home/Kingbase/data_bak# 备份数据如果已有备份则不再备份$ cp -r /home/Kingbase/ES/V9/data/ /home/Kingbase/data_bak/# 备份安装目录下bin、lib、share、include$ cd /home/Kingbase/ES/V9/Server$ cp -r bin lib share include /home/Kingbase/data_bak/替换版本包解压补丁包假定压缩包为server.tar将解压后的文件直接覆盖原数据库安装目录。# 在安装目录下解压缩覆盖原程序的lib、bin、share、include目录$ cd /home/Kingbase/ES/V9/Server$ tar -xf server.tar -C ./启动数据库# 在bin目录下执启动数据库命令$ cd /home/Kingbase/ES/V9/Server/bin$ ./sys_ctl start -D /home/Kingbase/ES/V9/data/查看版本号查看升级后的版本号是否正确确保升级后服务端是正确的版本# 在bin目录下查看服务端程序kingbase的版本是否正确$ cd /home/Kingbase/ES/V9/Server/bin$ ./kingbase -V# 查看客户端程序ksql的版本是否正确$ ./ksql -V[kingbasekesdb bin]$ ./kingbase -Vkingbase (KingbaseES) V009R001C010PS009[kingbasekesdb bin]$ ./ksql -Vksql (KingbaseES) V009R001C010PS009[kingbasekesdb bin]$检查数据库状态是否正常一般而言升级都是为了解决某些存在的问题当升级完成需要检查如下的功能启动KingbaseES服务后是否出现任何的异常比如服务退出测试能否使用客户端工具ksql进行正常连接与访问# 在bin目录下检查ksql是否可正常连接与访问$ cd /home/Kingbase/ES/V9/Server/bin# 检查是否能正常连接数据库此处是以system用户名连接test库$ ./ksql -d test -U system -p 端口号 -W处理复用data升级后未生效的BUG修改# 假定数据目录为/home/Kingbase/ES/V8/data/$ cd /home/Kingbase/ES/V8/Server/bin# 连接数据库此处是以system超级用户名连接test库$ ./ksql -d test -U system -p 端口号 -W注意1每个库都需要执行未标注模式表示所有模式都执行。注意2若扩展升级报扩展不存在有需要可创建扩展无可忽略。● 基线 - PS001无升级操作● PS001 - PS002无升级操作● PS002 - PS003无升级操作● PS003 - PS006无升级操作● PS006 - PS009升级操作-- 解决 开启default_with_rowidon时pg_cron定时任务导致数据库coreoralce模式仅开启default_with_rowid参数时需重建# 重建插件pg_cron$ drop extension pg_cron;$ create extension pg_cron;-- 解决 稳定性混合业务持续压测1个月安全临时缓存未清理达到3.4TB 的问题# 升级插件sysaudit$ alter extension sysaudit update to 1.1;检验待解决的问题是否已经通过升级得以解决版本回退步骤当升级后发现数据库有异常可以回退版本。3.3.1 通用机单机回退停数据库# 在bin目录下执停数据库命令$ cd /home/Kingbase/ES/V9/Server/bin$ ./sys_ctl stop -D /home/Kingbase/ES/V9/data/还原升级前备份的安装目录包括lib、share、bin、include目录# 在数据库安装目录下还原备份的安装目录$ cd /home/Kingbase/ES/V9/Server$ rm -rf bin lib share include$ cp -r /home/Kingbase/data_bak/bin /home/Kingbase/data_bak/lib /home/Kingbase/data_bak/share /home/Kingbase/data_bak/include ./启动数据库# 在bin目录下执启动数据库命令$ cd /home/Kingbase/ES/V9/Server/bin$ ./sys_ctl start -D /home/Kingbase/ES/V9/data/检查数据库状态启动KingbaseES服务后是否出现任何的异常比如服务退出测试能否使用客户端工具ksql进行正常连接与访问# 在bin目录下检查ksql是否可正常连接与访问$ cd /home/Kingbase/ES/V9/Server/bin# 检查是否能正常连接数据库此处是以system用户名连接test库$ ./ksql -d test -U system -p 端口号 -W回退之后如果发现数据有问题可还原升级前备份数据# 停数据库还原升级前备份的数据$ rm -fr /home/Kingbase/ES/V9/data/$ cp -r /home/Kingbase/data_bak/data /home/Kingbase/ES/V9/