当前位置: 首页 > 帮助中心

Debian下PostgreSQL复制如何配置

时间:2026-01-30 11:17:22

在Debian系统下配置PostgreSQL复制,通常涉及设置主服务器(Master)和从服务器(Slave)。以下是详细的步骤指南:

1. 安装PostgreSQL

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

sudo apt updatesudo apt install postgresql postgresql-contrib
2. 配置主服务器2.1 编辑postgresql.conf

编辑主服务器的postgresql.conf文件,通常位于/etc/postgresql/<version>/main/目录下。

sudo nano /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

编辑主服务器的pg_hba.conf文件,通常位于同一目录下。

sudo nano /etc/postgresql/<version>/main/pg_hba.conf

添加以下行以允许从服务器连接:

hostreplication replicator <slave_ip>/32md5

<slave_ip>替换为从服务器的IP地址。

2.3 创建复制用户

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

sudo -u postgres psql

在psql命令行中执行以下SQL语句:

CREATE USER replicator WITH REPLICATION PASSWORD 'your_password' LOGIN;GRANT ALL PRIVILEGES ON DATABASE your_database TO replicator;

your_password替换为复制用户的密码,your_database替换为你想要复制的数据库名称。

2.4 重启PostgreSQL服务

重启PostgreSQL服务以应用更改。

sudo systemctl restart postgresql
3. 配置从服务器3.1 停止从服务器上的PostgreSQL服务

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

sudo systemctl stop postgresql
3.2 备份主服务器数据

在主服务器上备份整个数据库集群。

sudo pg_basebackup -D /var/lib/postgresql/<version>/main -U replicator --password --wal-method=stream

按照提示输入复制用户的密码。

3.3 配置从服务器

将备份的数据复制到从服务器的相应目录。

sudo rsync -a /var/lib/postgresql/<version>/main/ /var/lib/postgresql/<version>/main/

编辑从服务器的postgresql.conf文件,通常位于/etc/postgresql/<version>/main/目录下。

sudo nano /etc/postgresql/<version>/main/postgresql.conf

找到并修改以下参数:

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

编辑从服务器的recovery.conf文件,通常位于同一目录下。

sudo nano /var/lib/postgresql/<version>/main/recovery.conf

添加以下内容:

standby_mode = 'on'primary_conninfo = 'host=<master_ip> dbname=your_database user=replicator password=your_password'restore_command = 'cp /var/lib/postgresql/wal_archive/%f %p'trigger_file = '/tmp/postgresql.trigger.5432'

<master_ip>替换为主服务器的IP地址,your_database替换为你想要复制的数据库名称,your_password替换为复制用户的密码。

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

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

sudo systemctl start postgresql
4. 验证复制

在主服务器上插入一些数据,然后在从服务器上检查这些数据是否同步。

在主服务器上:

sudo -u postgres psql
INSERT INTO your_table (column1, column2) VALUES ('value1', 'value2');

在从服务器上:

sudo -u postgres psql
SELECT * FROM your_table;

如果数据同步成功,你应该能在从服务器上看到相同的数据。

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


上一篇:Debian环境下MongoDB内存配置建议
下一篇:Debian中如何解决MongoDB连接问题
debian
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素