2.23.2 dataHost命令的具体使用方法和解释

外部ha启用参数

当项目准备使用dble的外部ha联动方式来完成高可用切换或者同步的时候,需要提前进行如下配置

server.xml中system

<property name="useOuterHa">true</property>

当此参数配置时,对于dble的配置出现以下的限制条件:

  • 单个dataHost下面只允许配置一个writeHost
  • 基于dble内部心跳的高可用切换不可用

注意:本参数的调整需要重启dble服务

myid.properties

配置参数clusterHa = true

  • 当此参数启用时,集群状态的dble将会在集群中同步自身的dataSource的状态
  • 此配置在server.xml中useOuterHa参数为false时不生效
  • 当useOuterHa参数为true但clusterHa不会true时,dble可以执行高可用切换的所有指令,但是其行为退化为单机dble,需要人工进行集群中多个dble的状态同步

注意:此参数的调整需要重启dble服务

关于dble中对于后端MySQL状态的解释

dataSource的状态“disabled/enable”仅表示dble层面对于具体每个MySQL后端节点是否允许有流量的标识,和具体的MySQL存活状态无关

dataHost @@disable

命令细节:
dataHost @@disable name = 'dataHost_name' [node = 'dataSource_name']

  • 其中的dataHost_name指的是在schema.xml中配置的dataHost的名称,而dataSource_name指的是在一个dataHost下面具体的writeHost/readHost的hostName
  • 当此命令不指定node = '..'的内容时,默认将此dataHost下所有writeHost/readHost的状态置为disabled
  • 被标记为disabled的节点无法提供正常的查询,即使对应的mysql真实的存活着
  • 具体的dataHost的disable状态可以通过管理端命令show @@datasource进行查询
  • 当dble服务不在useOuterHa = true的模式的情况下,此命令无法执行,返回报错
  • 若当前dble服务尚存连接被disable的连接,在命令执行过程中会被全部关闭,包括正在新建过程中的连接,可能会导致少量的查询报错

dataHost @@enable

命令细节:
dataHost @@enable name = 'dataHost_name' [node = 'dataSource_name']

  • 其中的dataHost_name指的是在schema.xml中配置的dataHost的名称,而dataSource_name指的是在一个dataHost下面具体的writeHost/readHost的hostName
  • 当此命令不指定node = '..'的内容时,默认使得整个dataHost下的所有writeHost/readHost的状态enable
  • 当dble服务不在useOuterHa = true的模式的情况下,此命令无法执行,返回报错

dataHost @@switch

命令细节: dataHost @@switch name = 'dataHost_name' master = 'dataSource_name'

  • 其中的dataHost_name指的是在schema.xml中配置的dataHost的名称,而dataSource_name指的是在一个dataHost下面具体的writeHost/readHost的hostName
  • 此命令name和master内容都为必填,在缺少任意元素的状态下会报错
  • 当dble服务不在useOuterHa = true的模式的情况下,此命令无法执行,返回报错
  • 此命令的作用会导致writeHost和readHost之间发生位置互换,被选中成为新master的节点将变成writeHost,并且其他所有dataSource变成readHost
  • 此命令不会导致所有dataSource节点的disable状态变化,但如果命令使得一个dataSource从writeHost退化成为readHost,此dataSource上的所有既有连接都会被关闭,以确保新的写请求不会被写入到错误的dataSource上面去,这可能导致一些前端连接的查询报错和事务失败

results matching ""

    No results matching ""