zoukankan      html  css  js  c++  java
  • mycat 多库分表 单库分表(根据uuid)

    多  库  分  表    

    rule.xml:

    <mycat:rule xmlns:mycat="http://io.mycat/">
    <tableRule name="test">
    <rule>
    <columns>projectid</columns>
    <algorithm>test</algorithm>
    </rule>
    </tableRule>

    <tableRule name="rule1">
    <rule>
    <columns>projectid</columns>
    <algorithm>func1</algorithm>
    </rule>
    </tableRule>

    <tableRule name="jump-consistent-hash">
    <rule>
    <columns>projectid</columns>
    <algorithm>jump-consistent-hash</algorithm>
    </rule>
    </tableRule>

    <function name="jump-consistent-hash" class="io.mycat.route.function.PartitionByJumpConsistentHash">
    <property name="totalBuckets">3</property>
    </function>


    <function name="func1" class="io.mycat.route.function.PartitionByLong">
    <property name="partitionCount">8</property>
    <property name="partitionLength">128</property>
    </function>

    <function name="test" class="io.mycat.route.function.PartitionByJumpConsistentHash">
    <property name="mapFile">partition-range-mod.txt</property>
    </function>
    </mycat:rule>

    schema.XML

    <mycat:schema xmlns:mycat="http://io.mycat/">

    <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
    <!-- auto sharding by id (long) -->
    <table name="ppartspaikong2" dataNode="dn1,dn2,dn3" rule="jump-consistent-hash" />
    </schema>
    <!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743"
    /> -->
    <dataNode name="dn1" dataHost="localhost1" database="test" />
    <dataNode name="dn2" dataHost="localhost1" database="test1" />
    <dataNode name="dn3" dataHost="localhost1" database="test3" />
    <!--<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="1"
    writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
    <heartbeat>select user()</heartbeat>
    <!-- can have multi write hosts -->
    <writeHost host="hostM1" url="192.168.1.30:3306" user="root" password="abc-123">
    <!-- can have multi read hosts -->
    <readHost host="hostS2" url="192.168.30.242:3306" user="root" password="root" />
    </writeHost>
    <!-- <writeHost host="hostS1" url="localhost:3316" user="root"
    password="123456" />
    <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
    </dataHost>

    </mycat:schema>

    server.xml:

    <mycat:server xmlns:mycat="http://io.mycat/">
    <system>
    <property name="useSqlStat">0</property> <!-- 1为开启实时统计、0为关闭 -->
    <property name="useGlobleTableCheck">0</property> <!-- 1为开启全加班一致性检测、0为关闭 -->

    <property name="sequnceHandlerType">2</property>
    <!-- <property name="useCompression">1</property>--> <!--1为开启mysql压缩协议-->
    <!-- <property name="fakeMySQLVersion">5.6.20</property>--> <!--设置模拟的MySQL版本号-->
    <!-- <property name="processorBufferChunk">40960</property> -->
    <!--
    <property name="processors">1</property>
    <property name="processorExecutor">32</property>
    -->
    <!--默认为type 0: DirectByteBufferPool | type 1 ByteBufferArena-->
    <property name="processorBufferPoolType">0</property>
    <!--默认是65535 64K 用于sql解析时最大文本长度 -->
    <!--<property name="maxStringLiteralLength">65535</property>-->
    <!--<property name="sequnceHandlerType">0</property>-->
    <!--<property name="backSocketNoDelay">1</property>-->
    <!--<property name="frontSocketNoDelay">1</property>-->
    <!--<property name="processorExecutor">16</property>-->
    <!--
    <property name="serverPort">8066</property> <property name="managerPort">9066</property>
    <property name="idleTimeout">300000</property> <property name="bindIp">0.0.0.0</property>
    <property name="frontWriteQueueSize">4096</property> <property name="processors">32</property> -->
    <!--分布式事务开关,0为不过滤分布式事务,1为过滤分布式事务(如果分布式事务内只涉及全局表,则不过滤),2为不过滤分布式事务,但是记录分布式事务日志-->
    <property name="handleDistributedTransactions">0</property>

    <!--
    off heap for merge/order/group/limit 1开启 0关闭
    -->
    <property name="useOffHeapForMerge">1</property>

    <!--
    单位为m
    -->
    <property name="memoryPageSize">1m</property>

    <!--
    单位为k
    -->
    <property name="spillsFileBufferSize">1k</property>

    <property name="useStreamOutput">0</property>

    <!--
    单位为m
    -->
    <property name="systemReserveMemorySize">384m</property>


    <!--是否采用zookeeper协调切换 -->
    <property name="useZKSwitch">true</property>


    </system>

    <!-- 全局SQL防火墙设置 -->
    <!--
    <firewall>
    <whitehost>
    <host host="127.0.0.1" user="mycat"/>
    <host host="127.0.0.2" user="mycat"/>
    </whitehost>
    <blacklist check="false">
    </blacklist>
    </firewall>
    -->

    <user name="root">
    <property name="password">123456</property>
    <property name="schemas">TESTDB</property>

    <!-- 表级 DML 权限设置 -->
    <!--
    <privileges check="false">
    <schema name="TESTDB" dml="0110" >
    <table name="tb01" dml="0000"></table>
    <table name="tb02" dml="1111"></table>
    </schema>
    </privileges>
    -->
    </user>

    <user name="user">
    <property name="password">user</property>
    <property name="schemas">TESTDB</property>
    <property name="readOnly">true</property>
    </user>

    </mycat:server>

    单  库  分  表

    rule.xml同上

    server.xml同上

    schema.xml

    <mycat:schema xmlns:mycat="http://io.mycat/">
    <!-- name: 逻辑数据库名 -->
    <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">

    <!-- name: 表名,分表主键,子表,数据节点,分表规则 -->
    <table name="ppartspaikong2" primaryKey="projectid" subTables="ppartspaikong_$2-4" dataNode="dn1" rule="jump-consistent-hash" />
    </schema>
    <!-- database:物理数据库名 -->
    <dataNode name="dn1" dataHost="localhost1" database="test" />
    <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
    writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
    <heartbeat>select user()</heartbeat>
    <!-- can have multi write hosts -->
    <writeHost host="hostM1" url="192.168.1.30:3306" user="root" password="abc-123">
    <!-- can have multi read hosts -->
    <readHost host="hostS1" url="192.168.30.242:3306" user="root" password="root" />
    </writeHost>
    </dataHost>


    <!--
    <dataHost name="sequoiadb1" maxCon="1000" minCon="1" balance="0" dbType="sequoiadb" dbDriver="jdbc">
    <heartbeat> </heartbeat>
    <writeHost host="hostM1" url="sequoiadb://1426587161.dbaas.sequoialab.net:11920/SAMPLE" user="jifeng" password="jifeng"></writeHost>
    </dataHost>

    <dataHost name="oracle1" maxCon="1000" minCon="1" balance="0" writeType="0" dbType="oracle" dbDriver="jdbc"> <heartbeat>select 1 from dual</heartbeat>
    <connectionInitSql>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'</connectionInitSql>
    <writeHost host="hostM1" url="jdbc:oracle:thin:@127.0.0.1:1521:nange" user="base" password="123456" > </writeHost> </dataHost>

    <dataHost name="jdbchost" maxCon="1000" minCon="1" balance="0" writeType="0" dbType="mongodb" dbDriver="jdbc">
    <heartbeat>select user()</heartbeat>
    <writeHost host="hostM" url="mongodb://192.168.0.99/test" user="admin" password="123456" ></writeHost> </dataHost>

    <dataHost name="sparksql" maxCon="1000" minCon="1" balance="0" dbType="spark" dbDriver="jdbc">
    <heartbeat> </heartbeat>
    <writeHost host="hostM1" url="jdbc:hive2://feng01:10000" user="jifeng" password="jifeng"></writeHost> </dataHost> -->

    <!-- <dataHost name="jdbchost" maxCon="1000" minCon="10" balance="0" dbType="mysql"
    dbDriver="jdbc"> <heartbeat>select user()</heartbeat> <writeHost host="hostM1"
    url="jdbc:mysql://localhost:3306" user="root" password="123456"> </writeHost>
    </dataHost> -->
    </mycat:schema>

    单库分表mycat版本需1.6.5以上 

  • 相关阅读:
    linux weblogic的sh文件
    linux 安装weblogic(转载)
    linux 安装jdk
    linux 用户和用户组
    测试开发工程师必备软硬能力&高级测试开发工程师需要具备什么能力?
    postman强大的团队协作功能
    requests(一): 发送一个json格式的post请求
    python操作Excel模块openpyxl
    appium环境安装app自动化
    夜神模拟器怎么连接adb
  • 原文地址:https://www.cnblogs.com/cw828/p/11684476.html
Copyright © 2011-2022 走看看