mycat实际应用

发布时间 2023-11-30 14:45:57作者: zhouyujie091413

基础概念

 

 服务器上发布mycat服务,主要涉及的文件,rule.xml,schema.xml,server.xml

 

Server.xml

保存了mycat需要的所有的系统配置信息,代码映射为SystemConfig类

 system标签

 存放系统配置,直接下载原有的就可以了

user标签 属性name,数据库登录名

<property name="password">test</property> 用户密码是test
<property name="schemas">db1, db2</property> 可访问的schema有db1,db2

 

 Schema.xml

这个文件是MyCat最重要的配置文件,负责管理库,表,分片规则,DataNode ,DataSource。因此这个配置是需要很清楚各部分的含义的。

---table 标签

 

 说明:

  type="global" 针对全局表,直接调取

 分表的需要读取规则,利用rule属性,这一块根据属性定义名字,调取rule.xml里对应的规则   

分表 dataNode,分表节点

table 标签的相关属性

name           该属性定义逻辑表的表名
dataNode    该属性定义这个逻辑表所属的 dataNode, 该属性的值需要和 dataNode 标签中 name 属性的值相互对应。
rule              该属性用于指定逻辑表要使用的规则名字,规则名字在 rule.xml 中定义,必须与 tableRule 标签中 name 属性属性值一一对应
ruleRequired    该属性用于指定表是否绑定分片规则,如果配置为 true,但没有配置具体 rule 的话 ,程序会报错。
primaryKey      该逻辑表对应真实表的主键,
type                 该属性定义了逻辑表的类型,目前逻辑表只有“全局表”和”普通表”两种类型。全局表定义type=”global”,不定义的就是普通表。
autoIncrement  主键是否自增长。
subTables     分表,分表目前不支持Join。
needAddLimit   是否自动添加limit,默认是开启状态。关闭请谨慎。

 

---dataNode标签

 

 

 rule.xml

  tableRule标签

 

 

  function标签,name对应上面的规则名字,定义处理方法

 

 

 问题:

  1.dataNode 里dn$1-69怎么来的?

    --dataNode 节点里的库名dn$1-69,这个其实是计算了节点替换的,利用了定时任务替换文档,重启服务

  2.节点数据库怎样创建的?

   --数据库定时任务,创建新的数据库,按照新的节点名字创建

 

题外话:

查看服务器的定时服务 命令 crontab -l

 

 替换命令 sed -i ‘s/需要替换的字符串/替换的字符串/g’   /文件地址/文件名称

 

 启动mycat服务

进入bin文件下 

   运行 ./mycat restart   

   查看 启动状态 ./mycat status