mycat分库分表和读写分离

分库分表

mycat是一个虚拟的数据库服务器,本身自己连接的是逻辑数据库,并不充当存储数据的业务,

数据真实存储在物理数据库上面。

读写分离
原理

让主数据库实现增删改业务,让从数据库实现查询的业务

数据一致性可以通过mysql的主从复制机制来保证数据的同步。

实现方式

读写分离需要主从复制,使用mysql自带的主从复制功能即可。

开发步骤:
  • 配置server.xml文件 需要配置,保留以前即可,如果有多个逻辑数据库,只需要在schemas里面添加即可。中间用逗号隔开。

  • 配置schema.xml文件

    <schema name = "ZKL_TABLE" checkSQLschema="false" sqlMaxLimit = "100">
    		<table name = "user"    dataNode = "dn01" />	
    	    <table name = "student" dataNode = "dn02" />
    		<table name = "dept"    dataNode = "dn01,dn02"
           		   primaryKey = "d_id"  autoIncrement = "true" rule = "mod-long"/>
    	 </schema>
    	 <!--如果server.xml文件中的schemas属性有多个数据库,那么在schemax.xml文件中配置多个schema 
    	     schema的配置尽量放在一起。
    	 -->
    	
    	 <dataNode name = "dn01" dataHost = "master"  database = "ZKL_TABLE"/>
    	 <dataNode name = "dn02" dataHost = "slave01" database = "ZKL_TABLE"/>
    	 <!--
    	     balance  平衡机制  
    		     balance = "0"  不开启读写分离
    			 balance = "1"  开启读写分裂
    	 -->
    	 <dataHost name = "master" maxCon = "1000" minCon = "10" balance = "1"
    	            writeType = "0" dbType = "mysql" dbDriver = "native">
    	        
    		    <!--心跳检查机制-->
    			<heartbeat>select user();</heartbeat>
    			
    			<writeHost host = "master" url = "192.168.68.129:3306" user = "root"
    			           password = "MyNewPass4!">
    					<readHost host = "slave01" url="192.168.68.130:3306" user = "root" password = "MyNewPass4!">
    					</readHost>   
    			</writeHost>	
                			
    	 </dataHost>
    	 
         <dataHost name = "slave01" maxCon = "1000" minCon = "10" balance = "1"
    	            writeType = "0" dbType = "mysql" dbDriver = "native">
    
    			<heartbeat>select user();</heartbeat>
    			<writeHost host = "master" url = "192.168.68.129:3306" user = "root"
    			           password = "MyNewPass4!">
    				<readHost host = "slave01" url="192.168.68.130:3306" user = "root" password = "MyNewPass4!">
    				</readHost>   
    			</writeHost>					
    	 </dataHost> 
    
  • 配置rule.xml文件也不需要发生改变。使用以前的即可。

  • 重启mycat服务

    重启

    ./mycat restart

    停止

    ./mycat stop

    查看状态

    ./mycat status

    启动

    ./mycat start

  • 测试时,数据没有同步,手动开启mysql的主从复制功能。

    查看从服务器中的IO线程 SQL线程 是否都为yes

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值