https://www.cnblogs.com/kevingrace/p/9365840.html
Â
ç³»ç»å¼åä¸ï¼æ°æ®åºæ¯é常éè¦çä¸ä¸ªç¹ãé¤äºç¨åºçæ¬èº«çä¼åï¼å¦ï¼SQLè¯å¥ä¼åã代ç ä¼åï¼æ°æ®åºçå¤çæ¬èº«ä¼åä¹æ¯é常éè¦çã主ä»ãçå¤ãå表ååºçé½æ¯ç³»ç»åå±è¿æ©ä¼éå°çææ¯é®é¢é®é¢ãMycatæ¯ä¸ä¸ªå¹¿å好è¯çæ°æ®åºä¸é´ä»¶ï¼å·²ç»å¨å¾å¤äº§åä¸è¿è¡ä½¿ç¨äºãä¸é¢å°±é对Mycatçåºç¡ç¥è¯ååºç¨åä¸æ»ç»æ§æ¢³çï¼è¿äºå 容æçæ¯ä»ç½ä¸æ¶éçï¼æçæ¯èªå·±åçæµè¯éªè¯ä¿¡æ¯ï¼å¦æé误ï¼ç¦è¯·è° 解åæåºï¼
ä¸ãMyCatç®åä»ç»
MyCatæ¯ä¸ä¸ªå¼æºçåå¸å¼æ°æ®åºç³»ç»ï¼æ¯ä¸ä¸ªå®ç°äºMySQLåè®®çæå¡å¨ï¼å端ç¨æ·å¯ä»¥æå®çä½æ¯ä¸ä¸ªæ°æ®åºä»£çï¼ç±»ä¼¼äºMysql Proxyï¼ï¼ç¨MySQL客æ·ç«¯å·¥å ·åå½ä»¤è¡è®¿é®ï¼èå ¶å端å¯ä»¥ç¨MySQLåçåè®®ä¸å¤ä¸ªMySQLæå¡å¨éä¿¡ï¼ä¹å¯ä»¥ç¨JDBCåè®®ä¸å¤§å¤æ°ä¸»æµæ°æ®åºæå¡å¨éä¿¡ï¼å ¶æ ¸å¿åè½æ¯å表ååºï¼å³å°ä¸ä¸ªå¤§è¡¨æ°´å¹³åå²ä¸ºN个å°è¡¨ï¼åå¨å¨å端MySQLæå¡å¨éæè å ¶ä»æ°æ®åºéã
MyCatåå±å°ç®åççæ¬ï¼å·²ç»ä¸æ¯ä¸ä¸ªå纯çMySQL代çäºï¼å®çå端å¯ä»¥æ¯æMySQLãSQL ServerãOracleãDB2ãPostgreSQLç主æµæ°æ®åºï¼ä¹æ¯æMongoDBè¿ç§æ°åNoSQLæ¹å¼çåå¨ï¼æªæ¥è¿ä¼æ¯ææ´å¤ç±»åçåå¨ãèå¨æç»ç¨æ·çæ¥ï¼æ 论æ¯é£ç§åå¨æ¹å¼ï¼å¨MyCatéï¼é½æ¯ä¸ä¸ªä¼ ç»çæ°æ®åºè¡¨ï¼æ¯ææ åçSQLè¯å¥è¿è¡æ°æ®çæä½ï¼è¿æ ·ä¸æ¥ï¼å¯¹å端ä¸å¡ç³»ç»æ¥è¯´ï¼å¯ä»¥å¤§å¹ éä½å¼åé¾åº¦ï¼æåå¼åé度ã
Mycatå¯ä»¥ç®åæ¦æ¬ä¸º
- ä¸ä¸ªå½»åºå¼æºçï¼é¢åä¼ä¸åºç¨å¼åç大æ°æ®åºé群
- æ¯æäºå¡ãACIDãå¯ä»¥æ¿ä»£MySQLçå 强çæ°æ®åº
- ä¸ä¸ªå¯ä»¥è§ä¸ºMySQLé群çä¼ä¸çº§æ°æ®åºï¼ç¨æ¥æ¿ä»£æè´µçOracleé群
- ä¸ä¸ªèåå åç¼åææ¯ãNoSQLææ¯ãHDFS大æ°æ®çæ°åSQL Server
- ç»åä¼ ç»æ°æ®åºåæ°ååå¸å¼æ°æ®ä»åºçæ°ä¸ä»£ä¼ä¸çº§æ°æ®åºäº§å
- ä¸ä¸ªæ°é¢çæ°æ®åºä¸é´ä»¶äº§å
Mycatå ³é®ç¹æ§
- æ¯æSQL92æ å
- éµå®Mysqlåçåè®®ï¼è·¨è¯è¨ï¼è·¨å¹³å°ï¼è·¨æ°æ®åºçéç¨ä¸é´ä»¶ä»£ç
-  åºäºå¿è·³çèªå¨æ éåæ¢ï¼æ¯æ读åå离ï¼æ¯æMySQL主ä»ï¼ä»¥ågalera clusteré群
- æ¯æGalera for MySQLé群ï¼Percona Clusteræè MariaDB cluster
- åºäºNioå®ç°ï¼ææ管ç线ç¨ï¼é«å¹¶åé®é¢
- æ¯ææ°æ®çå¤çèªå¨è·¯ç±ä¸èåï¼æ¯æsum,count,maxç常ç¨çèåå½æ°,æ¯æè·¨åºå页
- æ¯æååºå é¨ä»»æjoinï¼æ¯æè·¨åº2表joinï¼çè³åºäºcaltletçå¤è¡¨join
- æ¯æéè¿å ¨å±è¡¨ï¼ERå ³ç³»çåççç¥ï¼å®ç°äºé«æçå¤è¡¨joinæ¥è¯¢
- æ¯æå¤ç§æ·æ¹æ¡
- æ¯æåå¸å¼äºå¡ï¼å¼±xaï¼
- æ¯æå ¨å±åºåå·ï¼è§£å³åå¸å¼ä¸ç主é®çæé®é¢
- åçè§å丰å¯ï¼æ件åå¼åï¼æäºæ©å±
- 强大çwebï¼å½ä»¤è¡çæ§
- æ¯æå端ä½ä¸ºmysqéç¨ä»£çï¼å端JDBCæ¹å¼æ¯æOracleãDB2ãSQL Server ã mongodb ãå·¨æ
- æ¯æå¯ç å å¯
- æ¯ææå¡é级
- æ¯æIPç½åå
- æ¯æSQLé»ååãsqlæ³¨å ¥æ»å»æ¦æª
- æ¯æå表ï¼1.6ï¼
- é群åºäºZooKeeper管çï¼å¨çº¿å级ï¼æ©å®¹ï¼æºè½ä¼åï¼å¤§æ°æ®å¤çï¼2.0å¼åçï¼
äºã为ä»ä¹è¦ç¨MyCat
è¿éè¦å ææ¸ æ¥MycatåMySQLçåºå«ï¼Mycatçæ ¸å¿ä½ç¨ï¼ãæ们å¯ä»¥æä¸å±çä½æ¯å¯¹ä¸å±çæ½è±¡ï¼ä¾å¦æä½ç³»ç»æ¯å¯¹å类计ç®æºç¡¬ä»¶çæ½è±¡ãé£ä¹æ们ä»ä¹æ¶åéè¦æ½è±¡ï¼åå¦åªæä¸ç§ç¡¬ä»¶çæ¶åï¼æ们éè¦å¼åä¸ä¸ªæä½ç³»ç»åï¼åæ¯å¦ä¸ä¸ªé¡¹ç®åªéè¦ä¸ä¸ªäººå®æçæ¶åä¸éè¦leaderï¼ä½æ¯å½éè¦å å人å®ææ¶ï¼å°±åºè¯¥æä¸ä¸ªç®¡çè ï¼åæ¥æ²éåè°çä½ç¨ï¼èè¿ä¸ªç®¡çè 对äºä»çä¸å±æ¥è¯´å°±æ¯å¯¹é¡¹ç®ç»çæ½è±¡ã
åæ ·çï¼å½æ们çåºç¨åªéè¦ä¸å°æ°æ®åºæå¡å¨çæ¶åæ们并ä¸éè¦Mycatï¼èå¦æä½ éè¦ååºçè³å表ï¼è¿æ¶ååºç¨è¦é¢å¯¹å¾å¤ä¸ªæ°æ®åºçæ¶åï¼è¿ä¸ªæ¶åå°±éè¦å¯¹æ°æ®åºå±åä¸ä¸ªæ½è±¡ï¼æ¥ç®¡çè¿äºæ°æ®åºï¼èæä¸é¢çåºç¨åªéè¦é¢å¯¹ä¸ä¸ªæ°æ®åºå±çæ½è±¡æè 说æ°æ®åºä¸é´ä»¶å°±å¥½äºï¼è¿å°±æ¯Mycatçæ ¸å¿ä½ç¨ãæ以å¯ä»¥è¿æ ·ç解ï¼æ°æ®åºæ¯å¯¹åºå±åå¨æ件çæ½è±¡ï¼èMycatæ¯å¯¹æ°æ®åºçæ½è±¡ã
ä¸ãMycatå·¥ä½åç
Mycatçåç并ä¸å¤æï¼å¤æçæ¯ä»£ç ãMycatçåçä¸æéè¦çä¸ä¸ªå¨è¯æ¯âæ¦æªâï¼å®æ¦æªäºç¨æ·åéè¿æ¥çSQLè¯å¥ï¼é¦å 对SQLè¯å¥åäºä¸äºç¹å®çåæï¼å¦å
çåæãè·¯ç±åæã读åå离åæãç¼ååæçï¼ç¶åå°æ¤SQLåå¾å端ççå®æ°æ®åºï¼å¹¶å°è¿åçç»æåéå½çå¤çï¼æç»åè¿åç»ç¨æ·ã
ä¸è¿°å¾çéï¼Orders表被å为ä¸ä¸ªåçdatanodeï¼ç®ç§°dn)ï¼è¿ä¸ä¸ªåçæ¯åå¸å¨ä¸¤å°MySQL Serverä¸(DataHost)ï¼å³[email protected]æ¹å¼ï¼å æ¤ä½ å¯ä»¥ç¨ä¸å°å°Nå°æå¡å¨æ¥åçï¼åçè§å为ï¼sharding rule)å ¸åçå符串æ举åçè§åï¼ä¸ä¸ªè§åçå®ä¹æ¯åçå段ï¼sharding column)+åçå½æ°(rule function)ï¼è¿éçåçå段为provèåçå½æ°ä¸ºå符串æ举æ¹å¼ã
å½Mycatæ¶å°ä¸ä¸ªSQLæ¶ï¼ä¼å 解æè¿ä¸ªSQLï¼æ¥æ¾æ¶åå°ç表ï¼ç¶åçæ¤è¡¨çå®ä¹ï¼å¦ææåçè§åï¼åè·åå°SQLéåçå段çå¼ï¼å¹¶å¹é åçå½æ°ï¼å¾å°è¯¥SQL对åºçåçå表ï¼ç¶åå°SQLåå¾è¿äºåçå»æ§è¡ï¼æåæ¶éåå¤çææåçè¿åçç»ææ°æ®ï¼å¹¶è¾åºå°å®¢æ·ç«¯ã以select * from Orders where prov=?è¯å¥ä¸ºä¾ï¼æ¥å°prov=wuhanï¼æç §åçå½æ°ï¼wuhanè¿ådn1ï¼äºæ¯SQLå°±åç»äºMySQL1ï¼å»åDB1ä¸çæ¥è¯¢ç»æï¼å¹¶è¿åç»ç¨æ·ã
å¦æä¸è¿°SQLæ¹ä¸ºselect * from Orders where prov in (âwuhanâ,âbeijingâ)ï¼é£ä¹ï¼SQLå°±ä¼åç»MySQL1ä¸MySQL2å»æ§è¡ï¼ç¶åç»æéå并åè¾åºç»ç¨æ·ãä½é常ä¸å¡ä¸æ们çSQLä¼æOrder By 以åLimit翻页è¯æ³ï¼æ¤æ¶å°±æ¶åå°ç»æéå¨Mycat端çäºæ¬¡å¤çï¼è¿é¨åç代ç ä¹æ¯è¾å¤æï¼èæå¤æçåå±ä¸¤ä¸ªè¡¨çJioné®é¢ï¼ä¸ºæ¤ï¼Mycatæåºäºåæ°æ§çERåçãå ¨å±è¡¨ãHBTï¼Human Brain Tech)人工æºè½çCatletã以åç»åStorm/Sparkå¼æçåå «è¬æ¦èºç解å³åæ³ï¼ä»èæ为ç®åä¸çæ强大çæ¹æ¡ï¼è¿å°±æ¯å¼æºçåéï¼
åãMycatåºç¨åºæ¯
Mycatåå±å°ç°å¨ï¼éç¨çåºæ¯å·²ç»å¾ä¸°å¯ï¼èä¸ä¸æææ°ç¨æ·ç»åºæ°çåæ°æ§çæ¹æ¡ï¼ä»¥ä¸æ¯å ä¸ªå ¸åçåºç¨åºæ¯ï¼
-  å纯ç读åå离ï¼æ¤æ¶é ç½®æ为ç®åï¼æ¯æ读åå离ï¼ä¸»ä»åæ¢ï¼
-  å表ååºï¼å¯¹äºè¶ è¿1000ä¸ç表è¿è¡åçï¼æ大æ¯æ1000亿çå表åçï¼
-  å¤ç§æ·åºç¨ï¼æ¯ä¸ªåºç¨ä¸ä¸ªåºï¼ä½åºç¨ç¨åºåªè¿æ¥Mycatï¼ä»èä¸æ¹é ç¨åºæ¬èº«ï¼å®ç°å¤ç§æ·åï¼
-  æ¥è¡¨ç³»ç»ï¼åå©äºMycatçå表è½åï¼å¤ç大è§æ¨¡æ¥è¡¨çç»è®¡ï¼
-  æ¿ä»£Hbaseï¼åæ大æ°æ®ï¼
-  ä½ä¸ºæµ·éæ°æ®å®æ¶æ¥è¯¢çä¸ç§ç®åæææ¹æ¡ï¼æ¯å¦100亿æ¡é¢ç¹æ¥è¯¢çè®°å½éè¦å¨3ç§å æ¥è¯¢åºæ¥ç»æï¼é¤äºåºäºä¸»é®çæ¥è¯¢ï¼è¿å¯è½åå¨èå´æ¥è¯¢æå ¶ä»å±æ§æ¥è¯¢ï¼æ¤æ¶Mycatå¯è½æ¯æç®åææçéæ©ï¼
-  Mycaté¿æ路线å¾ï¼
-  强ååå¸å¼æ°æ®åºä¸é´ä»¶çæ¹é¢çåè½ï¼ä½¿ä¹å ·å¤ä¸°å¯çæ件ã强大çæ°æ®åºæºè½ä¼ååè½ãå ¨é¢çç³»ç»çæ§è½åã以åæ¹ä¾¿çæ°æ®è¿ç»´å·¥å ·ï¼å®ç°å¨çº¿æ°æ®æ©å®¹ãè¿ç§»çé«çº§åè½ï¼
-  è¿ä¸æ¥æºè¿å¤§æ°æ®è®¡ç®é¢åï¼æ·±åº¦ç»åSpark StreamåStormçåå¸å¼å®æ¶æµå¼æï¼è½å¤å®æå¿«éçå·¨è¡¨å ³èãæåºãåç»èåç OLAPæ¹åçè½åï¼å¹¶éæä¸äºçé¨å¸¸ç¨çå®æ¶åæç®æ³ï¼è®©å·¥ç¨å¸ä»¥åDBA们æ´å®¹æç¨Mycatå®ç°ä¸äºé«çº§æ°æ®åæå¤çåè½ã
-  ä¸æ强åMycatå¼æºç¤¾åºçææ¯æ°´å¹³ï¼å¸å¼æ´å¤çITææ¯ä¸å®¶ï¼ä½¿å¾Mycat社åºæ为ä¸å½çApacheï¼å¹¶å°Mycatæ¨å°Apache
åºéä¼ï¼æ为å½å 顶å°å¼æºé¡¹ç®ï¼æç»è½å¤è®©ä¸é¨åå¿æ¿è æ为ä¸èçMycatå¼åè ï¼è£èè·å®åä¸èµ·æåã
äºãMycatä¸éåçåºç¨åºæ¯
- 设计使ç¨Mycatæ¶æéåçå段æ¥è¯¢ï¼è¯·æ é使ç¨Mycatï¼å¯ä»¥èèæ¾å¼ï¼
- 设计使ç¨Mycatæ¶æå页æåºï¼è¯·æ é使ç¨Mycatï¼å¯ä»¥èèæ¾å¼ï¼
- 设计使ç¨Mycatæ¶å¦æè¦è¿è¡è¡¨JOINæä½ï¼è¦ç¡®ä¿ä¸¤ä¸ªè¡¨çå ³èåæ®µå ·æç¸åçæ°æ®åå¸ï¼å¦å请æ é使ç¨Mycatï¼å¯ä»¥èèæ¾å¼ï¼
- 设计使ç¨Mycatæ¶å¦ææåå¸å¼äºå¡ï¼å¾å çæ¯å¦å¾ä¿è¯äºå¡å¾å¼ºä¸è´æ§ï¼å¦å请æ é使ç¨Mycatï¼å¯ä»¥èèæ¾å¼ï¼
éè¦æ³¨æ:  å¨ç产ç¯å¢ä¸, Mycatèç¹æ好使ç¨åèç¹, å³åæºçå¤ç¯å¢, é²æ¢Mycatè¿ä¸å±åºç°åç¹æ é. å¯ä»¥ä½¿ç¨çé«å¯ç¨é群æ¹å¼æ:  Keepalived+Mycat+Mysql, Keepalived+LVS+Mycat+Mysql, Keepalived+Haproxy+Mycat+Mysql
å ãå©ç¨MyCATå®ç°MySQLç读åå离ã主ä»åæ¢ãååºå表çæä½è®°å½
Mycatå®ç°Mysql主ä»å¤å¶ï¼å ¶ä¸åæä½å¨master主èç¹ä¸æ§è¡ï¼å æ¬insertï¼deleteï¼update è¯å¥æä½ï¼è¯»æä½å¨slaveèç¹ä¸æ§è¡ï¼åªæselectè¯å¥æä½ï¼å ¶ä»æä½åç±ä¸»masterçäºè¿å¶æ件å³å®ï¼MyCatæ¯æå主å¤ä»ï¼å¤ä¸»å¤ä»æ åµéè¦é ç½®å¤ä¸ªwriteHostå å¼èç¹ï¼å¤ä¸ªreadHostèç¹å³å¯ï¼
Mycatçæ¶æå ¶å®å¾å¥½ç解ï¼Mycatæ¯æ°æ®åºä»£çä¸é´ä»¶ï¼Mycatåé¢å°±æ¯ç©çæ°æ®åºãåWebæå¡å¨çNginx类似ã对äºä½¿ç¨è æ¥è¯´ï¼è®¿é®çé½æ¯Mycatï¼ä¸ä¼æ¥è§¦å°å端çæ°æ®åºãå¦ä¸æ¡ä¾æ¯åä¸ä¸ªä¸»ä»ã读åå离ï¼ç®åååºå表ç示ä¾ãç»æå¦ä¸å¾ï¼
æå¡å¨ä¿¡æ¯å¦ä¸ï¼å®éªç¯å¢ï¼å ³éæºå¨çiptablesé²ç«å¢åselinuxï¼ï¼
1 2 3 4 5 6 7 8 9 10 11 12 | Â Â |
Mycatä½ä¸ºä¸»æ°æ®åºä¸é´ä»¶ï¼è¯å®æ¯ä¸ä»£ç å¼±å ³èçï¼æ以代ç æ¯ä¸ç¨ä¿®æ¹çï¼ä½¿ç¨Mycatåï¼è¿æ¥æ°æ®åºæ¯ä¸åçï¼é»è®¤ç«¯å£æ¯8066ãè¿æ¥æ¹å¼åæ®éæ°æ®åºä¸æ ·ï¼æ¯å¦ï¼jdbc:mysql://192.168.10.210:8066/
1ï¼Mysqlå®è£ å主ä»å¤å¶é¨ç½²ï¼Mysql-node1åMysql-node2两å°æºå¨ä¸æä½ï¼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 | Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â |
2ï¼Mycatä¸é´ä»¶å®è£ ãé ç½®åæµè¯ï¼Mycat-nodeèç¹æºå¨ä¸æä½ï¼
2.1ï¼Mycatå®è£
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | Â Â Â Â Â |
2.2ï¼Mycatç¸å ³é ç½®
server.xmlæä»¶å ¶å®è·è¯»åå离çç¥å ³ç³»ä¸å¤§ï¼ä½æ¯éè¦ç¨æ¤æ件æ¥é ç½®è¿æ¥MyCatçç¨æ·åæéçï¼å æ¤å¨è¿éç®å说æã
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | Â Â Â Â Â Â Â |
schema.xmlæ¯æ主è¦çé 置项ï¼æ¤æä»¶å ³èmysql读åå离çç¥ï¼è¯»åå离ãååºå表çç¥ãåçèç¹é½æ¯å¨æ¤æ件ä¸é ç½®çï¼
MyCatä½ä¸ºä¸é´ä»¶ï¼å®åªæ¯ä¸ä¸ªä»£çï¼æ¬èº«å¹¶ä¸è¿è¡æ°æ®åå¨ï¼éè¦è¿æ¥å端çMySQLç©çæå¡å¨ï¼æ¤æ件就æ¯ç¨æ¥è¿æ¥MySQLæå¡å¨çï¼
schemaxmlæ件ä¸é ç½®çåæ°è§£é
1 2 3 4 | |
é 置说æ
1 2 3 4 | |
æ¯ä¸ªèç¹çå±æ§éä¸è¯´æ
1 2 3 4 5 | Â |
table
1 2 3 4 5 6 | |
dataNode
1 2 3 4 | |
dataHost
1 2 3 4 5 6 | |
schema.xmlæ件ä¸æä¸ç¹éè¦æ³¨æï¼balance="1"ï¼writeType="0" ,switchType="1"Â
schema.xmlä¸çbalanceçåå¼å³å®äºè´è½½å衡对éäºå¡å ç读æä½çå¤çãbalance å±æ§è´è½½åè¡¡ç±»åï¼ç®åçåå¼æ 4 ç§ï¼
1 2 3 4 5 6 7 8 9 10 | Â Â Â Â Â |
writeType å±æ§ï¼è´è½½åè¡¡ç±»åï¼ç®åçåå¼æ 3 ç§
1 2 3 | Â Â Â Â Â Â Â Â Â |
对äºäºå¡å çSQLé»è®¤èµ°åèç¹
1 2 3 4 5 | Â |
主ä»åæ¢ï¼å主failoverï¼ï¼switchType å±æ§
1 2 3 4 5 6 7 8 | Â Â Â Â Â Â Â Â Â |
dbTypeå±æ§
1 | |
dbDriverå±æ§æå®è¿æ¥å端æ°æ®åºä½¿ç¨ç
1 2 3 4 5 6 7 | Â Â |
heartbeatæ ç¾
1 2 3 4 5 6 | Â Â Â Â Â |
writeHostæ ç¾ãreadHostæ ç¾
1 2 3 4 5 6 | Â Â |
åºç¨åºæ¯1--->Mycat读åå离ï¼è´è½½åè¡¡ï¼ã主ä»èªå¨åæ¢
ç®åæ大éMycatçç产å®è·µæ¡ä¾æ¯å±äºç®åç读åå离类åçï¼æ¤æ¡ä¾ä¸»è¦ç¨å°Mycatç以ä¸ç¹æ§ï¼
- 读åå离æ¯æ
- é«å¯ç¨
大å¤æ°è¯»åå离çæ¡ä¾æ¯åæ¶æ¯æé«å¯ç¨æ§çï¼å³Mycat+MySQL主ä»å¤å¶çé群ï¼å¹¶å¼å¯Mycatç读åå离åè½ï¼è¿ç§åºæ¯éæ±ä¸ï¼Mycatæ¯æ为ç®å并ä¸åè½æ为
丰å¯çä¸ç±»Proxyï¼æ£å¸¸æ åµä¸ï¼é ç½®æ件ä¹æ为ç®åï¼ä¸ç¨æ¯ä¸ªè¡¨é ç½®ï¼åªéè¦å¨schema.xmlä¸çå ç´ ä¸å¢å dataNode=âdefaultDNâå±æ§ï¼å¹¶é ç½®æ¤dataNode
对åºççå®ç©çæ°æ®åºçdatabaseï¼ç¶ådataHostå¼å¯è¯»åå离åè½å³å¯ã
ä¿®æ¹mycatçschema.xmlï¼
balance为1ï¼è®©å ¨é¨çreadHoståå¤ç¨çwriteHoståä¸selectçè´è½½åè¡¡ãÂ
switchType为2ï¼åºäºMySQL主ä»åæ¥çç¶æå³å®æ¯å¦åæ¢ãÂ
heartbeatï¼ä¸»ä»åæ¢çå¿è·³è¯å¥å¿ 须为show slave statusã
ä» ä» è¿è¡è¯»åå离çschema.xmlé ç½®ï¼å¤ä»½åæ¥çschema.xmlæ件ï¼æ¸ 空ï¼ç´æ¥å¤å¶ä¸é¢å 容ï¼ï¼ä¸æ³è¦èªå¨åæ¢åè½ï¼å³MySQLåèç¹å®æºåä¸èªå¨åæ¢å°å¤ç¨èç¹ï¼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â |
å®ç°ä¸»ä»èªå¨åæ¢çschema.xmlé ç½®ï¼å³MySQLåèç¹å®æºåèªå¨åæ¢å°å¤ç¨èç¹ï¼ä¹å°±æ¯æä»æºä¹é ç½®æwriteHostsï¼ï¼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |                         <!-#########################--> <!--è¿éæä¸ä¸ªå  å 为åé¢çæ¶åé 置第ä¸ä¸ªwritehostæé误 ææåé¢æµè¯æå ¥çæ¶ååå ¥çæ¯slaveæå¡å¨ è 尽管è§å¯æ¥å¿ æ第ä¸ä¸ªwritehostæ¹æ£ç¡®ä»¥åï¼è¿æ¯é»è®¤çåå ¥å°äºslaveæå¡å¨ 解å³åæ³æ¯æé ç½®ç第äºä¸ªwritehostå 注éææè å é¤ å°±ä¼åå ¥å°ç¬¬ä¸ä¸ªmasteræå¡å¨æ°æ®åºÂ -->      |
ä¸é¢é ç½®ä¸ï¼balanceæ¹ä¸º1ï¼è¡¨ç¤ºè¯»åå离ã
以ä¸é 置达å°çææå°±æ¯192.168.10.205为主åºï¼192.168.10.206为ä»åºã
注æï¼è¦ä¿è¯192.168.10.205å192.168.10.206æºå¨è½ä½¿ç¨root/123456æéæåç»å½mysqlæ°æ®åºãåæ¶ï¼ä¹ä¸å®è¦ææmycatæºå¨è½ä½¿ç¨root/123456æéæåç»å½è¿ä¸¤å°æºå¨çmysqlæ°æ®åºï¼ï¼è¿å¾éè¦ï¼å¦åä¼å¯¼è´ç»å½mycatåï¼å¯¹åºå表æä½å¤±è´¥ï¼
ä¸ä¸»ä¸ä»ç»ææ¯æç®åçé ç½®ãÂ
MyCatæ¯æå主å¤ä»ï¼å¦ææN个主ï¼é£ä¹å°±é ç½®N个writeHostå å¼èç¹ï¼å¦ææM个ä»èç¹ï¼é£ä¹å°±é ç½®M个readHostèç¹å³å¯ãÂ
ä¹å¯ä»¥æå¤å°MySQLæå¡å¨ï¼æè SQL ServerãOracleçï¼é ç½®å¤ä¸ªdataHostèç¹å°±å¯ä»¥ã
éè¦æ³¨æçæ¯ï¼
Mycat主ä»å离åªæ¯å¨è¯»çæ¶ååäºå¤çï¼åå ¥æ°æ®çæ¶åï¼åªä¼åå ¥å°writehostï¼éè¦éè¿mycatç主ä»å¤å¶å°æ°æ®å¤å¶å°readhostï¼è¿ä¸ªé®é¢éè¦å¼æç½ï¼ï¼
å¦æ没ææååmysql主ä»å¤å¶ï¼ä¼åç°Mycat读åå离é ç½®åï¼æ°æ®åå ¥writehoståï¼readhostä¸ç´æ²¡ææ°æ®ï¼å 为Mycat就没æå®ç°ä¸»ä»å¤å¶çåè½ï¼æ¯ç«æ°æ®åºæ¬èº«èªå¸¦çè¿ä¸ªåè½ææ¯æé«æ稳å®çã
ç¹å«æ³¨æï¼
1 2 3 4 5 6 7 8 9 10 11 | è¿æ ·é
ç½®æ¶æé®é¢çmycatä¸è½å¯å¨ æ¥é æ¾ä¸å°ååºçdatanodeèç¹Â                           |
Mycatæå¡å¯å¨
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â |
å¨å®¢æ·æºè¿ç¨ç»å½Mycatç»å½mysqlï¼å°mycatå¯å¨èµ·æ¥åï¼è¿ç¨è¿æ¥ï¼é»è®¤ç«¯å£æ¯8066,é»è¾åºååè´¦å·å¯ç å°±æ¯å¨schema.xmléé ç½®çä¿¡æ¯ã代ç éç¨jdbcæ¹å¼è¿æ¥ï¼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â |
 Mycat读åå离æµè¯
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â |
 Mycat主ä»èªå¨åæ¢æµè¯ï¼éç¨ä¸é¢èªå¨åæ¢çschema.xmlé ç½®ï¼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â |
Mycatå表ååºçåç
mycatéé¢éè¿å®ä¹è·¯ç±è§åæ¥å®ç°åç表ï¼è·¯ç±è§åéé¢ä¼å®ä¹åçå段ï¼ä»¥ååçç®æ³ï¼ãåçç®æ³æå¤ç§ï¼ä½ æ说çhashæ¯å ¶ä¸ä¸ç§ï¼è¿æå模ãæèå´åçççãå¨mycatéé¢ï¼ä¼å¯¹ææä¼ éçsqlè¯å¥åè·¯ç±å¤çï¼è·¯ç±å¤ççä¾æ®å°±æ¯è¡¨æ¯å¦åçï¼å¦æåçï¼é£ä¹éè¦ä¾æ®åçå段å对åºçåçç®æ³æ¥å¤æsqlåºè¯¥ä¼ éå°åªä¸ä¸ªãæè åªå 个ãåæè å ¨é¨èç¹å»æ§è¡ï¼
Mycatéç¨äºåªäºåºæ¯ï¼
æ°æ®é大å°åæºholdä¸ä½ï¼èåä¸å¸æè°æ´æ¶æåæ¢ä¸ºNoSQLæ°æ®åºï¼è¿ä¸ªåºæ¯ä¸å¯ä»¥èèéç¨mycatãå½ç¶ï¼ä½¿ç¨åä¹åºè¯¥åè§åï¼åªäºè¡¨éè¦åçççãå¦å¤mycat对跨åºjoinçæ¯æä¸æ¯å¾å¥½ï¼å¨ä½¿ç¨mycatçæ¶åè¦æ³¨æè§é¿è¿ç§åºæ¯ã
åºç¨åºæ¯2--->MYcatååºå表é ç½®åæµè¯ï¼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 | Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â |
è¿ééè¦æ³¨æï¼
-  æ¥è¯¢è¯å¥ä¸è¦å äºå¡ï¼å¦å读æä½ä¼è¢«ååå°åæå¡å¨ä¸ã
-  主ä»å¤å¶æ¯mysqlèªå·±å®ç°çï¼mycatåªæ¯ä»£çæ件ï¼å®æ¬èº«ä¸è½å®ç°ä¸»ä»å¤å¶ï¼åªè½å®ç°äºè¯»åå离ã主ä»åæ¢ãååºå表åè½ã
为äºæåæ¥è¯¢çæ§è½ï¼æ人åæ°ç设计äºä¸ç§MySQL主ä»å¤å¶ç模å¼ï¼ä¸»èç¹ä¸ºInnoDBå¼æï¼è¯»èç¹ä¸ºMyISAMå¼æï¼ç»è¿å®è·µï¼åç°æ¥è¯¢æ§è½æåä¸å°ã
æ¤å¤ï¼ä¸ºäºåå°ä¸»ä»å¤å¶çæ¶å»¶ï¼ä¹å»ºè®®éç¨MySQL 5.6+ççæ¬ï¼ç¨GTIDåæ¥å¤å¶æ¹å¼åå°å¤å¶çæ¶å»¶ï¼å¯ä»¥å°ä¸ä¸ªDatabaseä¸ç表ï¼æ ¹æ®åé¢ççä¸åï¼
åå²æå 个Databaseï¼ç¨Mycatèæ为ä¸ä¸ªDatabaseï¼è¿æ ·å°±æ»¡è¶³äºå¤åºå¹¶åå¤å¶çä¼å¿ï¼éè¦æ³¨æçæ¯ï¼è¦å°æJoinå ³ç³»ç表æ¾å¨åä¸ä¸ªåºä¸ã
对äºæäºè¡¨ï¼è¦æ±ä¸è½æå¤å¶æ¶å»¶ï¼åå¯ä»¥èèè¿äºè¡¨æ¾å°Glusteré群éï¼æ¶é¤åæ¥å¤å¶çæ¶å»¶é®é¢ï¼åææ¯è¿äºè¡¨çä¿®æ¹æä½å¹¶ä¸å¾é¢ç¹ï¼éè¦åæ§è½æµè¯ï¼
以确ä¿è½æ»¡è¶³ä¸å¡é«å³°ã
æ»ç»ä¸ä¸ï¼Mycatå读åå离åé«å¯ç¨ï¼å¯è½çæ¹æ¡å¾çµæ´»ï¼åªæä½ æ²¡æ³å°çï¼æ²¡æåä¸å°çã
=================Mycat常è§é®é¢å注æç¹==================
1ï¼Mycatèªå¨åæ¢éè¦äººå·¥å¤çä¹ï¼
Mycatéè¿å¿è·³æ£æµï¼èªä¸»åæ¢æ°æ®åºï¼ä¿è¯é«å¯ç¨æ§ï¼æ é¡»æå¨åæ¢ã
2ï¼Mycatæ¯æé群ä¹ï¼
ç®åMycat没æå®ç°å¯¹å¤Mycaté群çæ¯æï¼å¯ä»¥ææ¶ä½¿ç¨haproxyæ¥åè´è½½ï¼æè ç»è®¡ç¡¬ä»¶è´è½½ã
3ï¼Mycatç®åæç产æ¡ä¾äºä¹ï¼
ç®åMycatåæ¥ç»è®¡å¤§æ¦600å®¶å ¬å¸ä½¿ç¨ã
4ï¼Mycat稳å®æ§ä¸Cobarå¦ä½ï¼
ç®åMycat稳å®æ§ä¼äºCobarï¼èä¸ä¸ç´å¨æ´æ°ï¼Cobarå·²ç»åæ¢ç»´æ¤ï¼å¯ä»¥æ¾å¿ä½¿ç¨ã
5ï¼Mycaté¤äºMysqlè¿æ¯æåªäºæ°æ®åºï¼
mongodbãoracleãsqlserver ãhive ãdb2 ã postgresqlã
6ï¼Mycatå¦ä½é ç½®å符é?
å¨é ç½®æ件server.xmlé ç½®,é»è®¤é 置为utf8ã
7ï¼Mycatåå°ç®¡ççæ§å¦ä½ä½¿ç¨ï¼
9066端å£å¯ä»¥ç¨JDBCæ¹å¼æ§è¡å½ä»¤ï¼å¨çé¢ä¸è¿è¡ç®¡çç»´æ¤ï¼ä¹å¯ä»¥éè¿å½ä»¤è¡æ¥çå½ä»¤è¡æä½ãÂ
å½ä»¤è¡æä½æ¯ï¼mysql -h127.0.0.1 -utest -ptest -P9066 ç»éï¼ç¶åæ§è¡ç¸åºå½ä»¤ã
8ï¼Mycat主é®æå ¥ååºç¨å¦ä½è·åï¼
è·å¾èªå¢ä¸»é®ï¼æå ¥è®°å½åæ§è¡select last_insert_id()è·åã
9ï¼Mycatè¿è¡sqlæ¶ç»å¸¸é»å¡æå¡æ»æ¯ä»ä¹åå ï¼
å¦æåºç°æ§è¡sqlè¯å¥é¿æ¶é´æªè¿åï¼æå¡æ»ï¼è¯·æ£æ¥æ¯å¦æ¯èæºä¸è¿è¡æcpu为åæ ¸ãå¦æä»æ§æ æ³è§£å³ï¼å¯ä»¥ææ¶è·³è¿ï¼ç®åæäºç¯å¢é»å¡å¡æ»åå æªç¥ã
10ï¼Mycatä¸ï¼æ§ç³»ç»æ°æ®å¦ä½è¿ç§»å°Mycatä¸ï¼
æ§æ°æ®è¿ç§»ç®åå¯ä»¥æå·¥å¯¼å ¥ï¼å¨mycatä¸æåé 置好åé è§ååå端åçæ°æ®åºï¼ç¶åéè¿dumpæloaddataæ¹å¼å¯¼å ¥ï¼åç»Mycatå°±åæ§æ°æ®èªå¨æ°æ®è¿ç§»å·¥å ·ã
11ï¼Mycatå¦ä½å¯¹æ§åçæ°æ®è¿ç§»ææ©å®¹ï¼æ¯æèªå¨æ©å®¹ä¹ï¼
ç®åé¤äºä¸è´æ§hashè§ååçå¤å ¶ä»æ°æ®è¿ç§»æ¯è¾å°é¾ï¼ç®åææ¶å¯ä»¥æå·¥è¿ç§»ï¼æªæä¾èªå¨è¿ç§»æ¹æ¡ï¼å ·ä½è¿ç§»æ¹æ¡æ åµMycatæå¨æå对åºç« èã
12ï¼Mycatæ¯ææ¹éæå ¥åï¼
ç®åMycat1.3.0.3以åæ¯æå¤valuesçæ¹éæå ¥ï¼å¦insert into(xxx) values(xxx),(xxx) ã
13ï¼Mycatæ¯æå¤è¡¨Joinåï¼
Mycatç®åæ¯æ2个表Joinï¼åç»ä¼æ¯æå¤è¡¨Joinï¼å ·ä½Join请çMycatæå¨æå对åºç« èã
14ï¼Mycat å¯å¨æ¥ä¸»æºä¸åå¨çé®é¢?
éè¦æ·»å ipè·ä¸»æºçæ å°ã
15ï¼Mycatè¿æ¥ä¼æ¥æ ææ°æ®æºï¼Invalid datasourceï¼ï¼
ä¾å¦æ¥éï¼mysql> select * from company;Â
ERROR 3009 (HY000): java.lang.IllegalArgumentException: Invalid DataSource:0Â
è¿ç±»é误æ常è§æ¯ä¸äºé ç½®é®é¢ä¾å¦schema.xmlä¸çdataNodeçé ç½®åå®é ä¸ç¬¦åï¼è¯·å ä»ç»æ£æ¥é 置项ï¼ç¡®ä¿é 置没æé®é¢ã
å¦æä¸æ¯é ç½®é®é¢ï¼åæå ·ä½æ¥å¿çåºéåå ï¼å¸¸è§çæï¼Â
- å¦ææ¯åºç¨è¿ï¼å¨æäºçæ¬çMysql驱å¨ä¸è¿æ¥Mycatä¼æ¥éï¼å¯å级ææ°ç驱å¨å è¯ä¸ãÂ
- å¦ææ¯æå¡ç«¯æ§å¶å°è¿ï¼ç¡®è®¤mysqlæ¯å¦å¼å¯è¿ç¨è¿æ¥æéï¼æé²ç«å¢æ¯å¦è®¾ç½®æ£ç¡®ï¼æè æ°æ®åºdatabaseæ¯å¦é ç½®ï¼æç¨æ·åå¯ç æ¯å¦æ£ç¡®ã
16ï¼Mycatæ¯æçæè ä¸æ¯æçè¯å¥æåªäºï¼
insert intoï¼å¤æåæ¥è¯¢ï¼3表åå ¶ä»¥ä¸è·¨åºjoinçä¸æ¯æã
17ï¼MycatJDBCè¿æ¥æ¥ PacketTooBigExceptionå¼å¸¸
æ£æ¥mysqljdbc驱å¨ççæ¬ï¼å¨ä½¿ç¨mycat1.3åmycat1.4çæ¬æ åµä¸ï¼ä¸è¦ä½¿ç¨jdbc5.1.37å38çæ¬ç驱å¨ï¼ä¼åºç°å¦ä¸å¼å¸¸æ¥éï¼
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (60 > -1). You can change this value on the server by setting the max_allowed_packetâ variableã
建议使ç¨jdbc5.1.35æè 36ççæ¬ã
18ï¼Mycatä¸æä¹±ç çé®é¢
çï¼å¦æå¨ä½¿ç¨mycatåºç°ä¸ææå ¥æè æ¥è¯¢åºç°ä¹±ç ï¼è¯·æ£æ¥ä¸ä¸ªç¯èçå符é设置ï¼
aï¼å®¢æ·ç«¯ç¯èï¼åºç¨ç¨åºãmysqlå½ä»¤æå¾å½¢ç»ç«¯å·¥å ·ï¼è¿æ¥mycatå符é
bï¼mycatè¿æ¥æ°æ®åºçå符é
cï¼æ°æ®åºï¼mysqlï¼oracleï¼å符éãè¿ä¸ä¸ªç¯èçå符éå¦æé ç½®ä¸è´ï¼åä¸ä¼åºç°ä¸æä¹±ç ï¼å ¶ä¸å°¤å ¶éè¦æ³¨æçæ¯å®¢æ·ç«¯è¿æ¥mycatæ¶ä½¿ç¨çè¿æ¥å符éï¼
é常çä¸æä¹±ç é®é¢ä¸è¬é½ç±æ¤å¤è®¾ç½®ä¸å½å¼åºãå ¶ä¸mycatå é¨é»è®¤ä½¿ç¨utf8å符éï¼å¨æåå¯å¨è¿æ¥æ°æ®åºæ¶ï¼mycatä¼é»è®¤ä½¿ç¨utf8å»è¿æ¥æ°æ®åºï¼å½å®¢æ·
端çæ£è¿æ¥mycat访é®æ°æ®åºæ¶ï¼mycatä¼ä½¿ç¨å®¢æ·ç«¯è¿æ¥ä½¿ç¨çå符éä¿®æ¹å®è¿æ¥æ°æ®åºçå符éï¼å¨mycatç¯å¢ç管ç9066端å£ï¼å¯ä»¥éè¿"show @@backend"å½ä»¤
æ¥çå端æ°æ®åºçè¿æ¥å符éï¼éè¿show @@connectionå½ä»¤æ¥çå端客æ·ç«¯çè¿æ¥å符éã客æ·ç«¯çè¿æ¥å¯ä»¥éè¿æå®å符éç¼ç æè åéSETå½ä»¤æå®è¿æ¥mycat
æ¶connection使ç¨çå符éï¼å¸¸è§å®¢æ·ç«¯è¿æ¥æå®å符éåæ³å¦ä¸ï¼Â
-Â Â jdbcUrl=jdbc:mysql://localhost:8066/databaseName? characterEncoding=iso_1Â
-  SET character_set_client = utf8;ç¨æ¥æå®è§£æ客æ·ç«¯ä¼ éæ°æ®çç¼ç Â
  SET character_set_results = utf8;ç¨æ¥æå®æ°æ®åºå é¨å¤çæ¶ä½¿ç¨çç¼ç Â
  SET character_set_connection = utf8;ç¨æ¥æå®æ°æ®è¿åç»å®¢æ·ç«¯çç¼ç æ¹å¼Â
-Â Â mysql âutest âptest âP8066 âdefault-character-set=gbk
19)Mycatæ æ³ç»éAccess denied
Mycatæ£å¸¸å®è£ é ç½®å®æï¼ç»émycatåºç°ä»¥ä¸é误ï¼Â
[[email protected] ~]$ mysql -utest -ptest -P8066Â
ERROR 1045 (28000): Access denied for user 'testâ@âlocalhostâ (using password: YES)Â
请æ£æ¥å¨schema.xmlä¸çç¸å ³dataHostçmysql主æºçç»éæéï¼ä¸è¬é½æ¯å 为é ç½®çmysqlçç¨æ·ç»éæéä¸ç¬¦åï¼mysqlç¨æ·æé管çä¸çæç请èªå·±åº¦å¨ã
åªæä¸ç§æ åµä¾å¤ï¼mycatåmysql主æºé½é¨ç½²å¨åä¸å°è®¾å¤ï¼å ¶ä¸ä¸»æºlocalhostçæéé ç½®æ£ç¡®ï¼ä½¿ç¨-hlocalhostè½æ£ç¡®ç»émysqlä½æ¯æ æ³ç»émycatçæ åµï¼
请使ç¨-h127.0.0.1ç»éï¼æè æ¬å°ç½ç»å®é å°åï¼ä¸è¦ä½¿ç¨-hlocalhostï¼å¾å¤ä½¿ç¨è åé¦æ¤é®é¢ï¼åå æªæã
20)Mycatçåçæ°æ®æå ¥æ¥å¼å¸¸IndexOutofBoundException
å¨ä¸äºé ç½®äºåççç¥ç表è¿è¡æ°æ®æå ¥æ¶æ¥éï¼å¸¸è§çæ¥éä¿¡æ¯å¦ä¸ï¼java.lang.IndexOutOfBoundsException:Index:4,size:3
è¿ç±»æ¥éé常ç±äºåççç¥é ç½®ä¸å¯¹å¼èµ·ï¼è¯·ä»ç»æ£æ¥å¹¶ç解åççç¥çé ç½®ï¼ä¾å¦ï¼ä½¿ç¨åºå®åçhashç®æ³ï¼PartitionByLongçç¥ï¼å¦æschema.xmléé¢è®¾ç½®
çåçæ°édataNodeårule.xmlé ç½®çpartitionCount åç个æ°ä¸ä¸è´ï¼å°¤å ¶æ¯åºç°åçæ°édataNodeå°äºpartitionCountæ°éçæ åµï¼æå ¥æ°æ®å°±å¯è½ä¼æ¥éã
å¾å¤ä½¿ç¨è é½æ²¡æä»ç»ç解ææ¡£ä¸å¯¹åççç¥ç说æï¼ç¨é»è®¤rule.xmlé ç½®çå¼ï¼æ²¡æåèªå·±å®é 使ç¨ç¯å¢è¿è¡åæ°æ ¸å®å°±è¿è¡åççç¥ä½¿ç¨é æè¿ç±»é®é¢å± å¤ã
21)Mycat ERåçå表æ°æ®æå ¥æ¥é
ä¸è¬é½æ¯æå ¥å表æ¶åºç°ä¸è½æ¾å°ç¶èç¹çæ¥éãæ¥éä¿¡æ¯å¦ï¼ [Err] 1064 - canât find (root) parent sharding node for sql:ã
æ¤ç±»ER表çæå ¥æä½ä¸è½å为ä¸ä¸ªäºå¡è¿è¡æ°æ®æ交ï¼å¦æç¶å表å¨ä¸ä¸ªäºå¡ä¸è¿è¡æ交ï¼æ¾ç¶å¨äºå¡æ²¡ææ交åå表æ¯æ æ³æ¥å°ç¶è¡¨çæ°æ®çï¼å æ¤å°±æ æ³ç¡®å®
sharding nodeãå¦ææ¯ERå ³ç³»ç表å¨æå ¥æ°æ®æ¶ä¸è½å¨åä¸ä¸ªäºå¡ä¸æ交æ°æ®ï¼åªè½åå¼æ交ã
22)Mycatæ大å åæ æ³è°æ´è³4G以ä¸
mycat1.4çJVM使ç¨æ大å åè°æ´å¦æè¶ è¿4G大å°ï¼ä¸è½ä½¿ç¨wrapper.java.maxmemoryåæ°ï¼éè¦ä½¿ç¨wrapper.java.additionalçåæ³ï¼æ³¨æå°
wrapper.java.maxmemoryåæ°æ³¨éï¼ä¾å¦å¢å æ大å åè³8Gï¼wrapper.java.additional.10=-Xmx8Gã
23)Mycat使ç¨è¿ç¨ä¸æ¥éæä¹å
è®°ä½æ 论ä»ä¹æ¶åéå°æ¥éï¼å¦æä¸è½ç¬¬ä¸æ¶é´ç解æ¥éçåå ï¼é¦å å°±å»çæ¥å¿ï¼æ 论æ¯å¯å¨ï¼wrapper.logï¼è¿æ¯è¿è¡è¿ç¨ä¸ï¼mycat.logï¼ï¼è¯·ç¸ä¿¡è¯å¥½ç
æ¥å¿æ¯ç¼ç¨æ¥éçç»æå¿ ææãæ¥å¿å¦æè®°å½ä¿¡æ¯ä¸å¤ï¼å¯ä»¥è°æ´conf/log4j.xmlä¸çlevel级å«è³debugï¼ææç详ç»ä¿¡æ¯åä¼è®°å½ãå¦å¤å¦æå¨ç¾¤éé¢æé®ï¼
å°½éå°ç¯å¢é 置信æ¯åæ¥éæ¥å¿æä¾æ¸ æ¥ï¼è¿æ ·å«äººæè½å¿«éå¸®ä½ å®ä½é®é¢ã
***************å½ä½ åç°èªå·±çæåæä¸èµ·éå¿æ¶ï¼å°±è¯·å®éä¸æ¥å¦ä¹ å§***************