flink-cdc讀取postgres報異常,沒有發布表


異常信息

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;

  


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM