首页服务器教程Ubuntu如何安装Postgres主从备份

Ubuntu如何安装Postgres主从备份

2024-11-07 28

本文将指导你如何在Ubuntu 20.04上安装和配置PostgreSQL数据库的主从备份(流复制)。将通过一系列步骤,首先安装PostgreSQL 14版本,然后配置主数据库和从数据库的复制,确保数据能够在主库与从库之间同步。

一、安装PostgreSQL 14

1、查看可安装的 PostgreSQL 包

首先,列出所有可用的 PostgreSQL 相关包,确认版本后进行安装。这里我们安装的是 PostgreSQL 14 版本。

apt list | grep -w postgresql-14 | tail -1

Ubuntu如何安装Postgres主从备份

2、安装PostgreSQL 14

运行以下命令安装 PostgreSQL 14:

apt install -y postgresql-14/focal-pgdg

安装完成后,检查是否安装成功:

psql --version

Ubuntu如何安装Postgres主从备份

3、设置服务开机自启

为了确保 PostgreSQL 在系统重启后自动启动,执行以下命令:

systemctl enable postgresql.service

二、配置PostgreSQL主服务器

1、切换到PostgreSQL用户并登录数据库

为了配置 PostgreSQL,我们需要切换到 “postgres” 用户,并进入 PostgreSQL 数据库命令行。

sudo -u postgres psql

2、修改PostgreSQL密码

在 PostgreSQL 命令行中,修改 “postgres” 用户的密码(根据实际需求修改 “<密码>”):

alter user postgres password '<密码>';

3、创建用于复制的角色

为了实现主从复制,我们需要创建一个专门用于复制的角色,并赋予 “replication” 和 “login” 权限。

create role replica login replication encrypted password '<密码>';

4、查看PostgreSQL配置文件位置

通过以下命令,查看 PostgreSQL 配置文件的位置:

select name, setting from pg_settings where category='文件位置';

Ubuntu如何安装Postgres主从备份

配置文件通常位于 “/etc/postgresql/14/main/” 目录下。

5、配置远程连接

为了允许远程连接 PostgreSQL 数据库,编辑 “pg_hba.conf” 文件:

echo "host all all 0.0.0.0/20 md5" >> /etc/postgresql/14/main/pg_hba.conf

然后编辑 “postgresql.conf” 文件,允许所有地址进行监听:

echo "listen_addresses='*'" >> /etc/postgresql/14/main/postgresql.conf

6、重启PostgreSQL服务

修改完成后,重启 PostgreSQL 服务以应用配置:

systemctl restart postgresql.service

7、配置主服务器的复制设置

接下来,编辑主服务器的配置文件 “postgresql.conf” 和 “pg_hba.conf” 以启用流复制。

编辑 “postgresql.conf” 文件,确保以下参数已设置:

vim /etc/postgresql/14/main/postgresql.conf
# 启用流复制
wal_level = hot_standby
# 允许最大数量的复制进程
max_wal_senders = 2
# 默认配置,不直接影响主从设置
wal_keep_size = 1000
max_connections = 1000

Ubuntu如何安装Postgres主从备份

编辑 “pg_hba.conf” 文件,允许从数据库连接到主数据库获取 WAL 日志:

vim /etc/postgresql/14/main/pg_hba.conf

添加以下配置(替换 “<从节点IP>” 为从库的实际 IP 地址):

# 允许从库连接主库进行复制
host replication replica <从节点IP>/24 scram-sha-256

Ubuntu如何安装Postgres主从备份

完成后,重启 PostgreSQL 服务:

systemctl restart postgresql.service

三、配置从服务器

1、安装PostgreSQL和配置从服务器

在从服务器上执行与主服务器相同的安装操作,并停止 PostgreSQL 服务:

systemctl stop postgresql

2、备份主数据库数据并清除从库数据

切换到 “postgres” 用户后,备份当前数据目录,并清除本地数据库数据:

su - postgres
cp -r /var/lib/postgresql/14/main /var/lib/postgresql/14/main.bak
rm -rf /var/lib/postgresql/14/main

3、执行主数据库的全量备份

使用 “pg_basebackup” 从主数据库获取数据备份。”-U replica” 是在主库上创建的用于复制的用户,”-D” 指定从库的数据目录。

pg_basebackup -h <主节点IP> -U replica -F p -X stream -P -R -D /var/lib/postgresql/14/main

  • – “-h”:指定主节点的 IP 地址;
  • – “-U”:指定用于复制的用户;
  • – “-F p”:以压缩格式备份;
  • – “-X stream”:流式传输 WAL 日志;
  • – “-P”:启用进度报告;
  • – “-R”:自动生成恢复配置文件(包括 “standby.signal”);
  • – “-D”:指定数据目录。

4、配置从库的PostgreSQL配置文件

在从库上修改 PostgreSQL 配置文件,确保启用查询并设置流复制相关的参数:

sudo vim /etc/postgresql/14/main/postgresql.conf

在配置文件中,添加以下设置:

# 启用热备份模式
hot_standby = on
# 设置流复制最大延迟(可选)
max_standby_streaming_delay = 30s
# 启用从库的热备反馈(可选)
hot_standby_feedback = on
# 配置最大连接数
max_connections = 1000

Ubuntu如何安装Postgres主从备份

5、重启从库PostgreSQL服务

修改完配置后,重启从库的 PostgreSQL 服务:

systemctl restart postgresql

四、验证主从复制是否成功

1、在主数据库中查看复制状态

登录到主数据库,查看复制进程的状态:

select client_addr, sync_state from pg_stat_replication;

Ubuntu如何安装Postgres主从备份

如果主库正在与从库同步数据,你将看到类似如下的输出:

client_addr | sync_state
--------------+------------
192.168.1.2 | sync

2、检查同步进程

如果 “sync_state” 显示为 “sync”,则表示主从同步正常。

Ubuntu如何安装Postgres主从备份

  • 广告合作

  • QQ群号:707632017

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

相关文章