<span>flink-cdc读取postgres报异常,没有发布表</span>

异常信息

must be superuser to create FOR ALL TABLES publication

必须是超级用户才能为所有发布表创建

 

 

网上搜索了一天,都毫无头绪,后面搜索到了一个

https://blog.csdn.net/Zznxz0601/article/details/116166269

 

 感觉像这个东西:

 

设置如下:

-- 设置发布开关
update pg_publication set puballtables=true where pubname is not null;

-- 创建发布dbz_publication,添加所有表到dbz_publication,包括以后新建的表
CREATE PUBLICATION dbz_publication FOR ALL TABLES;

-- 查询哪些表已经发布
select * from pg_publication_tables;

 

 

 

flink-cdc可以读取到数据啦

 

 

 

=====================可能还会遇到其它问题或者异常===============================

PGsql命令(备忘)

 

-- pg新建用户
CREATE USER ODPS_ETL WITH PASSWORD 'odpsETL@2021';
-- 给用户复制流权限
ALTER ROLE ODPS_ETL replication;
-- 给用户数据库权限
grant CONNECT ON DATABASE test to ODPS_ETL;
-- 设置发布开关
update pg_publication set puballtables=true where pubname is not null;
-- 把所有表进行发布
CREATE PUBLICATION dbz_publication FOR ALL TABLES;
-- 查询哪些表已经发布
select * from pg_publication_tables;
-- 给表查询权限
grant select on TABLE aa to ODPS_ETL;
-- 给用户读写权限
grant select,insert,update,delete ON ALL TABLES IN SCHEMA public to bd_test;
-- 把当前库所有表查询权限赋给用户
GRANT SELECT ON ALL TABLES IN SCHEMA public TO ODPS_ETL;
-- 把当前库以后新建的表查询权限赋给用户
alter default privileges in schema public grant select on tables to ODPS_ETL;
-- 更改复制标识包含更新和删除之前值
ALTER TABLE test0425 REPLICA IDENTITY FULL;
-- 查看复制标识
select relreplident from pg_class where relname='test0425';
-- 查看solt使用情况
SELECT * FROM pg_replication_slots;
-- 删除solt
SELECT pg_drop_replication_slot('zd_org_goods_solt');
-- 查询用户当前连接数
select usename, count(*) from pg_stat_activity group by usename order by count(*) desc;
-- 设置用户最大连接数
alter role odps_etl connection limit 200;

  


 

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务