schema.xml 概述
schema.xml 是 Mycat 的核心配置文件,管理逻辑数据库、逻辑表、数据节点和数据主机。
核心组件
1. Schema 标签(逻辑数据库)
定义虚拟数据库,解耦应用与物理数据库:
<schema name="edu_order" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1">
<table name="orders" primaryKey="order_id" dataNode="dn1,dn2" rule="mod-long"/>
</schema>
2. Table 标签(逻辑表)
指定虚拟表结构和支持三种类型:
- 分片表:使用规则分布在多个节点
- 全局表:复制到所有节点
- 非分片表:存储在单个节点
3. DataNode 标签
将逻辑表映射到物理数据库实例:
<dataNode name="dn1" dataHost="edu_order_1" database="edu_order_1" />
4. DataHost 标签
配置物理数据库连接:
- 连接池设置(maxCon/minCon)
- 读写分离(balance属性)
- 高可用(switchType)
- 心跳检测
5. Heartbeat 标签
指定数据库监控的健康检查SQL查询:
- MySQL:
SELECT user() - Oracle:
SELECT 1 FROM dual
6. WriteHost/ReadHost 标签
定义主库(写)和从库(读)数据库实例。
典型应用场景
- 订单表按时间或用户ID分片
- 全局表用于产品信息同步
- 日志表按日期范围分区
配置注意事项
- 需与 rule.xml 配合使用分片规则
- 修改后需重启 Mycat 或重新加载
- 保持逻辑配置与实际数据库结构同步