KFS升级说明

1.设现场环境为:

一区主机名:jk1his1(主机)192.100.10.1、jk1his2 192.100.10.2

四区主机名:jk4his1(主机)192.100.40.1、jk4his2 192.100.40.2

虚拟ip:192.100.10.100 192.100.40.100

2.数据库升级准备:

root@jk1his1# crm res

resource# unmanage kingbase   #四区也要执行

kingbase@jk1his1$ crontab -e

将check_kfs.sh那行注释,保存退出   #四区也要执行

(主机)kingbase@jk1his1$ replicator stop   #四区也要执行

3.重做数据:

kingbase@jk1his1$ mkdir ~/KingbaseES/server_66

kingbase@jk1his1$ tar -xf kingbase-server-V008R006C007M005B0066-linux-x86_64.tar -C mkdir ~/KingbaseES/server_66

kingbase@jk1his1$ cp -L ~/KingbaseES/license.dat ~/KingbaseES/server_66/bin

kingbase@jk1his1$ ~/KingbaseES/server_66/bin/initdb -Usystem -E gb18030 --lc-collate=zh_CN.gb18030 --lc-ctype=zh_CN.gb18030 -D /dbdata/data/data_66 --scenario-tuning -m oracle -W  密码:manager

kingbase@jk1his1$ cp /dbdata/data/data/kingbase.conf && vim /dbdata/data/data_66/kingbase.conf 最后添加port=54322

kingbase@jk1his1$ ~/KingbaseES/server_66/bin/sys_ctl -D /dbdata/data/data_66 start

此时备份可以不停业务,但要确保从备份开始到还原完成后新版本接入系统时的数据增量不重要,或无数据增量。

kingbase@jk1his1$ sys_dump -Usystem -dems -Fc -f ~/ems_time.dmp > 1.log 2>&1

       ·由于备份还原工具会有乱码报错,需要检查1.log

kingbase@jk1his1$ sys_dumpall -Usystem -r -f ~/roles.sql

kingbase@jk1his1$ ~/KingbaseES/server_66/bin/ksql -Usystem -dtest -p54322 -f /home/kingbase/roles.sql

kingbase@jk1his1$ ~/KingbaseES/server_66/bin/ksql -Usystem -dtest -p54322

test# create database ems owner d5000;

test# \q

kingbase@jk1his1$ ~/KingbaseES/server_66/bin/sys_restore -Usystem -dems -p54322 ~/ems_time.dmp > 2.log 2>&1

       ·由于工具问题,需要检查2.log,如果有数据报错乱码,将报错的表单独备份,设d5000.t1表报错,如果单表备份导入报错的,联系南自看是否可以删除乱码数据。

kingbase@jk1his1$ sys_dump -Usystem -dems -t d5000.t1 -Fp --inserts ~/t1.sql

kingbase@jk1his1$ ~/KingbaseES/server_66/bin/ksql -Ud5000 -dems -p54322

ems# \d t1  --如有触发器tri1

ems# alter trigger tri1 disable;

ems# \i /home/kingbase/t1.sql

ems# alter trigger tri1 enable;

ems# \q

kingbase@jk1his1$ ~/KingbaseES/server_66/bin/sys_dump -Usystem -dems -p54322 -Fc -f ems_time.dmp

       导入后可用\l+,sys_tables,all_constraints,sys_triggers等视图检查数据正确性。

4.新数据启动业务

kingbase@jk1his1$ ~/KingbaseES/server_66/bin/sys_ctl -D /dbdata/data/data_66 stop

kingbase@jk1his1$ sys_ctl -D /dbdata/data/data stop

kingbase@jk1his1$ mv /dbdata/data/data /dbdata/data/data_version && mkdir ~/KingbaseES/server_old && mv ~/KingbaseES/Server/* ~/KingbaseES/server_old && mv ~/KingbaseES/server_66/* ~/KingbaseES/Server/ && mv /dbdata/data/data_66 /dbdata/data/data

kingbase@jk1his1$ sys_ctl -D /dbdata/data/data start

5.升级一区kfs

kingbase@jk1his1$ tar -xf KingbaseFlySync-V002R002B20231010_22-replicator.tar.gz

kingbase@jk1his1$ cp ~/Kingbase..-replicator/extensions/jdbc/kingbase8-8.6.0.jar ../../ flysync-replicator/lib

kingbase@jk1his1$ mv /dbbackup/kfs /dbbackup/kfs_old

kingbase@jk1his1$ mv ~/flysync.ini ~/flysync.ini_bak && mv flysync_src.ini /home/kingbase/flysync.ini

       对照~/flysync.ini_bak和~/flysync.ini中的replicator.master.gapsenduri将其中的ip改为~/flysync.ini_bak中的ip,因为新配置文件走了二区映射地址,第一批发货的不走二区。

kingbase@jk1his1$ scp ~/flysync.ini jk1his2:/home/kingbase

kingbase@jk1his1$ ~/Kingbase..-replicator/tools/fspm install -f

kingbase@jk1his1$ cp /dbbackup/kfs_old/license.dat /dbbackup/kfs/

kingbase@jk1his1$ replicator restart offline

kingbase@jk1his1$ fsrepctl -service ems reset -all -y

kingbase@jk1his1$ fsrepctl online

6.升级四区kfs

       升级kfs前先升级kes,此处忽略升级kes步骤,将一区升级好的备份或data拷贝到四区,拷贝kingbase.conf并检查839行以下kfs参数,保证全部注释,然后检查data/sys_replslot路径,此路径下如果有复制槽名,用rm -rf 删除,然后启动数据库,启动后执行:

kingbase@jk4his1$ mv /dbbackup/kfs /dbbackup/kfs_old

kingbase@jk4his1$ mv ~/flysync.ini ~/flysync.ini_bak && mv flysync_dest.ini /home/kingbase/flysync.ini

       同样对照修改replicator.store.kufl.gaplistenuri,此处应该一样,起检查作用。

kingbase@jk4his1$ scp ~/flysync.ini jk4his2:/home/kingbase

kingbase@jk4his1$ ~/Kingbase..-replicator/tools/fspm install -f

kingbase@jk4his1$ cp /dbbackup/kfs_old/license.dat /dbbackup/kfs/

在/dbbackup/kfs/flysync/flysync-replicator/conf/static-ems.properties中搜索global.buffer.size,这个参数由10改为1

kingbase@jk4his1$ replicator restart offline

kingbase@jk4his1$ fsrepctl -service ems reset -all -y

kingbase@jk4his1$ fsrepctl -service ems --trigger-disable -schema d5000 -y

kingbase@jk4his1$ fsrepctl -service ems --trigger-disable -schema hisdb-y

kingbase@jk4his1$ fsrepctl -service ems --trigger-disable -schema alarm -y

kingbase@jk4his1$ fsrepctl -service ems --trigger-disable -schema ems -y

kingbase@jk4his1$ fsrepctl online

7.环境恢复

root@jk1his1# crm res

resource# manage kingbase   #四区也要执行

kingbase@jk1his1$ crontab -e

将check_kfs.sh那行注释,保存退出   #四区也要执行

附:

kfs断点查找与恢复:

       在只升级kfs的情况下,四区可能会出现升级后需要从断点同步一区数据的场景,此时需要将/dbbackup/kfs_old恢复到/dbbackup/kfs并执行replicator start启动kfs,用kufl list -last查找断点seq,形如SEQ# = 1,在一区执行kufl list -seqno 1可得到一区此时间点的EVENTID,形如EVENTID = kb:xxxxxx:xxxxxx,得到后将四区还原到新版本kfs,并在一四区执行replicator restart offline && fsrepctl -service ems reset -all -y,之后一区执行fsrepctl -service ems online -from-event kb:xxxxxx:xxxxxx,然后一四区分别执行fsrepctl online,之后检查同步状态。

  • 17
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值