pg_basebackup方式部署流复制

2019-11-27  本文已影响0人  Hmcf

回顾一下之前的在线热备,有以下三个步骤:
1、主库执行pg_start_backup('hmcbk')
2、拷贝主库的$PGDATA数据文件和表空间到备份节点
3、主库执行pg_stop_backup()

而pg_basebackup可以整合这几个步骤。(前提是主库部分的postgresql.conf内容正常配置,创建好流复制用户和修改好pg_hba)。

开始--------------------------------------------------------------
备库执行命令

pg_basebackup -D /data/pgdata -Fp -Xs -v -P -h 172.17.0.2 -p 5432 -U repuser

重要参数解释:

然后再创建recovery.conf文件。
文件内容

recovery_target_timeline = 'latest'
standby_mode = on
primary_conninfo = 'host=172.17.0.2 port=5432 user=repuser'

这里没有直接写明文密码,我们在~.pgpass文件下添加内容。
内容如下

[postgres@pgslave ~]$ cat .pgpass
172.17.0.2:5432:replication:repuser:12345
172.17.0.3:5432:replication:repuser:12345

然后启动备库即可。

以上就是异步流复制的实现。

同步流复制只需要处理两个地方,一个是备库的recovery.conf文件,另一个是主库的postgresql.conf。

其中备库的recovery.conf中primary_conninfo里面添加一个字段application_name用来向主库说明身份。如

recovery_target_timeline = 'latest'
standby_mode = on
primary_conninfo = 'host=172.17.0.2 port=5432 user=repuser application_name=node2'

主库postgresql.conf中synchronous_standby_names参数中添加上面recovery.conf里面新加的application_name的值,如果是多个备库的话,用“,”分隔。如

synchronous_standby_names = 'node2'

最后reload主库,重启备库。
主库验证 状态已经成了sync同步了。

postgres=# select * from pg_stat_replication ;
 pid | usesysid | usename | application_name | client_addr | client_hostname | client_port |         backend_start         | backend_xmin |   state   | sent_lsn  | write_lsn | flush_
lsn | replay_lsn |    write_lag    |    flush_lag    |   replay_lag    | sync_priority | sync_state
-----+----------+---------+------------------+-------------+-----------------+-------------+-------------------------------+--------------+-----------+-----------+-----------+-------
----+------------+-----------------+-----------------+-----------------+---------------+------------
 411 |    16384 | repuser | node2            | 172.17.0.3  |                 |       47542 | 2019-11-24 00:47:37.278837+00 |              | streaming | 0/40002C8 | 0/40002C8 | 0/4000
2C8 | 0/40002C8  | 00:00:00.000315 | 00:00:00.000315 | 00:00:00.000315 |             1 | sync
(1 row)
上一篇下一篇

猜你喜欢

热点阅读