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;
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)