Mycat配置双主双从以及读写分离高可用

1、修改mycat的schema.xml文件

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

	<schema name="M_SPDB_PZEX" checkSQLschema="false" sqlMaxLimit="100" randomDataNode="dn1" dataNode="dn1">
	</schema>
	<dataNode name="dn1" dataHost="host1" database="spdb_pzex" />
	<dataHost name="host1" maxCon="1000" minCon="10" balance="1"
			  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.56.20:3306" user="dhapp" password="xxxxxx">
		   <!-- can have multi read hosts -->
			<readHost host="hostS1" url="192.168.56.21:3306" user="dhapp" password="xxxxxx"></readHost>
		</writeHost>
		<!-- can have multi write hosts -->
		<writeHost host="hostM2" url="192.168.56.22:3306" user="dhapp" password="xxxxxx">
		   <!-- can have multi read hosts -->
			<readHost host="hostS2" url="192.168.56.23:3306" user="dhapp" password="xxxxxx"></readHost>
		</writeHost>
	</dataHost>
</mycat:schema>

balance="1":

        全部的readHost与stand by writeHost参与select语句的负载均衡。

writeType="0":

        所有写操作发送到配置的第一个writeHost,第一个挂了切到还生存的第二个

writeType="1",

        所有写操作都随机的发送到配置的 writeHost,1.5 以后废弃不推荐

writeHost,

        重新启动后以切换后的为准,切换记录在配置文件中:dnindex.properties 。

switchType="1":

  •  1 默认值,自动切换。
  •  -1 表示不自动切换
  •  2 基于 MySQL 主从同步的状态决定是否切换。

注意:上面数据库的用户要提前建好

2、启动 Mycat验证读写分离

1、先启动mycat

2、首先创建一张临时表test

在写主机Master1数据库表mytbl中插入带系统变量数据,造成主从数据不一致
   INSERT INTO mytbl VALUES(1,@@hostname);

查询数据:

 

 由上面的查询结果可以发现出现了3个不同的name,我们看一下分别属于哪个数据库节点:

Master1节点:

        

Master2节点:

         

Slave1节点:

         

Slave2节点:

         

可以发现出除了Master2其他的都可以查询出来,说明现在两个主节点Master2是真正的主机,Master1是备机,Master1、Master2 互做备机,负责写的主机宕机,备机 切换负责写操作,保证数据库读写分离高可用性。


3、测试高可用

1、下面我们先将Master2节点停掉(因为现在是主机)

2、 我们继续向mysql集群中插入数据试试

 可以发现是没有问题的

3、下面我们再将Master2启动起来

发现可以查询到Master2、Slave1、Slave2节点的数据了,刚刚因为Master2停掉,那么Slave2就无法同步数据了,因为Master1只和Slave1同步,所以只能查询到Slave1节点的数据。 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值