pgsql-13主从复制

本文详细介绍了如何在Linux系统中使用PostgreSQL13实现主从备份,包括数据库安装、主服务器配置、从服务器同步及验证过程,以提高数据库的高可用性和安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux 配置PostgreSQL 13 主从备份(复制):搭建高可用性数据库架构
在现代应用程序中,数据库的高可用性是至关重要的。为了确保数据的安全性和可用性,主从备份(复制)是一种常见的策略。本文将探讨如何使用 PostgreSQL 13 搭建一个主从备份架构。

主数据库:192.168.1.11

从数据库:192.168.1.12

一、数据库安装
首先安装 PostgreSQL 13,确保已在主从服务器上分别安装了 PostgreSQL 13。可以根据操作系统的不同,按照官方文档进行安装。

安装步骤:

 https://blog.youkuaiyun.com/LSW1737554365/article/details/129789740?spm=1001.2014.3001.5502

二、主服务器配置
1、配置主服务器在主服务器(192.168.1.11)上,编辑 PostgreSQL 的主配置文件 postgresql.conf。确认未被注释或添加如下内容:

listen_addresses = '*'               # 允许连接的 IP 地址,这里设置为通配符 '*',表示允许所有地址连接。
wal_level = replica                  # 设置 WAL 日志级别为 replica,以支持逻辑复制。
archive_mode = on                    # 启用归档模式,将 WAL 日志保存到归档目录。
archive_command = 'cp %p /var/lib/postgresql/archive/%f'    # 设置归档命令,将 WAL 日志复制到指定归档目录。
max_wal_senders = 10                 # 允许的最大 WAL 发送者数量,用于流复制。
wal_keep_size = 1000                 # 设置保留的 WAL 日志大小,以 MB 为单位。
max_slot_wal_keep_size = 10          # 为逻辑复制保留的最大 WAL 日志大小。
wal_sender_timeout = 120s            # WAL 发送者超时时间,设置为 120 秒。
hot_standby = on                     # 启用热备模式,允许从服务器作为热备份。

2、登录主数据库新建用户用于主从复制 

create user repuser REPLICATION LOGIN ENCRYPTED PASSWORD 'your_passowrd';

3、编辑主服务器的 pg_hba.conf 文件以配置访问权限。添加以下行来允许从服务器(IP 为 192.168.1.12)连接:

host replication repuser 192.168.1.12/32 md5

4、重启主服务器在主服务器上,重启 PostgreSQL 服务以使配置生效:

sudo systemctl restart postgresql-13


三、从服务器配置
1、从数据库服务器(192.168.1.12)备份原始数据目录:

mv /var/lib/pgsql/13/data  /var/lib/pgsql/13/data-bak

2、启动从服务器复制进程 在从服务器上(192.168.1.12),执行以下命令启动复制进程,从主服务器复制数据到从服务器:将复制数据到从服务器并启动从服务器的 PostgreSQL 服务。“/var/lib/pgsql/13/data“ 为数据存储目录:

pg_basebackup -Xs -v -Fp -P -R -d "hostaddr=192.168.1.11 port=5432 user=repuser password=your_password" -D /var/lib/pgsql/13/data

 3、编辑从服务器的 pg_hba.conf 。在从服务器上(192.168.1.12),编辑 pg_hba.conf 文件,以配置访问权限。添加以下行来允许主服务器(IP 为 192.168.1.11)连接:

host replication repuser 192.168.1.11/32 md5

4、修改从服务器(192.168.1.12)的数据库数据目录权限,否则数据库服务可能无法启动:

chown postgres:postgres -R /var/lib/pgsql/13/data

5、重启从服务器。在从服务器上,重启 PostgreSQL 服务以使配置生效:

systemctl restart postgresql-13


四、验证主从备份配置是否成功
1、在从服务器检查数据目录的文件。检查standby.signal文件和postgresql.auto.conf文件:

ls -l /var/lib/pgsql/13/data/ |grep signal
-rw-rw-r-- 1 postgres postgres 0 Oct 20 14:27 standby.signal

cat postgresql.auto.conf
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
primary_conninfo = 'user=repuser password=your_password channel_binding=disable host=192.168.1.11 port=5432 sslmode=disable sslcompression=0 ssl_min_protocol_version=TLSv1.2 gssencmode=disable krbsrvname=postgres target_session_attrs=any'

2、在主服务器(192.168.1.11)上登录数据库执行以下命令,检查复制状态是否正常:

postgres=#  select client_addr,sync_state from pg_stat_replication;
  client_addr   | sync_state 
----------------+------------
 192.168.222.47 | async
(1 row)

3、在从服务器(192.168.1.12)上登录数据库执行以下命令,检查复制状态是否正常:

postgres=# select pg_is_in_recovery();
 pg_is_in_recovery
-------------------
 t
(1 row)

五、从服务器切换为主服务器

参考连接:

https://blog.youkuaiyun.com/qq_39169917/article/details/131471236


————————————————                      
原文链接:

https://blog.youkuaiyun.com/LSW1737554365/article/details/132163353

https://blog.youkuaiyun.com/qq_39169917/article/details/131471236

您好!关于 pgsql 的安装和主从复制,我可以为您提供一些基本的指导。 首先,您需要下载并安装 PostgreSQL 数据库。您可以从 PostgreSQL 官方网站(https://www.postgresql.org/download/)下载适合您操作系统的安装程序,并按照安装向导进行安装。 安装完成后,您需要进行一些配置以启用主从复制。以下是一个简单的步骤: 1. 确保主服务器(Master)和从服务器(Slave)都具有相同的 PostgreSQL 版本,并且网络连通正常。 2. 在主服务器上,您需要修改 `postgresql.conf` 文件,启用 WAL(Write-Ahead Logging)并配置一个唯一标识符(通常称为“复制标识符”)。在文件中找到 `wal_level` 参数,并将其设置为 `replica` 或 `logical`。然后找到 `max_wal_senders` 参数,并将其设置为允许的最大连接数。 3. 在主服务器上,您还需要修改 `pg_hba.conf` 文件以允许从服务器连接到主服务器。添加一条适当的条目来授权从服务器的 IP 地址或主机名。 4. 在从服务器上,修改 `postgresql.conf` 文件。找到 `hot_standby` 参数,并将其设置为 `on`。然后找到 `primary_conninfo` 参数,配置主服务器的连接信息,包括主服务器的IP地址、端口号和复制标识符。 5. 在从服务器上,创建一个空的 `recovery.conf` 文件,并添加以下配置: ``` standby_mode = 'on' primary_conninfo = 'host=<主服务器IP地址> port=<主服务器端口号> user=<用户名> password=<密码> application_name=<复制标识符>' ``` 替换 `<主服务器IP地址>`、`<主服务器端口号>`、`<用户名>`、`<密码>` 和 `<复制标识符>` 为实际的值。 6. 启动主服务器和从服务器。 完成以上步骤后,从服务器就会连接到主服务器并开始复制数据。您可以通过在主服务器上执行一些写操作,然后在从服务器上验证数据是否同步来确认主从复制是否正常工作。 这只是一个简单的介绍,具体的配置可能会因您的需求和环境而有所不同。如果您需要进一步的指导或有其他问题,请随时提问!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值