前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PostgreSql 14 主从负载均衡部署

PostgreSql 14 主从负载均衡部署

原创
作者头像
星哥玩云
发布于 2022-06-06 11:48:16
发布于 2022-06-06 11:48:16
3.6K10
代码可运行
举报
文章被收录于专栏:开源部署开源部署
运行总次数:0
代码可运行

前言

前些天给个环境部署PostgreSQL 主从负载均衡,这里仅仅简单记录一下命令以备后续使用,至于数据库的更多配置请自行根据需求配置.

版本环境

  • 服务器系统: CentOS 7.9
  • PostgreSQL 版本: 14
  • 主数据库内网 IP : 10.0.0.2
  • 从数据库内网 IP : 10.0.0.3

主数据库 10.0.0.2

安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql14-server
## 主库初始化数据库
/usr/pgsql-14/bin/postgresql-14-setup initdb
## 启动
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14

初始化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su - postgres
psql
## 创建 postgres 密码
ALTER USER postgres WITH PASSWORD '123456';
# #创建 从库 replica 用户密码
CREATE ROLE replica login replication encrypted password 'replica';
## 检查账号
SELECT usename from pg_user;
# 结果如下

# usename
# ----------
# postgres
# replica
# (2 rows)

# 查看权限
SELECT rolname from pg_roles;
# 结果如下

# rolname
# ----------
# postgres
# replica
# (2 rows)

# 退出
\q
exit

配置

pg_hba.conf
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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            10.0.0.3/24        md5

注意此处 10.0.0.3/24 需修改为从库的 IP 段

postgresql.conf
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /var/lib/pgsql/14/data/postgresql.conf
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必须要大于主库的

从数据库 10.0.0.3

安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql14-server
## 从主库同步数据
pg_basebackup -D /var/lib/pgsql/14/data -h 10.0.0.2 -p 5432 -U replica -X stream -P

注意从库无需上文主库安装流程中的初始化步骤,修改上述 10.0.0.2 为主库 IP 地址来同步数据库.

配置

postgresql.conf

从 PostgreSQL 12 开始已经移除了 recovery.conf 文件,相关配置合并到了 postgresql.conf 中,由于从主库同步数据库,其中配置也需要移除和修改.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /var/lib/pgsql/14/data/postgresql.conf
## 移除或注释 wal_level
wal_level = xxx
## 修改或添加以下
primary_conninfo = 'host=10.0.0.2 port=5432 user=replica password=replica'
recovery_target_timeline = 'latest'
创建 standby.signal

创建 standby.signal 文件,声明从库.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /var/lib/pgsql/14/data/standby.signal
standby_mode = on
## 声明从库
权限

此处是踩坑过几次.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chown -R postgres.postgres /var/lib/pgsql/14/data

启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14

测试同步

主数据库 10.0.0.2

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ps aux |grep sender
# 返回 postgres: walsender replica 10.0.0.2(56192) streaming 0/7000148

su - postgres
psql

select application_name, state, sync_priority, sync_state from pg_stat_replication;
# 返回 async
select pid,state,client_addr,sync_priority,sync_state from pg_stat_replication;
# 返回 async

从数据库 10.0.0.3

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ps aux |grep receiver
# 返回 postgres: walreceiver streaming 0/7000148

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
作者你这个配置的有问题啊
作者你这个配置的有问题啊
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
进阶数据库系列(十五):PostgreSQL 主从同步原理与实践
在正式介绍 PostgreSQL 主从同步复制 之前,我们先了解一下 PostgreSQL 的预写日志机制(WAL)。
民工哥
2023/08/22
5.5K0
进阶数据库系列(十五):PostgreSQL 主从同步原理与实践
PostgreSQL主备库搭建
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
雪人
2022/10/13
2.7K0
【DB宝91】PG高可用之主从流复制+keepalived 的高可用
通过keepalived 来实现 PostgreSQL 数据库的主从自动切换,以达到高可用。当主节点宕机时,从节点可自动切换为主节点,继续对外提供服务。
AiDBA宝典
2022/02/23
2.9K0
【DB宝91】PG高可用之主从流复制+keepalived 的高可用
PostgreSQL 12 的同步流复制搭建及主库hang问题处理与分析
主备流复制,是PostgreSQL最常用、最简单的一种高可用、读写分离的形式,类似于Oracle的ADG,主库用于读写,备库可以只读。
数据和云
2021/07/30
1.7K0
PostgreSQL从小白到高手教程 - 第44讲:pg流复制部署
PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。
用户5892232
2024/02/02
4850
PostgreSQL从小白到高手教程 - 第44讲:pg流复制部署
PostgresSQL 主从搭建步骤
由于工作需要,最近开始接触各种数据库,并尝试各种数据库产品的高可用方案。今天分享的是postgresSQL的主从配置,其实还是蛮简单的,跟随本文的步骤,保证能实现PG主从的搭建。
星哥玩云
2022/08/13
2.5K0
【DB宝95】PG 14 + Pgpool-II + Watchdog 实现高可用(自动故障转移+读写分离+负载均衡)
Pgpool-II是一个在PostgreSQL服务器和PostgreSQL数据库客户端之间工作的中间件。它是根据BSD许可证授权的。它提供以下功能。
AiDBA宝典
2022/04/11
4K3
【DB宝95】PG 14 + Pgpool-II + Watchdog 实现高可用(自动故障转移+读写分离+负载均衡)
PostgreSQL基础(十五):PostgreSQL的主从操作
PostgreSQL自身只支持简单的主从,没有主从自动切换,仿照类似Nginx的效果一样,采用keepalived的形式,在主节点宕机后,通过脚本的执行完成主从切换。
Lansonli
2024/10/04
1.1K0
PostgreSQL基础(十五):PostgreSQL的主从操作
[实时数仓]玩转PostgreSQL主从流复制
PostgreSQL 在 9.0 以后引入了流复制(Streaming Replication)。流复制提供了将 WAL 记录连续发送并应用到从服务器以使其保持最新状态的功能。通过流复制,从服务器不断从主服务器同步相应的数据,同时,从服务器作为主服务器的一个备份。
宇宙无敌暴龙战士之心悦大王
2023/03/21
1.5K0
再不了解PostgreSQL,你就晚了之PostgreSQL主从流复制部署
在MySQL被收购之后,虽然有其替代品为: MariaDB,但是总感觉心里有点膈应。大家发现了另一款开源的数据库: PostgreSQL。
sanshengshui
2019/09/11
2.5K0
再不了解PostgreSQL,你就晚了之PostgreSQL主从流复制部署
PostgreSQL13.0流复制尝鲜
postgresql13.0于2020年9月21日正式发布,话说现在pg的大版本从10开始发生了变化,以第一个数字代表一个大版本更新,而9之前的版本则是以9.1->9.2->9.x这样代表大版本更新。所以现在看起来pg的更新好像越来越快了,每个版本其实更新的内容不是很多。13发布后下载来了源码尝尝鲜,源码编译上没有什么改变,依旧很简单很亲和,四条简单的命令完成编译安装,对平台兼容性也很好。
数据库架构之美
2021/02/26
8590
PostgreSQL13.0流复制尝鲜
【DB宝72】pgpool-II和pgpoolAdmin的使用
但是,之前的文章中没有介绍有关pgpoolAdmin的知识,这款针对pgpool开发的web界面工具,还是比较实用的。
AiDBA宝典
2021/12/17
3.4K0
【DB宝72】pgpool-II和pgpoolAdmin的使用
Postgresql主从复制
Postgresql主从复制 主备数据库启动,备库启动wal_receiver进程,wal进程向主库发送连接请求; 主库收到连接请求后启动wal_sender进程,并与wal_receiver进程建立tcp连接; 备库wal_receiver进程发送最新的wal lsn 给主库; 主库进行lsn 对比,定期向备库发送心跳信息,来确认备库的可用性,并且将没有传递的wal日志文件进行发送,同时调用SyncRepWaitForLSN()函数来获取锁存器,并且等待备库响应;锁存器的释放时机和主备同步模式的选择有
用户7353950
2022/05/11
8870
Postgresql主从复制
termux安装和配置postgresql和mysql
执行 : yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm -y 2:安装postgres
QAIU
2023/03/14
2K0
CentOS7 postgresql安装与使用
版权声明:本文为木偶人shaon原创文章,转载请注明原文地址,非常感谢。 https://blog.csdn.net/wh211212/article/details/80666735
shaonbean
2019/05/26
2.2K0
PostgreSQL主备环境搭建
PG学习初体验--源码安装和简单命令(r8笔记第97天) 记得在2年前写过一篇PostgreSQL的文章,当时处于兴趣,本来想在工作中接一下PG的业务,最后因为各种各样的原因就搁置了。 今天整理了下PostgreSQL的一些基础内容,参考的书是唐成老师的那本《PostgreSQL修炼之道》,有了Oracle和MySQL的基础,看起来会比从零开始要容易一些,总体的感觉,PG功能确实很多很全,功能上像Oracle看齐,技术风格和MySQL很像,在做一些总结的时候,不停的在两个数据库之间来回切换。 关于主备环
jeanron100
2018/03/30
1.9K0
PostgreSQL主备环境搭建
Linux在线安装部署postgresql12+postgis3.1
postgresql中文社区:http://www.postgres.cn/v2/document
静谧星空TEL
2021/04/27
3.3K0
Linux在线安装部署postgresql12+postgis3.1
Centos7安装Postgresql 13 详细步骤(远程连接)
可以参考官网https://www.postgresql.org/download/linux/redhat/ #安装存储库RPM:
互联网-小阿宇
2022/11/21
1.4K0
Centos7安装Postgresql 13 详细步骤(远程连接)
Postgresql主从复制--物理复制
PostgreSQL支持物理复制(流复制)及逻辑复制2种。通过流复制技术,可以从实例级复制出一个与主库一模一样的实例级的从库。流复制同步方式有同步、异步两种。
俊才
2019/09/26
6.8K0
PostgreSQL13流复制主从同步配置,切换步骤
本文档详细记录如何一步一步在两台Linux服务器上,搭建PostgreSQL数据库主从模式的高可用数据库环境,以及如何手工切换主备库,及其注意事项。
用户8006012
2022/05/31
7.6K0
推荐阅读
相关推荐
进阶数据库系列(十五):PostgreSQL 主从同步原理与实践
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验