GBase8c S5.0.0 CDC

数据库开启CDC功能。

一、更改数据库参数

在主节点上执行以下修改参数,并重启数据库:

gs_guc reload -N all -I all -c "wal_level=logical"
gs_guc reload -N all -I all -c "wal_sender_timeout = 180s"
gs_guc reload -N all -I all -c "max_replication_slots = 20"
gs_guc reload -N all -I all -h "host replication all 0.0.0.0/0 md5"
gs_om -t restart 
  • wal_level:更改wal 日志方式为logical。参数可选值minimal、replica、logical。
  • max_replication_slots:solts 最大数量。flink-cdc 默认一张表占用一个slots。参数默认值为10。
  • max_wal_senders:wal 发送最大进程数。该参数值应与max_replication_slots 参数值设置相同。参数默认值为10。
  • wal_sender_timeout:中断那些停止活动超过指定毫秒数的复制连接,可以适当设置大一点。参数默认值60s。
  • wal_level 参数必须更改,其它参数可根据需要选择性更改。

二、创建CDC同步用户并授权

登录数据库,创建数据库用户并授权。

根据实际规划,设置用户名和密码,为新创建的同步用户授予相应权限,包括复制流权限、登录数据库权限、当前库下所有表查询权限。

[gbase@c1 ~]$ gsql -r -d postgres -p 15400
gsql ((single_node GBase8cV5 S5.0.0B17 build 32f8156d) compiled at 2023-12-05 19:52:51 commit 0 last mr 408 )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=# # 新创建的同步用户CDCUSER
postgres=# CREATE USER cdcuser WITH PASSWORD 'Database@123';
NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
postgres=# # 将复制流权限赋予cdcuser 用户
postgres=# ALTER ROLE cdcuser REPLICATION;
ALTER ROLE
postgres=# # 将 gbase 数据库的登录权限赋予 cdcuser 用户
postgres=# GRANT CONNECT ON DATABASE gbase TO cdcuser;
GRANT
postgres=# # 切换库并将当前库 cdctest 下所有表查询权限赋予用户
postgres=# \c gbase

Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "gbase" as user "gbase".

gbase=# GRANT SELECT ON ALL TABLES IN SCHEMA cdctest TO cdcuser;
GRANT
发布表
设置发布开关。将复制槽的active 更新设置为true,以便可修改发布表。
gbase=# UPDATE pg_publication SET puballtables=true WHERE pubname IS NOT NULL;
UPDATE 0
创建发布dbz_publication,并添加所有表到dbz_publication(包括之后创建的表)。
gbase=# CREATE PUBLICATION dbz_publication FOR ALL TABLES;
CREATE PUBLICATION
查询哪些表已经发布
gbase=# SELECT * FROM pg_publication_tables;
更改表复制标识
更改表复制标识,包含更新和删除之前的值。以test 表为例:
gbase=# ALTER TABLE test REPLICA IDENTITY FULL;
ALTER TABLE
查看表复制标识。
gbase=# SELECT RELREPLIDENT FROM pg_class WHERE relname='test';
 relreplident
--------------
 f
 d
(2 rows)

返回为 f 标识,说明设置成功。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值