首页 > 数据库 >MySQL高可用工具Orchestrator:复制拓扑的发现

MySQL高可用工具Orchestrator:复制拓扑的发现

时间:2022-12-21 10:37:05浏览次数:50  
标签:slave show 拓扑 host 3308 MySQL report Orchestrator 从库

1、orchestrator如何去发现mysql实例 这个涉及到两个参数:HostnameResolveMethod和MySQLHostnameResolveMethod HostnameResolveMethod的值有三个选项:     "cname":通过cname做域名解析(resolve  hostname)     "default":不做特别的解析,默认为该值     "none": do  nothing   MySQLHostnameResolveMethod的值有三个选项:     "@@hostname":select  @@hostnam     ,默认为改值                "@@report_host":select @@report_host     "": do  nothing     注意:假设生产环境存在两台数据库服务器主机名一样,比如都是localhost.localdomain;并且,orch配置参数HostnameResolveMethod使用了默认的"default"、MySQLHostnameResolveMethod使用了默认的"@@hostname"。那么,orch在查找的时候,会将用户输入的IP地址解析成hostname,但因为存在两台hostname一样的机器,所以可能会导致出错,即orch找不到正确的那台服务器。 因此,最好保证线上环境,不同服务器的主机名都不同   2、给了主库,如何发现从库的---由参数 DiscoverByShowSlaveHosts  控制 1) " DiscoverByShowSlaveHosts":"true",则会先通过show  slave hosts命令去发现从库,此时会有三种情况:

  • 如果从库设置了正确的report_host,show slave hosts中的host字段显示正确的IP,则直接通过show slave hosts发现从库;
  • 从库设置了错误的report_host,show slave hosts中的host字段显示错误的IP,则orchestrator找不到从库
    • 如果ping不通,则报如下信息:
[mysql] 2021/06/09 17:57:24 driver.go:81: net.Error from Dial()': dial tcp 192.168.221.142:3308: i/o timeout [mysql] 2021/06/09 17:57:25 driver.go:81: net.Error from Dial()': dial tcp 192.168.221.142:3308: i/o timeout [mysql] 2021/06/09 17:57:26 driver.go:81: net.Error from Dial()': dial tcp 192.168.221.142:3308: i/o timeout
    •  如果IP ping的通,则可能报如下信息:
2021-06-09 18:15:34 ERROR dial tcp 192.168.221.142:3308: connect: connection refused 2021-06-09 18:15:40 ERROR dial tcp 192.168.221.142:3308: connect: connection refused 2021-06-09 18:15:46 ERROR dial tcp 192.168.221.142:3308: connect: connection refused 2021-06-09 18:15:52 ERROR dial tcp 192.168.221.142:3308: connect: connection refused // 或者 2021-06-09 18:11:11 ERROR Error 1045: Access denied for user 'orchestrator'@'10.10.30.146' (using password: YES) WARNING: NamedStopwatch.Stop("instance") IsRunning is false 2021-06-09 18:11:17 ERROR Error 1045: Access denied for user 'orchestrator'@'10.10.30.146' (using password: YES) WARNING: NamedStopwatch.Stop("instance") IsRunning is false  
  • 从库没有设置report_host, show slave hosts中的host字段显示为空,则通过processlist发现从库,此时,会报如下信息:
2021-06-09 18:12:49 ERROR ReadTopologyInstance(192.168.221.142:3308) show slave hosts: ReadTopologyInstance(192.168.221.142:3308) 'show slave hosts' returned row with <host,port>: <,3306>   2) " DiscoverByShowSlaveHosts":"false",则通过information_schema.processlist去发现从库 select substring_index(host, ':', 1) as slave_hostname from information_schema.processlist where command IN ('Binlog Dump', 'Binlog Dump GTID');     3、给定从库,如何发现主库 通过show slave status命令去发现主库, 既然show slave hosts命令显示的host不一定准确,那为什么还要加入DiscoverByShowSlaveHosts这个参数呢? 原因: 如果只是通过information_schema.processlist去发现从库,master无法知道replica监听的是哪个端口。show processlist只会显示复制进程使用的套接字端口,而不是replica实例监听的端口。所以需要用户在配置文件中设置好report_host和report_port参数,并且在orch的配置文件中将参数DiscoverByShowSlaveHosts设置为true。   注意:report_port其实可以不在mysql配置文件中配置,因为report_port默认会被设置成slave的端口   如果 " DiscoverByShowSlaveHosts":"false",orch通过information_schema.processlist去发现从库。如果slave的端口和master的不一样,orch会假设从库监听的是和主库相同的端口,那么这个slave就无法被orch自动发现,需要人工手动进行发现:   命令行:orchestrator-client -b hjj:hjj -c discover -i 192.168.221.142:3308 web界面:clusters/discover 实际生产环境中有可能主从端口不是同一个,所以DiscoverByShowSlaveHosts不能为false   当" DiscoverByShowSlaveHosts":"true",如果没有使用默认的3306端口,比如slave用的是3308端口,然后在mysql的配置文件中又没有配置report_host参数,orch会先尝试通过show slave hosts发现从库,但会报错,然后再通过processlist去发现从库。这个时候orch会假设从库监听的是和主库相同的端口(并不会使用show slave hosts中得到的port的信息,因为没有设置report_host,就无法将port和host对应),如果此时主库使用的是3306端口,那么这个slave就自动发现不了   此时需要手动进行发现: 命令行:orchestrator-client -b hjj:hjj -c discover -i 192.168.221.142:3308 web界面:clusters/discover     综合考虑,将 " DiscoverByShowSlaveHosts"设置为"true", 并且至少在mysql配置文件中设置正确的report_host,最好也设置上report_port

标签:slave,show,拓扑,host,3308,MySQL,report,Orchestrator,从库
From: https://www.cnblogs.com/harda/p/16995668.html

相关文章

  • MySQL基于GTID复制模式小结
    一、GTID概念介绍GTID是mysql5.6版本出来的新特性GTID即全局事务ID(globaltransactionidentifier),其保证为每一个在主上提交的事务在复制集群中可以生成一个唯一的I......
  • 基于Spring+SpringMVC+Mybatis+Mysql在线考试系统
    @目录一、系统介绍二、功能展示1.用户登陆2.学生页面3.考试信息(老师)4.试卷库(老师)5.试题库(老师)6.考生信息(老师)7.成绩分析(老师)8.成绩排名(老师)9.错题统计(老师)10.成绩导出(老......
  • Mysql用户及其权限
    一、创建用户createuser'user_name'identifiedby'password';二、用户授权grant[权限名]on数据库名.表名touser_name[withoptiongrant];三、查看数据库中......
  • 基于Springboot+Mybatis+mysql+vue考研规划与交流系统
    @目录一、系统介绍二、功能展示1.主页(普通用户)2.登陆、注册(普通用户)3.复习规划制定(普通用户)4.经验分享交流(普通用户)5.考研学校资讯(普通用户)6.我的文章(普通用户)7.个人信......
  • Navicate for Mysql 中文免费版安装
    1.下载NavicatforMySQ中文破解版链接:https://pan.baidu.com/s/1fG5RfyEsOuyua5yi4Zt-fA提取码:36022.解压压缩包得到两个文件navicat111_mysql_cs_x64.exe、Patch......
  • 使用otter实现数据同步——mysql、oracle的数据同步利器
    文章目录Otter⽬前⽀持了什么整体架构环境准备下载安装修改配置⽂件运⾏ManagerNode配置⼀个同步任务添加canal添加数据源添加数据表配置添加⼀个chan......
  • MySQL Threads Running
    1、 广电告警背景如下: 主机:xxxx:3306,MySQL运行的Thread大于30,请关注,2021-07-1515:30:002、猜测是因为业务量造成?3、mysqlthreadrunning的理解  每秒查询次数(Qu......
  • MySQL8.0—clone plugin
    1、MySQL8.0cloneplugin简介 1) 克隆插件允许从本地或远程的MySQLServer中克隆数据。克隆的数据是存储在InnoDB中的schema(database)、table(表)、tablespaces(表空间)和d......
  • MySQL中这14个牛逼的功能,惊艳到我了!!!
    前言我最近几年用MYSQL数据库挺多的,发现了一些非常有用的小玩意,今天拿出来分享到大家,希望对你会有所帮助。1.group_concat在我们平常的工作中,使用groupby进行分组的场......
  • MySQL——数据库锁
    一、锁的定义?锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何......