如何启用PostgreSQL的增量日志功能?
发表时间: 2023-10-12 22:03
备份数据库配置文件
cp /var/lib/pgsql/13/data/postgresql.conf /var/lib/pgsql/13/data/postgresql.conf.bak
修改数据库配置文件,将日志级别调整至 logical
vi /var/lib/pgsql/13/data/postgresql.confwal_level = logical
CREATE ROLE copy_replication;
GRANT copy_replication TO <original_owner>;
GRANT copy_replication TO <replication_user>;
ALTER TABLE <table_name> OWNER TO copy_replication;
因为表的REPLICA IDENTITY设置默认为default,为了使更新事件包含行中所有列的以前值,您必须执行以下日志来补全日志。
ALTER TABLE <table_name> REPLICA IDENTITY FULL;
对于pg数据库版本10以下的,需要在pg数据库服务端安装wal2json 插件。需下载附件安装包,安装如下:
rpm -ivh wal2json96-2.3-2.rhel6.x86_64.rpm
rpm -ivh wal2json_96-2.4-1.rhel7.x86_64.rpm
cp /var/lib/pgsql/9.6/data/postgresql.conf /var/lib/pgsql/9.6/data/postgresql.conf.bak
编辑数据库配置文件,将属性按照如下设置
wal_level = logicalmax_replication_slots = 10max_wal_senders = 10shared_preload_libraries = 'wal2json'
psql -h 10.1.5.186 -p 5432 -U postgres -W
create user datasync with replication login password'datasync';