debian

Debian下PostgreSQL主从复制怎么配置

小樊
49
2025-10-19 09:38:04
栏目: 云计算

在Debian系统下配置PostgreSQL的主从复制,可以按照以下步骤进行:

1. 安装PostgreSQL

首先,确保在主服务器和从服务器上都安装了PostgreSQL。

sudo apt update
sudo apt install postgresql postgresql-contrib

2. 配置主服务器

2.1 编辑主服务器的postgresql.conf

编辑主服务器上的/etc/postgresql/<version>/main/postgresql.conf文件,确保以下参数设置正确:

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

2.2 编辑主服务器的pg_hba.conf

编辑主服务器上的/etc/postgresql/<version>/main/pg_hba.conf文件,添加从服务器的连接权限:

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

3. 配置从服务器

3.1 编辑从服务器的postgresql.conf

编辑从服务器上的/etc/postgresql/<version>/main/postgresql.conf文件,确保以下参数设置正确:

listen_addresses = '*'  # 监听所有IP地址
hot_standby = on       # 启用热备份模式

3.2 编辑从服务器的pg_hba.conf

编辑从服务器上的/etc/postgresql/<version>/main/pg_hba.conf文件,添加主服务器的连接权限:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             <主服务器IP>/32            md5

4. 创建复制用户

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

CREATE ROLE replicator WITH REPLICATION PASSWORD 'your_password' LOGIN;

5. 初始化从服务器

在从服务器上执行以下命令,初始化复制:

sudo -u postgres psql -c "SELECT pg_create_restore_point('replication_init')"

6. 获取主服务器的WAL日志位置

在主服务器上获取当前的WAL日志位置:

sudo -u postgres psql -c "SELECT pg_current_wal_lsn()"

记下这个LSN值。

7. 配置从服务器连接到主服务器

在从服务器上执行以下命令,配置从服务器连接到主服务器:

sudo -u postgres psql -c "SELECT pg_basebackup('-h <主服务器IP> -U replicator -D /var/lib/postgresql/<version>/main -X stream -P -v --wal-method=stream')"

8. 启动从服务器

在从服务器上启动PostgreSQL服务:

sudo systemctl start postgresql

9. 验证复制状态

在主服务器和从服务器上分别执行以下命令,验证复制状态:

在主服务器上:

SELECT * FROM pg_stat_replication;

在从服务器上:

SELECT * FROM pg_stat_replication;

如果一切配置正确,从服务器应该会显示正在从主服务器接收WAL日志。

10. 监控和维护

定期监控复制状态,并根据需要进行维护。可以使用pg_stat_replication视图来检查复制的健康状况。

通过以上步骤,你应该能够在Debian系统下成功配置PostgreSQL的主从复制。

0
看了该问题的人还看了