【PostgreSQL】数据库复制
更新:HHH   时间:2023-1-7


异步流复制
[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


返回数据库教程...