MySQL高可用架构Orchestrator配置文件详解

Posted _雪辉_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL高可用架构Orchestrator配置文件详解相关的知识,希望对你有一定的参考价值。

如有错误,请指正~


#是否开启debug模式
  "Debug": true,
#是否记录到系统日志
  "EnableSyslog": false,
#web 端口
  "ListenAddress": ":3000",
#被管理数据库用户
  "mysqlTopologyUser": "orc_client_user",
#被管理数据库密码
  "MySQLTopologyPassword": "orc_client_password",
#被管理的MySQL的用户密码配置文件
  "MySQLTopologyCredentialsConfigFile": "",
#SSL 文件
  "MySQLTopologySSLPrivateKeyFile": "",
  "MySQLTopologySSLCertFile": "",
  "MySQLTopologySSLCAFile": "",
  "MySQLTopologySSLSkipVerify": true,
#是否启用TLS身份验证
  "MySQLTopologyUseMutualTLS": false,
#orch后端数据库地址
  "MySQLOrchestratorHost": "127.0.0.1",
#orch后端数据库端口
  "MySQLOrchestratorPort": 3306,
#orch后端数据库db
  "MySQLOrchestratorDatabase": "orchestrator",
#orch后端数据库用户
  "MySQLOrchestratorUser": "orc_server_user",
#orch后端数据库密码
  "MySQLOrchestratorPassword": "orc_server_password",
#后端数据库用户名密码的配置文件
  "MySQLOrchestratorCredentialsConfigFile": "",
#SSL 文件
  "MySQLOrchestratorSSLPrivateKeyFile": "",
  "MySQLOrchestratorSSLCertFile": "",
  "MySQLOrchestratorSSLCAFile": "",
  "MySQLOrchestratorSSLSkipVerify": true,
#是否启用TLS身份验证
  "MySQLOrchestratorUseMutualTLS": false,
#数据库连接超时时间
  "MySQLConnectTimeoutSeconds": 1,
#数据库默认端口
  "DefaultInstancePort": 3306,
#在PROCESSLIST之前尝试SHOW SLAVE HOSTS
  "DiscoverByShowSlaveHosts": true,
#orch探测MySQL的间隔秒数
  "InstancePollSeconds": 5,
#
  "DiscoveryIgnoreReplicaHostnameFilters": [
    "a_host_i_want_to_ignore[.]example[.]com",
    ".*[.]ignore_all_hosts_from_this_domain[.]example[.]com",
    "a_host_with_extra_port_i_want_to_ignore[.]example[.]com:3307"
  ],
#忽略不可见的实例的小时数
  "UnseenInstanceForgetHours": 240,
#快照拓扑调用之间的小时间隔
  "SnapshotTopologiesIntervalHours": 0,
#进行批量操作时等待单个实例的时间
  "InstanceBulkOperationsWaitTimeoutSeconds": 10,
#解析主机名,使用主机名:default;不解析用none,直接用IP
  "HostnameResolveMethod": "default",
#解析主机名,发出select @@hostname;发出select @@report_host(需要配置report_host)。不解析用"",直接用IP。
  "MySQLHostnameResolveMethod": "@@hostname",
#跳过检查未解析的主机名是否解析为binlog服务器的相同主机名
  "SkipBinlogServerUnresolveCheck": true,
#主机名解析到期之前的分钟数
  "ExpiryHostnameResolvesMinutes": 60,
#不接受解析主机名的正则表达式。 这样做是为了避免因网络故障而存储错误
  "RejectHostnameResolvePattern": "",
#复制延迟高于该值表示异常
  "ReasonableReplicationLagSeconds": 10,
#将与给定的regexp过滤器匹配的主机名最小化问题
  "ProblemIgnoreHostnameFilters": [],
#在拓扑重构之前检查复制筛选器
  "VerifyReplicationFilters": false,
#高于此值会上移和下移
  "ReasonableMaintenanceReplicationLagSeconds": 20,
#该时间之后,使用实例作为候选副本的建议已过期。
  "CandidateInstanceExpireMinutes": 60,
#审计操作的日志文件名。 空的时候禁用。
  "AuditLogFile": "",
#审计日志是否写入到系统日志
  "AuditToSyslog": false,
#去除群集/群集页面上的主机名的文本
  "RemoveTextFromHostnameDisplay": ".mydomain.com:3306",
#是否只读
  "ReadOnly": false,
#身份验证类型
  "AuthenticationMethod": "",
#HTTP基本身份验证的用户名
  "HTTPAuthUser": "",
#HTTP基本身份验证的密码
  "HTTPAuthPassword": "",
#当AuthenticationMethod为“proxy”时,HTTP标头指示auth用户
  "AuthUserHeader": "X-Forwarded-User",
#在AuthenticationMethod ==“proxy”上,可以更改的用户列表。 所有其他都是只读的
  "PowerAuthUsers": [
    "*"
  ],
#集群别名
  "ClusterNameToAlias": 
    "127.0.0.1": "test suite"
  ,
#使用SHOW SLAVE STATUS进行延迟判断,粒度为秒
  "ReplicationLagQuery": "",
#集群别名的query,信息放到每个被管理实例的meta库的cluster表中
  "DetectClusterAliasQuery": "SELECT SUBSTRING_INDEX(@@hostname, '.', 1)",
#集群Domain的query,信息放到每个被管理实例的meta库的cluster表中
  "DetectClusterDomainQuery": "",
#实例的别名
  "DetectInstanceAliasQuery": "",
#实例的提升规则
  "DetectPromotionRuleQuery": "",
#从主机名中提取数据中心名称
  "DataCenterPattern": "[.]([^.]+)[.][^.]+[.]mydomain[.]com",
#从主机名中提取物理环境信息
  "PhysicalEnvironmentPattern": "[.]([^.]+[.][^.]+)[.]mydomain[.]com",
#不使用主机名匹配模式来提升副本
  "PromotionIgnoreHostnameFilters": [],
#检测是否强制半同步
  "DetectSemiSyncEnforcedQuery": "",
#产生另一个专用于orchestrator-agent的HTTP接口
  "ServeAgentsHttp": false,
#回调接口
  "AgentsServerPort": ":3001",
#orchestrator是否使用SSL侦听代理端口以及通过SSL连接到代理
  "AgentsUseSSL": false,
#SSL相关配置
  "AgentsUseMutualTLS": false,
  "AgentSSLSkipVerify": false,
  "AgentSSLPrivateKeyFile": "",
  "AgentSSLCertFile": "",
  "AgentSSLCAFile": "",
  "AgentSSLValidOUs": [],
  "UseSSL": false,
  "UseMutualTLS": false,
  "SSLSkipVerify": false,
  "SSLPrivateKeyFile": "",
  "SSLCertFile": "",
  "SSLCAFile": "",
  "SSLValidOUs": [],
  "URLPrefix": "",
  "StatusEndpoint": "/api/status",
  "StatusSimpleHealth": true,
  "StatusOUVerify": false,
  #代理轮询的分钟数
  "AgentPollMinutes": 60,
  #忘记不可见的代理的小时数
  "UnseenAgentForgetHours": 6,
  #过时(无进展)被视为失败的分钟数
  "StaleSeedFailMinutes": 60,
  #种子源和目标数据大小之间的字节差异仍被视为成功复制
  "SeedAcceptableBytesDiff": 8192,
  #
  "PseudoGTIDPattern": "",
  "PseudoGTIDPatternIsFixedSubstring": false,
  "PseudoGTIDMonotonicHint": "asc:",
  #可选查询,用于确定是否在实例上启用了伪gtid
  "DetectPseudoGTIDQuery": "",
#SHOW BINLOG | RELAYLOG EVENTS LIMIT的块大小。 较小意味着更少的锁定和工作要做
  "BinlogEventsChunkSize": 10000,
  #扫描/比较Pseudo-GTID的binlog时,跳过包含给定文本的条目。 这些不是正则表达式(扫描binlog时会消耗太多的CPU),只需查找子字符串。
  "SkipBinlogEventsContaining": [],
  #如果为true,则复制分析将报告可能首先处理问题的可能性的实例。 如果为false,则为每个已知实例提供一个条目,如果发生了故障切换,那么在这么长时间内再次故障将不会被发现,以避免抖动
  "ReduceReplicationAnalysisCount": true,
  #如果发生了故障切换,那么在这么长时间内再次故障将不会被发现,以避免抖动
  "FailureDetectionPeriodBlockMinutes": 60,
  #当主从同步延迟超过指定值时,主从切换失败;当使用该功能时,必须指定ReplicationLagQuery并使用heartbeat机制。
  "FailMasterPromotionOnLagMinutes": 0,
  #一旦集群经历了恢复,那么在这段时间内将阻止自动恢复,以避免抖动
  "RecoveryPeriodBlockSeconds": 3600,
  #自动恢复忽略这些机器
  "RecoveryIgnoreHostnameFilters": [],
  #只对匹配这些正则表达式模式的集群进行自动恢复(“*”模式匹配所有)
  "RecoverMasterClusterFilters": [
    "_master_pattern_"
  ],
  #只对匹配这些正则表达式模式的集群进行自动恢复(“*”模式匹配所有内容,ABC复制模式中的B)
  "RecoverIntermediateMasterClusterFilters": [
    "_intermediate_master_pattern_"
  ],
  #检测出故障时执行(在决定是否进行故障转移之前)
  "OnFailureDetectionProcesses": [
    "echo 'Detected failureType on failureCluster. Affected replicas: countSlaves' >> /tmp/recovery.log"
  ],
  #在主变为只读之前立即执行
  "PreGracefulTakeoverProcesses": [
    "echo 'Planned takeover about to take place on failureCluster. Master will switch to read_only' >> /tmp/recovery.log"
  ],
  #在执行恢复操作之前立即执行。任何这些进程的失败(非零退出代码)都会中止恢复
  "PreFailoverProcesses": [
    "echo 'Will recover from failureType on failureCluster' >> /tmp/recovery.log"
  ],
  #每一步恢复成功时都会执行
  "PostFailoverProcesses": [
    "echo '(for all types) Recovered from failureType on failureCluster. Failed: failedHost:failedPort; Successor: successorHost:successorPort' >> /tmp/recovery.log"
  ],
  #任何不成功的恢复时执行
  "PostUnsuccessfulFailoverProcesses": [],
  #在主节点成功恢复时执行
  "PostMasterFailoverProcesses": [
    "echo 'Recovered from failureType on failureCluster. Failed: failedHost:failedPort; Promoted: successorHost:successorPort' >> /tmp/recovery.log"
  ],
  #在主节点成功恢复或者从节点重新恢复主从同步时执行,ABC复制模式中的B
  "PostIntermediateMasterFailoverProcesses": [
    "echo 'Recovered from failureType on failureCluster. Failed: failedHost:failedPort; Successor: successorHost:successorPort' >> /tmp/recovery.log"
  ],
  #在主从切换,旧的主节点挂在新的主节点上之后执行
  "PostGracefulTakeoverProcesses": [
    "echo 'Planned takeover complete' >> /tmp/recovery.log"
  ],
  #当'false'时,任何都可以得到提升(候选人比其他人更受欢迎)。 当'true'时,将促进其他共同主人或否则失败
  "CoMasterRecoveryMustPromoteOtherCoMaster": true,
  #恢复过程中可能会丢失一些副本。如果为true,将通过detach-replica命令强制中断其复制,以确保没有人认为它们完全正常运行。
  "DetachLostSlavesAfterMasterFailover": true,
  #故障切换时将在新的Master上reset slave all并设置read_only = 0,默认true。
  "ApplyMySQLPromotionAfterMasterFailover": true,
  #如果为true(默认值:false),则不允许跨DC主故障转移,orchestrator将尽其所能仅在同一DC内进行故障转移,否则不进行故障转移。
  "PreventCrossDataCenterMasterFailover": false,
  #如果为true, 则不允许跨区域故障转移
  "PreventCrossRegionMasterFailover": false,
  #在主从切换时,时否应该在新升级的master上发出detach-replica-master-host,这样可以确保新master不会尝试复制正常之后的旧的master。在ApplyMySQLPromotionAfterMasterFailover:true时没有意义
  "MasterFailoverDetachReplicaMasterHost": false,
  #在主故障转移(包括失败的主副本和丢失的副本)之后丢失的任何服务器停机的分钟数。0表示禁用
  "MasterFailoverLostInstancesDowntimeMinutes": 0,
  #在崩溃恢复时,滞后超过给定分钟的副本仅在主/ IM被选出并执行进程后才在恢复过程的后期复活。 值为0将禁用此功能
  "PostponeReplicaRecoveryOnLagMinutes": 0,
  #建议将忽略与给定模式匹配的副本主机名
  "OSCIgnoreHostnameFilters": [],
  "GraphiteAddr": "",
  "GraphitePath": "",
  "GraphiteConvertHostnameDotsToUnderscores": true,
  "ConsulAddress": "",
  "ConsulAclToken": "",
  "ConsulKVStoreProvider": "consul",
#raft配置
    "RaftEnabled": true,
  "RaftDataDir": "/export/Data/orchestrator",
  "RaftBind": "xxx.xxx.xxx.xxx",
  "RaftAdvertise": "xxx.xxx.xxx.xxx",
  "DefaultRaftPort": 10008,
  "RaftNodes": [
    "xxx.xxx.xxx.xxx",
    "xxx.xxx.xxx.xxx",
    "xxx.xxx.xxx.xxx",


以上是关于MySQL高可用架构Orchestrator配置文件详解的主要内容,如果未能解决你的问题,请参考以下文章

mysql架构~ Orchestrator

MySQL高可用复制管理工具 —— Orchestrator介绍

Mysql高可用—5.7 gtid 主从 + orchestrator 配置及简单测试

Mysql高可用—5.7 gtid 主从 + orchestrator 配置及简单测试

Mysql高可用—5.7 gtid 主从 + orchestrator 配置及简单测试

MySQL高可用工具Orchestrator raft模式部署