首页 > 数据库 >mycat配置数据库集群

mycat配置数据库集群

时间:2023-03-24 15:44:49浏览次数:50  
标签:数据库 配置 mycat 集群 节点 writeHost 主从

mycat配置数据库集群

 

所有的集群配置,都必须配置多主多从模式,即多个master节点相互之间配置主从,如,master1和slave1为第一组主从,master2和slave2为第二组主从,master1和master2互为对方的主从。 

如下配置方式为两个主从模型,两个writeHost互为主从(缺陷:可能有I/O延迟问题)

配置解释:

balance:0 //不开启读写分离,所有读操作都发送到当前可用的writeHost上

balance:1 //全部的readHost与stand by writeHost 参与select 语句的负载均衡(常用)

balance:2 //所有的读操作都随机的在writeHost、readHost上分发

balance:3 //所有的读操作都随机的分发到writeHost对应的readHost执行,writeHost不负担读压力

writeType:0自动主从(在1.4以后支持了主从关系,但是并没有支持主从复制) 也就是mycat会自动分配主从,如果说在同一个dataHost标签中配置了多个writeHost, 则mycat会自动分配主从(常用)

所有写操作发送到配置的第一个writeHost,第一个挂了切换到第二个,重新启动后以切换后的为准,切换记录在配置文件中:dnindex.properties

writeType:1所有写操作都随机的发送到配置的 writeHost(1.5版本之前生效)

switchType:无论是-1还是1都根据的是mycat所自带的主从关系

switchType:-1不自动切换 writeHost配置的规则为一台主节点一台从节点 如果主节点宕机,从节点还是从节点,并不会自动切换为主节点

switchType:1自动切换 根据的是mysql所配置主从关系(常用)

switchType:2根据mysql配置主从进行切换(监视mysql的主从心跳) Slave_IO_Runing(YES) Slave_SQL_Running(YES)(可以解决I/O延迟问题)

当心跳检测获取的数据发现了I/O延迟,则读做自动定位到writeHost中,如果没有延迟,则读操作自动定位到readHost中,建议为不同的表格定位不同的dataHost节点

3:和2一样,只是2为单节点,3为集群模式

 第一种集群配置方案如下:

 

<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
              writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <!-- can have multi write hosts -->
        <writeHost host="hostM1" url="192.168.209.130:3306" user="root"
                   password="123456">
            <!-- can have multi read hosts -->
            <readHost host="hostS2" url="192.168.209.130:3306" user="root" password="123456" />
        </writeHost>
    <writeHost host="hostM2" url="192.168.209.130:3306" user="root"
                   password="123456">
            <!-- can have multi read hosts -->
            <readHost host="hostS2" url="192.168.209.130:3306" user="root" password="123456" />
        </writeHost>
</dataHost>

 第二种集群配置方案如下:

<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
      
        <table name="company"   dataNode="dn1,dn2,dn3" rule="crc32slot" />
        <table name="goods"   dataNode="dn4,dn5,dn6" rule="crc32slot1" /> //在mycat中,rule.xml中定义的分片规则只能给一个表格使用,如果有多个表格使用同一个分片规则,需要在rule.xml中再复制一个tableRule节点
 </schema>
    <dataNode name="dn1" dataHost="localhost1" database="db1" />
    <dataNode name="dn2" dataHost="localhost1" database="db2" />
    <dataNode name="dn3" dataHost="localhost1" database="db3" />

    <dataNode name="dn4" dataHost="localhost2" database="db1" />
    <dataNode name="dn5" dataHost="localhost2" database="db2" />
    <dataNode name="dn6" dataHost="localhost2" database="db3" />

  
    <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
              writeType="0" dbType="mysql" dbDriver="native" switchType="2"  slaveThreshold="100">
        <heartbeat>show slave status</heartbeat>
        <!-- can have multi write hosts -->
        <writeHost host="hostM1" url="192.168.209.130:3306" user="root"
                   password="123456">
        </writeHost>
        <writeHost host="hostS1" url="192.168.209.130:3306" user="root"
                   password="123456" />
    </dataHost>
  

    <dataHost name="localhost2" maxCon="1000" minCon="10" balance="0"
      writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
      <heartbeat>show slave status</heartbeat>
<!-- can have multi write hosts -->
      <writeHost host="hostM2" url="192.168.209.130:3306" user="root"
    password="123456">
      </writeHost>
      <writeHost host="hostS1" url="192.168.209.130:3306" user="root"
      password="123456" />
</dataHost>

 

上图为一套高可用集群,任意一个节点done机都有备份可以替代

在所有Mycat服务所在主机中增加状态检查服务脚本,此操作为HaProxy提供对Mycat服务状态检查的依据,本案例中使用xinetd实现。通过xinetd,Haproxy可以用httpchk来检测Mycat的存活状态,(xinetd即extened internet daemon,是新一代的网络守护进程服务程序,又

叫超级Internet服务器,经常用来管理多种轻量级internet服务)

注意:第一种集群配置中需要手动配置两台master主主同步,两台master的mysql配置文件需要在[mysqld]下加上

log-slave-updates=true(又做主又做从)

然后开启主主同步,方法与读写分离配置主从方法一样,这样其中一台master done机重启,会自动与另一台master数据同步

标签:数据库,配置,mycat,集群,节点,writeHost,主从
From: https://www.cnblogs.com/gaoyuechen/p/17252143.html

相关文章

  • 选择KV数据库最重要的是什么
    本文分享自华为云社区《选择KV数据库最重要的是什么?》,作者:GaussDB数据库。经常有客户提到KV数据库,但却偏偏“不要Redis”。比如有个做安全威胁分析平台的客户,他们明确表示......
  • ChatGPT4 给出数据库开发者最容易犯的 10 个错误和解决方案
    近期ChatGPT4发布,作为数据库领域的开发者,也是10年老DBA,也是迫不及待体验了一把。ChatGPT4目前是付费使用,使用次数也有限制,门槛更高,API调用费用是ChatGPT3.5的15......
  • HBase Java API操作数据库
    场景在上面将开发环境搭建起来,要想操作操作数据库除了使用HBaseShell还可以使用JAVAAPI对HBase进行操作。注:关注公众号霸道的程序猿获取编程相关电子书、教程推送与免费......
  • ChatGPT4 给出数据库开发者最容易犯的 10 个错误和解决方案
    近期ChatGPT4发布,作为数据库领域的开发者,也是10年老DBA,也是迫不及待体验了一把。 ChatGPT4目前是付费使用,使用次数也有限制,门槛更高,API调用费用是ChatGPT3.5......
  • 选择KV数据库最重要的是什么
    本文分享自华为云社区《选择KV数据库最重要的是什么?》,作者:GaussDB数据库。经常有客户提到KV数据库,但却偏偏“不要Redis”。比如有个做安全威胁分析平台的客户,他们明确表......
  • JMeter 数据库连接及查询、应用
     本文主要是关于数据库连接、数据库查询、使用查询结果进行传参。数据库连接1、需要下载的插件:   Mysql:mysql-connector-java-5.1.49-bin.jar   百度网......
  • 亚信安慧携AntDB数据库入选信通院软件供应链厂商和产品名录
    日前,中国信息通讯研究院(简称:中国信通院)在其主办的3SCON软件供应链安全大会上,发布了软件供应链厂商和产品名录。中国信通院云计算与大数据研究所副所长栗蔚表示,我国软件供应......
  • 亚信科技通信、交通行业数据库项目入选“星河”标杆、优秀案例
    近日,由中国信息通信研究院、中国通信标准化协会大数据技术标准推进委员会(CCSATC601)共同组织的第六届大数据“星河”案例评选结果公示,亚信科技及旗下亚信安慧支持完成的中国......
  • AntDB数据库助力中国移动结算中心建设
    为响应中国移动集团公司IT集中化的要求:全面落实“十三五”十大战略工程,加快“推动公司IT资源一体化整合“重点专项工作。以IT系统为载体,构建高效运营支撑体系,形成集中化支撑......
  • oracle数据库表索引空间不够
    oracle数据库表索引空间不够步骤1:检查索引空间使用情况首先,需要检查数据库的索引空间使用情况,以确定是否存在空间不足的问题。可以使用以下SQL语句查询当前索引空间的使......