美文网首页
Orchestrator安装与配置

Orchestrator安装与配置

作者: 蓝天_528f | 来源:发表于2019-10-18 14:19 被阅读0次

    特点:

    1、可以轻松调整各节点间的复制关系,可以web图形化操作,可以命令行操作。

    2、自动检测主库异常,并可以按照自定规则或者自主选择数据延迟最低的节点接替旧主库,还可以通过Hooks自定义脚本进行扩展。

    3、支持管理节点的高可用,基于Raft分步式一致性协议。

    4、自动发现MySQL的复制拓扑,并且在web上展示。

    5、结合GTID,半同步复制可以轻松实现零数据丢失。

    6、无侵入性,支持Mysql、Percona Mysql、MarriaDB等,现在类似的方案中, MGR, PXC都会不同程度的使用限制。

    MySQL主从、GTID、半同步复制等主要配置省略,特别注意事项:

    stop slave;

    change master to master_host='192.168.44.129', master_port=3306, master_user='repl', master_password='repl123',master_auto_position=1,MASTER_HEARTBEAT_PERIOD=2,MASTER_CONNECT_RETRY=1,MASTER_RETRY_COUNT=86400;

    set global slave_net_timeout=8;

    start slave;

    在被管理MySQL中建立用户

    GRANT SELECT, RELOAD, PROCESS, SUPER, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'orchestrator'@'%' IDENTIFIED BY 'orchestrator';

    下载并在主、从、从上安装orchestrator。

    https://github.com/github/orchestrator/releases/download/v3.1.2/orchestrator-3.1.2-linux-amd64.tar.gz

    tar xzvf orchestrator-3.1.2-linux-amd64.tar.gz -C /

    vim /usr/local/orchestrator/orchestrator.conf.json

    {

      "Debug": true,    #开启调试模式,测试结束后可以设置为false

      "EnableSyslog": false,

      "ListenAddress": ":3000",    #orch监听端口

      "MySQLTopologyUser": "orchestrator",    #被管理数据库用户

      "MySQLTopologyPassword": "orchestrator",    #被管理数据库用户密码

      "MySQLTopologyCredentialsConfigFile": "",    #可以将用户密码配置到文件中

      "MySQLTopologySSLPrivateKeyFile": "",

      "MySQLTopologySSLCertFile": "",

      "MySQLTopologySSLCAFile": "",

      "MySQLTopologySSLSkipVerify": true,

      "MySQLTopologyUseMutualTLS": false,

      "BackendDB": "sqlite",    #orch后台数据库类型

      "SQLite3DataFile": "/usr/local/orchestrator/orchestrator.sqlite3",     #orch后台数据库存放位置

      "MySQLConnectTimeoutSeconds": 1,

      "DefaultInstancePort": 3306,

      "DiscoverByShowSlaveHosts": true,

      "InstancePollSeconds": 5,

      "UnseenInstanceForgetHours": 240,

      "SnapshotTopologiesIntervalHours": 0,

      "InstanceBulkOperationsWaitTimeoutSeconds": 10,

      "HostnameResolveMethod": "default",

      "MySQLHostnameResolveMethod": "@@hostname",

      "SkipBinlogServerUnresolveCheck": true,

      "ExpiryHostnameResolvesMinutes": 60,

      "RejectHostnameResolvePattern": "",

      "ReasonableReplicationLagSeconds": 10,

      "ProblemIgnoreHostnameFilters": [],

      "VerifyReplicationFilters": false,

      "ReasonableMaintenanceReplicationLagSeconds": 20,

      "CandidateInstanceExpireMinutes": 60,

      "AuditLogFile": "",

      "AuditToSyslog": false,

      "ReadOnly": false,

      "AuthenticationMethod": "",

      "HTTPAuthUser": "",

      "HTTPAuthPassword": "",

      "AuthUserHeader": "",

      "PowerAuthUsers": [

        "*"

      ],

      "ClusterNameToAlias": {

        "127.0.0.1": "test suite"

      },

      "SlaveLagQuery": "",

      "DetectClusterAliasQuery": "SELECT SUBSTRING_INDEX(@@hostname, '.', 1)",

      "DetectClusterDomainQuery": "",

      "DetectInstanceAliasQuery": "",

      "DetectPromotionRuleQuery": "",

      "PromotionIgnoreHostnameFilters": ["mysqls2"],    #排除非意向候选备库

      "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,

      "PseudoGTIDPattern": "",

      "PseudoGTIDPatternIsFixedSubstring": false,

      "PseudoGTIDMonotonicHint": "asc:",

      "DetectPseudoGTIDQuery": "",

      "BinlogEventsChunkSize": 10000,

      "SkipBinlogEventsContaining": [],

      "ReduceReplicationAnalysisCount": true,

      "FailureDetectionPeriodBlockMinutes": 1,    #failover后多长时间内再次发现主库down掉,不予处理

      "RecoveryPeriodBlockSeconds": 60,   #failover后多长时间内再次发现主库down掉,不予处理

      "RecoveryIgnoreHostnameFilters": [],

      "RecoverMasterClusterFilters": ["*"],    #主库down掉后,需要做recover的列表,不配置则不会理会

      "RecoverIntermediateMasterClusterFilters": ["*"],   #主库down掉后,需要做recover的列表,不配置则不会理会

      "OnFailureDetectionProcesses": [

        "echo 'Detected {failureType} on {failureCluster}. Affected replicas: {countSlaves}' >> /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"

        "/usr/local/bin/orch_hook.sh {failureType} {failureClusterAlias} {failedHost} {successorHost} >> /tmp/orch.log"

      ],

      "PostUnsuccessfulFailoverProcesses": [],

      "PostMasterFailoverProcesses": [

        "echo 'Recovered from {failureType} on {failureCluster}. Failed: {failedHost}:{failedPort}; Promoted: {successorHost}:{successorPort}' >> /tmp/recovery.log"

      ],

      "PostIntermediateMasterFailoverProcesses": [

        "echo 'Recovered from {failureType} on {failureCluster}. Failed: {failedHost}:{failedPort}; Successor: {successorHost}:{successorPort}' >> /tmp/recovery.log"

      ],

      "CoMasterRecoveryMustPromoteOtherCoMaster": true,

      "DetachLostSlavesAfterMasterFailover": true,

      "ApplyMySQLPromotionAfterMasterFailover": true,

      "PreventCrossDataCenterMasterFailover": false,

      "PreventCrossRegionMasterFailover": false,

      "MasterFailoverDetachSlaveMasterHost": false,

      "MasterFailoverLostInstancesDowntimeMinutes": 0,

      "PostponeSlaveRecoveryOnLagMinutes": 0,

      "OSCIgnoreHostnameFilters": [],

      "GraphiteAddr": "",

      "GraphitePath": "",

      "GraphiteConvertHostnameDotsToUnderscores": true,

      "RaftEnabled": true,    #启动orch高可用

      "RaftBind": "192.168.44.129",

      "RaftDataDir": "/var/lib/orchestrator",

      "DefaultRaftPort": 10008,

      "RaftNodes": [

        "192.168.44.129",

        "192.168.44.130",

        "192.168.44.132"

      ]

    }

    在主、从、从上分别启动orchestrator,注意不能写绝对路径。

    ./orchestrator --config=./orchestrator.conf.json http

    打开任意节点web管理端

    http://192.168.44.129:3000

    相关文章

      网友评论

          本文标题:Orchestrator安装与配置

          本文链接:https://www.haomeiwen.com/subject/utvimctx.html