在CentOS 7上搭建PostgreSQL的主从(主备)架构,你需要做以下几个步骤:
- 安装PostgreSQL
- 配置主服务器(Master)
- 配置从服务器(Slave)
以下是具体的操作步骤和示例配置:
1. 安装PostgreSQL
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql12-server
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
sudo systemctl enable postgresql-12
sudo systemctl start postgresql-12
2. 配置主服务器(Master)
编辑PostgreSQL配置文件postgresql.conf
,通常位于/var/lib/pgsql/12/data/
目录下:
sudo nano /var/lib/pgsql/12/data/postgresql.conf
确保以下设置正确:
listen_addresses = '*' # what IP address(es) to listen on;
wal_level = replica # minimal level of WAL logging
max_wal_senders = 3 # max number of walsender processes
编辑pg_hba.conf
文件,允许从服务器连接:
sudo nano /var/lib/pgsql/12/data/pg_hba.conf
添加从服务器的IP和认证方式:
host replication slave_user slave_ip/32 md5
重启PostgreSQL服务:
sudo systemctl restart postgresql-12
3. 配置从服务器(Slave)
确保PostgreSQL已安装,并且数据库用户(如replication
用户)已创建。
编辑recovery.conf
文件,创建并配置此文件:
sudo nano /var/lib/pgsql/12/data/recovery.conf
添加以下内容:
standby_mode = 'on'
primary_conninfo = 'host=master_ip user=replication_user password=replication_password port=5432 sslmode=prefer'
重启PostgreSQL服务:
sudo systemctl restart postgresql-12
注意事项
- 替换
master_ip
、slave_ip
、slave_user
和replication_password
为你的实际IP和认证信息。 - 确保防火墙设置允许从服务器连接到主服务器的5432端口。
- 根据你的实际情况调整配置文件的路径和设置。
以上步骤可能需要根据你的实际网络环境和安全要求进行适当的调整。