debian

Debian PostgreSQL如何配置主从复制

小樊
44
2025-12-26 23:33:06
栏目: 云计算

在Debian上配置PostgreSQL的主从复制(Master-Slave Replication)可以确保数据的高可用性和负载均衡。以下是一个基本的步骤指南:

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服务

在从服务器上停止PostgreSQL服务:

sudo systemctl stop postgresql

3.2 备份主服务器数据

在主服务器上创建一个基础备份,并将其传输到从服务器。

sudo -u postgres pg_basebackup -D /var/lib/postgresql/<version>/main -Ft -z -P --wal-method=stream

3.3 配置从服务器

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

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

在从服务器上编辑/etc/postgresql/<version>/main/recovery.conf文件(如果文件不存在则创建),添加以下内容:

standby_mode = 'on'
primary_conninfo = 'host=<主服务器IP> dbname=postgres user=replicator password=<复制用户密码>'
restore_command = 'cp /var/lib/postgresql/<version>/main/archive/%f %p'
trigger_file = '/tmp/postgresql.trigger.5432'

4. 启动PostgreSQL服务

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

sudo systemctl start postgresql

5. 验证配置

在主服务器上创建一个测试数据库和表,并插入一些数据:

CREATE DATABASE testdb;
\c testdb
CREATE TABLE test (id SERIAL PRIMARY KEY, name VARCHAR(100));
INSERT INTO test (name) VALUES ('Test Data');

在从服务器上检查是否同步了这些数据:

\c testdb
SELECT * FROM test;

如果数据已经同步,说明主从复制配置成功。

注意事项

通过以上步骤,你可以在Debian上成功配置PostgreSQL的主从复制。

0
看了该问题的人还看了