配置PostgreSQL复制设置。配置是主从设置。
配置主服务器 [root@vm-06 ~]# yum -y install postgresql-server [root@vm-06 ~]# postgresql-setup initdb Initializing database ... OK [root@vm-06 ~]# vi /var/lib/pgsql/data/postgresql.conf # 编辑配置文件 # 第59行,取消注释更改为: listen_addresses = '*' # 第165行,取消注释更改为: wal_level = hot_standby # 第168行,取消注释更改为: # on ⇒ sync # remote_write ⇒ memory sync # local ⇒ slave is asynchronous # off ⇒ asynchronous synchronous_commit = local # 第194行,取消注释更改为: archive_mode = on # 第196行,取消注释更改为: archive_command = 'cp %p /var/lib/pgsql/archive/%f' # 第212行,取消注释更改为: max_wal_senders = 2 # 第214行,取消注释更改为: wal_keep_segments = 10 # 第221行,取消注释更改为: synchronous_standby_names = 'slave01' # [root@vm-06 ~]# vi /var/lib/pgsql/data/pg_hba.conf # 文件最后添加 # host replication [replication user] [allowed IP addresses] password host replication replica 127.0.0.1/32 md5 host replication replica 192.168.1.1/32 md5 [root@vm-06 ~]# systemctl start postgresql [root@vm-06 ~]# systemctl enable postgresql # create a user for replication [root@vm-06 ~]# su - postgres -bash-4.2$ createuser --replication -P replica Enter password for new role: #password Enter it again: #password 配置从服务器 # 安装 [root@vm-05 ~]# yum -y install postgresql-server [root@vm-05 ~]# su - postgres # get backup from Master Server -bash-4.2$ pg_basebackup -h 192.168.1.124 -U replica -D /var/lib/pgsql/data -P --xlog Password: # "replica" user's password -bash-4.2$ vi /var/lib/pgsql/data/postgresql.conf hot_standby = on -bash-4.2$ cp /usr/share/pgsql/recovery.conf.sample /var/lib/pgsql/data/recovery.conf -bash-4.2$ vi /var/lib/pgsql/data/recovery.conf restore_command = 'scp 192.168.1.124:/var/lib/pgsql/archive/%f %p' standby_mode = on primary_conninfo = 'host=192.168.1.124 port=5432 user=replica password=password application_name=slave01' -bash-4.2$ exit logout [root@vm-05 ~]# systemctl start postgresql [root@vm-05 ~]# systemctl enable postgresql 配置完成master所在服务器查看状态: [root@vm-06 ~]# su - postgres Last login: Tue Jun 12 15:35:12 +08 2018 on pts/0 -bash-4.2$ psql -c "select application_name, state, sync_priority, sync_state from pg_stat_replication;" application_name | state | sync_priority | sync_state ------------------+-----------+---------------+------------ slave01 | streaming | 1 | sync (1 row)