【MySQL高可用】Orchestrator

部署教程

部署MySQL

orchestrator的元数据服务依赖MySQL,所以这里需要给每个orchestrator节点部署一个MySQL作为元数据服务。

具体如何部署MySQL这里不详细展开。

元数据初始化

CREATE DATABASE IF NOT EXISTS orchestrator;

CREATE TABLE IF NOT EXISTS orchestrator.`failover_circuit_breaker_config` (
    `id` int(11) NOT NULL,
    `value` int(11) DEFAULT NULL,
    `createtime` bigint(20) DEFAULT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO failover_circuit_breaker_config values(1,4,1608710638);

部署Orchestrator

下载安装包,下载地址:Release GA release v3.2.6 · openark/orchestrator · GitHub

并安装包解压到/usr/local/orchestrator 目录,启动修改相关配置文件,orchestrator.conf.json配置文件内容修改重点:

{
  "Debug": true,
  "EnableSyslog": true,
  "ListenAddress": ":3000",
  "MySQLTopologyUser": "orchestrator",      # 管理MySQL集群的通用账号
  "MySQLTopologyPassword": "******",        # 管理MySQL集群的通用密码
  "MySQLTopologyCredentialsConfigFile": "",
  "MySQLTopologySSLPrivateKeyFile": "",
  "MySQLTopologySSLCertFile": "",
  "MySQLTopologySSLCAFile": "",
  "MySQLTopologySSLSkipVerify": true,
  "MySQLTopologyUseMutualTLS": false,
  "MySQLOrchestratorHost": "127.0.0.1",        #元数据库地址,只需要本地单机部署,高可用和一致性交给orc本身去保证
  "MySQLOrchestratorPort": 33066,              #元数据库端口
  "MySQLOrchestratorDatabase": "orchestrator", #元数据scheme
  "MySQLOrchestratorUser": "dbauser",          #元数据库账号
  "MySQLOrchestratorPassword": "******",       #元数据库密码
  "MySQLOrchestratorCredentialsConfigFile": "",
  "MySQLOrchestratorSSLPrivateKeyFile": "",
  "MySQLOrchestratorSSLCertFile": "",
  "MySQLOrchestratorSSLCAFile": "",
  "MySQLOrchestratorSSLSkipVerify": true,
  "MySQLOrchestratorUseMutualTLS": false,
  "MySQLConnectTimeoutSeconds": 1,
  "DefaultInstancePort": 33066,  #管理集群的实例端口
  "DiscoverByShowSlaveHosts": true,
  "InstancePollSeconds": 5,
  "DiscoveryIgnoreReplicaHostnameFilters": [
  ],
  "UnseenInstanceForgetHours": 240,
  "SnapshotTopologiesIntervalHours": 0,
  "InstanceBulkOperationsWaitTimeoutSeconds": 30,
  "HostnameResolveMethod": "none",
  "MySQLHostnameResolveMethod": "",
  "SkipBinlogServerUnresolveCheck": true,
  "ExpiryHostnameResolvesMinutes": 60,
  "RejectHostnameResolvePattern": "",
  "ReasonableReplicationLagSeconds": 10,
  "ProblemIgnoreHostnameFilters": [],
  "VerifyReplicationFilters": false,
  "ReasonableMaintenanceReplicationLagSeconds": 20,
  "CandidateInstanceExpireMinutes": 60,
  "AuditLogFile": "",
  "AuditToSyslog": false,
  "RemoveTextFromHostnameDisplay": "",
  "ReadOnly": false,
  "AuthenticationMethod": "multi",
  "HTTPAuthUser": "dba",               #web服务登录账号
  "HTTPAuthPassword": "******",        #web服务登录密码
  "AuthUserHeader": "",
  "PowerAuthUsers": [
    "*"
  ],
  "ClusterNameToAlias": {
  },
  "SlaveLagQuery": "",
  "DetectClusterAliasQuery": "",
  "DetectClusterDomainQuery": "",
  "DetectInstanceAliasQuery": "",
  "DetectPromotionRuleQuery": "",
  "DataCenterPattern": "",
  "PhysicalEnvironmentPattern": "",
  "PromotionIgnoreHostnameFilters": [],
  "DetectSemiSyncEnforcedQuery": "",
  "ServeAgentsHttp": false,
  "AgentsServerPort": ":3001",
  "AgentsUseSSL": false,
  "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,
  "AutoPseudoGTID": true,
  "PseudoGTIDPattern": "",
  "PseudoGTIDPatternIsFixedSubstring": false,
  "PseudoGTIDMonotonicHint": "asc:",
  "DetectPseudoGTIDQuery": "",
  "BinlogEventsChunkSize": 10000,
  "SkipBinlogEventsContaining": [],
  "ReduceReplicationAnalysisCount": true,
  "FailureDetectionPeriodBlockMinutes": 60,
  "RecoveryPeriodBlockSeconds": 600,
  "RecoveryIgnoreHostnameFilters": [],
  "RecoverMasterClusterFilters":["*"],
  "RecoverIntermediateMasterClusterFilters": ["*"],
  "OnFailureDetectionProcesses": [
     "/usr/local/orchestrator/failureDetection.sh  {failureCluster} {failureType}  {countSlaves}"
  ],
  "PreFailoverProcesses": [
     "/usr/local/orchestrator/preFailover.sh   {failedHost} {failedPort}"
  ],  #切换前钩子脚本
  "PostFailoverProcesses": [
     "/usr/local/orchestrator/postFailover.sh {failedHost} {failedPort} {successorHost} {successorPort}"
  ],  #切换后调用的钩子脚本
  "PostUnsuccessfulFailoverProcesses": [
     "/usr/local/orchestrator/postUnsuccessfulFailover.sh {failedHost} {failedPort} {failureType} {failureCluster}"
  ],  #切换失败调用的钩子脚本
  "PostMasterFailoverProcesses": [
  ],
  "PostIntermediateMasterFailoverProcesses": [
  ],
  "CoMasterRecoveryMustPromoteOtherCoMaster": true,
  "DetachLostSlavesAfterMasterFailover": true,
  "ApplyMySQLPromotionAfterMasterFailover": true,
  "PreventCrossDataCenterMasterFailover": false,
  "PreventCrossRegionMasterFailover": false,
  "MasterFailoverDetachSlaveMasterHost": false,
  "MasterFailoverLostInstancesDowntimeMinutes": 0,
  "DelayMasterPromotionIfSQLThreadNotUpToDate": true,
  "PostponeSlaveRecoveryOnLagMinutes": 0,
  "OSCIgnoreHostnameFilters": [],
  "GraphiteAddr": "",
  "GraphitePath": "",
  "GraphiteConvertHostnameDotsToUnderscores": true,
  "RaftEnabled": true,
  "RaftBind": "127.0.0.1", #本地节点服务监听地址
  "RaftDataDir": "/usr/local/orchestrator/raftdata",
  "DefaultRaftPort": 10008, #监听端口
  "RaftNodes": [
        "mysql-orchestrator-0",
        "mysql-orchestrator-1",
        "mysql-orchestrator-2"
  ]  #三节点高可用,集群节点ip列表,
}

启动orchestrator服务

cd /usr/local/orchestrator 
rm -rf ./raftdata #
./orchestrator --config=./orchestrator.conf.json --debug  http >> ./orchestrator.log 2>&1 &

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值