首页 > 数据库 > PostgreSQL > pglogical的安装配置
瀚高数据库
本文主要用于介绍pglogical的安装配置
pglogical 2插件(后边简称pglogical)使用发布/订阅的模式为PostgreSQL提供了逻辑流复制的实现方式。pglogicla是基于BDR项目的一部分技术发展而来。
我们一般使用以下名称来描述节点间的数据流,复用了之前的Slony技术解析:
Nodes(节点) - Postgresql数据库实例
Providers and Subscribers(发布者和订阅者) - Nodes使用的角色
Replication Set(复制集) - 表的集合
pglogical使用pg最新的内核特性,因为使用上有一下版本限制:
发布者和订阅者节点必要运行在PostgreSQL 9.4版本及以上
复制源的筛选和冲突检测只在PostgreSQL9.5版本及以上
订阅者端可以是Postgres-XL 9.5版本及以上
支持的使用场景包括
可用于大版本升级。
完整数据库复制。
使用复制集选择性地复制表集。
在发布者服务器端或订阅者服务器端选择性复制表行(row_filter)。
在发布者端选择性复制表列
从多个上游服务器收集/合并数据
架构细节:
pglogical工作在单库级别而不是像流复制一样的实例级别
一个订阅者端可以在不引起额外的磁盘写负载的情况下同时为多个订阅端传输数据
一个发布者端可以合并来自多个源的更改并自动检测与处理冲突。(多主机需求的某些方面)
为了使用pglogical插件,发布者端和订阅者端必须跑在Postgresql9.4及以上的版本中。
pglogical插件必须在发布者端跟订阅者端同时安装,必须在两端执行CREATE EXTENSION pglogical
需要同步的表在发布者端和订阅者端必须有相同的模式名称及表名称
需要同步的表在发布者和订阅者端必须有相同的列,每列的数据类型必须相同。检查约束、非空约束等也要相同,或者订阅者端的限制比发布者端要弱一些。
表必须有相同的主键。不建议额外添加除主键之外的其他唯一约束。
pglogical提供rpm包安装及源码安装两种方式,rpm包安装较为简答,本文主要介绍源码包的安装方法。
pglogical源码包的安装同其他任何PostgreSQL的扩展安装一样使用PGXS。
确保包含PostgreSQL发行版中pg_config的目录配置在PATH的环境变量中。如果你的环境中没有安装pg_config这个命令,你需要用你的包管理器来安装对应版本的开发包。
下面以pg14.6为数据库版本为大家演示pglogical插件安装及单向数据同步搭建过程。
OS:redhat7.7
CPU: X86_64
database:pg14.6
extension version:2.4.2
Providers:192.168.164.51
Subscribers:192.168.164.52
1、安装扩展
发布端、订阅端解压缩安装pglogical,下面为发布端的日志
2、修改数据库参数及pg_hba文件,发布端订阅端同时修改postgresql.conf文件修改内容
3、创建扩展
4、创建测试表及测试数据发布端创建测试表,模拟测试数据
5、发布端创建节点,创建复制集,将要同步的表t01加入到复制集中
6、订阅端创建节点 ##使用超级用户创建订阅节点
7、核对订阅端数据 ##查询三张表信息,可以看到只有加入到复制集的表的数据同步了过来
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69994931/viewspace-2931476/ ,如需转载,请注明出处,否则将追究法律责任。