异步流复制
[root@wallet01 ~]# su - postgres
[postgres@wallet01 ~]$ vi /var/lib/pgsql/9.6/data/pg_hba.conf
host replication postgres 192.168.1.0/24 md5
[postgres@wallet01 ~]$ vi /var/lib/pgsql/9.6/data/postgresql.conf
listen_addresses = '0.0.0.0'
max_wal_senders = 5
wal_level = hot_standby
[postgres@wallet01 ~]$ pg_ctl restart
waiting for server to shut down.... done
server stopped
server starting
[root@wallet02 ~]# su - postgres
[postgres@wallet02 ~]$ pg_basebackup -h 192.168.1.201 -U postgres -F p -P -x -R -D /var/lib/pgsql/9.6/data
Password:
2161085/2161085 kB (100%), 1/1 tablespace
[postgres@wallet02 ~]$ vi /var/lib/pgsql/9.6/data/postgresql.conf
hot_standby = on
[postgres@wallet02 ~]$ vi /var/lib/pgsql/9.6/data/recovery.conf
standby_mode = 'on'
primary_conninfo = 'user=postgres password=postgres host=192.168.1.201 port=5432 sslmode=disable
sslcompression=1 krbsrvname=postgres'
[postgres@wallet02 ~]$ pg_ctl start
server starting
[postgres@wallet01 ~]$ psql
psql (9.6.12)
Type "help" for help.
postgres=# select pid,state,client_addr,sync_priority,sync_state from pg_stat_replication;
pid | state | client_addr | sync_priority | sync_state
------+-----------+---------------+---------------+------------
2055 | streaming | 192.168.1.202 | 0 | async
(1 row)
同步流复制
[root@wallet01 ~]# su - postgres
[postgres@wallet01 ~]$ vi /var/lib/pgsql/9.6/data/pg_hba.conf
host replication postgres 192.168.1.0/24 md5
[postgres@wallet01 ~]$ vi /var/lib/pgsql/9.6/data/postgresql.conf
max_wal_senders = 5
wal_level = hot_standby
synchronous_standby_names = 'wallet02,wallet03'
[root@wallet01 ~]# su - postgres
[postgres@wallet01 ~]$ pg_ctl reload
server signaled
[root@wallet02 ~]# su - postgres
[postgres@wallet02 ~]$ pg_basebackup -h 192.168.1.201 -U postgres -F p -P -x -R -D /var/lib/pgsql/9.6/data
Password:
2161085/2161085 kB (100%), 1/1 tablespace
[postgres@wallet02 ~]$ vi /var/lib/pgsql/9.6/data/postgresql.conf
hot_standby = on
[postgres@wallet02 ~]$ vi /var/lib/pgsql/9.6/data/recovery.conf
standby_mode = 'on'
primary_conninfo = 'application_name=wallet02 user=postgres password=postgres host=192.168.1.201 port=5432 sslmode=disable sslcompression=1'
[postgres@wallet02 ~]$ pg_ctl start
server starting
[root@wallet03 ~]# su - postgres
[postgres@wallet03 ~]$ pg_basebackup -h 192.168.1.201 -U postgres -F p -P -x -R -D /var/lib/pgsql/9.6/data
Password:
2161215/2161215 kB (100%), 1/1 tablespace
[postgres@wallet03 ~]$ vi /var/lib/pgsql/9.6/data/postgresql.conf
hot_standby = on
[postgres@wallet03 ~]$ vi /var/lib/pgsql/9.6/data/recovery.conf
standby_mode = 'on'
primary_conninfo = 'application_name=wallet03 user=postgres password=postgres host=192.168.1.201 port=5432 sslmode=disable sslcompression=1'
[postgres@wallet03 ~]$ pg_ctl start
server starting
[postgres@wallet01 ~]$ psql
psql (9.6.12)
Type "help" for help.
postgres=# select pid,state,client_addr,sync_priority,sync_state from pg_stat_replication;
pid | state | client_addr | sync_priority | sync_state
------+-----------+---------------+---------------+------------
1968 | streaming | 192.168.1.202 | 1 | sync
2018 | streaming | 192.168.1.203 | 2 | potential