Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
MyCatÊý¾Ý¿âµÄ»ù´¡ÅäÖü°Ê¹ÓÃ
 
×÷Õߣº ÉêÀù
  1538  次浏览      28
2020-2-4
 
±à¼­ÍƼö:
ÎÄÕ½éÉÜÁË·Ö²¼Ê½Êý¾Ý¿âµÄÌØµã£¬server.xmlÅäÖÃÎļþ£¬schema.xmlÅäÖÃÎļþ£¬ER¹ØÏµ·ÖƬ±íµÈÏ£Íû¶ÔÄúÓÐËù°ïÖú¡£
±¾ÎÄÀ´×Ô°¢ÀïÔÆ£¬ÓÉ»ðÁú¹ûÈí¼þDelores±à¼­¡¢ÍƼö¡£

Ò»¡¢ÎªÊ²Ã´ÐèÒª·Ö²¼Ê½Êý¾Ý¾Ý¿â

Ëæ×żÆËã»úºÍÐÅÏ¢¼¼ÊõµÄѸÃÍ·¢Õ¹£¬ÐÐÒµÓ¦ÓÃϵͳµÄ¹æÄ£Ñ¸ËÙÀ©´ó£¬ÐÐÒµÓ¦ÓÃËù²úÉúµÄÊý¾ÝÁ¿³Ê±¬Õ¨Ê½Ôö³¤£¬¶¯éü´ïµ½Êý°ÙTBÉõÖÁÊý°ÙPBµÄ¹æÄ££¬ÒÑÔ¶Ô¶³¬³ö´«Í³¼ÆËã¼¼ÊõºÍÐÅϢϵͳµÄ´¦ÀíÄÜÁ¦£¬¼¯ÖÐʽÊý¾Ý¿âÃæ¶Ô´ó¹æÄ£Êý¾Ý´¦ÀíÖð½¥±íÏÖ³öÆä¾ÖÏÞÐÔ¡£Òò´Ë£¬ÈËÃÇÏ£ÍûѰÕÒÒ»ÖÖÄÜ¿ìËÙ´¦ÀíÊý¾ÝºÍ¼°Ê±ÏìÓ¦Óû§·ÃÎʵķ½·¨£¬Ò²Ï£Íû¶ÔÊý¾Ý½øÐм¯ÖзÖÎö¡¢¹ÜÀíºÍά»¤¡£ÕâÒѾ­³ÉΪÆÈÇÐÐèÇó¡£

·Ö²¼Ê½Êý¾Ý¿âÊÇÔÚ¼¯ÖÐʽÊý¾Ý¿âµÄ»ù´¡ÉÏ·¢Õ¹ÆðÀ´µÄ£¬ÊǼÆËã»ú¼¼ÊõºÍÍøÂç¼¼Êõ½áºÏµÄ²úÎï¡£·Ö²¼Ê½Êý¾Ý¿âÊÇÖ¸Êý¾ÝÔÚÎïÀíÉÏ·Ö²¼¶øÔÚÂß¼­Éϼ¯ÖйÜÀíµÄÊý¾Ý¿âϵͳ¡£ÎïÀíÉÏ·Ö²¼ÊÇÖ¸Êý¾Ý·Ö²¼ÔÚÎïÀíλÖò»Í¬²¢ÓÉÍøÂçÁ¬½ÓµÄ½Úµã»òÕ¾µãÉÏ;Âß¼­Éϼ¯ÖÐÊÇÖ¸¸÷Êý¾Ý¿â½ÚµãÖ®¼äµÄÂß¼­ÉÏÊÇÒ»¸öÕûÌ壬²¢ÓÉͳһµÄÊý¾Ý¿â¹ÜÀíϵͳ¹ÜÀí¡£²»Í¬µÄ½Úµã·Ö²¼¿ÉÒԿ粻ͬµÄ»ú·¿¡¢³ÇÊÐÉõÖÁ¹ú¼Ò¡£

¶þ¡¢·Ö²¼Ê½Êý¾Ý¿âµÄÌØµã

·Ö²¼Ê½Êý¾Ý¿â¾ßÓÐ͸Ã÷ÐÔ¡¢Êý¾ÝÈßÓàÐÔ¡¢Ò×ÓÚÀ©Õ¹ÐÔ¡¢×ÔÖÎÐÔµÈÌØµã£¬»¹¾ßÓо­¼Ã¡¢ÐÔÄÜÓÅÔ½¡¢ÏìÓ¦Ëٶȸü¿ì¡¢Áé»îµÄÌåϵ½á¹¹¡¢Ò×ÓÚ¼¯³ÉÏÖÓÐϵͳµÈÌØµã¡£

·Ö²¼Ê½Êý¾Ý¿â¾¡¹ÜÓÐ×ÅÌìÉúµÄ¸ß¹óѪͳ£¬µ«ËüÒÀÀµµ÷ÕûÍøÂ磬¶ÔÊÂÎñµÄ´¦ÀíԶûÓд«Í³Êý¾Ý¿â³ÉÊ죬Ôںܳ¤Ò»¶Îʱ¼äÄÚ·Ö²¼Ê½Êý¾Ý´æ´¢½«Ó봫ͳÊý¾Ý´æ´¢¹²´æ¡£

Èý¡¢MyCatÊý¾Ý¿âÖмä¼þ¼ò½é

MyCatÊÇÒ»¸ö³¹µ×¿ªÔ´µÄÃæÏòÆóÒµÓ¦Óÿª·¢µÄ´óÊý¾Ý¿â¼¯Èº£¬Ö§³ÖÊÂÎñ¡¢ACID£¬ÊÇ¿ÉÒÔÌæ´úMySQLµÄ¼ÓÇ¿°æÊý¾Ý¿â¡£MyCat±»ÊÓΪMySQL¼¯ÈºµÄÆóÒµ¼¶Êý¾Ý¿â£¬ÓÃÀ´Ìæ´ú°º¹óµÄOracle¼¯Èº£¬ËüÊÇÕûºÏÁËÄڴ滺´æ¼¼Êõ¡¢NoSQL¼¼Êõ¡¢HDFS´óÊý¾ÝµÄÐÂÐÍSQL Server£¬ÊǽáºÏÁË´«Í³Êý¾Ý¿âºÍÐÂÐÍ·Ö²¼Ê½Êý¾Ý²Ö¿âµÄÐÂÒ»´úÆóÒµ¼¶Êý¾Ý¿â²úÆ·£¬Ò²ÊÇÒ»¸öÓÅÐãµÄÊý¾Ý¿âÖмä¼þ¡£

MyCatÊÇͨ¹ýCobar¸ÄÁ¼¶øÉú¡£MyCatÖ§³ÖOracle¡¢PostgreSQL£¬´Ó1.3°æ±¾¿ªÊ¼Ö§³ÖNoSQL£¨SequoiaDB¼°MongoDB£©²¢ÒýÈëÁËDruid½âÎöÆ÷¡£2016ÄêMyCat·¢²¼ÁË1.5°æ±¾£¬2018Äê·¢²¼ÁË 1.6.6°æ±¾ ¡£Ä¿Ç°MyCat2.0ÏîÄ¿ÒѾ­Æô¶¯

ËÄ¡¢MyCatºËÐĸÅÄîÏê½â

4.1 Âß¼­¿â£¨schema£©

ͨ³£ÔÚʵ¼ÊÓ¦ÓÃÖУ¬ÒµÎñ¿ª·¢ÈËÔ±²¢²»ÐèÒªÖªµÀÖмä¼þµÄ´æÔÚ£¬Ö»ÐèÒª¹Ø×¢Êý¾Ý¿â£¬ËùÒÔÊý¾Ý¿âÖмä¼þ¿ÉÒÔ±»µ±×÷Ò»¸ö»ò¶à¸öÊý¾Ý¿â¼¯Èº¹¹³ÉµÄÂß¼­¿â¡£

4.2 Âß¼­±í£¨table£©

¼ÈÈ»ÓÐÂß¼­¿â£¬¾Í»áÓÐÂß¼­±í¡£ÔÚ·Ö²¼Ê½Êý¾Ý¿âÖУ¬¶ÔÓÚÓ¦ÓÃÀ´Ëµ£¬¶ÁдÊý¾ÝµÄ±í¾ÍÊÇÂß¼­±í¡£Âß¼­±í¿ÉÒÔ·Ö²¼ÔÚÒ»¸ö»ò¶à¸ö·ÖƬ¿âÖУ¬Ò²¿ÉÒÔ²»·ÖƬ¡£

1£©·ÖƬ±í

·ÖƬ±íÊÇÖ¸½«Êý¾ÝÁ¿ºÜ´óµÄ±íÇзֵ½¶à¸öÊý¾Ý¿âʵÀýÖУ¬ËùÓÐ·ÖÆ¬×éºÏÆðÀ´¹¹³ÉÁËÒ»ÕÅÍêÕûµÄ±í¡£ÀýÈçÔÚMyCatÉÏÅäÖÃt_nodeµÄ·ÖƬ±í£¬Êý¾Ý°´ÕÕ¹æÔò±»Çзֵ½dn1¡¢dn2Á½¸ö½Úµã¡£

<table name=¡±t_node¡± primaryKey=¡±vid¡±
autoIncrement=¡±true¡±
dataNode=¡±nd1,dn2¡± rule=¡±rule1¡± />

2£©·Ç·ÖƬ±í

²¢·ÇËùÓеıíÔÚÊýÁ¿ºÜ´óʱ¶¼ÐèÒª½øÐÐ·ÖÆ¬¡£·Ç·ÖƬ±íÊÇÏà¶Ô·ÖƬ±í¶øÑԵ쬲»ÐèÒª½øÐÐÊý¾ÝÇÐ·ÖµÄ±í¡£ÈçÏÂÃæÅäÖÃÖеÄt_nodeÖ»´æÔÚÓÚ½Úµãdn1ÉÏ¡£

<table name=¡±t_node¡± primaryKey=¡±vid¡±
autoIncrement=¡±true¡± dataNode=¡±dn1¡± />

3£©ER±í

¹ØÏµÐÍÊý¾Ý¿âÊÇ»ùÓÚʵÌå¹ØÏµÄ£ÐÍ£¨Entity Relationship Model£©µÄ£¬MyCatÖеÄER±í±ãÀ´Ô´ÓÚ´Ë¡£»ùÓÚ´Ë˼Ï룬MyCatÌá³öÁË»ùÓÚE-R¹ØÏµµÄÊý¾Ý·ÖƬ²ßÂÔ£¬×Ó±íµÄ¼Ç¼ÓëÆäËù¹ØÁªµÄ¸¸±íµÄ¼Ç¼´æ·ÅÔÚͬһ¸öÊý¾Ý·ÖƬÉÏ£¬¼´×Ó±íÒÀÀµÓÚ¸¸±í£¬Í¨¹ý±í·Ö×飨Table Group£©±£Ö¤Êý¾Ý¹ØÁª²éѯ²»»á¿ç¿â²Ù×÷¡£ ±í·Ö×éÊǽâ¾ö¿ç·ÖƬÊý¾Ý¹ØÁª²éѯµÄÒ»ÖֺܺõÄ˼·£¬Ò²ÊÇÊý¾ÝÇзֵÄÒ»ÌõÖØÒª¹æÔò¡£

4£©È«¾Ö±í

ÔÚÒ»¸öÕæÊµµÄÒµÎñ³¡¾°ÖÐÍùÍù´æÔÚ´óÁ¿ÀàËÆµÄ×Öµä±í£¬ÕâЩ×Öµä±íÖеÄÊý¾Ý±ä¶¯²»Æµ·±£¬¶øÇÒÊý¾Ý¹æÄ£²»´ó£¬ºÜÉÙÓг¬¹ýÊýÊ®ÍòÌõµÄ¼Ç¼¡£

µ±ÒµÎñ±íÒòΪ¹æÄ£½øÐÐ·ÖÆ¬ºó£¬ÒµÎñ±íÓëÕâЩ¸½ÊôµÄ×Öµä±íÖ®¼äµÄ¹ØÁª²éѯ¾Í³ÉÁ˱Ƚϼ¬ÊÖµÄÎÊÌ⣬ËùÒÔÔÚMyCatÖÐͨ¹ýÊý¾ÝÈßÓàÀ´½â¾öÕâÀà±íµÄ¹ØÁª²éѯ£¬¼´ËùÓÐ·ÖÆ¬¶¼¸´ÖÆÁËÒ»·ÝÊý¾Ý£¬ÎÒÃǰÑÕâЩÈßÓàÊý¾ÝµÄ±í¶¨ÒåΪȫ¾Ö±í¡£

Êý¾ÝÈßÓàÊǽâ¾ö¿ç·ÖƬÊý¾Ý¹ØÁª²éѯµÄÒ»ÖֺܺõÄ˼·£¬Ò²ÊÇÊý¾ÝÇзֹ滮µÄÁíÒ»ÌõÖØÒª¹æÔò¡£

4.3 ·ÖƬ½Úµã£¨dataNode£©

½«Êý¾ÝÇзֺó£¬Ò»¸ö´ó±í±»·Öµ½²»Í¬µÄ·ÖƬÊý¾Ý¿âÉÏ£¬Ã¿¸ö±í·ÖƬËùÔÚµÄÊý¾Ý¿âÊÇ·ÖÆ¬½Úµã¡£

4.4 ½ÚµãÖ÷»ú£¨dataHost£©

½«Êý¾ÝÇзֺó£¬Ã¿¸ö·ÖƬ½Úµã²»Ò»¶¨»á¶Àռһ̨»úÆ÷£¬Í¬Ò»Ì¨»úÆ÷ÉÏ¿ÉÒÔÓжà¸ö·ÖƬÊý¾Ý¿â£¬ÕâÑùÒ»¸ö»ò¶à¸ö·ÖƬ½ÚµãËùÔڵĻúÆ÷¾ÍÊǽڵãÖ÷»ú¡£ÎªÁ˹æ±Üµ¥½ÚµãÖ÷»ú²¢·¢ÊýÁ¿µÄÏÞÖÆ£¬¾¡Á¿½«¶ÁдѹÁ¦¸ßµÄ·ÖƬ½Úµã¾ùÔȵطÅÔÚ²»Í¬µÄ½ÚµãÖ÷»úÉÏ¡£

Îå¡¢MyCatÔ­Àí½éÉÜ

MyCatÔ­ÀíÖÐ×îÖØÒªµÄÒ»¸ö¶¯´ÊÊÇ¡°À¹½Ø¡±£¬ËüÀ¹½ØÁËÓû§·¢Ë͹ýÀ´µÄSQLÓï¾ä£¬Ê×ÏȶÔSQLÓï¾ä×öÁËÒ»Ð©ÌØ¶¨µÄ·ÖÎö£¬ÀýÈç·ÖƬ·ÖÎö¡¢Â·ÓÉ·ÖÎö¡¢¶Áд·ÖÀë·ÖÎö¡¢»º´æ·ÖÎöµÈ£¬È»ºó½«´ËSQLÓï¾ä·¢Íùºó¶ËµÄÕæÊµÊý¾Ý¿â£¬²¢½«·µ»ØµÄ½á¹û×öÊʵ±µÄ´¦Àí£¬×îÖÕÔÙ·µ»Ø¸øÓû§¡£

MyCatÊÕµ½Ò»ÌõSQLÓï¾äʱ£¬Ê×ÏȽâÎöSQLÓï¾äÉæ¼°µÄ±í£¬½Ó×Ų鿴´Ë±íµÄ¶¨Ò壬Èç¹û¸Ã±í´æÔÚ·ÖÆ¬¹æÔò£¬Ôò»ñÈ¡SQLÓï¾äÀï·ÖƬ×ֶεÄÖµ£¬²¢Æ¥Åä·ÖƬº¯Êý£¬µÃµ½¸ÃSQLÓï¾ä¶ÔÓ¦µÄ·ÖƬÁÐ±í£¬È»ºó½«SQLÓï¾ä·¢Ë͵½ÏàÓ¦µÄ·ÖƬȥִÐУ¬×îºó´¦ÀíËùÓÐ·ÖÆ¬·µ»ØµÄÊý¾Ý²¢·µ»Ø¸ø¿Í»§¶Ë¡£

Áù¡¢MyCatÅäÖÃ

schema.xmlÊÇMyCatµÄÖØÒªÅäÖÃÎļþ£¬Ëü¹ÜÀí×ÅÂß¼­¿â¡¢·ÖƬ±í¡¢·ÖƬ½ÚµãºÍ·ÖƬÖ÷»úµÈÐÅÏ¢¡£

service.xmlÊÇϵͳ²ÎÊýµÄÅäÖÃÎļþ£¬ÕÆÎÕMyCatÓÅ»¯·½·¨£¬±ØÐèÊìϤ¸ÃÎļþµÄÅäÖÃÏî¡£

sequenceÊÇÈ«¾ÖÐòÁеÄÅäÖÃÎļþ¡£

6.1 server.xmlÅäÖÃÎļþ

server.xmlÅäÖÃÎļþ°üº¬ÁËMyCatµÄϵͳÅäÖÃÐÅÏ¢£¬¶ÔÓ¦µÄÔ´ÂëÊÇSystemConfig.java¡£ËüÓÐÁ½¸öÖØÒªµÄ±êÇ©£¬·Ö±ðÊÇuser¡¢system¡£ÕÆÎÕsystem±êÇ©µÄ¸÷ÏîÅäÖÃÊôÐÔÊÇMyCatµ÷ÓŵĹؼü¡£

<MyCat:server xmlns:MyCat="http://io.MyCat/">
<system>
<property name="nonePasswordLogin">0</property>
<!-- 0ΪÐèÒªÃÜÂëµÇ½¡¢1Ϊ²»ÐèÒªÃÜÂëµÇ½ ,ĬÈÏΪ0£¬
ÉèÖÃΪ1ÔòÐèÒªÖ¸¶¨Ä¬ÈÏÕË»§-->
<property name="useHandshakeV10">1</property>
<property name="useSqlStat">0</property>
<!-- 1Ϊ¿ªÆôʵʱͳ¼Æ¡¢0Ϊ¹Ø±Õ -->
<property name="useGlobleTableCheck">0</property>
<!-- 1Ϊ¿ªÆôÈ«¼Ó°àÒ»ÖÂÐÔ¼ì²â¡¢0Ϊ¹Ø±Õ -->
<property name="sequnceHandlerType">2</property>
<property name="subqueryRelationshipCheck">false
</property> <!-- ×Ó²éѯÖдæÔÚ¹ØÁª²éѯµÄÇé¿öÏÂ,
¼ì²é¹ØÁª×Ö¶ÎÖÐÊÇ·ñÓÐ·ÖÆ¬×Ö¶Î .ĬÈÏ false -->
<!-- <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 | type 2 NettyBufferPool -->
<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">64k</property>


<!-- µ¥Î»Îªk -->
<property name="spillsFileBufferSize">1k</property>


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


<!-- µ¥Î»Îªm -->
<property name="systemReserveMemorySize">
384m</property>


<!--ÊÇ·ñ²ÉÓÃzookeeperЭµ÷Çл» -->
<property name="useZKSwitch">false</property>


<!-- XA Recovery LogÈÕ־·¾¶ -->
<!--<property name="XARecoveryLogBaseDir">
./</property>-->


<!-- XA Recovery LogÈÕÖ¾Ãû³Æ -->
<!--<property name="XARecoveryLogBaseName">
tmlog</property>-->
<!--Èç¹ûΪ trueµÄ»° Ñϸñ×ñÊØ¸ôÀë¼¶±ð,
²»»áÔÚ½ö½öÖ»ÓÐselectÓï¾äµÄʱºòÔÚÊÂÎñÖÐÇл»Á¬½Ó-->
<property name="strictTxIsolation">false</property>
<property name="useZKSwitch">true</property>
</system>
<!-- È«¾ÖSQL·À»ðǽÉèÖà -->
<!--°×Ãûµ¥¿ÉÒÔʹÓÃͨÅä·û%»ò×Å*-->
<!--ÀýÈç<host host="127.0.0.*" user="root"/>-->
<!--ÀýÈç<host host="127.0.*" user="root"/>-->
<!--ÀýÈç<host host="127.*" user="root"/>-->
<!--ÀýÈç<host host="1*7.*" user="root"/>-->
<!--ÕâЩÅäÖÃÇé¿ö϶ÔÓÚ127.0.0.1¶¼ÄÜÒÔrootÕË»§µÇ¼-->
<!--
<firewall>
<whitehost>
<host host="1*7.0.0.*" user="root"/>
</whitehost>
<blacklist check="false">
</blacklist>
</firewall>
-->
<user name="root" defaultAccount="true">
<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>

6.2 schema.xmlÅäÖÃÎļþ

schema.xml ×÷ΪMyCatÖÐÖØÒªµÄÅäÖÃÎļþÖ®Ò»£¬º­¸ÇÁËMyCatµÄÂß¼­¿â¡¢±í¡¢·ÖƬ¹æÔò¡¢·ÖƬ½Úµã¼°Êý¾ÝÔ´¡£

1£©schema ±êÇ©

<schema name="TESTDB" checkSQLschem
a="false" sqlMaxLimit="100">

schema±êÇ©ÓÃÓÚ¶¨ÒåMyCatʵÀýÖеÄÂß¼­¿â¡£MyCat¿ÉÒÔÓжà¸öÂß¼­¿â£¬Ã¿¸öÂß¼­¿â¶¼ÓÐ×Ô¼ºµÄÏà¹ØÅäÖ᣿ÉÒÔʹÓÃschema±êÇ©À´»®·Ö²»Í¬µÄÂß¼­¿â£¬Èç¹ûÓÐÅäÖÃschema±êÇ©£¬ÔòËùÓеıíÅäÖö¼»áÊôÓÚͬһ¸öĬÈϵÄÂß¼­¿â¡£

<schema name="TESTDB"
checkSQLschema="false" sqlMaxLimit="100">
<table name="travelrecord"
dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />
</schema>
<schema name="USERDB"
checkSQLschema="false" sqlMaxLimit="100">
<table name="company" dataNode="dn10,dn11,dn12"
rule="auto-sharding-long" />
</schema>

ÈçÉÏËùʾÅäÖÃÁËÁ½¸ö²»Í¬µÄÂß¼­¿â£¬Âß¼­¿âµÄ¸ÅÄîµÈͬÓÚMySQLÊý¾Ý¿âÖеÄDatabase¸ÅÄÎÒÃÇÔÚ²éѯÂß¼­¿âÖеıíʱ£¬ÐèÒªÇл»µ½¸ÃÂß¼­¿âϲſÉÒÔ²éѯÆäÖÐµÄ±í¡£

checkSQLschemaÊôÐÔ£¬µ±°Ñ¸ÃÖµÉèÖÃΪtrueʱ£¬Èç¹ûÎÒÃÇÖ´ÐÐÓï¾ä select from TESTDB.travelrecord;,ÔòMyCat»á°Ñschema×Ö·ûÈ¥µô£¬°ÑSQLÓï¾äÐÞ¸ÄΪselect from travelrecord;¿É±ÜÃâ·¢Ë͵½ºó¶ËÊý¾Ý¿âÖ´ÐÐʱ±¨´í¡£

SqlMaxLimitÊôÐÔ£¬µ±¸ÃÊôÐÔÉèÖÃΪij¸öֵʱ£¬Ã¿´ÎÖ´ÐеÄSQLÓï¾äÈç¹ûûÓмÓÉÏlimitÓï¾ä£¬MyCatÒ²»á×Ô¶¯ÔÚlimitÓï¾äºó¼ÓÉ϶ÔÓ¦µÄÖµ¡£Èç¹û²»ÉèÖøÃÖµ£¬ÔòMyCat»á°Ñ²éѯµ½µÄÐÅϢȫ²¿·µ»Ø¡£

2£©table ±êÇ©

<table name=¡±travelrecord¡±
dataNode=¡±dn1,dn2,dn3¡±
rule=¡±auto-sharding-long¡±></table>

table±êÇ©¶¨ÒåÁËMyCatÖеÄÂß¼­±í£¬ËùÓÐÐèÒª²ð·ÖµÄµÄ±í¶¼ÐèÒªÔÚtable±êÇ©Öж¨Òå¡£

table±êÇ©µÄÖ÷ÒªÊôÐÔ¼ûÏÂ±í£¬¾ßÌå½éÉܲμûMyCat¹Ù·½ÍøÕ¾

3£©childTable ±êÇ©

childTable±êÇ©ÓÃÓÚ¶¨Òå E-R ·ÖƬµÄ×Ó±í£¬Í¨¹ý±êÇ©ÉϵÄÊôÐÔÓ븸±í½øÐйØÁª¡£

4£©dataNode±êÇ©

dataNode±êÇ©¶¨ÒåÁËMyCatÖеÄÊý¾Ý½Úµã£¬Ò²¾ÍÊÇÎÒÃÇͨ³£Ëù˵µÄÊý¾Ý·ÖƬ¡£Ò»¸ödataNode±êÇ©¾ÍÊÇÒ»¸ö¶ÀÁ¢µÄÊý¾Ý·ÖƬ¡£

5£©dataHost±êÇ©

dataHost±êÇ©ÔÚMyCatÂß¼­¿âÖÐ×÷Ϊµ×²ã±êÇ©´æÔÚ£¬Ö±½Ó¶¨ÒåÁ˾ßÌåµÄÊý¾Ý¿âʵÀý£¬¶Áд·ÖÀëºÍÐÄÌøÓï¾ä¡£

Heartbeat±êÇ©ÓÃÀ´ÅäÖÃÐÄÌø¼ì²éÓï¾ä£¬Mysql¿ÉÒÔʹÓÃselect user(),Oracle¿ÉÒÔʹÓÃselect 1 from dual µÈ¡£

writeHostºÍreadHostÊǶÁдµÄÅäÖã¬Ò»¸ödataHostÄÚ¿ÉÒÔÅäÖöà¸ö¶ÁºÍд¡£µ«Èç¹ûwriteHostÖ¸¶¨µÄºó¶ËÊý¾Ý¿âå´»ú£¬ÄÇôÕâ¸öwriteHost°ó¶¨µÄËùÓÐreadHostÒ²½«²»¿ÉÓÃ;ÁíÒ»·½Ã棬MyCat»á×Ô¶¯¼ì²âµ½writeHostå´»ú£¬²¢Çл»µ½±¸ÓõÄwriteHostÉÏ¡£

Æß¡¢MyCat·ÖƬ

ÔÚMyCatÖн«±í·ÖΪÁ½ÖÖ´óµÄ¸ÅÄÊý¾ÝÁ¿Ð¡ÇÒ²»ÐèÒª×öÊý¾ÝÇÐ·ÖµÄ±í£¬³ÆÎª·Ç·ÖƬ±í£»Êý¾ÝÁ¿´óµ½µ¥¿âÐÔÄÜ¡¢ÈÝÁ¿²»×ãÒÔÖ§³Å£¬Êý¾ÝÐèҪͨ¹ýˮƽÇз־ùÔÈ·Ö²¼µ½²»Í¬µÄÊý¾Ý¿âÖÐµÄ±í£¬³ÆÎª·ÖƬ±í¡£¶øÖмä¼þ×îÖÕÐèÒª´¦ÀíµÄÊÂÇéÊǶÔÊý¾ÝÇз֡¢¾ÛºÏ¡£

7.1 ER¹ØÏµ·ÖƬ±í

ERÄ£ÐÍÊÇʵÌå¹ØÏµÄ£ÐÍ£¬¹ã·º²ÉÓøÅÄîÄ£ÐÍÉè¼Æ·½·¨£¬»ù±¾ÔªËØÊÇʵÌå¡¢¹ØÏµºÍÊôÐÔ¡£MyCat½«ËüÒýÈëÊý¾ÝÇзֹæÔòÖУ¬Ê¹µÃÓл¥ÏàÒÀÀµµÄ±íÄܹ»°´ÕÕijһ¹æÔòÇзֵ½ÏàͬµÄ½ÚµãÉÏ£¬±ÜÃâ¿ç¿âJoin¹ØÁª²éѯ¡£¾ßÌåÏêÇéÅäÖÃÄÚÈÝÔÚÕâÀï²»×öÃèÊöÇë²Î¿¼¹Ù·½Îĵµ¡£

°Ë¡¢¹¦ÄÜÓëÓÅÊÆ

8.1 ³£ÓÃÃüÁî

MyCatÌṩÀàËÆÊý¾Ý¹ÜÀí¼à¿Ø·½Ê½£¬¿ÉÒÔͨ¹ýMySQLÃüÁîÐеǼ¹ÜÀí¶Ë¿Ú£¨9066£©Ö´ÐÐÏàÓ¦µÄSQLÓï¾ä½øÐйÜÀí£¬Ò²¿ÉÒÔͨ¹ýJDBC·½Ê½½øÐÐÔ¶³ÌÁ¬½Ó¹ÜÀí¡£

Reload @@configÃüÁîÓÃÓÚ¸üÐÂÅäÖÃÎļþÔËÐиÃÃüÁ²»ÓÃÖØÆô¼´¿É½øÐÐÅäÖÃÎļþ¸üС£

Reload @@sqlstatÓÃÀ´¹Ø±ÕºÍ¿ªÆôSQL¼à¿Ø·ÖÎö¡£

Show @@databaseÃüÁîÓÃÀ´ÏÔʾMyCatÊý¾Ý¿âÁÐ±í£¬ÔËÐнá¹û¶ÔÓ¦schema.xmlÅäÖÃÎļþµÄschema×ӽڵ㡣

Show @@datanodeÓÃÀ´ÏÔʾMyCatÊý¾Ý½Úµã£¬ÔËÐнá¹û¶ÔÓ¦schema.xmlÅäÖÃÎļþµÄdataNode½Úµã¡£

Show @@heartbeatÓÃÓÚ±¨¸æÐÄÌø×´Ì¬¡£

Show @@connectionÓÃÀ´»ñÈ¡MyCatµÄǰ¶ËÁ¬½Ó״̬¡£

Kill @@connection id,id,id ÓÃÀ´¹Ø±ÕÁ¬½Ó¡£

Show @@ cacheÓÃÀ´²é¿´»º´æ¡£

Show @@datasource ÓÃÀ´²é¿´Êý¾ÝԴ״̬£¬Èç¹ûÅäÖÃÁËÖ÷´Ó»ò¶àÖ÷£¬Ôò¿ÉÒÔÇл»¡£

Switch @@ datasource name:index ÓÃÓÚÇл»Êý¾ÝÔ´¡£

Show @@syslog limit ÓÃÓÚÏÔʾϵͳÈÕÖ¾¡£

Show @@sql ÏÔʾÔÚMyCatÖÐÖ´ÐйýµÄÓï¾ä¡£

Show @@shl.show ÏÔʾÂýSQLÓï¾ä¡£

Show @@sql.sum ÏÔʾSQLÓï¾äµÄÕûÌåÖ´ÐÐÇé¿ö¡¢¶Áд±ÈÀýµÈ¡£

8.2 ¾ÖÏÞÐÔ

delete²Ù×÷²»Ö§³ÖûÓÐÖ÷¼üµÄ±í¡£Ã»ÓÐÖ÷¼üµÄ±íÔÚ²»Í¬½ÚµãµÄ˳Ðò²»Í¬£¬Èç¹ûÖ´ÐÐ select ...limit...£¬Ôò½«³öÏÖ²»Í¬µÄ½á¹û¼¯¡£

²»Ö§³ÖXAÊÂÎñ£¬ÔÚÌá½»ÉÏ¿ÉÄܻعö¡£

ÓÉÓÚ¼¯ÈºÊÇÀֹ۵IJ¢·¢¿Ø¼þ£¬ÊÂÎñcommit¿ÉÄÜÔڸý׶ÎÖÐÖ¹£¬ËùÒÔÈç¹ûÓÐÁ½¸öÊÂÎñÏò¼¯ÈºÖеIJ»Í¬½ÚµãµÄͬһÐÐдÈë²¢Ìá½»£¬Ôòʧ°ÜµÄ½Úµã½«ÖÐÖ¹¡£¶ÔÓÚ¼¯Èº¼¶±ðµÄÖÐÖ¹£¬¼¯Èº·µ»ØËÀËø´íÎó¡£

Õû¸ö¼¯ÈºµÄдÈëÍÌÍÂÁ¿ÓÉ×îÈõµÄ½ÚµãÏÞÖÆ£¬Èç¹ûÓÐÒ»¸ö½Úµã±äµÃ»ºÂý£¬ÄÇôÕû¸ö¼¯Èº½«±äµÃ»ºÂý¡£

¼¯ÈºÄÚ²¿°´ÕÕid×ÔÔö³¤»úÖÆÐ´ÈëÊý¾Ý£¬±ÈÈ缯ȺÖÐÓÐÈý̨¿ÉÄÜÊÇ3£¬6£¬9ÕâÑùµÄµÝÔö¡£

8.3 ÓëSharding-JDBC¶Ô±ÈSharding-JDBC

MyCatÊÇÒ»¸öÖмä¼þµÄµÚÈý·½Ó¦Óã¬sharding-jdbcÊÇÒ»¸öjar°ü¡£

ÒòΪMyCatÊǵ¥¶À²¿Êð£¬ËùÒÔʹÓÃMyCat¾ÍÏñÊÇ·ÃÎÊÊý¾Ý¿âÒ»Ñù£¬¶øsharding-jdbcµÄÂß¼­¶¼ÊÇÐèÒªÔÚ¹¤³ÌÀïдµÄ¡£

Èç¹ûÖ»Êǵ¥¶ÀÓ¦ÓÿÉÒÔʹÓÃÇáÁ¿¼¶µÄSharding-JDBC£¬Èç¹û¶à¸ö·þÎñ¶¼ÐèÒª²Ù×÷Êý¾Ý¿âÔòʹÓÃMyCat¸üºÏÊÊ¡£ÒòΪÓÃSharding-JDBCÐèÒªÔÚÿһ¸ö¹¤³ÌÀï±ß¶¼ÅäÖÃÉÏÏàÓ¦µÄ·ÖƬµÈÂß¼­£¬¶øMyCatÖ»ÐèÒªÅäÖÃÒ»·Ýµ¥¶À²¿Êð¡£

   
1538 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ