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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
MycatÉîÈëѧϰ
 
×÷Õߣº ¶àÏ˹û¶³
  2222  次浏览      27
2020-1-20
 
±à¼­ÍƼö:
ÎÄÕ½²½âº£Á¿Êý¾ÝµÄ´æ´¢ÎÊÌ⣬ʲôÊÇÊý¾Ý¿â·ÖƬ£¬Mycat½éÉÜ£¬MycatµÄ·ÖƬ²ßÂÔ£¬Ï£Íû¶ÔÄúÓÐËù°ïÖú,
±¾ÎÄÀ´×Ôcsdn£¬ÓÉ»ðÁú¹ûÈí¼þDelores±à¼­¡¢ÍƼö¡£

º£Á¿Êý¾ÝµÄ´æ´¢ÎÊÌâ

Èç½ñËæ×Å»¥ÁªÍøµÄ·¢Õ¹£¬Êý¾ÝµÄÁ¿¼¶Ò²ÊdzÅÖ¸ÊýµÄÔö³¤£¬´ÓGBµ½TBµ½PB¡£¶ÔÊý¾ÝµÄ¸÷ÖÖ²Ù×÷Ò²ÊÇÓú¼ÓµÄÀ§ÄÑ£¬´«Í³µÄ¹ØÏµÐÔÊý¾Ý¿âÒѾ­ÎÞ·¨Âú×ã¿ìËÙ²éѯÓë²åÈëÊý¾ÝµÄÐèÇó¡£Õâ¸öʱºòNoSQLµÄ³öÏÖÔÝʱ½â¾öÁËÕâһΣ»ú¡£Ëüͨ¹ý½µµÍÊý¾ÝµÄ°²È«ÐÔ£¬¼õÉÙ¶ÔÊÂÎñµÄÖ§³Ö£¬¼õÉÙ¶Ô¸´ÔÓ²éѯµÄÖ§³Ö£¬À´»ñÈ¡ÐÔÄÜÉϵÄÌáÉý¡£

µ«ÊÇ£¬ÔÚÓÐЩ³¡ºÏNoSQLһЩÕÛÖÔÊÇÎÞ·¨Âú×ãʹÓó¡¾°µÄ£¬¾Í±ÈÈçÓÐЩʹÓó¡¾°ÊǾø¶ÔÒªÓÐÊÂÎñÓ밲ȫָ±êµÄ¡£Õâ¸öʱºòNoSQL¿Ï¶¨ÊÇÎÞ·¨Âú×ãµÄ£¬ËùÒÔ»¹ÊÇÐèҪʹÓùØÏµÐÔÊý¾Ý¿â¡£Èç¹ûʹÓùØÏµÐÍÊý¾Ý¿â½â¾öº£Á¿´æ´¢µÄÎÊÌâÄØ£¿´Ëʱ¾ÍÐèÒª×öÊý¾Ý¿â¼¯Èº£¬ÎªÁËÌá¸ß²éѯÐÔÄܽ«Ò»¸öÊý¾Ý¿âµÄÊý¾Ý·ÖÉ¢µ½²»Í¬µÄÊý¾Ý¿âÖд洢¡£

ʲôÊÇÊý¾Ý¿â·ÖƬ

¼òµ¥À´Ëµ£¬¾ÍÊÇָͨ¹ýijÖÖÌØ¶¨µÄÌõ¼þ£¬½«ÎÒÃÇ´æ·ÅÔÚͬһ¸öÊý¾Ý¿âÖеÄÊý¾Ý·ÖÉ¢´æ·Åµ½¶à¸öÊý¾Ý¿â£¨Ö÷»ú£©ÉÏÃæ£¬ÒÔ´ïµ½·ÖÉ¢µ¥Ì¨É豸¸ºÔصÄЧ¹û¡£

Êý¾ÝµÄÇз֣¨Sharding£©¸ù¾ÝÆäÇзֹæÔòµÄÀàÐÍ£¬¿ÉÒÔ·ÖΪÁ½ÖÖÇзÖģʽ¡£

Ò»ÖÖÊǰ´ÕÕ²»Í¬µÄ±í£¨»òÕßSchema£©À´Çзֵ½²»Í¬µÄÊý¾Ý¿â£¨Ö÷»ú£©Ö®ÉÏ£¬ÕâÖÖÇпÉÒÔ³ÆÖ®ÎªÊý¾ÝµÄ´¹Ö±£¨×ÝÏò£©ÇзÖ

ÁíÍâÒ»ÖÖÔòÊǸù¾Ý±íÖеÄÊý¾ÝµÄÂß¼­¹ØÏµ£¬½«Í¬Ò»¸ö±íÖеÄÊý¾Ý°´ÕÕijÖÖÌõ¼þ²ð·Öµ½¶ą̀Êý¾Ý¿â£¨Ö÷»ú£©ÉÏÃæ£¬ÕâÖÖÇзֳÆÖ®ÎªÊý¾ÝµÄˮƽ£¨ºáÏò£©Çз֡£

ÈçºÎʵÏÖÊý¾Ý¿â·ÖƬ

µ±Êý¾Ý¿â·ÖƬºó£¬Êý¾ÝÓÉÒ»¸öÊý¾Ý¿â·ÖÉ¢µ½¶à¸öÊý¾Ý¿âÖС£´ËʱϵͳҪ²éѯʱÐèÒªÇл»²»Í¬µÄÊý¾Ý¿â½øÐвéѯ£¬ÄÇôϵͳÈçºÎÖªµÀÒª²éѯµÄÊý¾ÝÔÚÄĸöÊý¾Ý¿âÖУ¿µ±Ìí¼ÓÒ»Ìõ¼Ç¼ʱҪÏòÄĸöÊý¾Ý¿âÖвåÈëÄØ£¿ÕâЩÎÊÌâ´¦ÀíÆðÀ´¶¼ÊǷdz£µÄÂé·³¡£

ÕâÖÖÇé¿öÏ¿ÉÒÔʹÓÃÒ»¸öÊý¾Ý¿âÖмä¼þmycatÀ´½â¾öÏà¹ØµÄÎÊÌâ¡£½ÓÏÂÀ´Á˽âÒ»ÏÂʲôÊÇmycat¡£

ʲôÊÇMycat£¿

Mycat ±³ºóÊǰ¢ÀïÔø¾­¿ªÔ´µÄÖªÃû²úÆ·¡ª¡ªCobar¡£Cobar µÄºËÐŦÄܺÍÓÅÊÆÊÇ MySQL Êý¾Ý¿â·ÖƬ£¬´Ë²úÆ·Ôø¾­¹ãΪÁ÷´«£¬¾Ý˵×îÔçµÄ·¢ÆðÕß¶Ô Mysql ºÜ¾«Í¨£¬ºóÀ´´Ó°¢ÀïÌø²ÛÁË£¬°¢ÀïËæºó¿ªÔ´µÄ Cobar£¬²¢Î¬³Öµ½ 2013 ÄêÄê³õ£¬È»ºó£¬¾ÍûÓÐÈ»ºóÁË¡£

Cobar µÄ˼·ºÍʵÏÖ·¾¶µÄÈ·²»´í¡£»ùÓÚ Java ¿ª·¢µÄ£¬ÊµÏÖÁË MySQL ¹«¿ªµÄ¶þ½øÖÆ´«ÊäЭÒ飬ÇÉÃîµØ½«×Ô¼ºÎ±×°³ÉÒ»¸ö MySQL Server£¬Ä¿Ç°ÊÐÃæÉϾø´ó¶àÊý MySQL ¿Í»§¶Ë¹¤¾ßºÍÓ¦Óö¼ÄܼæÈÝ¡£±È×Ô¼ºÊµÏÖÒ»¸öеÄÊý¾Ý¿âЭÒéÒªÃ÷ÖǵĶ࣬ÒòΪÉú̬»·¾³ÔÚÄÄÀï°Ú×Å¡£

Mycat ÊÇ»ùÓÚ cobar ÑÝ±ä¶øÀ´£¬¶Ô cobar µÄ´úÂë½øÐÐÁ˳¹µ×µÄÖØ¹¹£¬Ê¹Óà NIO ÖØ¹¹ÁËÍøÂçÄ£¿é£¬²¢ÇÒÓÅ»¯ÁË Buffer Äںˣ¬ÔöÇ¿Á˾ۺϣ¬Join µÈ»ù±¾ÌØÐÔ£¬Í¬Ê±¼æÈݾø´ó¶àÊýÊý¾Ý¿â³ÉΪͨÓõÄÊý¾Ý¿âÖмä¼þ¡£

¼òµ¥µÄ˵£¬MyCAT¾ÍÊÇ£º

Ò»¸öÐÂÓ±µÄÊý¾Ý¿âÖмä¼þ²úÆ·Ö§³Ömysql¼¯Èº£¬»òÕßmariadb cluster£¬Ìṩ¸ß¿ÉÓÃÐÔÊý¾Ý·ÖƬ¼¯Èº¡£Äã¿ÉÒÔÏñʹÓÃmysqlÒ»ÑùʹÓÃmycat¡£¶ÔÓÚ¿ª·¢ÈËÔ±À´Ëµ¸ù±¾¸Ð¾õ²»µ½mycatµÄ´æÔÚ¡£

MycatÖ§³ÖµÄÊý¾Ý¿â

MycatµÄ·ÖƬ²ßÂÔ

¸ÅÄî˵Ã÷

Âß¼­¿â(schema) £º

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

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

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

·ÖƬ±í£ºÊÇÖ¸ÄÇЩԭÓеĺܴóÊý¾ÝµÄ±í£¬ÐèÒªÇзֵ½¶à¸öÊý¾Ý¿âµÄ±í£¬ÕâÑù£¬Ã¿¸ö·ÖƬ¶¼ÓÐÒ»²¿·ÖÊý¾Ý£¬ËùÓÐ·ÖÆ¬¹¹³ÉÁËÍêÕûµÄÊý¾Ý¡£ ×ܶøÑÔÖ®¾ÍÊÇÐèÒª½øÐÐ·ÖÆ¬µÄ±í¡£

·Ç·ÖƬ±í£ºÒ»¸öÊý¾Ý¿âÖв¢²»ÊÇËùÓÐµÄ±í¶¼ºÜ´ó£¬Ä³Ð©±íÊÇ¿ÉÒÔ²»ÓýøÐÐÇзֵģ¬·Ç·ÖƬÊÇÏà¶Ô·ÖƬ±íÀ´ËµµÄ£¬¾ÍÊÇÄÇЩ²»ÐèÒª½øÐÐÊý¾ÝÇÐ·ÖµÄ±í¡£

·ÖƬ½Úµã(dataNode)

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

½ÚµãÖ÷»ú(dataHost)

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

·ÖƬ¹æÔò(rule)

Ç°Ãæ½²ÁËÊý¾ÝÇз֣¬Ò»¸ö´ó±í±»·Ö³ÉÈô¸É¸ö·ÖƬ±í£¬¾ÍÐèÒªÒ»¶¨µÄ¹æÔò£¬ÕâÑù°´ÕÕijÖÖÒµÎñ¹æÔò°ÑÊý¾Ý·Öµ½Ä³¸ö·ÖƬµÄ¹æÔò¾ÍÊÇ·ÖÆ¬¹æÔò£¬Êý¾ÝÇзÖÑ¡ÔñºÏÊ浀ᅮ¬¹æÔò·Ç³£ÖØÒª£¬½«¼«´óµÄ±ÜÃâºóÐøÊý¾Ý´¦ÀíµÄÄѶȡ£

MycatµÄÏÂÔØ¼°°²×°

°²×°»·¾³

jdk£ºÒªÇójdk±ØÐëÊÇ1.7¼°ÒÔÉϰ汾

Mysql£ºÍƼömysqlÊÇ5.5ÒÔÉϰ汾

Mycat£º

MycatµÄ¹Ù·½ÍøÕ¾£º

http://www.mycat.org.cn/

ÏÂÔØµØÖ·£º

https://github.com/MyCATApache/Mycat-download

°²×°²½Öè

MycatÓÐwindows¡¢linux¶àÖÖ°æ±¾¡£±¾½Ì³ÌΪlinux°²×°²½Ö裬windows»ù±¾Ïàͬ¡£

µÚÒ»²½£ºÏÂÔØMycat-server-xxxx-linux.tar.gz

µÚ¶þ²½£º½«Ñ¹Ëõ°ü½âѹËõ¡£½¨Ò齫mycat·Åµ½/usr/local/mycatĿ¼Ï¡£

µÚÈý²½£º½øÈëmycatĿ¼£¬Æô¶¯mycat

./mycat start

Í£Ö¹£º

./mycat stop

mycat Ö§³ÖµÄÃüÁî{ console | start | stop | restart | status | dump }

MycatµÄĬÈ϶˿ںÅΪ£º8066

MycatµÄ·ÖƬ

ÐèÇó

°ÑÉÌÆ·±í·ÖƬ´æ´¢µ½Èý¸öÊý¾Ý½ÚµãÉÏ¡£

°²×°»·¾³·ÖÎö

Á½Ì¨mysqlÊý¾Ý¿â·þÎñÆ÷£º

Host1£º192.168.25.134

Host2£º192.168.25.166

host1»·¾³

²Ù×÷ϵͳ°æ±¾ : centos6.4

Êý¾Ý¿â°æ±¾ : mysql-5.6

mycat°æ±¾ £º1.4 release

Êý¾Ý¿âÃû : db1¡¢db3

mysql½Úµã2»·¾³

²Ù×÷ϵͳ°æ±¾ : centos6.4

Êý¾Ý¿â°æ±¾ : mysql-5.6

mycat°æ±¾ £º1.4 release

Êý¾Ý¿âÃû : db2

MyCat°²×°µ½½Úµã1ÉÏ£¨ÐèÒª°²×°jdk£©

ÅäÖÃschema.xml

Schema.xml½éÉÜ

Schema.xml×÷ΪMyCatÖÐÖØÒªµÄÅäÖÃÎļþÖ®Ò»£¬¹ÜÀí×ÅMyCatµÄÂß¼­¿â¡¢±í¡¢·ÖƬ¹æÔò¡¢DataNodeÒÔ¼°DataSource¡£Åª¶®ÕâЩÅäÖã¬ÊÇÕýȷʹÓÃMyCatµÄǰÌá¡£ÕâÀï¾ÍÒ»²ã²ã¶Ô¸ÃÎļþ½øÐнâÎö¡£

schema ±êÇ©ÓÃÓÚ¶¨ÒåMyCatʵÀýÖеÄÂß¼­¿â

Table ±êÇ©¶¨ÒåÁËMyCatÖеÄÂß¼­±í

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

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

×¢Ò⣺ÈôÊÇLINUX°æ±¾µÄMYSQL£¬ÔòÐèÒªÉèÖÃΪMysql´óСд²»Ãô¸Ð£¬·ñÔò¿ÉÄܻᷢÉú±íÕÒ²»µ½µÄÎÊÌâ¡£

ÔÚMySQLµÄÅäÖÃÎļþÖÐ/etc/my.cnf [mysqld] ÖÐÔö¼ÓÒ»ÐÐ

¡¡

¡¡lower_case_table_names=1

Schema.xmlÅäÖÃ

< xml version="1.0" >
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat
="http://org.opencloudb/">
<schema name="e3mall" checkSQLschema="false" sqlMaxLimit="100">
<!-- auto sharding by id (long) -->
<table name="tb_item" dataNode=
"dn1,dn2,dn3" rule="auto-sharding-long" />
</schema>
<dataNode name="dn1" dataHost
="localhost1" database="db1" />
<dataNode name="dn2" dataHost
="localhost2" database="db2" />
<dataNode name="dn3" dataHost
="localhost1" database="db3" />
<dataHost name="localhost1"
maxCon="1000" minCon="10" balance="0"
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.25.134:3306" user="root"
password="root">
<!-- can have multi read hosts -->
</writeHost>
</dataHost>
<dataHost name="localhost2"
maxCon="1000" minCon="10" balance="0"
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.25.166:3306" user="root"
password="root">
<!-- can have multi read hosts -->
</writeHost>
</dataHost>
</mycat:schema>

ÅäÖÃserver.xml

Server.xml½éÉÜ

server.xml¼¸ºõ±£´æÁËËùÓÐmycatÐèÒªµÄϵͳÅäÖÃÐÅÏ¢¡£×î³£ÓõÄÊÇÔÚ´ËÅäÖÃÓû§Ãû¡¢ÃÜÂ뼰ȨÏÞ¡£

Server.xmlÅäÖÃ

<user name="test">
<property name="password">
test</property>
<property name="schemas">
e3mall</property>
<property name="readOnly">
false</property>
</user>

ÅäÖÃrule.xml

rule.xmlÀïÃæ¾Í¶¨ÒåÁËÎÒÃÇ¶Ô±í½øÐвð·ÖËùÉæ¼°µ½µÄ¹æÔò¶¨Òå¡£ÎÒÃÇ¿ÉÒÔÁé»îµÄ¶Ô±íʹÓò»Í¬µÄ·ÖƬËã·¨£¬»òÕß¶Ô±íʹÓÃÏàͬµÄËã·¨µ«¾ßÌåµÄ²ÎÊý²»Í¬¡£Õâ¸öÎļþÀïÃæÖ÷ÒªÓÐtableRuleºÍfunctionÕâÁ½¸ö±êÇ©¡£ÔÚ¾ßÌåʹÓùý³ÌÖпÉÒÔ°´ÕÕÐèÇóÌí¼ÓtableRule ºÍfunction¡£

´ËÅäÖÃÎļþ¿ÉÒÔ²»ÓÃÐ޸ģ¬Ê¹ÓÃĬÈϼ´¿É¡£

²âÊÔ·ÖÆ¬

´´½¨±í

ÅäÖÃÍê±Ïºó£¬ÖØÐÂÆô¶¯mycat¡£Ê¹ÓÃmysql¿Í»§¶ËÁ¬½Ómycat£¬´´½¨±í¡£

-- ----------------------------
-- Table structure for tb_item
-- ----------------------------
DROP TABLE IF EXISTS `tb_item`;
CREATE TABLE `tb_item` (
`id` bigint(20) NOT NULL COMMENT '
ÉÌÆ·id£¬Í¬Ê±Ò²ÊÇÉÌÆ·±àºÅ',
`title` varchar(100)
NOT NULL COMMENT 'ÉÌÆ·±êÌâ',
`sell_point` varchar(500)
DEFAULT NULL COMMENT 'ÉÌÆ·Âôµã',
`price` bigint(20) NOT NULL COMMENT
'ÉÌÆ·¼Û¸ñ£¬µ¥Î»Îª£º·Ö',
`num` int(10) NOT NULL COMMENT
'¿â´æÊýÁ¿',
`barcode` varchar(30) DEFAULT NULL COMMENT
'ÉÌÆ·ÌõÐÎÂë',
`image` varchar(500) DEFAULT NULL COMMENT
'ÉÌÆ·Í¼Æ¬',
`cid` bigint(10) NOT NULL COMMENT
'ËùÊôÀàÄ¿£¬Ò¶×ÓÀàÄ¿',
`status` tinyint(4) NOT NULL DEFAULT
'1' COMMENT 'ÉÌÆ·×´Ì¬£¬1-Õý³££¬
2-ϼܣ¬3-ɾ³ý',
`created` datetime NOT NULL COMMENT
'´´½¨Ê±¼ä',
`updated` datetime NOT NULL COMMENT
'¸üÐÂʱ¼ä',
PRIMARY KEY (`id`),
KEY `cid` (`cid`),
KEY `status` (`status`),
KEY `updated` (`updated`)
) ENGINE=InnoDB DEFAULT
CHARSET=utf8 COMMENT='ÉÌÆ·±í';

²åÈëÊý¾Ý

½«´ËÎļþÖеÄÊý¾Ý²åÈëµ½Êý¾Ý¿â£º

·ÖƬ²âÊÔ

ÓÉÓÚÅäÖÃµÄ·ÖÆ¬¹æÔòΪ¡°auto-sharding-long¡±£¬ËùÒÔmycat»á¸ù¾Ý´Ë¹æÔò×Ô¶¯·ÖƬ¡£

ÿ¸ödatanodeÖб£´æÒ»¶¨ÊýÁ¿µÄÊý¾Ý¡£¸ù¾Ýid½øÐÐ·ÖÆ¬

¾­²âÊÔid·¶Î§Îª£º

Datanode1£º1~5000000

Datanode2£º5000000~10000000

Datanode3£º10000001~15000000

µ±15000000ÒÔÉϵÄid²åÈëʱ±¨´í£º

[Err] 1064 - can't find any valid datanode :TB_ITEM -> ID -> 15000001

´ËʱÐèÒªÌí¼Ó½ÚµãÁË¡£

Mycat¶Áд·ÖÀë

Êý¾Ý¿â¶Áд·ÖÀë¶ÔÓÚ´óÐÍϵͳ»òÕß·ÃÎÊÁ¿ºÜ¸ßµÄ»¥ÁªÍøÓ¦ÓÃÀ´Ëµ£¬ÊDZز»¿ÉÉÙµÄÒ»¸öÖØÒª¹¦ÄÜ¡£¶ÔÓÚMySQLÀ´Ëµ£¬±ê×¼µÄ¶Áд·ÖÀëÊÇÖ÷´Óģʽ£¬Ò»¸öд½ÚµãMasterºóÃæ¸ú×Ŷà¸ö¶Á½Úµã£¬¶Á½ÚµãµÄÊýÁ¿È¡¾öÓÚϵͳµÄѹÁ¦£¬Í¨³£ÊÇ1-3¸ö¶Á½ÚµãµÄÅäÖÃ

Mycat¶Áд·ÖÀëºÍ×Ô¶¯Çл»»úÖÆ£¬ÐèÒªmysqlµÄÖ÷´Ó¸´ÖÆ»úÖÆÅäºÏ¡£

MysqlµÄÖ÷´Ó¸´ÖÆ

Ö÷´ÓÅäÖÃÐèҪעÒâµÄµØ·½

1¡¢Ö÷DB serverºÍ´ÓDB serverÊý¾Ý¿âµÄ°æ±¾Ò»ÖÂ

2¡¢Ö÷DB serverºÍ´ÓDB serverÊý¾Ý¿âÊý¾ÝÃû³ÆÒ»ÖÂ

3¡¢Ö÷DB server¿ªÆô¶þ½øÖÆÈÕÖ¾,Ö÷DB serverºÍ´ÓDB serverµÄserver_id¶¼±ØÐëΨһ

MysqlÖ÷·þÎñÆ÷ÅäÖÃ

µÚÒ»²½£ºÐÞ¸Ämy.confÎļþ£º

ÔÚ[mysqld]¶ÎÏÂÌí¼Ó£º

binlog-do-db=db1
binlog-ignore-db=mysql
#ÆôÓöþ½øÖÆÈÕÖ¾
log-bin=mysql-bin
#·þÎñÆ÷ΨһID£¬Ò»°ãÈ¡IP×îºóÒ»¶Î
server-id=134

µÚ¶þ²½£ºÖØÆômysql·þÎñ

service mysqld restart

µÚÈý²½£º½¨Á¢ÕÊ»§²¢ÊÚȨslave

mysql>GRANT FILE ON *.* TO 'backup'@'%' IDENTIFIED BY '123456';

mysql>GRANT REPLICATION SLAVE,
REPLICATION CLIENT ON *.* to 'backup'@'%' identified by '123456';

#Ò»°ã²»ÓÃrootÕʺţ¬¡°%¡±±íʾËùÓпͻ§¶Ë¶¼¿ÉÄÜÁ¬£¬Ö»ÒªÕʺţ¬ÃÜÂëÕýÈ·£¬´Ë´¦¿ÉÓþßÌå¿Í»§¶ËIP´úÌæ£¬Èç192.168.145.226£¬¼ÓÇ¿°²È«¡£

Ë¢ÐÂȨÏÞ

mysql> FLUSH PRIVILEGES;

²é¿´mysqlÏÖÔÚÓÐÄÄЩÓû§

mysql>select user,host from mysql.user;

µÚËIJ½£º²éѯmasterµÄ״̬

Mysql´Ó·þÎñÆ÷ÅäÖÃ

µÚÒ»²½£ºÐÞ¸Ämy.confÎļþ

[mysqld]

server-id=166

µÚ¶þ²½£ºÅäÖôӷþÎñÆ÷

mysql>change master to

master_host='192.168.25.134',master_port=3306,master_user='backup',
master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120

×¢ÒâÓï¾äÖм䲻Ҫ¶Ï¿ª£¬master_portΪmysql·þÎñÆ÷¶Ë¿ÚºÅ(ÎÞÒýºÅ)£¬master_userΪִÐÐͬ²½²Ù×÷µÄÊý¾Ý¿âÕË»§£¬¡°120¡±ÎÞµ¥ÒýºÅ(´Ë´¦µÄ120¾ÍÊÇshow master status Öп´µ½µÄpositionµÄÖµ£¬ÕâÀïµÄmysql-bin.000001¾ÍÊÇfile¶ÔÓ¦µÄÖµ)¡£

µÚ¶þ²½£ºÆô¶¯´Ó·þÎñÆ÷¸´Öƹ¦ÄÜ

Mysql>start slave;

µÚÈý²½£º¼ì²é´Ó·þÎñÆ÷¸´Öƹ¦ÄÜ״̬£º

mysql> show slave status

¡­¡­¡­¡­¡­¡­¡­¡­(Ê¡ÂÔ²¿·Ö)

Slave_IO_Running: Yes //´Ë״̬±ØÐëYES

Slave_SQL_Running: Yes //´Ë״̬±ØÐëYES

¡­¡­¡­¡­¡­¡­¡­¡­(Ê¡ÂÔ²¿·Ö)

×¢£ºSlave_IO¼°Slave_SQL½ø³Ì±ØÐëÕý³£ÔËÐУ¬¼´YES״̬£¬·ñÔò¶¼ÊÇ´íÎóµÄ״̬(È磺ÆäÖÐÒ»¸öNO¾ùÊô´íÎó)¡£

´íÎó´¦Àí£ºÈç¹û³öÏÖ´Ë´íÎó£ºFatal error:
The slave I/O thread stops because master and slave have equal MySQL server UUIDs;
these UUIDs must be different for replication to work.
ÒòΪÊÇmysqlÊǿˡµÄϵͳËùÒÔmysqlµÄuuidÊÇÒ»ÑùµÄ£¬ËùÒÔÐèÒªÐ޸ġ£

½â¾ö·½·¨£ºÉ¾³ý/var/lib/mysql/auto.cnfÎļþ£¬ÖØÐÂÆô¶¯·þÎñ¡£

ÒÔÉϲÙ×÷¹ý³Ì£¬´Ó·þÎñÆ÷ÅäÖÃÍê³É¡£

<dataNode name="dn1" dataHost
="localhost1" database="db1" />
<dataNode name="dn2" dataHost
="localhost1" database="db2" />
<dataNode name="dn3" dataHost
="localhost1" database="db3" />
<dataHost name="localhost1"
maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql"
dbDriver="native" switchType="2"
slaveThreshold="100">
<heartbeat>show slave status
</heartbeat>
<writeHost host="hostM"
url="192.168.25.134:3306" user="root"
password="root">
<readHost host="hostS"
url="192.168.25.166:3306" user="root"
password="root" />
</writeHost>
</dataHost>

ÉèÖÃ balance="1"ÓëwriteType="0"

Balance²ÎÊýÉèÖãº

1. balance=¡°0¡±, ËùÓжÁ²Ù×÷¶¼·¢Ë͵½µ±Ç°¿ÉÓõÄwriteHostÉÏ¡£

2. balance=¡°1¡±£¬ËùÓжÁ²Ù×÷¶¼Ëæ»úµÄ·¢Ë͵½readHost¡£

3. balance=¡°2¡±£¬ËùÓжÁ²Ù×÷¶¼Ëæ»úµÄÔÚwriteHost¡¢readhostÉÏ·Ö·¢

WriteType²ÎÊýÉèÖãº

1. writeType=¡°0¡±, ËùÓÐд²Ù×÷¶¼·¢Ë͵½¿ÉÓõÄwriteHostÉÏ¡£

2. writeType=¡°1¡±£¬ËùÓÐд²Ù×÷¶¼Ëæ»úµÄ·¢Ë͵½readHost¡£

3. writeType=¡°2¡±£¬ËùÓÐд²Ù×÷¶¼Ëæ»úµÄÔÚwriteHost¡¢readhost·ÖÉÏ·¢¡£

¡°readHostÊÇ´ÓÊôÓÚwriteHostµÄ£¬¼´Òâζ×ÅËü´ÓÄǸöwriteHost»ñȡͬ²½Êý¾Ý£¬Òò´Ë£¬µ±ËüËùÊôµÄwriteHostå´»úÁË£¬ÔòËüÒ²²»»áÔÙ²ÎÓëµ½¶Áд·ÖÀëÖÐÀ´£¬¼´¡°²»¹¤×÷ÁË¡±£¬ÕâÊÇÒòΪ´Ëʱ£¬ËüµÄÊý¾ÝÒѾ­¡°²»¿É¿¿¡±ÁË¡£»ùÓÚÕâ¸ö¿¼ÂÇ£¬Ä¿Ç°mycat 1.3ºÍ1.4°æ±¾ÖУ¬ÈôÏëÖ§³ÖMySQLÒ»Ö÷Ò»´ÓµÄ±ê×¼ÅäÖ㬲¢ÇÒÔÚÖ÷½Úµãå´»úµÄÇé¿öÏ£¬´Ó½Úµã»¹ÄܶÁÈ¡Êý¾Ý£¬ÔòÐèÒªÔÚMycatÀïÅäÖÃΪÁ½¸öwriteHost²¢ÉèÖÃbanlance=1¡£¡±

ÉèÖÃ switchType="2" ÓëslaveThreshold="100"

switchType ĿǰÓÐÈýÖÖÑ¡Ôñ£º

-1£º±íʾ²»×Ô¶¯Çл»

1 £ºÄ¬ÈÏÖµ£¬×Ô¶¯Çл»

2 £º»ùÓÚMySQLÖ÷´Óͬ²½µÄ״̬¾ö¶¨ÊÇ·ñÇл»

¡°MycatÐÄÌø¼ì²éÓï¾äÅäÖÃΪ show slave status £¬dataHost É϶¨ÒåÁ½¸öÐÂÊôÐÔ£º switchType="2" ÓëslaveThreshold="100"£¬´ËʱÒâζ×Å¿ªÆôMySQLÖ÷´Ó¸´ÖÆ×´Ì¬°ó¶¨µÄ¶Áд·ÖÀëÓëÇл»»úÖÆ¡£MycatÐÄÌø»úÖÆÍ¨¹ý¼ì²â show slave status ÖÐµÄ "Seconds_Behind_Master", "Slave_IO_Running", "Slave_SQL_Running" Èý¸ö×Ö¶ÎÀ´È·¶¨µ±Ç°Ö÷´Óͬ²½µÄ״̬ÒÔ¼°Seconds_Behind_MasterÖ÷´Ó¸´ÖÆÊ±ÑÓ¡£¡°

¸½£ºCentos.5ϰ²×°mysql

µÚÒ»²½£º²é¿´mysqlÊÇ·ñ°²×°¡£

rpm -qa|grep mysql

µÚ¶þ²½£ºÈç¹ûmysqlµÄ°æ±¾²»ÊÇÏëÒªµÄ°æ±¾¡£ÐèÒª°ÑmysqlÐ¶ÔØ¡£

yum remove mysql mysql-server mysql-libs mysql-common

rm -rf /var/lib/mysql

rm /etc/my.cnf

µÚÈý²½£º°²×°mysql¡£ÐèҪʹÓÃyumÃüÁî°²×°¡£ÔÚ°²×°mysql֮ǰÐèÒª°²×°mysqlµÄÏÂÔØÔ´¡£ÐèÒª´ÓoracleµÄ¹Ù·½ÍøÕ¾ÏÂÔØ¡£

ÏÂÔØmysqlµÄÔ´°ü¡£

ÎÒÃÇÊÇcentos6.4¶ÔÓ¦µÄrpm°üΪ£ºmysql-community-release-el6-5.noarch.rpm

°²×°mysqlÏÂÔØÔ´£º

yum localinstall mysql-community-release-el6-5.noarch.rpm

()´Ë¸½¼þ¿É±£´æ

ÔÚÏß°²×°mysql£º

yum install mysql-community-server

µÚËIJ½£ºÆô¶¯mysql

service mysqld start

µÚÎå²½£ºÐèÒª¸ørootÓû§ÉèÖÃÃÜÂë¡£

/usr/bin/mysqladmin -u root password 'new-password' // ΪrootÕ˺ÅÉèÖÃÃÜÂë

µÚÁù²½£ºÔ¶³ÌÁ¬½ÓÊÚȨ¡£

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'
IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

×¢Ò⣺'myuser'¡¢'mypassword' ÐèÒªÌæ»»³Éʵ¼ÊµÄÓû§ÃûºÍÃÜÂë¡£

   
2222 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

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

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

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