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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

风间琉璃zero

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

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

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

打赏作者

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

抵扣说明:

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

余额充值