目录
第一章:mysql的主从复制之一主一从
第二章:mysql的主从复制之双主双从
第三章:mycat实现数据库的读写分离
第四章:mycat实现mysql分库(垂直切分)
第五章:mycat实现mysql分库(水平切分)
第六章:mycat ER表与全局表
第七章:mycat全局序列号
mycat实现mysql分库(垂直切分)
数据库切分之垂直切分:垂直切分就是将不同的表分布在不同的数据库实例中。
前置条件:
继续基于前面第一二三章配置的mysql和mycat进行配置。
关闭第二章中配置的两个主库(node01、node02)之间的互为主备
如果不关闭则数据会自动同步,无法达到分库的效果。如果业务量非常多需要多主多从的情况下,就不需要执行此步骤。继续按照第一二章配置另外一套多主多从就行了。
关闭node01作为备机:
stop slave
关闭node02作为备机:
stop slave
配置mycat
修改schema.xml文件,
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
<!--配置表名为test2的表自动路由到dn2的数据库中-->
<table name = "test2" dataNode="dn2"></table>
</schema>
<dataNode name="dn1" dataHost="host1" database="duck"/>
<dataNode name="dn2" dataHost="host2" database="duck"/>
<dataHost name="host1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="192.168.1.106:3306" user="root" password="123456">
<readHost host="hostS1" url="192.168.1.107:3306" user="root" password="123456"></readHost>
</writeHost>
</dataHost>
<dataHost name="host2" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM2" url="192.168.1.108:3306" user="root" password="123456">
<readHost host="hostS2" url="192.168.1.109:3306" user="root" password="123456"></readHost>
</writeHost>
</dataHost>
</mycat:schema>
启动mycat的服务
mycat console
登录mycat
mysql -uroot -p123456 -h 192.168.85.111 -P8066
验证分库是否生效
create table test1(name varchar(32));
create table test2(name varchar(32));
登录node01查看是否创建了表test1,而没有创建test2。
登录node03查看是否创建了表test2,而没有创建test1。