注:
- 以下类型,增量发布不能获取到数据,通过回查方式处理:
TEXT,JSON,BSON,BYTE,LONG,CLOB,BLOB,INTERVAL - cdc支持truncat操作,不支持其他ddl,进而导致增量发布不支持ddl,并且同步过程中的同步表不允许执行ddl
执行ddl,同步操作流程:
a)停止增量发布
b)执行EXECUTE FUNCTION syscdcv1.cdc_set_fullrowlogging(‘库名:gbasedbt.表名’, 0);
c)源端执行对应的ddl
d)目标库手动执行对应的ddl
e)启动增量发布 - 增量发布队列里必须配置同步表,否则real报错:ZCBUS-61700: no table in dict

- 发布端,db_name需要指定cdc库,固定值syscdcv1,否则real报错: ZCBUS-404: 不能解析例行程序 (cdc_opensess)。

1 源库配置
1.1 检查源库是否开启日志模式
1.1.1 查看数据库日志模式
set environment sqlmode 'oracle' ;
select a.name,a.owner,a.is_logging,a.is_buff_log from sysmaster.sysdatabases a where a.name='your_database';其中is_logging需要为1,is_buff_log为0或者1都可以。如果查询结果不符合要求,则联系管理员处理。
1.1.2 如果没有开启日志模式,数据库开启g
ontape -s -L 0 -t /dev/null -U your_database1.2 开启cdc
1.2.1 查询syscdcv1是否存在
set environment sqlmode 'oracle' ;
select a.name,a.owner,a.is_logging,a.is_buff_log from sysmaster.sysdatabases a where a.name='syscdcv1';1.2.2 如果不存在syscdcv1库,创建syscdcv1库
在服务器命令行,执行以下命令创建syscdcv1库:
- 切换到gbasedbt用户
su - gbasedbt - 使用dbaccess工具执行syscdcv1.sql脚本
syscdcv1.sql会创建 syscdcv1 数据库,并在 syscdcv1 数据库中创建若干表和函数。dbaccess - your_gbase8s_path/etc/syscdcv1.sql
1.3 创建用户及赋权
1.3.1 创建用户
开启用户映射:(之前已开启,此步跳过)
root用户执行:mkdir /etc/gbasedbt echo "USER:daemon" >> /etc/gbasedbt/allowed.surrogates gbasedbt用户执行: su - gbasedbt onmode -wf USERMAPPING='ADMIN' onmode -cache surrogates dbaccess sysuser - <<! CREATE DEFAULT USER WITH PROPERTIES USER 'daemon'; !创建用户:
dbaccess sysuser -<<! CREATE USER zcbus WITH PASSWORD "用户密码"; !
1.3.2 用户赋权
set environment sqlmode 'oracle' ;
-- 切换到syscdcv1库
database syscdcv1;
-- 对zcbus用户授予
grant connect to zcbus;
GRANT EXECUTE ON function cdc_activatesess TO zcbus;
GRANT EXECUTE ON function cdc_closesess TO zcbus;
GRANT EXECUTE ON function cdc_deactivatesess TO zcbus;
GRANT EXECUTE ON function cdc_endcapture TO zcbus;
GRANT EXECUTE ON function cdc_errortext TO zcbus;
GRANT EXECUTE ON function cdc_opensess TO zcbus;
GRANT EXECUTE ON function cdc_recboundary TO zcbus;
GRANT EXECUTE ON function cdc_set_fullrowlogging TO zcbus;
GRANT EXECUTE ON function cdc_startcapture TO zcbus;
-- 切换到源库需要同步的库,对zcbus用户授予权限,需要授予connect 或者connect 以上权限。
database 同步数据库名称;
grant connect to zcbus;2 数据类型支持
| 字段类型 | 是否支持 | 字段描述 |
|---|---|---|
| SMALLINT | 是 | |
| INTEGER | 是 | |
| INT8 | 是 | |
| BIGINT | 是 | |
| DECIMAL | 是 | |
| NUMERIC | 是 | |
| FLOAT | 是 | |
| SMALLFLOAT | 是 | |
| REAL | 是 | |
| DOUBLE | 是 | |
| LONG | 是 | |
| SERIAL | 是 | |
| SERIAL8 | 是 | |
| BIGSERIAL | 是 | |
| MONEY | 是 | |
| CHAR | 是 | |
| VARCHAR | 是 | |
| LVARCHAR | 是 | |
| NCHAR | 是 | |
| NVARCHAR | 是 | |
| CHARACTER VARYING | 是 | |
| DATE | 是 | |
| DATETIME | 是 | |
| INTERVAL | 是 | |
| TEXT | 是 | |
| BYTE | 是 | |
| CLOB | 是 | |
| BLOB | 是 | |
| JSON/BSON | 是 | |
| XML | 是 | |
| RAW | 是 | |
| BOOLEAN | 是 | |
| ROW | 否 | |
| Set | 否 | |
| List | 否 | |
| Multiset | 否 |
文档更新时间: 2025-09-21 16:29 作者:周风磊