注:
- 以下类型,增量发布不能获取到数据,通过回查方式处理:
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_database
1.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 作者:周风磊