开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(二):MyCat - 分片 - 分片规则 - 准备工作】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/756/detail/13264
MyCat - 分片 - 分片规则 - 准备工作
内容介绍:
一、回顾
二、准备工作
一、回顾
水平拆分的特点是 MySQL 的各个节点当中表结构一样,但是这个表结构当中所存储的内容是不一样的,即原来在一张表当中存放的数据,现在分到了三个节点当中存放。第一个节点存放一部分,第二个节点存放一部分,第三个节点三存放一部分,从而来完成存储容量的扩容以及处理能力的增强。
那么一条数据插入到数据表后,插入到哪个节点由 rule 分片规则决定。rule 配置的内容是分片规则。
二、准备工作
分片规则基本上涵盖 MyCat 当中常见的分片规则。
准备工作,需要将水平拆分的配置文件备份,然后准备干净的 schema.xml 进行测试。
进行操作时按照之前的习惯,把 schema.xml 进行备份,重新命名为 mv schema.xml schema_h.xml。配置文件修改后,再拷贝一份,命名为 cp schema_h.xml schema.xml 。这样只需要在 schema.xml 产品当中进行一个全新的配置。后面所有关于分片规则的讲解,都是在这份配置文件当中重新来进行配置。
刷新并打开 schema.xml。打开 user 目录下的 local 目录,打开 local 目录下的mycat 目录,然后打开 concet 下的 schema.xml。
<schema name=”PARTITION _DB”checkSQLschema=”false sqlMaxLimit=“100”>
<tablename=””dataNode=”dn1,dn2,dn3” =rule=””/>
清除主键、name 值、分片规则,修改数据库名称为 PARTITION _DB。这是为了声明逻辑库叫做 PARTITION _DB,dn1,dn2,dn3 所关联的 mysql 库叫做partition_db。
<dataNode name =”dn1” dataHos=“host1”database=”partition_db”/>
<dataNode name =”dn2” dataHos=“host2”database=” partition _db”/>
<dataNode name =”dn3” dataHos=“host3”database=” partition _db”/>
既然关联了数据库,就要在三个数据节点中创建出来。执行建库语句:creat database log_db DEFAULT CHARACTER SET utf8mb4
。创建完成之后再次查询,那么 partition _db 数据库就已经创建成功了。接下来打开 158 执行,执行完成之后查询,partition _db 数据库创建成功。
同理 159 执行之后再次查询。
现在对于 schema.xml 当中所配置的 partition _db 在三个节点当中已经创建好,那么接下来还需要把 server.xml 当中的配置进行修改,将 LOG_DB
修改为 PARTITION _DB
。