二 mysql参数调整
1 设置report_host和report_port
2 设置 slave_net_timeout 设置8S,超过这个时间,IO_THREAD主动退出
3 设置 master_heartbeat_period 设置2S 每2S发送一个心跳检测包
这样在8-10S,就能检测出故障进行切换‘
三 mysql需要开启
1 GTID 2 binlog
3 增强半同步复制
插件安装 全局
0 rpl_semi_sync_master_wait_for_slave_count 全局
1 rpl_semi_sync_master_timeout =100000 全局
2 rpl_semi_sync_slave_enabled =1 从库
3 rpl_semi_sync_master_enabled =1 主库
4主从库 设置成双1模式
四 mysql硬件配置
1 最好选择配置相同的服务器硬件,不需要指定提升服务的主库,让orch自行选择
2 所有mysql集群做SSH互信-VIP绑定用
五 orch精选参数
一 探活配置
"DefaultInstancePort": 3306->默认集群端口
"InstancePollSeconds":3->探活周期
二 从库相关
1 "DiscoverByShowSlaveHosts": true->通过report方式发现从库(推荐)
2 "MySQLDiscoveryReadTimeoutSeconds": 3->从库超时情况
3 "ReplicationLagQuery":""
4 "ReasonableReplicationLagSeconds":10->延时超过此时代表异常 单位秒
三 切换相关
1 ApplyMySQLPromotionAfterMasterFailover:true->reset relaylog+set read_only=OFF
2 DetachLostReplicasAfterMasterFailover:true ->清除在切换过程中有问题的从的节点 将通过detach-replica命令强行中断它们的复制,以确保没有人认为它们完全正常。
3 "RecoverMasterClusterFilters": ["*"] ->所有M-S集群支持恢复
4 "RecoverIntermediateMasterClusterFilters": ["*"] ->所有M-S-S集群支持恢复
5 "FailureDetectionPeriodBlockMinutes":60 RecoveryPeriodBlockMinutes:60 -> 防止切换后的抖动再触发动,默认一小时
6 "DetachLostReplicasAfterMasterFailover":true->切换的强制剥离副本
7 切换场景
1 强制切换,提供服务优先,可以运行丢失数据
FailMasterPromotionIfSQLThreadNotUpToDate:false
DelayMasterPromotionIfSQLThreadNotUpToDate": false
有延时:switchover failover均可以切换
2 遇到没有应用完的relaylog时不提供切换
FailMasterPromotionIfSQLThreadNotUpToDate:true
DelayMasterPromotionIfSQLThreadNotUpToDate": flase
有延时:swithvoer failover 均不可能切换.需要人工介入
3遇到没有应用完的relaylog时等待然后切换
FailMasterPromotionIfSQLThreadNotUpToDate:false
DelayMasterPromotionIfSQLThreadNotUpToDate": true
有延时:switchover不能切换 failover可以切换
7 VIP漂移
"PostMasterFailoverProcesses": ->主节点恢复成功后执行动作
[" orchestrator /usr/local/orchestrator/failover.sh {failureType} {failureClusterAlias} {failedHost} {successorHost} >> /tmp/orc_failover.log" ],