postgresql14 主备库切换后,原主库做为新的备库加入到集群

postgresql14 主备库切换后,原主库做为新的备库加入到集群中,要点如下:
master: 192.168.56.108
slave: 192.168.56.109
1、主库挂了后,从库提为主库,在从库上执行: pg_ctl promote
2、检查原master上的postgresql.conf文件,确保参数: wal_log_hints = on ,如果之前是off,则需要修改后,重启,再关闭;
3、备份原master上的归档日志目录:
cp -R /home/postgres/archives archives_bak
cp -R $PGDATA/pg_wal pg_wal_bak
4、进入slave后(目前已经是主库),通过scp命令,将当前slave的归档日志复制到原master主机,如下:
su - postgres
scp /home/postgres/archives/14/* [email protected]:/home/postgres/data/14/pg_wal/
将原主机的归档日志也复制到该目录下,在master主机上,
su - postgres
cp /home/postgres/archives/14/* $PGDATA/pg_wal/

5、在master主机上,执行pg_rewind同步时间线:
 pg_rewind -D $PGDATA -R --source-server 'host=192.168.56.109 port=5432 user=postgres dbname=postgres'

如果postgres用户有密码,则需要加上 password=密码


6、同步成功后,如果复制用户不是postgres,则需要修改 postgres.auto.conf文件
 primary_conninfo = 'user=replicator passfile=''/home/postgres/.pgpass'' channel_binding=prefer host=192.168.56.108 port=5432 sslmode=prefer sslcompression=0 sslsni=1 ssl_min_protocol_version=TLSv1.2 gssencmode=prefer krbsrvname=postgres target_session_attrs=any' 
 
 7、在master主机上,创建standby.signal文件:
 touch $PGDATA/standby.signal
 8、重启master,此时master作为备库
 pg_ctl start
 9、在slave上,执行 select * from pg_stat_replication;

你可能感兴趣的:(07,数据库,postgresql,数据库)