PostgreSQL 数据库实时同步(通过发布与订阅)
现有一套业务库,想再创建一个中间库,保证中间库和业务库数据实时同步。
·
背景
现有一套业务库,想再创建一个中间库,保证中间库和业务库数据实时同步。
解决方案
使用 PostgreSQL 数据库的 发布与订阅 功能。
- 环境准备:
发布端: 172.18.12.155:5432/zrzy
订阅端: 172.18.12.22:5432/zrzyzjk - 两个数据库中都有djdyj这张表,表结构一致;
- 保证订阅端数据库的 wal_level 级别为 logical(具体操作查看这篇文章);
- 在发布端创建发布(PUBLICATION):
# 创建名为 djdyj_publication 的发布
CREATE PUBLICATION djdyj_publication FOR TABLE djdyj;
- 在订阅端创建订阅(SUBSCRIPTION):
# 创建名为djdyj_subscription 的订阅
CREATE SUBSCRIPTION djdyj_subscription
CONNECTION 'hostaddr=172.18.12.155 dbname=zrzy user=postgres password=postgres'
PUBLICATION djdyj_publication;
- 在发布端修改djdyj表数据测试效果。
- PostgreSQL 数据库关于发布与订阅的一些常用SQL:
# 查询现有所有发布
select * from pg_catalog.pg_publication ;
# 查询现有所有订阅
SELECT * FROM pg_subscription;
# 查询当前wal_level级别
SHOW wal_level;
更多推荐


所有评论(0)