6-逻辑复制

逻辑复制

一般为异步,也可以用synchronous_standby_names设成同步

Publication
mkdir -p /pgccc/pgdata
chown -R postgres. /pgccc/pgdata
/usr/pgsql-14/bin/initdb -D /pgccc/pgdata

vi postgresql.conf
wal_level = logical
max_replication_slots=8
max_wal_senders=8
max_worker_processes=8

vi pg_hba.conf
host all repuser 0.0.0.0/0 md5

/usr/pgsql-14/bin/pg_ctl -D /pgccc/pgdata -l logfile start

–/usr/pgsql-14/bin/pg_ctl -D /pgccc/pgdata restart

关闭防火墙
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service

psql

create user repuser replication login connection limit 10 encrypted password ‘repuser’;

create schema postgres;
create table postgres.test(id int4 primary key, name text);
insert into postgres.test values (1,‘a’);

CREATE PUBLICATION pub FOR TABLE postgres.test;

select * from pg_publication;

grant connect on database postgres to repuser;
grant usage on schema postgres to repuser;
grant select on test to repuser;
上面的不好用直接用这个
ALTER ROLE repuser WITH Superuser;

Subscription
create schema postgres;
create table postgres.test(id int4 primary key ,name text);

–create table postgres.test(id int4 ,name text);
–alter table postgres.test add primary key(id); --没有主键,数据同步将会报错

CREATE SUBSCRIPTION sub CONNECTION ‘host=172.16.40.104 port=5432 dbname=postgres user=repuser password=repuser’ PUBLICATION pub;

select * from pg_subscription;

Publication
insert into test values (2,‘b’);
delete from test where id=1;

select
pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_insert_lsn(),sent_lsn)) send_gap, pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_insert_lsn(),replay_lsn)) apply_gap from pg_stat_replication;

Subscription
select * from postgres.test;

select pg_size_pretty(pg_wal_lsn_diff(received_lsn,latest_end_lsn)) from pg_stat_subscription;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jff_1111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值