4.4.4 测试
分别在两台主库Master1、Master2上执行DDL、DML语句,查看涉及到的数据库服务器的数据同步情况。
create database db01; | |
use db01; | |
create table tb_user( | |
id int(11) not null primary key , | |
name varchar(50) not null, | |
sex varchar(1) | |
)engine=innodb default charset=utf8mb4; | |
insert into tb_user(id,name,sex) values(1,'Tom','1'); |
在Master1中执行DML、DDL操作,看看数据是否可以同步到另外的三台数据库中。
在Master2中执行DML、DDL操作,看看数据是否可以同步到另外的三台数据库中。
完成了上述双主双从的结构搭建之后,接下来,我们再来看看如何完成这种双主双从的读写分离。
4.5 双主双从读写分离
4.5.1 配置
MyCat控制后台数据库的读写分离和负载均衡由schema.xml文件datahost标签的balance属性控制,通过writeType及switchType来完成失败自动切换的。
1). schema.xml
配置逻辑库:
<schema name="ITCAST_RW2" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn7"> | |
</schema> |
配置数据节点:
<dataNode name="dn7" dataHost="dhost7" database="db01" />
配置节点主机:
<dataHost name="dhost7" maxCon="1000" minCon="10" balance="1" writeType="0" | |
dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100"> | |
<heartbeat>select user()</heartbeat> | |
<writeHost host="master1" url="jdbc:mysql://192.168.200.211:3306? | |
useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8" | |
user="root" password="1234" > | |
<readHost host="slave1" url="jdbc:mysql://192.168.200.212:3306? | |
useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8" | |
user="root" password="1234" /> | |
</writeHost> | |
<writeHost host="master2" url="jdbc:mysql://192.168.200.213:3306? | |
useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8" | |
user="root" password="1234" > | |
<readHost host="slave2" url="jdbc:mysql://192.168.200.214:3306? | |
useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8" | |
user="root" password="1234" /> | |
</writeHost> | |
</dataHost> |
具体的对应情况如下: