Linux 配置PostgreSQL 13 主从备份(复制):搭建高可用性数据库架构
在现代应用程序中,数据库的高可用性是至关重要的。为了确保数据的安全性和可用性,主从备份(复制)是一种常见的策略。本文将探讨如何使用 PostgreSQL 13 搭建一个主从备份架构。
主数据库:192.168.10.5
从数据库:192.168.10.6
一、数据库安装
首先安装 PostgreSQL 13,确保已在主从服务器上分别安装了 PostgreSQL 13。可以根据操作系统的不同,按照官方文档进行安装。
安装步骤:https://blog.csdn.net/LSW1737554365/article/details/129789740?spm=1001.2014.3001.5502
二、主服务器配置
1、配置主服务器在主服务器(192.168.10.5)上,编辑 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 '123456';
3、编辑主服务器的 pg_hba.conf 文件以配置访问权限。添加以下行来允许从服务器(IP 为 192.168.10.6)连接:
host replication replicator 192.168.10.6/32 md5
4、重启主服务器在主服务器上,重启 PostgreSQL 服务以使配置生效:
sudo systemctl restart postgresql-13
三、从服务器配置
1、配置从服务器 在从服务器(192.168.10.6)上,同样编辑 PostgreSQL 的主配置文件 postgresql.conf,确保以下配置项存在:
listen_addresses = 'localhost,192.168.10.6' # 允许连接的 IP 地址列表
2、启动从服务器复制进程 在从服务器上,执行以下命令启动复制进程,从主服务器复制数据到从服务器:将复制数据到从服务器并启动从服务器的 PostgreSQL 服务。“/var/lib/postgresql/data“ 为数据存储目录
pg_basebackup -Xs -v -Fp -P -R -d "hostaddr=192.168.10.5 port=5432 user=repuser password=123456" -D /var/lib/postgresql/data
3、编辑从服务器的 pg_hba.conf 在从服务器上,编辑 pg_hba.conf 文件,以配置访问权限。添加以下行来允许主服务器(IP 为 192.168.10.5)连接:
host replication replicator 192.168.10.5/32 md5
4、重启从服务器 在从服务器上,重启 PostgreSQL 服务以使配置生效:
sudo systemctl restart postgresql-13
四、验证主从备份配置是否成功
在主服务器上登录数据库执行以下命令,检查复制状态是否正常:
postgres=# select client_addr,sync_state from pg_stat_replication;
client_addr | sync_state
----------------+------------
192.168.222.47 | async
(1 row)