<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<!--
schema 用于指定逻辑库
name="mycatdb" 指定逻辑库的名称,可以随便写,但是要和server.xml文件中的<property name="schemas">mycatdb</property>相对应
checkSQLschema="false" 是否校验sql,false表示不校验sql标准
sqlMaxLimit="100" 分页,每页最多返回100条
dataNode="dn1" 指定数据节点,需要和下面的dataNode的name属性相同
-->
<schema name="mycatdb" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
<!--
schema下面是各种逻辑表,当不需要水平拆分和垂直拆分的时候是不需要指定table
-->
</schema>
<!--
dataNode 一个dataNode表示一个数据节点,用于配置物理数据库名称,物理数据库(物理库):在mysql中真实创建的数据库
name 指定dataNode名称,可以随便写,但是要和schema中的dataNode相对应,但是建议保留dn1,因为mycat中有些配置用到了dn1
dataHost 用于指定下面的dataHost,要求要和dataHost的name属性相同
database 物理库名称,要和mysql中的数据库对应
-->
<dataNode name="dn1" dataHost="host1" database="testdb" />
<!--
dataHost 用于配置读写分离
maxCon 最大连接数量
minCon 最小连接数量
balance 负载均衡策略,目前有4种
1.balance="0" 不开启读写分离机制,所有读操作都发送到当先可用的writeHost上;
2.balance="1" (推荐)全部的readHost与stand by writeHost参与select语句的负载均衡,简单的说当双主双从模式(M1 -> M1S1 , M2 -> M2S1,并且M1与M2互为主备),正常情况下,M2,M1S1,M2S1都参与select语句的负载均衡
3.balance="2" 所有读操作都随机的在writeHost,readHost上分发
4.balance="3" 所有读请求随机的分发到writeHost对应的readHost执行,writeHost不负担读的压力
writeType 已经不用了,不做解释
dbType 指定mycat连接数据库的类型
dbDriver 数据库的驱动类型,native表示mysql的原生驱动
switchType 配置故障切换类型,需要配合<heartbeat>select user()</heartbeat>心跳机制
1:switchType="-1" 表示不自动切换
2:switchType="1" 默认值,自动切换(推荐)
3:switchType="2" 基于mysql主从同步的状态决定是否切换
4:switchType="3" 基于 MySQL galary cluster的切换机制(适用于集群)
slaveThreshold 配置从机数量
heartbeat 心跳机制,用于和后端数据库进行心跳检查的语句,检测MySQL是否正常运行
当switchType为1时,mysql心跳检查语句是:select user()
当switchType为2时,mysql心跳检查语句是:show slave status 利用主从状态,判断IO进程
当switchType为3时,mysql心跳检查语句是:show status like 'wsrep%'
writeHost 写的数据库的信息
readHost 读的数据信息
host 配置写/读的数据库名字
url 配置写/读的数据库所在ip地址
user 登录数据库的用户名
password 登录数据库的密码
-->
<dataHost name="host1" maxCon="1000" minCon="10" balance="3"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="M1" url="192.168.1.99:3306" user="root"
password="root">
<!-- can have multi read hosts -->
<readHost host="M1S1" url="192.168.1.97:3306" user="root" password="root" />
</writeHost>
</dataHost>
</mycat:schema>
mycat之schema文件配置详解
最新推荐文章于 2024-04-19 12:46:16 发布