前提条件

适用环境:CentOS 7(2024-06 EOL);Node 8~16(已 EOL);yum(CentOS 8+ 应用 dnf)。文中命令按当时环境记录,新系统上请对照官方文档调整。

master 10.0.0.100

node 10.0.0.110

两台机器:主节点 10.0.0.100,从节点 10.0.0.110。

系统为 CentOS 7,已配置网络互通。

宸插畨装epel-release 和PostgreSQL 源(如果未安装,按步骤1 閰嶇疆)

主10.0.0.100

sudo yum install -y epel-release https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql15-server postgresql15-contrib
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
sudo sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '10.0.0.100'/" /var/lib/pgsql/15/data/postgresql.conf
sudo sed -i "s/#wal_level = replica/wal_level = replica/" /var/lib/pgsql/15/data/postgresql.conf
sudo sed -i "s/#max_wal_senders = 10/max_wal_senders = 10/" /var/lib/pgsql/15/data/postgresql.conf
sudo sed -i "s/#wal_keep_size = 0/wal_keep_size = 128MB/" /var/lib/pgsql/15/data/postgresql.conf
echo "host replication replica 10.0.0.110/32 md5" | sudo tee -a /var/lib/pgsql/15/data/pg_hba.conf
sudo systemctl start postgresql-15
sudo -u postgres psql -c "CREATE ROLE replica REPLICATION LOGIN PASSWORD '123456';"
sudo systemctl enable postgresql-15
sudo systemctl restart postgresql-15

从10.0.0.110

sudo yum install -y epel-release https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql15-server postgresql15-contrib
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
sudo systemctl stop postgresql-15
sudo rm -rf /var/lib/pgsql/15/data/*
sudo -u postgres pg_basebackup -h 10.0.0.100 -D /var/lib/pgsql/15/data -U replica -P --wal-method=stream
sudo sed -i "s/#hot_standby = off/hot_standby = on/" /var/lib/pgsql/15/data/postgresql.conf
sudo -u postgres touch /var/lib/pgsql/15/data/standby.signal
echo "standby_mode = 'on'" | sudo tee /var/lib/pgsql/15/data/recovery.conf
echo "primary_conninfo = 'host=10.0.0.100 port=5432 user=replica password=123456'" | sudo tee -a /var/lib/pgsql/15/data/recovery.conf
sudo systemctl start postgresql-15
sudo systemctl enable postgresql-15

注意事项

  • 替换 your_password 为你设置的强密码。
  • 确保防火墙开放 5432 端口(如使用 firewalld,sudo firewall-cmd --add-port=5432/tcp --permanent; sudo firewall-cmd --reload)。
  • 如果遇到问题,检查日志:/var/lib/pgsql/15/data/log/。
0 子项 · 2 次浏览 · 2026-09-24