人大金仓KFS支持Gbase8s增量解析调研(一)

KFS支持Gbase8s增量解析调研

关键字:

Kingbase FlySync、Gbase8s、增量解析

Gbase8s数据库环境搭建与CDC配置

  1. Gbase8s数据库安装与配置
  • 南大通用官网下载安装包和数据库连接驱动
  • 根据安装手册安装Gbase8s
  • 修改sqlhosts.ol_gbasedbt1210文件,设置数据库实例地址和端口
  • dbeaver连接测试,链接模块:jdbc:gbasedbt-sqli://10.12.14.128:9088/gbase8s
  1. CDC环境搭建
  • 创建需要进行CDC的数据库,并开启数据库日志开关。

例:create database cdctest in gbasedbt with log;

  • 执行 安装目录/etc/syscdcv1.sql初始化CDC系统数据库

例:dbaccess - syscdcv1.sql

  • 设置DB_LOCALE环境变量,确保DB_LOCALE值与需要进行CDC的数据库LOCALE值相同

数据库LOCALE值查询:select * from sysmaster:sysdbslocale ;

环境变量设置:编辑安装用户目录下的.bash_profile,添加:export DB_LOCALE=en_US.819

CDC执行流程

1、使用gbasedbt用户连接到syscdcv1数据库;

2、执行cdc_opensess()函数,开启cdc会话,函数会返回一个sessionIDsessionId存在时间?重启后sessinid问题。

例:execute function syscdcv1:cdc_opensess('ol_gbasedbt1210',0,0,1,1,1);

参数说明:service_name:数据库实例名称

sessionID:必须是0

timeout:设置数据捕获等待时间,<0表示不要超时;=0表示没有数据则返回;>0表示在超时之前等待数据的秒数

max_recs:设置每次读取数据返回的CDC记录的最大数目,

major_version:最大API版本,必须设置为1

minor_version:最小API版本,设置为1

3、执行cdc_set_fullrowlogging()函数,开启全列记录日志

例:execute function syscdcv1:cdc_set_fullrowlogging('gbase8s:gbasedbt.cdctest',1);

参数说明:database:owner.table_name,数据库:用户:表

logging:1表示开启,0表示关闭

4、执行cdc_startcapture()函数表示开始进行变更数据捕获

例:execute function syscdcv1:cdc_startcapture(sessionID,0,'gbase8s:gbasedbt.cdctest',cols,user_data);(是否每一张表执行一遍)

参数说明:sessionID,cdc_opensess()函数获取

MBZ:设置为0

database:owner.table_name,数据库:用户:表

cols:设置需要进行数据捕获的列

user_data:用户标识符(验证作用,双向同步标记)

5、执行cdc_activatesess()函数表示从指定日志的指定位置进行数据捕获

例:execute function syscdcv1:cdc_activatesess(sessinId,position)

参数说明:sessionID:会话id

position:指定进行增量捕获的位置

6、进行增量数据捕获,解析record

7、执行cdc_endcapture()函数表示结束数据捕获。

例:execute function syscdcv1:cdc_endcapture(sessionID,0,'gbase8s:gbasedbt.cdctest')

参数说明:sessionID,会话id

MDZ:必须是0

database:owner.table_name,数据库:用户:表

8、再次执行cdc_set_fullrowlogging()函数,设置logging参数为0,关闭全列记录日志

9、执行cdc_closesess()函数,关闭会话

例:execute function syscdcv1:cdc_closesess(sessionID)

参数说明:sessionID,会话id

增量解析支持情况

1、ddl支持情况

支持truncate解析

不支持drop解析-->提示无法删除正在进行同步的表

不支持create语句解析-->create新建表后,必须为每一张表执行cdc_set_fullrowlogging()和cdc_startcapture()才能进行CDC

2、无主键表支持情况(增删改)

支持(cdc_startcapture()函数可以指定开始数据捕获的列,既可以指定主键列也可以指定无主键列)

3、断点续传

支持:通过在cdc_activatesess()函数中指定进行数据捕获的位置进行断点续传position可以为0,也可以为之前捕获会话中返回的CDC记录的序列号(Sequence Number)中

4、日志保存时间

逻辑日志:记录事务行为(insert、update等),采用循环执行的方式,通过设置可以进行自动或连续备份

物理日志:记录数据库数据

5、事务回滚行为

支持

6、类型支持(验证类型细化,表格表现,确定范围)

已验证支持数据类型:

char、smallint、int、float、smallfloat、

decimal、date、datetime、varchar、nchar、

nvarchar、lvarchar、boolean、bigint

参考资料

《GBase 8s V8.8 数据变更捕获(CDC)API_程序员指南》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值