日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL 高可用:mysql+mycat实现数据库分片(分库分表)

發(fā)布時(shí)間:2024/9/20 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL 高可用:mysql+mycat实现数据库分片(分库分表) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

什么是MYCAT:

一個(gè)徹底開源的,面向企業(yè)應(yīng)用開發(fā)的大數(shù)據(jù)庫集群

支持事務(wù)、ACID、可以替代MySQL的加強(qiáng)版數(shù)據(jù)庫

一個(gè)可以視為MySQL集群的企業(yè)級數(shù)據(jù)庫,用來替代昂貴的Oracle集群

一個(gè)融合內(nèi)存緩存技術(shù)、NoSQL技術(shù)、HDFS大數(shù)據(jù)的新型SQL Server

結(jié)合傳統(tǒng)數(shù)據(jù)庫和新型分布式數(shù)據(jù)倉庫的新一代企業(yè)級數(shù)據(jù)庫產(chǎn)品

一個(gè)新穎的數(shù)據(jù)庫中間件產(chǎn)品


?Mycat關(guān)鍵特性 :

支持SQL92標(biāo)準(zhǔn)

遵守Mysql原生協(xié)議,跨語言,跨平臺(tái),跨數(shù)據(jù)庫的通用中間件代理。

基于心跳的自動(dòng)故障切換,支持讀寫分離,支持MySQL主從,以及galera cluster集群。

支持Galera for MySQL集群,Percona Cluster或者M(jìn)ariaDB cluster

基于Nio實(shí)現(xiàn),有效管理線程,高并發(fā)問題。

支持?jǐn)?shù)據(jù)的多片自動(dòng)路由與聚合,支持sum,count,max等常用的聚合函數(shù),支持跨庫分頁。

支持單庫內(nèi)部任意join,支持跨庫2表join,甚至基于caltlet的多表join。

支持通過全局表,ER關(guān)系的分片策略,實(shí)現(xiàn)了高效的多表join查詢。

支持多租戶方案。

支持分布式事務(wù)(弱xa)。

支持全局序列號,解決分布式下的主鍵生成問題。

分片規(guī)則豐富,插件化開發(fā),易于擴(kuò)展。

強(qiáng)大的web,命令行監(jiān)控。

支持前端作為mysq通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。

支持密碼加密

支持服務(wù)降級

支持IP白名單

支持SQL黑名單、sql注入攻擊攔截

支持分表(1.6)

集群基于ZooKeeper管理,在線升級,擴(kuò)容,智能優(yōu)化,大數(shù)據(jù)處理(2.0開發(fā)版)。


(官方說明參考:Mycat 數(shù)據(jù)庫分庫分表中間件?)


JDK 下載(建議要求jdk7及以上):

http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html

Linux x86 147.68 MB?jdk-7u80-linux-i586.tar.gz


MyCAT 相關(guān):

Mycat 捐贈(zèng)地址:http://www.mycat.io/donate.html

Mycat 官斱網(wǎng)站:http://www.mycat.io/

Mycat 源碼:https://github.com/MyCATApache/Mycat-Server

Mycat 下載地址:https://github.com/MyCATApache/Mycat-download



既然 mycat ?那么強(qiáng)大,那就測試看看:


#測試環(huán)境:

# 有3張表 users,item,item_detail (item 的子表) 和 3 個(gè)數(shù)據(jù)庫 db01,db02,db03

# 表 users 存儲(chǔ)在數(shù)據(jù)庫 db01, 表 item 和 item_detail 分布存儲(chǔ)在數(shù)據(jù) db01 和 db02?

# 現(xiàn)在在3個(gè)數(shù)據(jù)庫都創(chuàng)建相同的表

[sql]?view plaincopy
  • create?database?db01;??
  • create?database?db02;??
  • create?database?db03;??
  • ??
  • CREATE?TABLE?users?(??
  • ????id?INT?NOT?NULL?AUTO_INCREMENT,??
  • ????name?varchar(50)?NOT?NULL?default?'',??
  • ????indate?DATETIME?NOT?NULL?default?'0000-00-00?00:00:00',??
  • ????PRIMARY?KEY?(id)??
  • )AUTO_INCREMENT=?1?ENGINE=InnoDB?DEFAULT?CHARSET=utf8;??
  • ??
  • CREATE?TABLE?item?(??
  • ????id?INT?NOT?NULL?AUTO_INCREMENT,??
  • ????value?INT?NOT?NULL?default?0,??
  • ????indate?DATETIME?NOT?NULL?default?'0000-00-00?00:00:00',??
  • ????PRIMARY?KEY?(id)??
  • )AUTO_INCREMENT=?1?ENGINE=InnoDB?DEFAULT?CHARSET=utf8;??
  • ??
  • CREATE?TABLE?item_detail?(??
  • ????id?INT?NOT?NULL?AUTO_INCREMENT,??
  • ????value?INT?NOT?NULL?default?0,??
  • ????name?varchar(50)?NOT?NULL?default?'',??
  • ????item_id?INT?NOT?NULL,??
  • ????PRIMARY?KEY?(id),??
  • ????key?(item_id)??
  • )AUTO_INCREMENT=?1?ENGINE=InnoDB?DEFAULT?CHARSET=utf8;??


  • # JDK 安裝配置

    [plain]?view plaincopy
  • cd?/usr/local/src??
  • tar?xvf?jdk-7u80-linux-i586.tar.gz??
  • mkdir?-p?/usr/local/java??
  • mv?/usr/local/src/jdk1.7.0_80?/usr/local/java/??
  • chown?-R?root:root?/usr/local/java??
  • cd?/usr/local/java/??

  • #配置環(huán)境變量

    [plain]?view plaincopy
  • vi?/etc/profile???
  • vi?~/.bash_profile??
  • ??
  • export?JAVA_HOME=/usr/local/java/jdk1.7.0_80??
  • export?PATH=$PATH:$JAVA_HOME/bin??
  • export?CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar??

  • #設(shè)置生效(最好重啟系統(tǒng))

    [plain]?view plaincopy
  • source?/etc/profile??
  • source?~/.bash_profile??

  • #測試是否安裝成功

    [plain]?view plaincopy
  • [root@server1?~]#?java?-version??
  • java?version?"1.7.0_80"??
  • Java(TM)?SE?Runtime?Environment?(build?1.7.0_80-b15)??
  • Java?HotSpot(TM)?Client?VM?(build?24.80-b11,?mixed?mode)??


  • # Mycat 安裝配置

    [plain]?view plaincopy
  • cd?/usr/local/src??
  • tar?xvf?Mycat-server-1.5.1-RELEASE-20160405120037-linux.tar.gz???
  • mv?/usr/local/src/mycat?/usr/local/??
  • ??
  • groupadd?mycat??
  • useradd?-g?mycat?mycat??
  • passwd?mycat??
  • chown?-R?mycat.mycat?/usr/local/mycat??

  • #添加環(huán)境變量

    [plain]?view plaincopy
  • vi?/etc/profile??
  • vi?~/.bash_profile??
  • ??
  • export?MYCAT_HOME=/usr/local/mycat??

  • #設(shè)置生效(最好重啟系統(tǒng))

    [plain]?view plaincopy
  • source?/etc/profile??
  • source?~/.bash_profile??

  • #服務(wù)器名和IP綁定

    [plain]?view plaincopy
  • vi?/etc/hosts??
  • 192.168.100.50??server1??
  • 127.0.0.1???????server1??

  • # 設(shè)置 wrapper.java.command 的java 路徑

    ?( 同時(shí)可設(shè)置?-Xmx 和?-Xms ,參考:?mycat 啟動(dòng)失敗 The specified size exceeds the maximum representable size)

    [plain]?view plaincopy
  • vi?/usr/local/mycat/conf/wrapper.conf??
  • ??
  • wrapper.java.command=%JAVA_HOME%/bin/java??

  • #配置 server.xml 和 schema.xml ?(本案例配置信息在文章底部)

    [plain]?view plaincopy
  • vi?/usr/local/mycat/conf/server.xml??
  • vi?/usr/local/mycat/conf/schema.xml??

  • #啟動(dòng)mycat服務(wù) ./mycat? { console | start | stop | restart | status | dump }

    [plain]?view plaincopy
  • /usr/local/mycat/bin/mycat?console??

  • [plain]?view plaincopy
  • #mycat?進(jìn)程??
  • ps?-ef?|?grep?mycat??
  • ??
  • #日子信息??
  • tail?-20?/usr/local/mycat/logs/wrapper.log??


  • 測試:

    #訪問 mycat ? (憑據(jù)參考 /usr/local/mycat/conf/server.xml)

    [plain]?view plaincopy
  • mysql?-utest?-ptest?-h127.0.0.1?-P8066?-DTESTDB??

  • [sql]?view plaincopy
  • mysql>?show?databases;??
  • +----------+??
  • |?DATABASE?|??
  • +----------+??
  • |?TESTDB???|???
  • +----------+??
  • ??
  • mysql>?show?tables;??
  • +------------------+??
  • |?Tables?in?TESTDB?|??
  • +------------------+??
  • |?item?????????????|???
  • |?item_detail??????|???
  • |?users????????????|???
  • +------------------+??

  • #在 mycat 中插入數(shù)據(jù)并查詢:

    [sql]?view plaincopy
  • insert?into?users(name,indate)?values('kk',now());??
  • insert?into?item(id,value,indate)?values(1,100,now());??
  • insert?into?item_detail(value,name,item_id)?values('pad',40,1);??
  • insert?into?item_detail(value,name,item_id)?values('phone',50,1);??
  • ??
  • insert?into?item(id,value,indate)?values(999,100,now());??
  • insert?into?item_detail(value,name,item_id)?values('pad',40,999);??
  • insert?into?item_detail(value,name,item_id)?values('phone',50,999);??
  • [sql]?view plaincopy
  • mysql>?select?*?from?users;??
  • +----+------+---------------------+??
  • |?id?|?name?|?indate??????????????|??
  • +----+------+---------------------+??
  • |??1?|?kk???|?2016-04-13?06:28:00?|???
  • +----+------+---------------------+??
  • ??
  • mysql>?select?*?from?item;??
  • +-----+-------+---------------------+??
  • |?id??|?value?|?indate??????????????|??
  • +-----+-------+---------------------+??
  • |?999?|???100?|?2016-04-13?06:34:12?|???
  • |???1?|???100?|?2016-04-13?06:32:58?|???
  • +-----+-------+---------------------+??
  • ??
  • mysql>?select?*?from?item_detail;??
  • +----+-------+------+---------+??
  • |?id?|?value?|?name?|?item_id?|??
  • +----+-------+------+---------+??
  • |??1?|?????0?|?40???|?????999?|???
  • |??2?|?????0?|?50???|?????999?|???
  • |??1?|?????0?|?40???|???????1?|???
  • |??2?|?????0?|?50???|???????1?|???
  • +----+-------+------+---------+??


  • #打開另一個(gè)終端,使用mysql賬號登陸訪問查看表情況

    [plain]?view plaincopy
  • mysql?-uroot?-ptest?-p??

  • #具體的表數(shù)據(jù)存儲(chǔ)情況:

    [sql]?view plaincopy
  • -----------------------------------------??
  • mysql>?select?*?from?db01.users;??
  • +----+------+---------------------+??
  • |?id?|?name?|?indate??????????????|??
  • +----+------+---------------------+??
  • |??1?|?kk???|?2016-04-13?06:28:00?|???
  • +----+------+---------------------+??
  • ??
  • mysql>?select?*?from?db02.users;??
  • ??
  • mysql>?select?*?from?db03.users;??
  • ??
  • -----------------------------------------??
  • ??
  • mysql>?select?*?from?db01.item;??
  • ??
  • mysql>?select?*?from?db02.item;??
  • +-----+-------+---------------------+??
  • |?id??|?value?|?indate??????????????|??
  • +-----+-------+---------------------+??
  • |?999?|???100?|?2016-04-13?06:34:12?|???
  • +-----+-------+---------------------+??
  • ??
  • mysql>?select?*?from?db03.item;??
  • +----+-------+---------------------+??
  • |?id?|?value?|?indate??????????????|??
  • +----+-------+---------------------+??
  • |??1?|???100?|?2016-04-13?06:32:58?|???
  • +----+-------+---------------------+??
  • ??
  • -----------------------------------------??
  • ??
  • mysql>?select?*?from?db01.item_detail;??
  • ??
  • mysql>?select?*?from?db02.item_detail;??
  • +----+-------+------+---------+??
  • |?id?|?value?|?name?|?item_id?|??
  • +----+-------+------+---------+??
  • |??1?|?????0?|?40???|?????999?|???
  • |??2?|?????0?|?50???|?????999?|???
  • +----+-------+------+---------+??
  • ??
  • mysql>?select?*?from?db03.item_detail;??
  • +----+-------+------+---------+??
  • |?id?|?value?|?name?|?item_id?|??
  • +----+-------+------+---------+??
  • |??1?|?????0?|?40???|???????1?|???
  • |??2?|?????0?|?50???|???????1?|???
  • +----+-------+------+---------+??

  • 測試完成!!~數(shù)據(jù)進(jìn)行了分庫分表!
    ------------------------------------------------------------------------------------

    ------------------------------------------------------------------------------------

    #?server.xml 和 schema.xml 配置情況

    [plain]?view plaincopy
  • #?vi?/usr/local/mycat/conf/server.xml??
  • ??
  • <?xml?version="1.0"?encoding="UTF-8"?>??
  • <!DOCTYPE?mycat:server?SYSTEM?"server.dtd">??
  • <mycat:server?xmlns:mycat="http://org.opencloudb/">??
  • ????????<system>??
  • ????????????<!--???
  • ????????????????<property?name="processors">32</property>??
  • ????????????????<property?name="processorExecutor">32</property>???
  • ????????????????<property?name="bindIp">0.0.0.0</property>???
  • ????????????????<property?name="frontWriteQueueSize">4096</property>??
  • ????????????????<property?name="idleTimeout">300000</property>??
  • ????????????????<property?name="mutiNodePatchSize">100</property>??
  • ????????????-->??
  • ????????????????<property?name="defaultSqlParser">druidparser</property>??
  • ????????????????<property?name="mutiNodeLimitType">1</property>??
  • ????????????????<property?name="serverPort">8066</property>??
  • ????????????????<property?name="managerPort">9066</property>???
  • ????????</system>??
  • ????????<!--?任意設(shè)置登陸?mycat?的用戶名,密碼,數(shù)據(jù)庫??-->??
  • ????????<user?name="test">??
  • ????????????????<property?name="password">test</property>??
  • ????????????????<property?name="schemas">TESTDB</property>??
  • ????????</user>??
  • ??
  • ????????<user?name="user">??
  • ????????????????<property?name="password">user</property>??
  • ????????????????<property?name="schemas">TESTDB</property>??
  • ????????????????<property?name="readOnly">true</property>??
  • ????????</user>??
  • ????????<!--???
  • ????????<quarantine>???
  • ???????????<whitehost>??
  • ??????????????<host?host="127.0.0.1"?user="mycat"/>??
  • ??????????????<host?host="127.0.0.2"?user="mycat"/>??
  • ???????????</whitehost>??
  • ???????<blacklist?check="false"></blacklist>??
  • ????????</quarantine>??
  • ????????-->??
  • </mycat:server>??

  • [plain]?view plaincopy
  • #?vi?/usr/local/mycat/conf/schema.xml??
  • ??
  • <?xml?version="1.0"?>??
  • <!DOCTYPE?mycat:schema?SYSTEM?"schema.dtd">??
  • <mycat:schema?xmlns:mycat="http://org.opencloudb/">??
  • ??
  • ????<!--?設(shè)置表的存儲(chǔ)方式.schema?name="TESTDB"?與?server.xml中的?TESTDB?設(shè)置一致??-->??
  • ????<schema?name="TESTDB"?checkSQLschema="false"?sqlMaxLimit="100">??
  • ????????<table?name="users"?primaryKey="id"?type="global"?dataNode="node_db01"?/>??
  • ??
  • ????????<table?name="item"?primaryKey="id"?dataNode="node_db02,node_db03"?rule="mod-long">??
  • ????????????????<childTable?name="item_detail"?primaryKey="id"?joinKey="item_id"?parentKey="id"?/>??
  • ????????</table>??
  • ????</schema>??
  • ??
  • ????<!--?設(shè)置dataNode?對應(yīng)的數(shù)據(jù)庫,及?mycat?連接的地址dataHost?-->??
  • ????<dataNode?name="node_db01"?dataHost="dataHost01"?database="db01"?/>??
  • ????<dataNode?name="node_db02"?dataHost="dataHost01"?database="db02"?/>??
  • ????<dataNode?name="node_db03"?dataHost="dataHost01"?database="db03"?/>??
  • ??
  • ????<!--?mycat?邏輯主機(jī)dataHost對應(yīng)的物理主機(jī).其中也設(shè)置對應(yīng)的mysql登陸信息?-->??
  • ????<dataHost?name="dataHost01"?maxCon="1000"?minCon="10"?balance="0"?writeType="0"?dbType="mysql"?dbDriver="native">??
  • ????????????<heartbeat>select?user()</heartbeat>??
  • ????????????<writeHost?host="server1"?url="127.0.0.1:3306"?user="root"?password="mysql"/>??
  • ????</dataHost>??
  • </mycat:schema>??


  • 其他參考:

    http://www.csdn.net/article/2015-07-16/2825228?(原理及應(yīng)用)

    http://www.songwie.com/articlelist/50(理論和實(shí)踐 寫的好)

    http://ly.blog.itpub.net/29733787/viewspace-2049139/(示例) ?MyCAT安裝使用及簡單測試?

    http://www.cnblogs.com/ivictor/p/5111495.html(示例) ?MyCAT簡易入門

    http://www.2cto.com/database/201503/385641.html(示例) Mycat水平分表,垂直分表實(shí)踐(2)

    http://www.51testing.com/html/34/369434-3686088.html(示例)使用Mycat 做簡單的讀寫分離(一)


    來源:http://blog.csdn.net/kk185800961/article/details/51147029

    總結(jié)

    以上是生活随笔為你收集整理的MySQL 高可用:mysql+mycat实现数据库分片(分库分表)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日本japanese丰满白浆 | 少妇无套内谢久久久久 | 国产黄色片在线观看 | 日韩欧美国产电影 | 在线亚洲综合 | 中国挤奶哺乳午夜片 | 成人a毛片| 97狠狠干| 欧美日韩美女 | 色玖玖| 美女福利视频导航 | 少妇荡乳情欲办公室456视频 | 中文字幕日韩一区二区三区 | 日本不卡一 | 在线一区二区三区四区五区 | 91丝袜| 超碰888| 婷婷一区二区三区 | 扶她futa粗大做到怀孕 | а中文在线天堂 | 欧美精品一区二区三区四区 | 黑森林福利视频导航 | 高潮无码精品色欲av午夜福利 | 欧美日韩国产在线一区 | 日韩成人在线影院 | 国产中文字幕视频 | 欧州一区二区三区 | 欧美熟妇乱码在线一区 | 爱吃波客今天最新视频 | 国内精品一区二区三区 | 91久久久久| 国产精品久久久久久免费观看 | 亚洲天堂2015 | 西西人体做爰大胆gogo直播 | 91午夜精品亚洲一区二区三区 | 国产一区二区精华 | 色在线影院 | 欧美精品videos极品 | 色乱码一区二区三区在线男奴 | 久久精品免费av | 亚洲a中文字幕 | 香蕉视频在线观看网站 | 色妇网| 日本xxx在线观看 | 色乱码一区二区三区熟女 | 91亚洲国产成人精品一区二区三 | 亚洲av色区一区二区三区 | 色香影视 | 亚洲精品成人电影 | 污污视频网站 | 亚洲免费精品视频在线观看 | 日韩欧美一区二区视频 | 殴美一级特黄aaaaaa | 激情午夜av| 人人看超碰 | 亚洲天堂aaa | 亚洲网站在线看 | 国产私拍视频 | 国产黄色片免费 | 夫妻自拍偷拍 | 男女免费网站 | 中文字幕专区 | 欧洲美一区二区三区亚洲 | 成人免费视频国产免费网站 | 亚洲成人精品久久久 | 99精品国产一区 | 欧美久久久精品 | 亚洲一本在线观看 | 免费吸乳羞羞网站视频 | 少妇饥渴难耐 | 日韩av不卡在线播放 | 激情网络 | 日韩在线观看精品 | 久久久久无码精品国产 | 久久99精品久久只有精品 | 波多野结衣视频一区二区 | 激情综合五月 | 日韩欧美aⅴ综合网站发布 国产成人一区二区三区小说 | 国产91精品久久久久久久网曝门 | 成人av国产| 第一色网站 | 亚洲在线一区二区 | 午夜少妇av| 日韩五码| 精品小视频 | 国产女主播喷水视频在线观看 | 亚洲精品视频一区二区 | 久久久久久久久久网 | 色在线看| 国产成年妇视频 | 亚洲婷婷丁香 | 国产成人精品免高潮在线观看 | 黄色综合网 | 国产精品久久久久久久免费看 | 天天在线免费视频 | 91肉色超薄丝袜脚交一区二区 | 久草福利资源在线 | 日批视频免费播放 | 涩涩五月天 |