1. schema
  1. <?xml version="1.0"?>
  2. <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
  3. <mycat:schema xmlns:mycat="http://io.mycat/">
  4.  
  5. <schema name="TESTDB" checkSQLschema="false" >
  6. <!-- auto sharding by id (long) OrderItem-->
  7. <table name="tb_Item" dataNode="dn1,dn2,dn3" rule="jch" />
  8. <table name="OrderItem" dataNode="dn1,dn2,dn3" rule="jch" />
  1. <!-- 全局表-->
  1. <table name="goods_class" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3" />
  2. </schema>
  3. <!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743"
  4. /> -->
  5. <dataNode name="dn1" dataHost="localhost1" database="data1" />
  6. <dataNode name="dn2" dataHost="localhost1" database="data2" />
  7. <dataNode name="dn3" dataHost="localhost1" database="data3" />
  8. <!--<dataNode name="dn4" dataHost="sequoiadb1" database="SAMPLE" />
  9. <dataNode name="jdbc_dn1" dataHost="jdbchost" database="db1" />
  10. <dataNode name="jdbc_dn2" dataHost="jdbchost" database="db2" />
  11. <dataNode name="jdbc_dn3" dataHost="jdbchost" database="db3" /> -->
  12. <dataHost name="localhost1" maxCon="5" minCon="10" balance="2"
  13. writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100" maxRetryCount="4">
  14. <heartbeat>select user()</heartbeat>
  15. <!-- can have multi write hosts -->
  16. <writeHost host="hostM1" url="localhost:3306" user="root"
  17. password="Ali_2019">
  18. <!-- can have multi read hosts -->
  19. <readHost host="hostS2" url="localhost:3306" user="root" password="123" />
  20. </writeHost>
  21. <writeHost host="hostS1" url="localhost:3306" user="root"
  22. password="123" />
  23. <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
  24. </dataHost>
  25. <!--
  26. <dataHost name="sequoiadb1" maxCon="1000" minCon="1" balance="0" dbType="sequoiadb" dbDriver="jdbc">
  27. <heartbeat> </heartbeat>
  28. <writeHost host="hostM1" url="sequoiadb://1426587161.dbaas.sequoialab.net:11920/SAMPLE" user="jifeng" password="jifeng"></writeHost>
  29. </dataHost>
  30.  
  31. <dataHost name="oracle1" maxCon="1000" minCon="1" balance="0" writeType="0" dbType="oracle" dbDriver="jdbc"> <heartbeat>select 1 from dual</heartbeat>
  32. <connectionInitSql>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'</connectionInitSql>
  33. <writeHost host="hostM1" url="jdbc:oracle:thin:@127.0.0.1:1521:nange" user="base" password="123456" > </writeHost> </dataHost>
  34.  
  35. <dataHost name="jdbchost" maxCon="1000" minCon="1" balance="0" writeType="0" dbType="mongodb" dbDriver="jdbc">
  36. <heartbeat>select user()</heartbeat>
  37. <writeHost host="hostM" url="mongodb://192.168.0.99/test" user="admin" password="123456" ></writeHost> </dataHost>
  38.  
  39. <dataHost name="sparksql" maxCon="1000" minCon="1" balance="0" dbType="spark" dbDriver="jdbc">
  40. <heartbeat> </heartbeat>
  41. <writeHost host="hostM1" url="jdbc:hive2://feng01:10000" user="jifeng" password="jifeng"></writeHost> </dataHost> -->
  42.  
  43. <!-- <dataHost name="jdbchost" maxCon="1000" minCon="10" balance="0" dbType="mysql"
  44. dbDriver="jdbc"> <heartbeat>select user()</heartbeat> <writeHost host="hostM1"
  45. url="jdbc:mysql://localhost:3306" user="root" password="123456"> </writeHost>
  46. </dataHost> -->
  47. </mycat:schema>
  1. rule
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- - - Licensed under the Apache License, Version 2.0 (the "License");
  3. - you may not use this file except in compliance with the License. - You
  4. may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0
  5. - - Unless required by applicable law or agreed to in writing, software -
  6. distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT
  7. WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the
  8. License for the specific language governing permissions and - limitations
  9. under the License. -->
  10. <!DOCTYPE mycat:rule SYSTEM "rule.dtd">
  11. <mycat:rule xmlns:mycat="http://io.mycat/">
  12. <tableRule name="rule1">
  13. <rule>
  14. <columns>id</columns>
  15. <algorithm>func1</algorithm>
  16. </rule>
  17. </tableRule>
  18.  
  19. <tableRule name="rule2">
  20. <rule>
  21. <columns>user_id</columns>
  22. <algorithm>func1</algorithm>
  23. </rule>
  24. </tableRule>
  25.  
  26. <tableRule name="sharding-by-intfile">
  27. <rule>
  28. <columns>sharding_id</columns>
  29. <algorithm>hash-int</algorithm>
  30. </rule>
  31. </tableRule>
  32. <tableRule name="auto-sharding-long">
  33. <rule>
  34. <columns>id</columns>
  35. <algorithm>rang-long</algorithm>
  36. </rule>
  37. </tableRule>
  38. <tableRule name="mod-long">
  39. <rule>
  40. <columns>id</columns>
  41. <algorithm>mod-long</algorithm>
  42. </rule>
  43. </tableRule>
  44. <tableRule name="sharding-by-murmur">
  45. <rule>
  46. <columns>id</columns>
  47. <algorithm>murmur</algorithm>
  48. </rule>
  49. </tableRule>
  50. <tableRule name="crc32slot">
  51. <rule>
  52. <columns>id</columns>
  53. <algorithm>crc32slot</algorithm>
  54. </rule>
  55. </tableRule>
  56. <tableRule name="sharding-by-month">
  57. <rule>
  58. <columns>create_time</columns>
  59. <algorithm>partbymonth</algorithm>
  60. </rule>
  61. </tableRule>
  62. <tableRule name="latest-month-calldate">
  63. <rule>
  64. <columns>calldate</columns>
  65. <algorithm>latestMonth</algorithm>
  66. </rule>
  67. </tableRule>
  68.  
  69. <tableRule name="auto-sharding-rang-mod">
  70. <rule>
  71. <columns>id</columns>
  72. <algorithm>rang-mod</algorithm>
  73. </rule>
  74. </tableRule>
  75.  
  76. <tableRule name="jch">
  77. <rule>
  78. <columns>id</columns>
  79. <algorithm>jump-consistent-hash</algorithm>
  80. </rule>
  81. </tableRule>
  82.  
  83. <function name="murmur"
  84. class="io.mycat.route.function.PartitionByMurmurHash">
  85. <property name="seed">0</property><!-- 默认是0 -->
  86. <property name="count">2</property><!-- 要分片的数据库节点数量,必须指定,否则没法分片 -->
  87. <property name="virtualBucketTimes">160</property><!-- 一个实际的数据库节点被映射为这么多虚拟节点,默认是160倍,也就是虚拟节点数是物理节点数的160倍 -->
  88. <!-- <property name="weightMapFile">weightMapFile</property> 节点的权重,没有指定权重的节点默认是1。以properties文件的格式填写,以从0开始到count-1的整数值也就是节点索引为key,以节点权重值为值。所有权重值必须是正整数,否则以1代替 -->
  89. <!-- <property name="bucketMapPath">/etc/mycat/bucketMapPath</property>
  90. 用于测试时观察各物理节点与虚拟节点的分布情况,如果指定了这个属性,会把虚拟节点的murmur hash值与物理节点的映射按行输出到这个文件,没有默认值,如果不指定,就不会输出任何东西 -->
  91. </function>
  92.  
  93. <function name="crc32slot"
  94. class="io.mycat.route.function.PartitionByCRC32PreSlot">
  95. <property name="count">2</property><!-- 要分片的数据库节点数量,必须指定,否则没法分片 -->
  96. </function>
  97. <function name="hash-int"
  98. class="io.mycat.route.function.PartitionByFileMap">
  99. <property name="mapFile">partition-hash-int.txt</property>
  100. </function>
  101. <function name="rang-long"
  102. class="io.mycat.route.function.AutoPartitionByLong">
  103. <property name="mapFile">autopartition-long.txt</property>
  104. </function>
  105. <function name="mod-long" class="io.mycat.route.function.PartitionByMod">
  106. <!-- how many data nodes -->
  107. <property name="count">3</property>
  108. </function>
  109.  
  110. <function name="func1" class="io.mycat.route.function.PartitionByLong">
  111. <property name="partitionCount">8</property>
  112. <property name="partitionLength">128</property>
  113. </function>
  114. <function name="latestMonth"
  115. class="io.mycat.route.function.LatestMonthPartion">
  116. <property name="splitOneDay">24</property>
  117. </function>
  118. <function name="partbymonth"
  119. class="io.mycat.route.function.PartitionByMonth">
  120. <property name="dateFormat">yyyy-MM-dd</property>
  121. <property name="sBeginDate">2015-01-01</property>
  122. </function>
  123.  
  124. <function name="rang-mod" class="io.mycat.route.function.PartitionByRangeMod">
  125. <property name="mapFile">partition-range-mod.txt</property>
  126. </function>
  127.  
  128. <function name="jump-consistent-hash" class="io.mycat.route.function.PartitionByJumpConsistentHash">
  129. <property name="totalBuckets">3</property>
  130. </function>
  131. </mycat:rule>
  1. server
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- - - Licensed under the Apache License, Version 2.0 (the "License");
  3. - you may not use this file except in compliance with the License. - You
  4. may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0
  5. - - Unless required by applicable law or agreed to in writing, software -
  6. distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT
  7. WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the
  8. License for the specific language governing permissions and - limitations
  9. under the License. -->
  10. <!DOCTYPE mycat:server SYSTEM "server.dtd">
  11. <mycat:server xmlns:mycat="http://io.mycat/">
  12. <system>
  13. <property name="nonePasswordLogin">0</property> <!-- 0为需要密码登陆、1为不需要密码登陆 ,默认为0,设置为1则需要指定默认账户-->
  14. <property name="useHandshakeV10">1</property>
  15. <property name="useSqlStat">0</property> <!-- 1为开启实时统计、0为关闭 -->
  16. <property name="useGlobleTableCheck">0</property> <!-- 1为开启全加班一致性检测、0为关闭 -->
  17.  
  18. <property name="sequnceHandlerType">2</property>
  19. <property name="subqueryRelationshipCheck">false</property> <!-- 子查询中存在关联查询的情况下,检查关联字段中是否有分片字段 .默认 false -->
  20. <!-- <property name="useCompression">1</property>--> <!--1为开启mysql压缩协议-->
  21. <!-- <property name="fakeMySQLVersion">5.6.20</property>--> <!--设置模拟的MySQL版本号-->
  22. <!-- <property name="processorBufferChunk">40960</property> -->
  23. <!--
  24. <property name="processors">1</property>
  25. <property name="processorExecutor">32</property>
  26. -->
  27. <!--默认为type 0: DirectByteBufferPool | type 1 ByteBufferArena | type 2 NettyBufferPool -->
  28. <property name="processorBufferPoolType">0</property>
  29. <!--默认是65535 64K 用于sql解析时最大文本长度 -->
  30. <!--<property name="maxStringLiteralLength">65535</property>-->
  31. <!--<property name="sequnceHandlerType">0</property>-->
  32. <!--<property name="backSocketNoDelay">1</property>-->
  33. <!--<property name="frontSocketNoDelay">1</property>-->
  34. <!--<property name="processorExecutor">16</property>-->
  35. <!--
  36. <property name="serverPort">8066</property> <property name="managerPort">9066</property>
  37. <property name="idleTimeout">300000</property> <property name="bindIp">0.0.0.0</property>
  38. <property name="frontWriteQueueSize">4096</property> <property name="processors">32</property> -->
  39. <!--分布式事务开关,0为不过滤分布式事务,1为过滤分布式事务(如果分布式事务内只涉及全局表,则不过滤),2为不过滤分布式事务,但是记录分布式事务日志-->
  40. <property name="handleDistributedTransactions">0</property>
  41.  
  42. <!--
  43. off heap for merge/order/group/limit 1开启 0关闭
  44. -->
  45. <property name="useOffHeapForMerge">1</property>
  46.  
  47. <!--
  48. 单位为m
  49. -->
  50. <property name="memoryPageSize">64k</property>
  51.  
  52. <!--
  53. 单位为k
  54. -->
  55. <property name="spillsFileBufferSize">1k</property>
  56.  
  57. <property name="useStreamOutput">0</property>
  58.  
  59. <!--
  60. 单位为m
  61. -->
  62. <property name="systemReserveMemorySize">384m</property>
  63.  
  64. <!--是否采用zookeeper协调切换 -->
  65. <property name="useZKSwitch">false</property>
  66.  
  67. <!-- XA Recovery Log日志路径 -->
  68. <!--<property name="XARecoveryLogBaseDir">./</property>-->
  69.  
  70. <!-- XA Recovery Log日志名称 -->
  71. <!--<property name="XARecoveryLogBaseName">tmlog</property>-->
  72. <!--如果为 true的话 严格遵守隔离级别,不会在仅仅只有select语句的时候在事务中切换连接-->
  73. <property name="strictTxIsolation">false</property>
  74.  
  75. <property name="useZKSwitch">true</property>
  76.  
  77. </system>
  78.  
  79. <!-- 全局SQL防火墙设置 -->
  80. <!--白名单可以使用通配符%或着*-->
  81. <!--例如<host host="127.0.0.*" user="root"/>-->
  82. <!--例如<host host="127.0.*" user="root"/>-->
  83. <!--例如<host host="127.*" user="root"/>-->
  84. <!--例如<host host="1*7.*" user="root"/>-->
  85. <!--这些配置情况下对于127.0.0.1都能以root账户登录-->
  86. <!--
  87. <firewall>
  88. <whitehost>
  89. <host host="1*7.0.0.*" user="root"/>
  90. </whitehost>
  91. <blacklist check="false">
  92. </blacklist>
  93. </firewall>
  94. -->
  95.  
  96. <user name="root" defaultAccount="true">
  97. <property name="password">123456</property>
  98. <property name="schemas">TESTDB</property>
  99.  
  100. <!-- 表级 DML 权限设置 -->
  101. <!--
  102. <privileges check="false">
  103. <schema name="TESTDB" dml="0110" >
  104. <table name="tb01" dml="0000"></table>
  105. <table name="tb02" dml="1111"></table>
  106. </schema>
  107. </privileges>
  108. -->
  109. </user>
  110.  
  111. <user name="user">
  112. <property name="password">user</property>
  113. <property name="schemas">TESTDB</property>
  114. <property name="readOnly">true</property>
  115. </user>
  116.  
  117. </mycat:server>

mycat schema server rule的更多相关文章

  1. mycat schema.xml 配置文件详解

    <?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> &l ...

  2. Mycat 配置文件server.xml

    server.xml 几乎保存了所有 mycat 需要的系统配置信息. 1.system 标签: 该标签内嵌套的所有 property 标签都与系统配置有关. charset 属性: 该属性用于字符集 ...

  3. Mycat 配置说明(rule.xml)

    rule.xml 配置文件定义了我们对表进行拆分所涉及到的规则定义.我们可以灵活的对表使用不同的分片算法, 或者对表使用相同的算法但具体的参数不同. tableRule 标签 该标签用于定义表的拆分规 ...

  4. Windows环境Mycat数据库分库分表中间件部署

    下载地址MYCAT官方网站 jdk安装配置 首先去oracle官网下载并安装jdk8,添加环境变量,JAVA_HOME设置为D:\Worksoftware\Java\jdk1.8 CLASSPATH设 ...

  5. MyCat部署运行(Windows环境)与使用步骤详解

        目录(?)[+] 1.MyCat概念 1.1 总体架构 MyCAT的架构如下图所示: MyCAT使用MySQL的通讯协议模拟成一个MySQL服务器,并建立了完整的Schema(数据库).Tab ...

  6. Windows版Mycat结合mysql安装配置+水平切分(转载)

    来源:https://segmentfault.com/a/1190000009495748 参考文档:Mycat安装与使用 环境 环境 版本 windows 10 java 1.8.0 mysql ...

  7. linux中mycat的配置,分片,以及主从复制

    1.1    安装环境 1.jdk:要求jdk必须是1.7及以上版本 2.Mysql:推荐mysql是5.5以上版本 1.2  安装步骤 Mycat有windows.linux多种版本.本教程为lin ...

  8. MyCAT详解

    一.MyCAT概述 MyCAT是一款由阿里Cobar演变而来的用于支持数据库读写分离.分片的分布式中间件.MyCAT可不但支持Oracle.MSSQL.MYSQL.PG.DB2关系型数据库,同时也支持 ...

  9. Mycat实战之主键数据库自增方式

    创建一个 person表,主键为Id,hash方式分片,主键自增(采用数据库方式) #person表结构如下 Id,主键,Mycat自增主键 name,字符串,16字节最长 school,毕业学校,数 ...

随机推荐

  1. koa2,koa-jwt中token验证实战详解

    用户身份验证通常有两种方式,一种是基于cookie的认证方式,另一种是基于token的认证方式.当前常见的无疑是基于token的认证方式.以下所提到的koa均为koa2版本. token认证的优点是无 ...

  2. Demo:servlet实现图片的上传

    一个简单的servlet例子,实现图片的上传功能,上传的图片给 ?HttpServletResponse 对象 public class BackGroundLogoServlet extends H ...

  3. vue中bus.$on事件被多次绑定

    问题描述:只要页面没有强制刷新,存在组件切换,bus.$on方法会被多次绑定,造成事件多次触发 解决办法一:在每次调用方法前先解绑事件( bus.$off ),然后在重新绑定( bus.$on ) b ...

  4. 【Introduction】R语言入门关键小结

    写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...

  5. koa 基础(一)新建/启动 项目

    1.创建项目 npm init -y npm install --save koa 2.app.js // 引入模板 var koa = require('koa'); // 实例化 var app ...

  6. leetcode-easy-listnode-206 reverse linked list

    mycode   98.87 # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x ...

  7. 搭建jenkins集群node结点

    配置结点 首先,需要在jenkins的系统设置中新增一个结点 系统管理 -> 节点管理 -> New Node 配置Remote root directory最好和主jenkins的路径一 ...

  8. 转 实例详解Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化(三)

    这是本系列的最后一篇,主要是select_related() 和 prefetch_related() 的最佳实践. 第一篇在这里 讲例子和select_related() 第二篇在这里 讲prefe ...

  9. c++中字符输入函数cin.getline在输入char与string时的不同

    cin.getline在输入char时: using namespace std; ; char name[ArSize]; char dessert[ArSize]; cout << & ...

  10. [flask_sqlalchemy ]插入数据时发生错误后如何处理

    示例代码: def add_supplier(): form = request.form if request.method == 'POST': print(form) supplier = Su ...