debian

Debian中如何配置PostgreSQL复制功能

小樊
44
2025-07-04 06:27:16
栏目: 云计算

在Debian系统中配置PostgreSQL复制功能,可以按照以下步骤进行:

一、准备工作

  1. 安装PostgreSQL: 确保在主服务器和从服务器上都安装了PostgreSQL。

  2. 配置主服务器

    • 编辑/etc/postgresql/<版本号>/main/postgresql.conf文件。
    • 设置listen_addresses'*'或指定的IP地址,以允许来自从服务器的连接。
    • 设置wal_levelreplica或更高,以启用流复制。
    • 设置max_wal_senderswal_keep_segments以控制复制进程的数量和WAL文件的保留。
  3. 配置pg_hba.conf

    • 编辑/etc/postgresql/<版本号>/main/pg_hba.conf文件。
    • 添加从服务器的IP地址和相应的认证方式(如md5)。

二、创建复制用户

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

CREATE USER replicator WITH REPLICATION PASSWORD 'your_password' LOGIN;

三、配置从服务器

  1. 停止从服务器上的PostgreSQL服务

    sudo systemctl stop postgresql
    
  2. 备份主服务器的数据目录: 使用pg_basebackup工具从主服务器备份数据到从服务器:

    sudo pg_basebackup -h <主服务器IP> -U replicator -D /var/lib/postgresql/<版本号>/main -P --wal-method=stream
    
  3. 修改从服务器的数据目录权限

    sudo chown -R postgres:postgres /var/lib/postgresql/<版本号>/main
    
  4. 编辑从服务器的postgresql.conf文件

    • 设置listen_addresses'*'或指定的IP地址。
    • 设置hot_standbyon
    • 设置primary_conninfo指向主服务器的信息。
  5. 编辑从服务器的recovery.conf文件: 创建或编辑/var/lib/postgresql/<版本号>/main/recovery.conf文件,添加以下内容:

    standby_mode = 'on'
    primary_conninfo = 'host=<主服务器IP> dbname=postgres user=replicator password=your_password'
    restore_command = 'cp /var/lib/postgresql/wal_archive/%f %p'
    trigger_file = '/tmp/postgresql.trigger.5432'
    
  6. 启动从服务器上的PostgreSQL服务

    sudo systemctl start postgresql
    

四、验证复制状态

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

SELECT * FROM pg_stat_replication;

在从服务器上执行以下SQL命令,查看复制状态:

SELECT * FROM pg_stat_replication;

五、注意事项

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

0
看了该问题的人还看了