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高可用—5.7 gtid 主从 + orchestrator 配置及简单测试
Mysql高可用—5.7 gtid 主从 + orchestrator 配置及简单测试