±à¼ÍƼö: |
ÎÄÕ½éÉÜÁË·Ö²¼Ê½Êý¾Ý¿âµÄÌØµã£¬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Ö»ÐèÒªÅäÖÃÒ»·Ýµ¥¶À²¿Êð¡£
|