中电科金仓KFS支持启用指定模式下的所有触发器功能介绍与配置使用说明

85 阅读3分钟

关键字:

KingbaseFlySync、KFS、同步程序、replicator、启用指定模式下所有触发器

1.功能描述

该功能主要由参数 trigger-enable触发,该参数能够启用指定模式下的所有触发器,且使用中必须指定服务名和模式名。

2.使用场景介绍

当源端或目标端需要启用指定模式下的触发器时,可通过参数 trigger-enable来实现上述操作。

3.配置使用方式介绍

以源端为例,当源端同步服务已启动,且源端的目标模式下的触发器已被禁用时:

  1. 将源端端同步服务offline,执行如下操作:

fsrepctl -service [服务名] offline

  1. 使用trigger-disable启用目标模式下的触发器,执行如下操作:

fsrepctl -service [服务名] trigger-enable -schema [模式名] -y

  1. 将源端端同步服务online,执行如下操作:

fsrepctl -service [服务名] online

4.示例

本示例中主要以源端操作为例,目标端操作与之相同。

4.1前置条件

  1. 环境介绍:

image.png

  • 数据库版本:V009R003C010B0002
  • 同步服务版本:V002R002B20241216

源端和目标端所创数据库、模式、表名、触发器如下:

源端目标端
数据库sourcetarget
模式名test01test01
表名t10t10
触发器zzzzzz
同步服务名kes_mysql_masterkes_mysql_slave

4.2操作步骤

  1. 启动源端和目标端同步程序

image.png

2.查看源端同步服务是否启动。如下图所示表示源端同步服务已成功启动:

image.png

3.查看目标端同步服务是否启动。如下图所示表示目标端同步服务已成功启动:

image.png

4.在源端source数据库下创建模式test01。sql语句如下:

create schema test01;

5.在源端test01模式下创建表t10。sql语句如下:

create table test01.t10(id int);

6.在源端创建触发器zzz,触发条件为insert,触发内容为在test01模式下创建表t11。sql语句如下:

\set SQLTERM /

create trigger zzz

before insert on test01.t10

for each row

as

begin

create table test01.t11(id int);

end;

/

\set SQLTERM ;

7.将源端同步服务offline:

fsrepctl -service kes_mysql_master offline

8.利用trigger-disable禁用test01模式下的所有触发器,具体操作如下:

fsrepctl -service kes_mysql_master trigger-disable -schema test01 -y

9.将源端同步服务online:

fsrepctl -service kes_mysql_master online

10.在源端表test01.t10中插入数据547,sql语句如下:

insert into test01.t10 values(547);

11.查看test01模式下所有表,发现没有表t11,这是由于触发器zzz被禁用,故表t11未被创建:

image.png

12.将源端同步服务offline:

fsrepctl -service kes_mysql_master offline

13.利用trigger-disable禁用test01模式下的所有触发器,具体操作如下:

fsrepctl -service kes_mysql_master trigger-enable -schema test01 -y

14.将源端同步服务online:

fsrepctl -service kes_mysql_master online

15.在源端表test01.t10中插入数据47,sql语句如下:

insert into test01.t10 values(47);

16.查看test01模式下所有表,验证是否成功触发了触发器zzz,创建了表t11。

4.3结果展示

  1. 在源端表test01.t10插入数据47后,结果查询如下:

image.png 2. 查询源端test01模式下所有表,结果查询如下:

image.png

发现触发器zzz被成功触发,成功在test01模式下创建表t11。

参考资料

《Kingbase FlySync 命令行工具参考手册》