docker-compose部署MySQL高可用工具orchestrator

主要对一个MySQL主从架构部署orchestartor进行高可用验证,orchestrator部署在主从架构的从节点上,当然最好是部署在其他机器上,后端数据库采用的直接是MySQL的从库,所以没有创建orchestrator的后端数据库的流程。

创建yaml文件

mkidr /opt/orche
cd /opt/orche
vim docker-compose.yml
注意网络应该与mysql的节点网络相同

复制代码
version: '2'

services:
  orchestrator:
    image: openarkcode/orchestrator:latest
    container_name: orchestrator
    ports:
      - "3001:3000"  # Orchestrator Web UI
    volumes:
      - ./orchestrator.conf.json:/etc/orchestrator.conf.json
    environment:
      - MYSQL_TOPOLOGY_USER=orche
      - MYSQL_TOPOLOGY_PASSWORD=Tgqs@123
    networks:
      - mysql_net
    depends_on:
      - mysql-master
      - mysql-slave

networks:
  mysql_net:
   driver: bridge

创建配置文件

vim orchestrator.conf.json

复制代码
{
  "Debug": true,
  "MySQLTopologyUser": "orche", #登录主从数据库的用户
  "MySQLTopologyPassword": "Tgqs@123",#登录主从数据库的密码
  "AutoMasterRecovery": true,
  "FailMasterPromotionIfSQLThreadNotUpToDate": true,
  "InstancePollSeconds": 10,
  "DiscoveryPollSeconds": 10,
  "UnseenInstanceForgetHours": 240,
  "HostnameResolveMethod": "default", #不设置为none默认都是主机名,选择none不认证主机名
  "MySQLHostnameResolveMethod": "@@hostname",#
  "MySQLOrchestratorHost": "172.16.208.13", #后端数据库的地址
  "MySQLOrchestratorPort": 3306,
  "MySQLOrchestratorDatabase": "orcdb",#后端数据库存放位置
  "MySQLOrchestratorUser": "orche",,#后端数据库用户名
  "MySQLOrchestratorPassword": "Tgqs@123",
  "AuthenticationMethod": "basic",#登录验证开启,关闭设为空置
  "HTTPAuthUser": "admin",#用户名
  "HTTPAuthPassword": "Tgqs@123",#密码
  "FailureDetectionPeriodBlockMinutes": 60,
  "RecoverMasterClusterFilters": ["*"], #自动主从切换
  "RecoverIntermediateMasterClusterFilters": ["*"],
  "ClusterNameToAlias": {
    "127.0.0.1": "test suite"

}

如果想让web界面显示ip地址修改两个参数

"HostnameResolveMethod": "none",

"MySQLHostnameResolveMethod": "",

进入mysql主节点的容器,从节点不用创建可能报错

create user 'orche'@'%' identified by 'Tgqs@123';

GRANT ALL PRIVILEGES ON . TO 'orche'@'%';

进入MySQL的从节点的容器

create database orche;

在从节点的compose文件夹

docker-compose up -d

docker ps

#如果没有启动查看日志情况

进入文本界面


discover 输入主节点

可以直接在这个也没进行开启关闭复制操作,不用再进到容器中

验证故障转移情况

docker stop mysql-master

#进入mysql从节点

docker exec -it mysql-slave mysql -uroot -p

#查看是否是个空值

show slave status \G;

#查看是否为主节点
show master status \G;

#手动将从节点升级为主节点

change master to

master_host='172.16.208.12',

master_user='replica',

master_password='Tgqs@123',

MASTER_LOG_FILE='mysql-bin.00001',#重新查看binlog文件名

MASTER_LOG_POS=157; #重新查看文件位置

show slave status \G;


常见的web界面故障显示

复制代码
\- DeadMaster 主节点故障
\- DeadMasterAndReplicas 主节点和副本节点故障
\- DeadMasterAndSomeReplicas 主节点和部分副本节点故障
\- DeadMasterWithoutReplicas 主节点没有副本节点
\- UnreachableMasterWithLaggingReplicas 无法访问的主节点且存在滞后的副本节点
\- UnreachableMaster 无法访问的主节点
\- LockedSemiSyncMaster 被锁定的半同步主节点
\- MasterWithTooManySemiSyncReplicas 主节点具有过多的半同步副本
\- AllMasterReplicasNotReplicating 所有主节点副本均未进行复制
\- AllMasterReplicasNotReplicatingOrDead 所有主节点副本未进行复制或停止工作
\- DeadCoMaster 协同主节点故障
\- DeadCoMasterAndSomeReplicas 协同主节点和部分副本节点故障
\- DeadIntermediateMaster 中间主节点故障
\- DeadIntermediateMasterWithSingleReplicaFailingToConnect 中间主节点故障且单个副本无法连接
\- DeadIntermediateMasterWithSingleReplica 中间主节点故障且只有一个副本节点
\- DeadIntermediateMasterAndSomeReplicas 中间主节点和部分副本节点故障
\- DeadIntermediateMasterAndReplicas 中间主节点和副本节点故障
\- AllIntermediateMasterReplicasFailingToConnectOrDead 所有中间主节点副本无法连接或停止工作
\- AllIntermediateMasterReplicasNotReplicating 所有中间主节点副本未进行复制
\- UnreachableIntermediateMasterWithLaggingReplicas 无法访问的中间主节点且存在滞后的副本节点
\- UnreachableIntermediateMaster 无法访问的中间主节点
\- BinlogServerFailingToConnectToMaster Binlog服务器无法连接到主节点
主节点意外使用change master to

到主节点上

stop slave;

reset slave all;

show slave status \G; #为空

change master to

master_host='172.16.208.12',

master_user='replica',

master_password='Tgqs@123',

MASTER_LOG_FILE='mysql-bin.000117',

MASTER_LOG_POS=157 ;

show slave status \G;

相关推荐
杰哥技术分享14 分钟前
在 CentOS 上安装 Docker 和 Docker Compose 并配置使用国内镜像源
linux·docker·centos
程序员岳焱19 分钟前
Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解
后端·sql·mysql
Gold Steps.1 小时前
Docker容器部署elasticsearch8.*与Kibana8.*版本使用filebeat采集日志
运维·docker·云原生·es
秃头摸鱼侠1 小时前
MySQL安装与配置
数据库·mysql·adb
tonexuan2 小时前
MySQL 8.0 绿色版安装和配置过程
数据库·mysql
JohnYan2 小时前
工作笔记- 记一次MySQL数据移植表空间错误排除
数据库·后端·mysql
我最厉害。,。3 小时前
Windows权限提升篇&数据库篇&MYSQL&MSSQL&ORACLE&自动化项目
数据库·mysql·sqlserver
Java陈序员4 小时前
再见 Navicat!一款开源的 Web 数据库管理工具!
java·react.js·docker
@大嘴巴子4 小时前
MySQL知识回顾总结----数据库基础
数据库·mysql
lubiii_4 小时前
SQL手工测试(MySQL数据库)
数据库·mysql·web安全·网络安全