PostgreSQL 延迟复制

pg 主备流复制可以设置人为的复制延迟,这个功能在某些场景下有巨大的作用,比如误删数据的恢复。通过设置一个延迟复制的备库,主库上被误删的数据,可以在备库上找回来。延迟时间可以自定义设置,超过延迟时间,则无法找回误删的数据。下面通过一个案例来了解 pg 延迟复制的用法。


环境:
主库:192.168.56.200
备库:192.168.56.201

数据库版本:pg 14.3


一、初始化并启动主库:
cd ~/app/pg14/bin/

./initdb -D ~/data/pg14/


vim ~/data/pg14/postgresql.conf

listen_addresses = '*'


vim ~/data/pg14/pg_hba.conf
host replication all 192.0.0.0/8 trust

host all all 192.0.0.0/8 trust


./pg_ctl -D ~/data/pg14/ start


二、构建备库
cd ~/app/pg14/bin/
./pg_basebackup -h 192.168.56.200 -p 5432 -X stream -C -S slave_slot -R -D ~/data/pg14
chmod 700 ~/data/pg14/

./pg_ctl -D ~/data/pg14/ start


三、确认主备复制搭建完成
在主库执行:
select * from pg_stat_replication;

select * from pg_replication_slots;


四、设置延迟复制
在备库修改延迟复制参数:recovery_min_apply_delay
alter system set recovery_min_apply_delay=60000;
select pg_reload_conf();

show recovery_min_apply_delay;


五、验证延迟复制
主库插入数据,在备库不能立即查到。等待1分钟之后才可以查到。

文章评论

0条评论