主要对一个MySQL主从架构部署orchestartor进行高可用验证,orchestrator部署在主从架构的从节点上,当然最好是部署在其他机器上,后端数据库采用的直接是MySQL的从库,所以没有创建orchestrator的后端数据库的流程。
创建yaml文件
mkidr /opt/orche
cd /opt/orche
vim docker-compose.yml
注意网络应该与mysql的节点网络相同
version: '2'services:orchestrator:image: openarkcode/orchestrator:latestcontainer_name: orchestratorports:- "3001:3000" # Orchestrator Web UIvolumes:- ./orchestrator.conf.json:/etc/orchestrator.conf.jsonenvironment:- MYSQL_TOPOLOGY_USER=orche- MYSQL_TOPOLOGY_PASSWORD=Tgqs@123networks:- mysql_netdepends_on:- mysql-master- mysql-slavenetworks: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”: “”,
create user ‘orche’@‘%’ identified by ‘Tgqs@123’;
GRANT ALL PRIVILEGES ON . TO ‘orche’@‘%’;
进入MySQL的从节点的容器
create database orche;
在从节点的compose文件夹
进入文本界面
discover 输入主节点
可以直接在这个也没进行开启关闭复制操作,不用再进到容器中
验证故障转移情况
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;