pgsql+patroni+etcd环境搭建

本文介绍了如何在Linux环境下搭建pgsql数据库的高可用方案,使用Patroni作为管理工具,etcd作为分布式协调服务。详细步骤包括安装PostgreSQL,配置Python3,安装并设置etcd集群,安装Patroni,处理安装和配置过程中可能遇到的问题,以及利用keepalived实现主备漂移。
摘要由CSDN通过智能技术生成

1. Patroni 简介

在这里插入图片描述

2. etcd简介

  • Etcd是一款基于Raft算法和协议开发的分布式 key-value 数据库,基于Go语言编写,Patroni监控本地的PostgreSQL状态,并将相关信息写入Etcd,每个Patroni都能读写Etcd上的key,从而获取外地PostgreSQL数据库信息。
  • 当Etcd的leader节点不可用时,Etcd会一致性的选择一个合适的节点作为主节点,新的Etcd主节点将获取leader key,因此建议Etcd集群为三个以上且为奇数的节点,不建议部署在同一个机房,有条件话尽量部署在三个机房。
  • 一个标准的3节点etcd集群,最大容许1个节点故障。

3. patroni处理流程图

在这里插入图片描述

4. 准备Linux环境

  • 软件:
    CentOS 64 位7.4.rar
    PostgreSQL 12
    Patroni patroni 2.0.1
    etcd 3.3.11

  • 机器资源和VIP分配
    PostgreSQL
    node1: 192.71.1.21
    node2: 192.71.1.22
    node3: 192.71.1.23
    etcd
    192.71.1.23

5.安装pg数据库

  1. 解压
    tar xvf postgresql-12.2.tar.gz
  2. 进入到postgresql-12.2
  3. 执行配置
    ./configure --prefix=/usr/local/pgsql
  4. make && make install

6. 安装python3

依次执行
yum -y install python3
在这里插入图片描述

7. Etcd安装配置

安装

  • 安装
    yum -y install etcd
  • 测试
    etcd --version

在这里插入图片描述

测试

  • usr/bin下创建etcd.sh脚本文件
    内容如下
    etcd --name etcd0 --initial-advertise-peer-urls http://192.71.1.23:2380 --listen-peer-urls http://192.71.1.23:2380 --listen-client-urls http://192.71.1.23:2379,http://127.0.0.1:2379 --advertise-client-urls http://192.71.1.23:2379 --initial-cluster-token etcd-cluster-ydtf --initial-cluster etcd0=http://192.71.1.23:2380 --initial-cluster-state new --enable-v2
etcd --name etcd0   --initial-advertise-peer-urls http://192.71.1.23:2380   --listen-peer-urls http://192.71.1.23:2380   --listen-client-urls http://192.71.1.23:2379,http://127.0.0.1:2379   --advertise-client-urls http://192.71.1.23:2379   --initial-cluster-token etcd-cluster-ydtf   --initial-cluster etcd0=http://192.71.1.23:2380 --initial-cluster-state new   --enable-v2
  • 运行结果如下:
    执行:etcd.sh &
    在这里插入图片描述
  • 查询状态:
    执行:etcdctl member list
    在这里插入图片描述
  • 遇到问题及解决方法
    问题1:
    在这里插入图片描述
    解决方法:
    关闭防火墙
setenforce 0
sed -i.bak "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/patroni/selinux/config
systemctl disable firewalld.service
systemctl stop firewalld.service
iptables -F

8. 安装patroni

安装

执行:

pip3 install patroni[etcd] -i https://mirrors.aliyun
PGSQL是指PostgreSQL,它是一种强大的关系型数据库管理系统。在使用Spring Boot框架搭建PGSQL的应用时,常见的做法是使用Druid作为连接池,MyBatis作为持久层框架,通过MyBatis Generator自动生成POJO、Mapper和DAO代码。 在Spring Boot的配置文件中,需要导入PGSQL的依赖项并配置数据源信息,例如URL、用户名、密码等。可以使用以下代码片段作为yml配置文件的示例: ```yaml spring: datasource: url: jdbc:postgresql://localhost:5432/postgres username: postgres password: 123456 driverClassName: org.postgresql.Driver ``` 此外,还可以配置其他相关的属性,如Jackson的时区、JPA的设置、Hibernate的配置、数据库的DDL操作等。需要注意的是,以上仅为一个示例配置,根据实际情况可能需要做出相应的调整。 关于安装PGSQL的方式,可以通过Stack Builder进行安装,但有时可能会遇到速度慢或卡顿的情况。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [springboot+mybatis3+druid+postgresql](https://download.csdn.net/download/qq_35918388/10399737)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Postgresql+Springboot yml基本使用](https://blog.csdn.net/qq_39898191/article/details/108797167)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Spring Boot配合Postgresql和MybatisPlus实现外卖平台常见的距离你xxx米功能](https://blog.csdn.net/tsgjcnyn/article/details/127694116)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风间琉璃zero

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值