centos

centos postgresql复制功能

小樊
31
2025-07-15 00:50:56
栏目: 云计算

在CentOS上配置PostgreSQL的复制功能,通常是为了实现高可用性、负载均衡或数据备份。以下是配置PostgreSQL复制的基本步骤:

1. 准备工作

2. 配置主服务器

2.1 编辑 postgresql.conf

在主服务器上编辑 postgresql.conf 文件,确保以下参数设置正确:

listen_addresses = '*'  # 允许所有IP连接
wal_level = replica      # 设置为replica以启用流复制
max_wal_senders = 10     # 最大WAL发送者数量
wal_keep_segments = 64   # 保留的WAL段数量

2.2 编辑 pg_hba.conf

在主服务器上编辑 pg_hba.conf 文件,添加从服务器的连接权限:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    replication     replicator      <从服务器IP>/32            md5

2.3 创建复制用户

在主服务器上创建一个用于复制的用户,并授予必要的权限:

CREATE USER replicator WITH REPLICATION PASSWORD 'your_password' LOGIN;

2.4 重启PostgreSQL服务

sudo systemctl restart postgresql

3. 配置从服务器

3.1 停止从服务器上的PostgreSQL服务

sudo systemctl stop postgresql

3.2 备份主服务器的数据目录

在主服务器上备份数据目录,并将其传输到从服务器:

sudo tar -czvf /path/to/backup.tar.gz /var/lib/pgsql/data
scp /path/to/backup.tar.gz <从服务器IP>:/tmp/

3.3 在从服务器上恢复数据

在从服务器上解压备份文件并恢复数据目录:

sudo tar -xzvf /tmp/backup.tar.gz -C /
sudo chown -R postgres:postgres /var/lib/pgsql

3.4 编辑 postgresql.conf

在从服务器上编辑 postgresql.conf 文件,确保以下参数设置正确:

listen_addresses = '*'  # 允许所有IP连接
hot_standby = on       # 启用热备模式

3.5 编辑 recovery.conf

在从服务器上创建 recovery.conf 文件,并添加以下内容:

standby_mode = 'on'
primary_conninfo = 'host=<主服务器IP> dbname=postgres user=replicator password=your_password'
restore_command = 'cp /var/lib/postgresql/archive/%f %p'
trigger_file = '/tmp/postgresql.trigger.5432'

3.6 启动从服务器上的PostgreSQL服务

sudo systemctl start postgresql

4. 验证复制状态

在主服务器上执行以下SQL查询,查看复制状态:

SELECT * FROM pg_stat_replication;

在从服务器上执行以下SQL查询,查看是否成功连接到主服务器:

SELECT * FROM pg_stat_activity WHERE datname = 'postgres';

注意事项

通过以上步骤,你可以在CentOS上成功配置PostgreSQL的复制功能。

0
看了该问题的人还看了