Postgresql - Streaming Replication

不得不说,Postgresql搭建备库真是简单到极致。相比与Oracle,MySQL,MS Server都是非常简单的。
两台虚拟机环境:
CentOS 7,
Postgresql 10.4


主库:
# 首先创建同步所需用户和权限
postgres=# create user dbsr replication ;

# 编辑pg_hba.conf,允许用户dbsr连接,并执行replication
host replication dbsr 192.168.3.51/32 trust # streaming replication primary
host replication dbsr 192.168.3.52/32 trust # streaming replication slave

# 编辑postgresql.conf,将所有配置的配置好后,重启数据库服务
wal_level = hot_standby # 这个是设置主为wal的主机max_wal_senders = 10 # 这个设置了可以最多有几个流复制连接,差不多有几个从,就设置几个wal_keep_segments = 256 # 设置流复制保留的最多的xlog数目wal_sender_timeout = 60s # 设置流复制主机发送数据的超时时间max_connections = 1000 # 这个设置要注意下,从库的max_connections必须要大于主库的
max_wal_size = 5GB # in logfile segments, min 1, 16MB each
min_wal_size = 100MB # in logfile segments, min 1, 16MB each
hot_standby = on # "on" allows queries during recovery (change requires restart)
max_standby_archive_delay = 60s
max_standby_streaming_delay = 60s
hot_standby_feedback = on
wal_receiver_timeout = 60s


都配置好主库之后,我们就可以在建立备库了。
从库:
# 建立备份
pg_basebackup -h 192.168.3.51 -U dbsr -F p -P -R -D /var/lib/pgsql/10/data -l /tmp/backup.log

# 修改recovery.conf
加入
recovery_target_timeline = 'latest'

# chown
chown -R postgres:postgres data
# chmod
chmod -R 700 /var/lib/pgsql/10/data

# 启动
service postgresql start

配置完成,如果登录成功,说明配置完成,如果报错,查看log逐一解决。

检查
# 登入主库
psql -U postgres -d postgres
postgres=# \x
Expanded display is on.
postgres=# select * from pg_stat_replication ;
-[ RECORD 1 ]----+------------------------------
pid | 11829
usesysid | 16384
usename | dbsr
application_name | walreceiver
client_addr | 192.168.3.52
client_hostname | 192.168.3.51
client_port | 54200
backend_start | 2018-06-12 05:32:22.142186-04
backend_xmin | 557
state | streaming
sent_lsn | 0/7000140
write_lsn | 0/7000140
flush_lsn | 0/7000140
replay_lsn | 0/7000140
write_lag |
flush_lag |
replay_lag |
sync_priority | 0
sync_state | async

配置成功,就是这么简单。


猜你喜欢

转载自blog.csdn.net/chuckchen1222/article/details/80696082