Mycat分庫分表配置
以下為Mycat為三臺Mysql資料庫分庫分表的配置,三臺資料庫主機名node0-2,資料庫名db01-03.
以下是Mycat的schema.xml配置檔案:
<schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" randomDataNode="dn1"> <!-- auto sharding by id (long) --> <!--splitTableNames 啟用<table name 屬性使用逗號分割配置多個表,即多個表使用這個配置--> <table name="users" primaryKey="id" dataNode="dn1" /> <table name="item" primaryKey="id" dataNode="dn2,dn3" rule="rule1" /> <table name="customer" dataNode="dn1,dn2,dn3" rule="auto-sharding-long-custom"> <childTable name="orders" joinKey="customer_id" parentKey="id" /> </table> <!-- <table name="oc_call" primaryKey="ID" dataNode="dn1$0-743" rule="latest-month-calldate" /> --> </schema> <!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743" /> --> <dataNode name="dn1" dataHost="localhost1" database="db01" /> <dataNode name="dn2" dataHost="localhost2" database="db02" /> <dataNode name="dn3" dataHost="localhost3" database="db03" /> <!--<dataNode name="dn4" dataHost="sequoiadb1" database="SAMPLE" /> <dataNode name="jdbc_dn1" dataHost="jdbchost" database="db1" /> <dataNode name="jdbc_dn2" dataHost="jdbchost" database="db2" /> <dataNode name="jdbc_dn3" dataHost="jdbchost" database="db3" /> --> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <!-- can have multi write hosts --> <writeHost host="hostM1" url="node0:3306" user="root" password="root123"> </writeHost> <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> --> </dataHost> <dataHost name="localhost2" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <!-- can have multi write hosts --> <writeHost host="hostM2" url="node1:3306" user="root" password="root123"> </writeHost> <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> --> </dataHost> <dataHost name="localhost3" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <!-- can have multi write hosts --> <writeHost host="hostM3" url="node2:3306" user="root" password="root123"> </writeHost> <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> --> </dataHost>
然後編輯rule.xml:
<tableRule name="rule1"> <rule> <columns>id</columns> <algorithm>mod-long</algorithm> </rule> </tableRule> <tableRule name="auto-sharding-long-custom"> <rule> <columns>id</columns> <algorithm>rang-long</algorithm> </rule> </tableRule> <function name="mod-long" class="io.mycat.route.function.PartitionByMod"> <!-- how many data nodes --> <property name="count">2</property> </function> <function name="rang-long" class="io.mycat.route.function.AutoPartitionByLong"> <property name="mapFile">auto-sharding-long-custom.txt</property> </function>
以上配置說明:
mod-long演算法,即按餘數分配,一共2臺。
rang-long,按範圍分配。
建立auto-sharding-long-custom.txt檔案:
cat auto-sharding-long-custom.txt 0-1000=0 1000-2000=1 2000-3000=2
表示0-1000分配到0號datanode,1000-2000到1號datanode,2000-3000到2號datanode。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22621861/viewspace-2756123/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mycat配置分庫分表
- Mycat分庫分表(一)
- Mycat分表分庫原則
- MyCat分庫分表、讀寫分離
- Mycat 讀寫分離+分庫分表
- Linux MySQL分庫分表之MycatLinuxMySql
- mycat和sharding JDBC分庫分表JDBC
- Mycat分庫分表的簡單實踐
- Mycat垂直分庫
- MySQL運維9-Mycat分庫分表之列舉分片MySql運維
- 分散式資料庫中介軟體 MyCat | 分庫分表實踐分散式資料庫
- 基於代理的資料庫分庫分表框架 Mycat實踐資料庫框架
- 你們要的MyCat實現MySQL分庫分表來了MySql
- MySQL運維12-Mycat分庫分表之按天分片MySql運維
- Mycat讀寫分離、主從切換、分庫分表的操作記錄
- MySQL運維11-Mycat分庫分表之應用指定分片MySql運維
- MyCat 讀寫分離 資料庫分庫分表 中介軟體 安裝部署,及簡單使用資料庫
- Mycat讀寫分離配置實踐
- 分庫分表系列:分庫分表的前世今生
- 分庫分表
- MySQL運維10-Mycat分庫分表之一致性雜湊分片MySql運維
- 分庫分表注意
- MySQL分庫分表MySql
- [Mysql]分庫分表MySql
- MySQL運維6-Mycat垂直分庫MySql運維
- 資料庫分庫分表資料庫
- MySQL運維8-Mycat範圍分表MySql運維
- 徹底搞清MySQL分庫分表(垂直分庫,垂直分表,水平分庫,水平分表)MySql
- 分庫分表總結
- 常用分庫分表方案
- Mysql分庫分表方案MySql
- 【Mysql】OneProxy分庫分表MySql
- 基因法分庫分表
- 淘寶TDDL——Matrix層的分庫分表配置與實現
- [資料庫][分庫分表]分庫分表之後,id主鍵如何處理資料庫
- oracle分表效率,資料庫分庫分表是什麼,什麼情況下需要用分庫分表Oracle資料庫
- 徹底搞清分庫分表(垂直分庫,垂直分表,水平分庫,水平分表)
- 讀寫分離 & 分庫分表 & 深度分頁