postgresql主从库搭建

本文详细介绍了如何在CentOS7.9环境中更新旧版PostgreSQL到14.9,并配置主库和从库,包括数据备份、环境卸载与安装、权限设置、pg_hba.conf和postgresql.conf配置,以及从库同步和数据还原过程。
摘要由CSDN通过智能技术生成

介绍:

PostgreSQL 是我们经常选择的数据库之一。它不仅仅是关系型数据库,同时也添加了对JSON数据的支持、全文检索功能,以及其他扩展。PostgreSQL 是我们经常选择的数据库之一。它不仅仅是关系型数据库,同时也添加了对JSON数据的支持、全文检索功能,以及其他扩展。

环境:centos7.9 (主库:A 从库:B)

postgresql版本:14.9

因为主库本来就有版本比较老,所以这次是更新版本以及搭建从库用于数据备份。

1. 数据备份

su postgres ##换postgres的身份
pg_dumpall -f /dball_backup ###指定路径存放


 2. 主库搭建

卸载原版本数据库

yum remove postgresql*
rm -rf  /usr/pgsql*
rm -rf /var/lib/pgsql #数据文件目录根据实际情况指定
userdel -r postgres

安装与配置

psql官方提供下载命令地址:PostgreSQL: Linux downloads (Red Hat family)

选择对应的操作系统和版本即可下载

# Install the repository RPM:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# Install PostgreSQL:
sudo yum install -y postgresql14-server

# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14

启动后,进入数据库设置密码、以及创建从库角色:

su postgres
psql -U postgres
#修改postgres的登陆密码
ALTER USER postgres WITH PASSWORD 'your password';
# #创建 从库 replica 用户密码
CREATE ROLE replica login replication encrypted password 'replica';

打开pg_hba.conf,一般在路径:/var/lib/pgsql/14/data/,或者可以通过find / -name 文件名 进行查找。修改权限

vi /var/lib/pgsql/14/data/pg_hba.conf
## 添加从库网段
host    all             all             0.0.0.0/0               trust
# replication privilege.
local   replication     all                                     peer
host    replication     replica            B/24          md5

打开postgresql.conf,一般在路径:/var/lib/pgsql/14/data/,或者可以通过find / -name 文件名 进行查找。修改配置,可根据情况自行修改,以下为一些基础配置:

listen_addresses = '*'
wal_level = hot_standby
synchronous_commit = remote_write
# synchronous_commit 参考文档可选其他 on
max_wal_senders = 32     #同步最大的进程数量
wal_sender_timeout = 60s #流复制主机发送数据的超时时间
max_connections = 100    #最大连接数,从库的max_connections必须要大于主库的

修改完成后,重启数据库服务:

sudo systemctl restart postgresql-14.service

3. 从库搭建

下载与安装与主库相同,不做赘述(关于是否初始化的问题,因为本人遇到,不做初始化启动从库报错,所以初始化了)

从库配置

删除初始化的文件

rm -rf /var/lib/pgsql/14/data

从主库获取配置文件

## 从主库同步数据
pg_basebackup -D /var/lib/pgsql/14/data -h A -p 5432 -U replica -X stream -P

配置postgresql.conf

## 移除或注释 wal_level
wal_level = xxx
## 修改或添加以下
primary_conninfo = 'host=A port=5432 user=replica password=replica'
recovery_target_timeline = 'latest'

同一路径下,修改standby.signal 文件

standby_mode = on
## 声明从库

权限⭐非常重要

chown -R postgres.postgres /var/lib/pgsql/14/data

启动从库

sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14

4. 数据还原

将dball_backup文件4拷至主库指定路径

用psql命令进行还原,还原后,从库立马同步。

su postgres
psql -U postgres -f /dball_backup

完成后可自行测试,欢迎交流

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostgreSQL是一种开源的关系型数据库管理系统,可以用于构建高可用的主从架构。在搭建主从架构之前,需要先安装和配置主服务器和从服务器。 首先,安装PostgreSQL 14以及所需的依赖项。可以通过包管理工具如apt-get(适用于Ubuntu)或yum(适用于CentOS)来安装。然后,编辑主服务器(通常为生产环境)的postgresql.conf文件和从服务器(通常为备份环境)的postgresql.conf文件。 在主服务器上,配置以下参数以支持主从复制: 1. 将wal_level设置为logical或replica,这取决于目标数据库的用途。 2. 配置max_wal_senders为从服务器的最大连接数。 3. 设置max_replication_slots为从服务器的最大并发复制数。 4. 启用archive_mode并设置archive_command以将WAL(Write-Ahead Log)日志归档到指定的位置,以便从服务器能够访问归档文件。 在从服务器上,配置以下参数: 1. 将primary_conninfo设置为主服务器的连接信息,包括主服务器的主机名、端口、用户名和密码。 2. 设置standby_mode为on以启用从服务器的备份模式。 3. 配置primary_slot_name为从服务器的复制槽名称。 完成配置后,启动主服务器和从服务器,并确保主服务器和从服务器能够相互访问。由于主服务器会在WAL日志中记录所有更改,从服务器可以通过复制这些日志来保持数据的一致性。 在主服务器上创建复制用户并授予复制权限,以便从服务器可以连接并复制数据。然后,在从服务器上创建复制槽,并启动复制进程。 一旦主从复制建立起来,从服务器将会持续地从主服务器接收和应用WAL日志,以保持与主服务器的数据同步。在主服务器发生故障时,可以通过切换从服务器为新的主服务器来维持服务的连续性。 总结来说,PostgreSQL 14主从搭建需要通过配置主服务器和从服务器的参数,并确保数据的复制和同步。通过确保主从服务器之间的连接和相应的权限配置,可以实现高可用性和数据备份。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值