升级前先使用 sys_rman 对旧版本数据库做好备份
sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup
备份数据库文件目录
cp -r /data data.bak
修改旧版本数据库参数
vim kingbase.conf
archive_mode=off
sys_hba.conf 所有校验方式为trust
sed -i “s/scram-sha-256/trust/g” /home/kingbase/ES/V8/data/sys_hba.conf
创建新版本数据库所需路径
mkdir -p /home/kingbase/301
上传解压安装包
cd /home/kingbase/301
tar -zxvf kingbase-server-V008R006B01161558-linux-x86_64.tar
用新版本数据库initdb初始化一个全新的data目录
initdb -D /home/kingbase/301/data -Usystem
将license文件上传至新版本数据库bin目录下
cp license.dat /home/kingbase/301/bin
修改新版本数据库参数
vim kingbase.conf
port=54322
共享对象拷贝
如果旧版本数据库中有新增插件相关的so库,而新版本数据库中没有的,需要把相关so拷贝到新版本数据库lib目录下
例如:kdb_tinyint.so库在旧版本数据库lib目录下有,而新版本数据库lib目录下没有,则需要把kdb_tinyint.so 拷贝到新版本数据库的lib目录下
新旧参数文件对比 --或将旧参数直接cp到新数据目录下,需注意新老数据库端口不能一致
diff /home/kingbase/ES/V8/data/kingbase.conf /home/kingbase/301/data/kingbase.conf
diff /home/kingbase/ES/V8/data/kingbase.auto.conf /home/kingbase/301/data/kingbase.auto.conf
diff /home/kingbase/ES/V8/data/sys_hba.conf /home/kingbase/301/data/sys_hba.conf
关闭新旧版本数据库
sys_ctl -D /home/kingbase/ES/V8/data stop
sys_ctl -D /home/kingbase/301/data stop
兼容性检查
-b:旧版本数据库bin目录,绝对路径
-B:新版本数据库bin目录,绝对路径
-d:旧版本数据库data目录,绝对路径
-D:新版本数据库data目录,绝对路径
-c:检测是否能升级
-p:小写的p)临时旧版本数据库端口号
-P:(大写的P)临时新版本数据库端口号,和旧版本数据库端口号不能是同一个
-U:登录旧版本数据库和新版本数据库的用户名,旧版本数据库和新版本数据库的用户名必须一致
sys_upgrade -b /home/kingbase/ES/V8/Server/bin -B /home/kingbase/301/bin -d /home/kingbase/ES/V8/data -D /home/kingbase/301/data -c -p 54321 -P 54322 -U system
如报错检查失败相关日志
-rw-------. 1 kingbase kingbase 540 Jan 17 06:26 sys_upgrade_utility.log
-rw-------. 1 kingbase kingbase 4298 Jan 17 06:26 sys_upgrade_server.log
-rw-------. 1 kingbase kingbase 1421 Jan 17 06:26 sys_upgrade_internal.log
more /home/kingbase/301/data/sys_upgrade_server.log
执行升级操作
sys_upgrade -b /home/kingbase/ES/V8/Server/bin -B /home/kingbase/301/bin -d /home/kingbase/ES/V8/data -D /home/kingbase/301/data -p 54321 -P 54322 -U system
升级期间出现错误请根据错误日志输出,修改对应旧版本数据库的配置,重新返回“使用新版本数据库 initdb初始化一个全新的 data 目录这步重新开始
启动数据库
sys_ctl -D /home/kingbase/301/data start
执行统计信息采集脚本
analyze_new_cluster.sh脚本添加端口后执行
./analyze_new_cluster.sh
设置新版数据库环境变量
vim ~/.bashrc
export PATH=/home/kingbase/301/bin:$PATH
恢复数据
sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --kb1-path=/home/kingbase/301/data
修改物理、逻辑备份
vim sys_backup.conf
升级后警告问题处理
sys_upgrade在一些情况升级完成后会发出警告,这提示需要做升级之后的处理。它将生成一些必须由管理员运行的脚本文件,这些脚本文件连接到每一个升级后数据库,不区分顺序运行
ksql --username=kingbase --file=script.sql kingbase
此问题为脚本中未添加参数指定端口导致
快速升级
停止数据库
sys_ctl stop -D /home/kingbase/ES/V8/data stop
备份Server目录
cd /home/kingbase/ES/V8/Server
mv Server Server.bak
mkdir Server
上传解压lincnse、数据库安装包
tar -zxvf kingbase-server-V008R006B01161558-linux-x86_64.tar -C /home/kingbase/ES/V8/Server
启动数据库
sys_ctl -D /home/kingbase/ES/V8/data start