postgresql逻辑复制槽replication_slot

系统表说明:http://postgres.cn/docs/11/view-pg-replication-slots.html

--------------------------------------------------------------------------逻辑复制wal2json安装配置----------------------------------------------
1.1、PostgreSQL安装WAL2JSON插件;
$ wget -c --ftp-user=ftp --ftp-password=ftp ftp://192.168.1.1/pub/installpkg/database/postgresql/wal2json-master.zip
$ unzip  wal2json-master.zip
$ chown -R postgres:postgres wal2json-master
$ cd wal2json-master
# Make sure your path includes the bin directory that contains the correct `pg_config`
$ PATH=/home/postgres/pgsql/bin:$PATH
$ USE_PGXS=1 make
$ USE_PGXS=1 make install

1.2 修改参数,然后重启数据库
$vi postgresql.conf

wal_level = logical

     备注:详情请参考https://github.com/eulerto/wal2json

1.3、创建PostgreSQL逻辑复制槽;
 select * from pg_create_logical_replication_slot('risk_logical_slot_81_72','wal2json');

 slot_name:逻辑复制槽名称
 test_decoding:逻辑复制解码器,使用wal2json
     备注:根据逻辑复制的原理,一个库原则上只需创建一个槽即可,切记请使用wal2json解码器
         
新建逻辑复制账号
        create user riskdsc_logical login replication encrypted password '*******';

 

创建复制槽

每个复制槽都有一个名字,名字可以包含小写字母、数字和下划线字符。

master设置几个参数

max_replication_slots = 10 --最大复制槽数,即pg_replication_slots条数不能超过10
hot_standby = on
wal_level = replica 或者 logical
hot_standby_feedback = on
max_wal_senders = 10

 

//复制槽视图
select * from pg_replication_slots;

//查看复制槽
select * from pg_stat_replication;

select * from pg_publication_tables;

//创建物理复制槽
SELECT * FROM pg_create_physical_replication_slot('test_slot');

//创建逻辑复制槽
select * from pg_create_logical_replication_slot('test_logical_slot_81_72','wal2json');

//删除复制槽
SELECT * FROM pg_drop_replication_slot('test_slot');

参考:https://blog.youkuaiyun.com/ctypyb2002/article/details/81207837

 
### PostgreSQL 复制使用方法及配置教程 #### 启用逻辑复制 为了在PostgreSQL中设置复制,首先需要确保已启用了逻辑复制功能。这涉及到更新`postgresql.conf`文件中的特定参数。 编辑PostgreSQL配置文件(通常位于`postgresql.conf`),并将`wal_level`参数设为`replica`或更高级别以支持逻辑解码[^1]: ```bash wal_level = replica ``` 此更改允许数据库生成足够的WAL日志条目来实现数据的一致性和恢复能力,同时也满足了逻辑复制的需求。 #### 创建物理复制 创建一个新的物理复制可以通过执行SQL命令完成。连接到主服务器上的psql客户端工具或其他兼容接口,并运行如下语句: ```sql SELECT * FROM pg_create_physical_replication_slot('my_physical_slot'); ``` 这里定义了一个名为`my_physical_slot`的新复制。请注意,在生产环境中应选择更具描述性的名称以便管理和识别。 #### 查看现有复制状态 要查看当前存在的所有复制及其状态信息,可以查询系统视图`pg_replication_slots`: ```sql SELECT slot_name, plugin, active, restart_lsn FROM pg_replication_slots; ``` 上述查询返回的结果列出了每一个活跃的复制详情,包括插件名、活动标志位以及最近一次重置位置(LSN)等重要属性。 #### 删除不再使用的复制 当某个备用节点被移除或者重新初始化时,则应当清理掉对应的过期复制以免占用不必要的资源。删除指定复制的操作同样简单明了: ```sql SELECT pg_drop_replication_slot('my_physical_slot'); ``` 通过这种方式即可安全地释放已被弃用的复制所持有的锁和其他内部结构。 #### 配置从库环境 对于作为备选实例的角色来说,除了基本的服务启动外还需要额外做一些调整工作。例如修改服务单元文件内的环境变量指向实际的数据目录路径[^4]: ```ini Environment=PGDATA=/data/pgsql/data/ ``` 之后记得重启PostgreSQL进程使新的设定生效[^3]。 最后一步就是确认整个集群架构下的各个组件之间能够正常通信交互,从而保障高效稳定的读写分离机制得以顺利实施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值