【PostgreSQL】流复制主从集群搭建

本文详细记录了在Ubuntu20环境下,搭建PostgreSQL一主两从集群的过程,包括环境配置、问题解决、性能优化和备份策略。遇到的主要问题有数据库重启失败和流复制连接错误,通过调整pg_hba.conf和网络配置得以解决。此外,还介绍了如何设置定时自动备份,确保数据安全。

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

前言

最近要给客户部署一套postgresql生产环境,规划是采用一主两从的流复制架构搭建集群。记录本次操作过程及遇到的一些问题,留作参考。

环境

集群配置
主机 角色 OS db
192.168.0.111 Ubuntu20 postgresql14
192.168.0.112 Ubuntu20 postgresql14
192.168.0.113 Ubuntu20 postgresql14

3台主机完成网络配置,可以访问外网,互相可以通信 

辅助工具:screen,keepalive,net-tools

软件安装,过程不再赘述,用下面的命令直接安装就可以了

apt-get update
apt-get install screen
apt-get -y install keepalived
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get -y install postgresql-14

【可选】初始化postgres用户的密码 12345

passwd postgres
##根据提示输入两次相同的初始密码完成修改

 至此演示环境软硬件环境完成准备。

关于screen工具,这个是用于远程操作时在服务器上打开的后台终端,可以防止本地与服务器连接断开时,服务器上的进程不断,简单介绍一下使用方法如下:

screen -ls #查看已有的服务器后台screen终端进程

screen -S 自定义终端名 #创建一个新screen终端

screen -dr  终端名 #进入一个已有的screen终端,如果这个终端被其他用户使用,强行结束他人的进程并进入

在screen终端内要退出按Ctrl键+a+d,这样退出下次再进去的时候原来在这个screen终端中运行的进程都还在

集群配置过程

操作过程中需要监控系统日志可以另开一个终端,并在这个终端上执行下面的语句

tail -f /var/log/postgresql postgresql-14-main.log #可以观察数据库启停的一些信息

tail -f /var/log/syslog #可以观察所有linux的操作信息

【主库(192.168.0.111)】部署 

 首先对【主库(192.168.0.111)】进行配置

主库的外网访问权限配置【这一步备库也要执行】

su - postgres
psql --version
# set database network
cp /etc/postgresql/14/main/pg_hba.conf /etc/postgresql/14/main/pg_hba.conf.bak
echo "host all all 0.0.0.0/0 scram-sha-256" >>/etc/postgresql/14/main/pg_hba.conf
export PGDATA=/var/lib/postgresql/14/main
mkdir $PGDATA
mkdir /var/lib/postgresql/pdump
mkdir /var/lib/postgresql/pdump/log
echo "export PATH="$PATH":/usr/lib/postgresql/14/bin"  >> ~/.bash_login
echo "export PGDATA="$PGDATA >> ~/.bash_login
source ~/.bash_login
vi /etc/postgresql/14/main/pg_hba.conf
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值