CyrusZhou-CN / openGauss_master_slave

openGauss 数据库 docker compose ,patroni 自动主备切换,HAProxy 数据库读写负载均衡,测试环境

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

单机运行

docker run -p 5432:5432 -e 'GAUSS_USER=gauss' -e 'GAUSS_PASSWORD=Gauss666' -d --name OpenGaussTest lsqtzj/openeuler_open_gauss:latest

openGauss 高可用集群说明

openGauss 极简版 基于openeuler/openeuler:20.03
包括 patroni自动主备切换,haproxy 负载均衡, pgAdmin4 管理工具
必须保证有两个以上的openGauss容器运行。

博客地址

https://blog.csdn.net/lsqtzj/article/details/120850420

使用方式

下载源码
git clone https://github.com/CyrusZhou-CN/openGauss_master_slave.git
cd openGauss_master_slave

编译版本

docker-compose -f "docker-compose-build.yml" up -d --build

容器版本

docker-compose -f "docker-compose.yml" up -d
image
image

系统默认密码

用户名/密码 root / root 、omm / omm

openGauss 默认远程连接配置

管理员 / 密码:gauss / Gauss666

集成pgAdmin4 6.0

http://localhost:9980/pgadmin4/browser/
默认管理员 / 密码:admin@domain.com / admin
image

添加 patroni 自动主备切换

etcd Version: 3.5.1
patroni Version 2.0.2

加入 HAProxy 数据库读写负载均衡

http://localhost:7000/ 监控

数据库配置

haproxy:5000 读写
haproxy:5001 读
image

openGauss 更新到 3.0.0 版本

docker-compose 基本配置 放到 .env 文件中。

添加数据持久化

默认保存在 ./data 目录

容器目录说明

/opt/software/openGauss/data/db 数据库目录 /opt/software/openGauss/data/conf 配置文件目录 /opt/software/openGauss/logs 日志目录

改进新加主机功能

如:新添加 slave03 主机,打开docker-compose.yml 文件复制 slave02 节点的配置,用来创建新主机。

1. 添加节点

...
slave03:
    image:  lsqtzj/openeuler_open_gauss:${OPEN_GAUSS_VERSION}
    restart: always
    container_name: slave03
    hostname: slave03
    networks:
      gauss:
        ipv4_address: 10.8.0.13
    environment:
      TZ: Europe/Rome #Asia/Shanghai 时区
      GAUSS_USER: ${GAUSS_USER}
      GAUSS_PASSWORD: ${GAUSS_PASSWORD}
      NODE_NAME: datanode4
      RUN_MODE: "slave"
      HOST_NAMES: ${HOST_NAMES}
    volumes:
      - ./data/slave03/data:/opt/software/openGauss/data      
      - ./data/slave03/logs:/opt/software/openGauss/logs
    depends_on:
      - master
...

2.修改变量

修改 .env 文件添加新主机

...
HOST_NAMES=master,slave01,slave02,slave03
HOST_IPS=10.8.0.10,10.8.0.11,10.8.0.12
HAPROXY_IPS=10.8.0.10,10.8.0.11,10.8.0.12,10.8.0.13
HAPROXY_PORTS=5432,5432,5432,5432
...

初始化数据

只有 RUN_MODE: "master" ,首次启动容器时有效

GAUSS_DATABASE: test # 初始化数据库 \c 切换数据库 要输入密码,所以加这个参数用来创建数据库

volumes:
      - ./test.sql:/docker-entrypoint-initdb.d/test.sql # 初始化数据表

About

openGauss 数据库 docker compose ,patroni 自动主备切换,HAProxy 数据库读写负载均衡,测试环境

License:Apache License 2.0


Languages

Language:Python 94.1%Language:Shell 2.6%Language:Gherkin 1.9%Language:Dockerfile 1.3%Language:Makefile 0.1%