GBase 8s
备份恢复
问答

CDC数据补获-syscdcses表数据无法查看

发表于2024-09-30 16:51:08122次浏览5个评论

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

【GBase版本】: Gbase8s 3.3.0

【操作系统】: windows

【CPU】: 4c16

【问题描述】*:   按照社区cdc同步dem成功打印了同步记录,但是根据文档中描述的 会话激活后,表syscdcsess会更新,但是经过sql查询确实没有,目前我想实现的是特定序列点位进行数据补获,无法直观查看我无法进行同步。请问怎么解决,代码就是 官方示例的cdc 同步代码。

查询SQL如下,皆为空数据:

-- 查询正在补获的表、列信息
SELECT * FROM syscdcv1:syscdctabs;
-- 查询会话数据
SELECT * FROM syscdcv1:syscdcsess;

 

 

评论

登录后才可以发表评论
用户头像
曾阿牛发表于 1年前
使用CDC需要如下基本步骤:
1.使用gbasedbt用户连接到syscdcv1数据库(准备工作中创建的)。
2.调用cdc_opensess()函数,cdc_opensess()函数会返回一个session ID。
3.调用cdc_set_fullrowlogging()函数打开full-row logging。每个需要捕获的表都要调用一次。
4.调用cdc_startcapture()通知数据库需要捕获哪些表(数据名+表名)和哪些列需要捕获。每个表需要调用一次。
5.调用dc_activatesess()函数启动数据库捕获过程。
6.CDC数据通过智能大对象返回。需要通过智能大对象读取函数例如mi_lo_read()进行读取。使用session ID作为智能大对象的文件描述符参数。
7.解析智能大对象中返回的数据。在Java程序中可以使用IfxToJavaType类将一个byte stream转换为java的类和类型。
8.为每一个表调用一次cdc_endcapture()函数。
9.为每一个表调用一次dc_set_fullrowlogging()函数,关闭full-row logging。
调用cdc_closesess()关闭CDC的session。
最佳回答
GBase用户21313发表于 1年前
会话信息和表信息可以通过onstat命令查看。
会话信息和表信息是在启动cdc过程中,是cdc调用软件自己设置的,这些信息对于调用软件属于已知信息。
麻烦您请描述一下您具体的使用场景。
用户头像
柒柒天晴发表于 2个月前
学习中,还不清楚。
GBase用户51934发表于 2个月前
等待有缘人解答。
崔哥发表于 2个月前
黄河九天上,人鬼瞰重关。长风怒卷高浪,飞洒日光寒。峻似吕梁千仞,壮似钱塘八月,直下洗尘寰。万象入横溃,依旧一峰闲。仰危巢,双鹄过,杳难攀。人间此险何用,万古袐神奸。不用燃犀下照,未必佽飞强射,有力障狂澜。唤取骑鲸客,挝鼓过银山。