PG逻辑复制槽应用

=pg_recvlogical使用===

pg_recvlogical -d postgres -U aaron --slot=test_database --start -f recv.sql

pg_logical_slot_get_changes()函数展示解析数据并消费掉;

pg_logical_slot_peek_changes()函数展示解析数据不会消费掉;

pg_recvlogical,pg自带的工具,能消费复制槽内的数据,相当于逻辑复制的下游。对应物理wal接收工具为 pg_receivewal

=创建复制槽===

SELECT pg_create_logical_replication_slot('logical_test', 'test_decoding');

select * from pg_logical_slot_peek_changes('logical_test',null,null);

select * from pg_logical_slot_get_changes('logical_test',null,null);

select pg_replication_slot_advance();推进复制槽

SELECT pg_drop_replication_slot('slot_name');

发布订阅==

订阅发布默认走的pgoutput解析插件。

CREATE PUBLICATION test_all_tables FOR ALL TABLES;

DROP PUBLICATION test_all_tables;

create table test(id int,name varchar(20));

insert into test values(generate_series(100000,500000),'wjf');

//删除订阅

alter subscription test disable;

alter subscription test set (slot_name =none);

DROP SUBSCRIPTION test;

====启动订阅服务,另一个pg

DROP SUBSCRIPTION test;

SELECT * FROM pg_catalog.pg_publication;

DROP SUBSCRIPTION sbtest;

SELECT * FROM pg_subscription;

CREATE SUBSCRIPTION test CONNECTION 'host=localhost port=5432 dbname=postgres user=aaron password=admin' PUBLICATION test_all_tables;

CREATE SUBSCRIPTION sbtest CONNECTION 'host=localhost port=5432 dbname=postgres user=aaron password=admin'

PUBLICATION test_all_tables with (create_slot = false,slot_name = test);

相关推荐
一碗面4212 小时前
SQL性能优化:让数据库飞起来
数据库·sql·性能优化
June bug2 小时前
【高频SQL基础版】排序和分组
数据库·sql
珠海西格2 小时前
光伏电站全景感知体系:数据采集与设备状态监测技术
大数据·运维·服务器·数据库·人工智能
爱基百客2 小时前
从人鼠到植物:SEdb 3.0数据库一站式检索与分析超级增强子调控网络
数据库·国自然·转录因子·组蛋白修饰·增强子
来来走走2 小时前
rocky linux 9.7安装mysql 8.4+
linux·数据库·mysql
怣503 小时前
MySQL多表连接完全指南:内连接与外连接超详细讲解
数据库·sql·mysql
专注VB编程开发20年3 小时前
python图片验证码识别selenium爬虫--超级鹰实现自动登录,滑块,点击
数据库·python·mysql
智商偏低3 小时前
Postgresql导入几何数据(shp,geojson)的几种方式
数据库·postgresql
我是Superman丶3 小时前
在 PostgreSQL 中使用 JSONB 类型并结合 MyBatis-Plus 实现自动注入,主要有以下几种方案
数据库·postgresql·mybatis