12.PG主备搭建

发布时间 2024-01-01 22:04:34作者: 太白金星有点烦

1.环境

  主库:172.16.191.133(pg16)

  备库:172.16.191.136(pg16)

2.主库配置

  要使用流复制,需要允许主库接受流复制的连接,这就需要在pg_hba.conf中做如下配置: 

  host    replication     all             0/0             md5

  修改配置参数文件postgresql.conf

 listen_addresses = '*'
 max_wal_senders = 10
 wal_level = replica

3.备库配置

  3.1 首先在配置中生成基础备份(pg_basebackup) 

 pg_basebackup -h172.16.191.133   -U postgres -F p -P -X stream -R -D $PGDATA -l   osdbabackup20240101

  3.2 执行完了之后就能在备库的数据目录(PGDATA)下面看到已经被复制过来的文件(主库的)

       因为使用pg_basebackup命令时使用了“-R”参数,所以也会生成standby.signal文件,同时在postgresql.auto.conf中生成如下内容

primary_conninfo = 'user=postgres password=1234 channel_binding=disable host=172.16.191.133 port=5432 sslmode=disable sslcompression=0 sslcertmode=disable sslsni=1 ssl_min_protocol_version=TLSv1.2 gssencmode=disable krbsrvname=postgres gssdelegation=0 target_session_attrs=any load_balance_hosts=disable'

  如果没有加“-R”参数,我们也可以手动添加上面的内容,如果是PostgreSQL 12版本之前的数据库,使用了“-R”参数会生成recovery.conf文件:

  standby_mode = 'on'primary_conninfo = 'user=postgres password=XXXXXX host=10.0.3.101port=5432 sslmode=disable sslcompression=1'

  3.3启动standby

    启动完成之后,检查备库的参数hot_standby是不是on