postgres主从配置和切换

本文档用于说明PostgresSQL数据库流复制(Streaming Replication)配置和主从切换过程。

参考博客地址:https://blog.csdn.net/ywd1992/article/details/81698556

1.主从配置

主:192.168.57.4

         安装目录:/home/postgres/9.6/

Data目录:/home/postgres/9.6/data

备:192.168.57.3

         安装目录:/home/postgres/9.6/

Data目录:/home/postgres/9.6/data

1.1在主服务操作

 

1)修改postgresql.conf文件

vi postgresql.conf

wal_level = hot_standby          ##WAL日志信息的输出级别,minimal、replica、logical三种模式

max_wal_senders = 10                      ##默认为10,一个流复制备库通常只需要消耗流复制主库一个WAL 发送进程,必须小于max_connections

wal_keep_segments = 512               ##越大越好,根据归档存储空间定,默认单个WAL文件大小为16M,这里为512×16MB=8GB

hot_standby = on                       ##开启流复制

logging_collector = on               ##开启日志

log_directory = 'pg_log'            ##开启日志路径

log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' ##开启日志文件名

synchronous_commit = off      ##只能为off,否则主库会一直等待备机响应,备机故障时主机也会出问题

 

2)创建replication用户

psql:进入psql执行

create user repli replication LOGIN password '123456';

 

3)配置pg_hba.conf

添加以下配置,考虑到主备角色互换,建议pg_hba.conf主备完全一样

host    replication      repli      192.168.1.128/32            md5

host    replication      repli      192.168.1.129/32            md5

 

4)重启数据库

$ pg_ctl stop -m fast

$ pg_ctl start

 

1.2在从服务操作

 

1)测试从服务器能否连接主服务器数据库

psql -h 192.168.57.4 -U postgres

连接成功后停掉从库的服务,清空从节点数据

rm –rf /nh_sdap/postgres/9.6/data/*

2)从主节点拷贝数据到从节点

pg_basebackup -h 192.168.57.4 -U repli -D /home/postgres/9.6/data -X stream -P

3)修改recovery.conf文件

复制share目录下的recovery.conf.sample文件

cp $PGHOME/share/recovery.conf.sample $PGDATA/recovery.conf

修改以下配置

standby_mode='on'

recovery_target_timeline = 'latest'

primary_conninfo='host=10.251.9.39 port=5432 user= repli password=123456' ##配置主机的ip、用户、端口等,repli即主库创建的用于流复制的用户

##trigger_file='/opt/PostgreSQL/9.3/data/trigger'

4)重启备库

$ pg_ctl stop -m fast

$ pg_ctl start

3、 查看主备状态

1)通过进程查看

主库为wal senderpostgres主从配置和切换_第1张图片

 

备库为wal receiverpostgres主从配置和切换_第2张图片

 

2)执行sql查询

在主库执行

说明192.168.57.4服务器是从节点,在接收流,而且是异步流复制

select pg_is_in_recovery();--主库是false 备库是true

3)测试主备是否正常

通过建表、插入数据测试即可

2、主从切换

2.1 文件触发方式(略)

2.2 pg_ctl promote方式主从切换

1、停掉主库

2、pg_ctl promote 从库执行切换,执行之后发现recovery.conf变为recovery.done文件,代表 切换成功

3、mv recovery.done recovery.conf 在原主库(当前从库)执行(修改其中的ip为当前的主库ip)

4、启动原主库(当前从库)

5、观察主、备库是否正常

 

 

你可能感兴趣的:(postgres主从配置和切换)