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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
´î½¨¸ß¿ÉÓõÄMongoDB¼¯Èº
 
×÷ÕߣºÑÏÀ½ À´Ô´£ºCSDN ·¢²¼ÓÚ£º2015-05-13
  3876  次浏览      34
 

MongoDB¹«Ë¾Ô­Ãû10gen£¬´´Á¢ÓÚ2007Ä꣬ÔÚ2013ÄêÊÕµ½Ò»±Ê2.31ÒÚÃÀÔªµÄÈÚ×ʺ󣬹«Ë¾ÊÐÖµÆÀ¹ÀÒÑÔöÖÁ10ÒÚÃÀÔª¼¶±ð£¬Õâ¸ö¸ß¶ÈÊÇÖªÃû¿ªÔ´¹«Ë¾Red Hat(´´½¨ÓÚ1993Äê)20ÄêµÄ·Ü¶·³É¹û¡£

¸ßÐÔÄÜ¡¢Ò×À©Õ¹Ò»Ö±ÊÇMongoDBµÄÁ¢×ãÖ®±¾£¬Í¬Ê±¹æ·¶µÄÎĵµºÍ½Ó¿Ú¸üÈÃÆäÉîÊÜÓû§Ï²°®£¬ÕâÒ»µã´Ó·ÖÎöDB-EnginesµÄµÃ·Ö½á¹û²»ÄÑ¿´³ö¡ª¡ª½ö½ö1Äêʱ¼ä£¬MongoDB¾ÍÍê³ÉÁ˵Ú7Ãûµ½µÚÎåÃûµÄÌáÉý£¬µÃ·Ö¾Í´Ó124·ÖÉÏÉýÖÁ214·Ö£¬ÉÏÉýÖµÊǵÚËÄÃûPotgreSQLµÄÁ½±¶£¬Í¬Ê±µ±ÏÂÓëPostgreSQLµÄµÃ·ÖÒ²Ö»Ïà²î16·Ö²»µ½¡£

MongoDBÄÜÒÔÈç´ËËÙ¶È·¢Õ¹£¬ºÜ´ó³Ì¶ÈÉϹé½áÓÚÐí¶à´«Í³¹ØÏµÊý¾Ý¿âÒÑÎÞ·¨Ó¦¶Ôµ±ÏÂÊý¾Ý´¦ÀíµÄÀ©Õ¹ÐÔÐèÇó£¬ËäÈ»ËüÃǾþ­¿¼Ñ飬²¢¾ß±¸²»´íµÄÐÔÄܼ°Îȶ¨ÐÔ¡£È»¶øÇø±ðÓÚÒÔÍùµÄʹÓ÷½·¨£¬Ðí¶àNoSQL¶¼ÓÐ×Å×Ô¼ºµÄÏÞÖÆ£¬´Ó¶øÒ²µ¼ÖÂÁËÈëÃÅÄѵÄÎÊÌâ¡£ÕâÀïÎÒÃÇΪ´ó¼Ò·ÖÏí ÑÏÀ½µÄ²©ÎÄ¡ª¡ªÈçºÎ´î½¨¸ßЧµÄMongoDB¼¯Èº¡£

ÒÔÏÂΪ²©ÎÄ£º

ÉîÈ븱±¾¼¯ÄÚ²¿»úÖÆ

¸ÃϵÁÐÎÄÕµĵÚÒ»²¿·Ö½éÉÜÁ˸±±¾¼¯µÄÅäÖã¬Õâ¸ö²¿·Ö½«ÉîÈëÑо¿Ò»Ï¸±±¾¼¯µÄÄÚ²¿»úÖÆ¡£»¹ÊÇ´ø×Ÿ±±¾¼¯µÄÎÊÌâÀ´¿´°É!

¸±±¾¼¯¹ÊÕÏ×ªÒÆ£¬Ö÷½ÚµãÊÇÈçºÎÑ¡¾ÙµÄ?ÄÜ·ñÊÖ¶¯¸ÉÉæÏ¼Üijһ̨Ö÷½Úµã¡£

¹Ù·½Ëµ¸±±¾¼¯ÊýÁ¿×îºÃÊÇÆæÊý£¬ÎªÊ²Ã´?

MongDB¸±±¾¼¯ÊÇÈçºÎͬ²½µÄ?Èç¹ûͬ²½²»¼°Ê±»á³öÏÖʲôÇé¿ö?»á²»»á³öÏÖ²»Ò»ÖÂÐÔ?

MongDBµÄ¹ÊÕÏ×ªÒÆ»á²»»áÎÞ¹Ê×Ô¶¯·¢Éú?ʲôÌõ¼þ»á´¥·¢?Ƶ·±´¥·¢¿ÉÄÜ»á´øÀ´ÏµÍ³¸ºÔؼÓÖØ?

BullyËã·¨

MongDB¸±±¾¼¯¹ÊÕÏ×ªÒÆ¹¦ÄܵÃÒæÓÚËüµÄÑ¡¾Ù»úÖÆ¡£Ñ¡¾Ù»úÖÆ²ÉÓÃÁËBullyËã·¨£¬¿ÉÒԺܷ½±ã´Ó·Ö²¼Ê½½ÚµãÖÐÑ¡³öÖ÷½Úµã¡£Ò»¸ö·Ö²¼Ê½¼¯Èº¼Ü¹¹ÖÐÒ»°ã¶¼ÓÐÒ»¸öËùνµÄÖ÷½Úµã£¬¿ÉÒÔÓкܶàÓÃ;£¬±ÈÈ绺´æ»úÆ÷½ÚµãÔªÊý¾Ý£¬×÷Ϊ¼¯ÈºµÄ·ÃÎÊÈë¿ÚµÈµÈ¡£Ö÷½ÚµãÓоÍÓаɣ¬ÎÒÃǸÉÂïҪʲôBullyËã·¨?ÒªÃ÷°×Õâ¸öÎÒÃÇÏÈ¿´¿´ÕâÁ½Öּܹ¹£º

Ö¸¶¨Ö÷½ÚµãµÄ¼Ü¹¹£¬ÕâÖּܹ¹Ò»°ã¶¼»áÉêÃ÷Ò»¸ö½ÚµãΪÖ÷½Úµã£¬ÆäËû½Úµã¶¼ÊǴӽڵ㣬ÈçÎÒÃdz£ÓõÄMySQL¾ÍÊÇÕâÑù¡£µ«ÊÇÕâÑù¼Ü¹¹ÎÒÃÇÔÚµÚÒ»½Ú˵ÁËÕû¸ö¼¯ÈºÈç¹ûÖ÷½Úµã¹ÒµôÁ˾͵ÃÊÖ¹¤²Ù×÷£¬ÉϼÜÒ»¸öеÄÖ÷½Úµã»òÕß´Ó´Ó½Úµã»Ö¸´Êý¾Ý£¬²»Ì«Áé»î¡£

²»Ö¸¶¨Ö÷½Úµã£¬¼¯ÈºÖеÄÈÎÒâ½Úµã¶¼¿ÉÒÔ³ÉΪÖ÷½Úµã¡£MongoDBÒ²¾ÍÊDzÉÓÃÕâÖּܹ¹£¬Ò»µ«Ö÷½Úµã¹ÒÁËÆäËû´Ó½Úµã×Ô¶¯½ÓÌæ±ä³ÉÖ÷½Úµã¡£ÈçÏÂͼ£º

ºÃÁË£¬ÎÊÌâ¾ÍÔÚÕâ¸öµØ·½£¬¼ÈÈ»ËùÓнڵ㶼ÊÇÒ»Ñù£¬Ò»µ«Ö÷½Úµã¹ÒÁË£¬Ôõôȷ¶¨ÏÂÒ»¸öÖ÷½Úµã?Õâ¾ÍÊÇBullyËã·¨½â¾öµÄÎÊÌâ¡£

ÄÇʲôÊÇBullyËã·¨£¬BullyËã·¨ÊÇÒ»ÖÖЭµ÷Õß(Ö÷½Úµã)¾ºÑ¡Ëã·¨£¬Ö÷Ҫ˼ÏëÊǼ¯ÈºµÄÿ¸ö³ÉÔ±¶¼¿ÉÒÔÉùÃ÷ËüÊÇÖ÷½Úµã²¢Í¨ÖªÆäËû½Úµã¡£±ðµÄ½Úµã¿ÉÒÔÑ¡Ôñ½ÓÊÜÕâ¸öÉù³Æ»òÊǾܾø²¢½øÈëÖ÷½Úµã¾ºÕù¡£±»ÆäËûËùÓнڵã½ÓÊܵĽڵã²ÅÄܳÉΪÖ÷½Úµã¡£½Úµã°´ÕÕһЩÊôÐÔÀ´ÅжÏË­Ó¦¸Ãʤ³ö¡£Õâ¸öÊôÐÔ¿ÉÒÔÊÇÒ»¸ö¾²Ì¬ID£¬Ò²¿ÉÒÔÊǸüеĶÈÁ¿Ïñ×î½üÒ»´ÎÊÂÎñID(×îеĽڵã»áʤ³ö)¡£ÏêÇéÇë²Î¿¼ NoSQLÊý¾Ý¿â·Ö²¼Ê½Ëã·¨µÄЭµ÷Õß¾ºÑ¡»¹ÓРά»ù°Ù¿ÆµÄ½âÊÍ¡£

Ñ¡¾Ù

ÄÇô£¬MongDBÊÇÔõ½øÐÐÑ¡¾ÙµÄÄØ?¹Ù·½ÕâôÃèÊö£º

We use a consensus protocol to pick a primary. Exact details will be spared here but that basic process is:

¡¡¡¡get maxLocalOpOrdinal from each server.

¡¡¡¡if a majority of servers are not up (from this server¡¯s POV), remain in Secondary mode and stop.

¡¡¡¡if the last op time seems very old, stop and await human intervention.

¡¡¡¡else, using a consensus protocol, pick the server with the highest maxLocalOpOrdinal as the Primary.

´óÖ·­Òë¹ýÀ´ÎªÊ¹ÓÃÒ»ÖÂЭÒéÑ¡ÔñÖ÷½Úµã¡£»ù±¾²½ÖèΪ£º

µÃµ½Ã¿¸ö·þÎñÆ÷½ÚµãµÄ×îºó²Ù×÷ʱ¼ä´Á¡£Ã¿¸öMongDB¶¼ÓÐoplog»úÖÆ¼Ç¼±¾»ú²Ù×÷£¬·½±ãºÍÖ÷·þÎñÆ÷½øÐжԱÈÊý¾ÝÊÇ·ñͬ²½»¹¿ÉÒÔÓÃÓÚ´íÎó»Ö¸´¡£

Èç¹û¼¯ÈºÖд󲿷ַþÎñÆ÷down»úÁË£¬±£Áô»î×ŵĽڵ㶼Ϊsecondary״̬²¢Í£Ö¹£¬²»Ñ¡¾ÙÁË¡£

Èç¹û¼¯ÈºÖÐÑ¡¾Ù³öÀ´µÄÖ÷½Úµã»òÕßËùÓдӽڵã×îºóÒ»´Îͬ²½Ê±¼ä¿´ÆðÀ´ºÜ¾É£¬Í£Ö¹Ñ¡¾ÙµÈ´ýÈËÀ´²Ù×÷¡£

Èç¹ûÉÏÃæ¶¼Ã»ÓÐÎÊÌâ¾ÍÑ¡Ôñ×îºó²Ù×÷ʱ¼ä´Á×îÐÂ(±£Ö¤Êý¾ÝÊÇ×îеÄ)µÄ·þÎñÆ÷½Úµã×÷ΪÖ÷½Úµã¡£

ÕâÀïÌáµ½ÁËÒ»¸öÒ»ÖÂЭÒé(Æäʵ¾ÍÊÇbullyËã·¨)£¬Õâ¸öºÍÊý¾Ý¿âµÄÒ»ÖÂÐÔЭÒ黹ÊÇÓÐÐ©Çø±ð£¬Ò»ÖÂЭÒéÖ÷Ҫǿµ÷µÄÊÇͨ¹ýһЩ»úÖÆ±£Ö¤´ó¼Ò´ï³É¹²Ê¶;¶øÒ»ÖÂÐÔЭÒéÇ¿µ÷µÄÊDzÙ×÷µÄ˳ÐòÒ»ÖÂÐÔ£¬±ÈÈçͬʱ¶Áдһ¸öÊý¾Ý»á²»»á³öÏÖÔàÊý¾Ý¡£Ò»ÖÂЭÒéÔÚ·Ö²¼Ê½ÀïÓÐÒ»¸ö¾­µäµÄËã·¨½Ð¡°PaxosËã·¨¡±£¬ºóÐøÔÙ½éÉÜ¡£

ÉÏÃæÓиöÎÊÌ⣬¾ÍÊÇËùÓдӽڵãµÄ×îºó²Ù×÷ʱ¼ä¶¼ÊÇÒ»ÑùÔõô°ì?¾ÍÊÇË­ÏȳÉΪÖ÷½ÚµãµÄʱ¼ä×î¿ì¾Íѡ˭¡£

Ñ¡¾Ù´¥·¢Ìõ¼þ

Ñ¡¾Ù²»ÊÇʲôʱ¿Ì¶¼»á±»´¥·¢µÄ£¬ÓÐÒÔÏÂÇé¿ö¿ÉÒÔ´¥·¢¡£

³õʼ»¯Ò»¸ö¸±±¾¼¯Ê±¡£

¸±±¾¼¯ºÍÖ÷½Úµã¶Ï¿ªÁ¬½Ó£¬¿ÉÄÜÊÇÍøÂçÎÊÌâ¡£

Ö÷½Úµã¹Òµô¡£

Ñ¡¾Ù»¹ÓиöǰÌáÌõ¼þ£¬²ÎÓëÑ¡¾ÙµÄ½ÚµãÊýÁ¿±ØÐë´óÓÚ¸±±¾¼¯×ܽڵãÊýÁ¿µÄÒ»°ë£¬Èç¹ûÒѾ­Ð¡ÓÚÒ»°ëÁËËùÓнڵ㱣³ÖÖ»¶Á״̬¡£ÈÕÖ¾½«»á³öÏÖ£º

can't see a majority of the set, relinquishing primary

1. Ö÷½Úµã¹ÒµôÄÜ·ñÈËΪ¸ÉÔ¤?´ð°¸Êǿ϶¨µÄ¡£

¿ÉÒÔͨ¹ýreplSetStepDownÃüÁîϼÜÖ÷½Úµã¡£Õâ¸öÃüÁî¿ÉÒԵǼÖ÷½ÚµãʹÓÃ

db.adminCommand({replSetStepDown : 1})

Èç¹ûɱ²»µô¿ÉÒÔʹÓÃÇ¿ÖÆ¿ª¹Ø

db.adminCommand({replSetStepDown : 1, force : true})

»òÕßʹÓà rs.stepDown(120)Ò²¿ÉÒԴﵽͬÑùµÄЧ¹û£¬ÖмäµÄÊý×ÖÖ¸²»ÄÜÔÚÍ£Ö¹·þÎñÕâ¶Îʱ¼ä³ÉΪÖ÷½Úµã£¬µ¥Î»ÎªÃë¡£

2. ÉèÖÃÒ»¸ö´Ó½ÚµãÓбÈÖ÷½ÚµãÓиü¸ßµÄÓÅÏȼ¶¡£

ÏȲ鿴µ±Ç°¼¯ÈºÖÐÓÅÏȼ¶£¬Í¨¹ýrs.conf()ÃüÁĬÈÏÓÅÏȼ¶Îª1ÊDz»ÏÔʾµÄ£¬ÕâÀï±êʾ³öÀ´

[java] view plaincopyrs.conf();

¡¡¡¡[java] view plaincopy{

¡¡¡¡"_id" : "rs0",
¡¡¡¡"version" : 9,
¡¡¡¡"members" : [
¡¡¡¡{
¡¡¡¡"_id" : 0,
¡¡¡¡"host" : "192.168.1.136:27017" },
¡¡¡¡{
¡¡¡¡"_id" : 1,
¡¡¡¡"host" : "192.168.1.137:27017" },
¡¡¡¡{
¡¡¡¡"_id" : 2,
¡¡¡¡"host" : "192.168.1.138:27017" }
¡¡¡¡]
¡¡¡¡}

Èç¹û²»ÏëÈÃÒ»¸ö´Ó½Úµã³ÉΪÖ÷½Úµã¿ÉÒÔÔõô²Ù×÷?

ʹÓÃrs.freeze(120)¶³½áÖ¸¶¨µÄÃëÊý²»ÄÜÑ¡¾Ù³ÉΪÖ÷½Úµã¡£

°´ÕÕÉÏһƪÉèÖýڵãΪNon-VotingÀàÐÍ¡£

µ±Ö÷½Úµã²»Äܺʹ󲿷ִӽڵãͨѶ¡£°ÑÖ÷»ú½ÚµãÍøÏ߰εô£¬ºÙºÙ£º)

ÓÅÏȼ¶»¹¿ÉÒÔÕâôÓã¬Èç¹ûÎÒÃDz»ÏëÉèÖÃʲôhidden½Úµã£¬¾ÍÓÃsecondaryÀàÐÍ×÷Ϊ±¸·Ý½ÚµãÒ²²»ÏëÈÃËû³ÉΪÖ÷½ÚµãÔõô°ì?¿´ÏÂͼ£¬¹²Èý¸ö½Úµã·Ö²¼ÔÚÁ½¸öÊý¾ÝÖÐÐÄ£¬Êý¾ÝÖÐÐÄ2µÄ½ÚµãÉèÖÃÓÅÏȼ¶Îª0²»ÄܳÉΪÖ÷½Úµã£¬µ«ÊÇ¿ÉÒÔ²ÎÓëÑ¡¾Ù¡¢Êý¾Ý¸´ÖÆ¡£¼Ü¹¹»¹ÊǺÜÁé»î°É!

ÆæÊý

¹Ù·½ÍƼö¸±±¾¼¯µÄ³ÉÔ±ÊýÁ¿ÎªÆæÊý£¬×î¶à12¸ö¸±±¾¼¯½Úµã£¬×î¶à7¸ö½Úµã²ÎÓëÑ¡¾Ù¡£×î¶à12¸ö¸±±¾¼¯½ÚµãÊÇÒòΪû±ØÒªÒ»·ÝÊý¾Ý¸´ÖÆÄÇô¶à·Ý£¬±¸·ÝÌ«¶à·´¶øÔö¼ÓÁËÍøÂç¸ºÔØºÍÍÏÂýÁ˼¯ÈºÐÔÄÜ;¶ø×î¶à7¸ö½Úµã²ÎÓëÑ¡¾ÙÊÇÒòΪÄÚ²¿Ñ¡¾Ù»úÖÆ½ÚµãÊýÁ¿Ì«¶à¾Í»áµ¼ÖÂ1·ÖÖÓÄÚ»¹Ñ¡²»³öÖ÷½Úµã£¬·²ÊÂÖ»ÒªÊʵ±¾ÍºÃ¡£Õâ¸ö¡°12¡±¡¢¡°7¡±Êý×Ö»¹ºÃ£¬Í¨¹ýËûÃǹٷ½¾­¹ýÐÔÄܲâÊÔ¶¨Òå³öÀ´¿ÉÒÔÀí½â¡£¾ßÌ廹ÓÐÄÄЩÏÞÖÆ²Î¿¼¹Ù·½Îĵµ ¡¶ MongoDB Limits and Thresholds ¡·¡£ µ«ÊÇÕâÀïһֱû¸ã¶®Õû¸ö¼¯ÈºÎªÊ²Ã´ÒªÆæÊý£¬Í¨¹ý²âÊÔ¼¯ÈºµÄÊýÁ¿ÎªÅ¼ÊýÒ²ÊÇ¿ÉÒÔÔËÐеģ¬²Î¿¼Õâ¸öÎÄÕÂhttp://www.itpub.net/thread-1740982-1-1.html¡£ºóÀ´Í»È»¿´ÁËһƪ stackoverflowµÄÎÄÕÂÖÕÓÚ¶ÙÎòÁË£¬mongodb±¾ÉíÉè¼ÆµÄ¾ÍÊÇÒ»¸ö¿ÉÒÔ¿çIDCµÄ·Ö²¼Ê½Êý¾Ý¿â£¬ËùÒÔÎÒÃÇÓ¦¸Ã°ÑËü·Åµ½´óµÄ»·¾³À´¿´¡£

¼ÙÉèËĸö½Úµã±»·Ö³ÉÁ½¸öIDC£¬Ã¿¸öIDC¸÷Á½Ì¨»úÆ÷£¬ÈçÏÂͼ¡£µ«ÕâÑù¾Í³öÏÖÁ˸öÎÊÌ⣬Èç¹ûÁ½¸öIDCÍøÂç¶Ïµô£¬ÕâÔÚ¹ãÓòÍøÉϺÜÈÝÒ׳öÏÖµÄÎÊÌ⣬ÔÚÉÏÃæÑ¡¾ÙÖÐÌáµ½Ö»ÒªÖ÷½ÚµãºÍ¼¯ÈºÖд󲿷ֽڵã¶Ï¿ªÁ´½Ó¾Í»á¿ªÊ¼Ò»ÂÖеÄÑ¡¾Ù²Ù×÷£¬²»¹ýMongoDB¸±±¾¼¯Á½±ß¶¼Ö»ÓÐÁ½¸ö½Úµã£¬µ«ÊÇÑ¡¾ÙÒªÇó²ÎÓëµÄ½ÚµãÊýÁ¿±ØÐë´óÓÚÒ»°ë£¬ÕâÑùËùÓм¯Èº½Úµã¶¼Ã»°ì·¨²ÎÓëÑ¡¾Ù£¬Ö»»á´¦ÓÚÖ»¶Á״̬¡£µ«ÊÇÈç¹ûÊÇÆæÊý½Úµã¾Í²»»á³öÏÖÕâ¸öÎÊÌ⣬¼ÙÉè3¸ö½Úµã£¬Ö»ÒªÓÐ2¸ö½Úµã»îמͿÉÒÔÑ¡¾Ù£¬5¸öÖеÄ3¸ö£¬7¸öÖеÄ4¸ö¡­¡­

ÐÄÌø

×ÛÉÏËùÊö£¬Õû¸ö¼¯ÈºÐèÒª±£³ÖÒ»¶¨µÄͨÐŲÅÄÜÖªµÀÄÄЩ½Úµã»î×ÅÄÄЩ½Úµã¹Òµô¡£MongoDB½Úµã»áÏò¸±±¾¼¯ÖÐµÄÆäËû½ÚµãÿÁ½Ãë¾Í»á·¢ËÍÒ»´Îpings°ü£¬Èç¹ûÆäËû½ÚµãÔÚ10ÃëÖÓÖ®ÄÚûÓзµ»Ø¾Í±êʾΪ²»ÄÜ·ÃÎÊ¡£Ã¿¸ö½ÚµãÄÚ²¿¶¼»áά»¤Ò»¸ö״̬ӳÉä±í£¬±íÃ÷µ±Ç°Ã¿¸ö½ÚµãÊÇʲô½ÇÉ«¡¢ÈÕ־ʱ¼ä´ÁµÈ¹Ø¼üÐÅÏ¢¡£Èç¹ûÊÇÖ÷½Úµã£¬³ýÁËά»¤Ó³Éä±íÍ⻹ÐèÒª¼ì²é×Ô¼ºÄÜ·ñºÍ¼¯ÈºÖÐÄڴ󲿷ֽڵãͨѶ£¬Èç¹û²»ÄÜÔò°Ñ×Ô¼º½µ¼¶ÎªsecondaryÖ»¶Á½Úµã¡£

ͬ²½

¸±±¾¼¯Í¬²½·ÖΪ³õʼ»¯Í¬²½ºÍkeep¸´ÖÆ¡£³õʼ»¯Í¬²½Ö¸È«Á¿´ÓÖ÷½Úµãͬ²½Êý¾Ý£¬Èç¹ûÖ÷½ÚµãÊý¾ÝÁ¿±È½Ï´óͬ²½Ê±¼ä»á±È½Ï³¤¡£¶økeep¸´ÖÆÖ¸³õʼ»¯Í¬²½¹ýºó£¬½ÚµãÖ®¼äµÄʵʱͬ²½Ò»°ãÊÇÔöÁ¿Í¬²½¡£³õʼ»¯Í¬²½²»Ö»ÊÇÔÚµÚÒ»´Î²Å»á±»´¦·££¬ÓÐÒÔÏÂÁ½ÖÖÇé¿ö»á´¥·¢£º

1.secondaryµÚÒ»´Î¼ÓÈ룬Õâ¸öÊǿ϶¨µÄ¡£

2.secondaryÂäºóµÄÊý¾ÝÁ¿³¬¹ýÁËoplogµÄ´óС£¬ÕâÑùÒ²»á±»È«Á¿¸´ÖÆ¡£

ÄÇʲôÊÇoplogµÄ´óС?Ç°ÃæËµ¹ýoplog±£´æÁËÊý¾ÝµÄ²Ù×÷¼Ç¼£¬secondary¸´ÖÆoplog²¢°ÑÀïÃæµÄ²Ù×÷ÔÚsecondaryÖ´ÐÐÒ»±é¡£µ«ÊÇoplogÒ²ÊÇmongodbµÄÒ»¸ö¼¯ºÏ£¬±£´æÔÚlocal.oplog.rsÀï;È»¶øÕâ¸öoplogÊÇÒ»¸öcapped collection£¬Ò²¾ÍÊǹ̶¨´óСµÄ¼¯ºÏ£¬ÐÂÊý¾Ý¼ÓÈ볬¹ý¼¯ºÏµÄ´óС»á¸²¸Ç£¬ËùÒÔÕâÀïÐèҪעÒ⣬¿çIDCµÄ¸´ÖÆÒªÉèÖúÏÊʵÄoplogSize£¬±ÜÃâÔÚÉú²ú»·¾³¾­³£²úÉúÈ«Á¿¸´ÖÆ¡£oplogSize ¿ÉÒÔͨ¹ý¨CoplogSizeÉèÖôóС£¬¶ÔÓÚLinux ºÍWindows 64룬oplog sizeĬÈÏΪʣÓà´ÅÅ̿ռäµÄ5%¡£

ͬ²½Ò²²¢·ÇÖ»ÄÜ´ÓÖ÷½Úµãͬ²½£¬¼ÙÉ輯ȺÖÐ3¸ö½Úµã£¬½Úµã1ÊÇÖ÷½ÚµãÔÚIDC1£¬½Úµã2¡¢½Úµã3ÔÚIDC2£¬³õʼ»¯½Úµã2¡¢½Úµã3»á´Ó½Úµã1ͬ²½Êý¾Ý¡£ºóÃæ½Úµã2¡¢½Úµã3»áʹÓþͽüÔ­Ôò´Óµ±Ç°IDCµÄ¸±±¾¼¯ÖнøÐи´ÖÆ£¬Ö»ÒªÓÐÒ»¸ö½Úµã´ÓIDC1µÄ½Úµã1¸´ÖÆÊý¾Ý¡£

ÉèÖÃͬ²½»¹Òª×¢ÒâÒÔϼ¸µã£º

secondary²»»á´ÓdelayedºÍhidden³ÉÔ±Éϸ´ÖÆÊý¾Ý¡£

Ö»ÒªÊÇÐèҪͬ²½£¬Á½¸ö³ÉÔ±µÄbuildindexes±ØÐëÒªÏàͬÎÞÂÛÊÇ·ñÊÇtrueºÍfalse¡£buildindexesÖ÷ÒªÓÃÀ´ÉèÖÃÊÇ·ñÕâ¸ö½ÚµãµÄÊý¾ÝÓÃÓÚ²éѯ£¬Ä¬ÈÏΪtrue¡£

Èç¹ûͬ²½²Ù×÷30Ã붼ûÓз´Ó¦£¬Ôò»áÖØÐÂÑ¡ÔñÒ»¸ö½Úµã½øÐÐͬ²½¡£

µ½´Ë£¬±¾ÕÂÇ°ÃæÌáµ½µÄÎÊÌâÈ«²¿½â¾öÁË£¬²»µÃ²»ËµMongoDBµÄÉè¼Æ»¹ÕæÊÇÇ¿´ó!

ºóÐø¼ÌÐø½â¾öÉÏÒ»½ÚÕ⼸¸öÎÊÌ⣺

Ö÷½Úµã¹ÒÁËÄÜ·ñ×Ô¶¯Çл»Á¬½Ó?ĿǰÐèÒªÊÖ¹¤Çл»¡£

Ö÷½ÚµãµÄ¶ÁдѹÁ¦¹ý´óÈçºÎ½â¾ö?

ÔÚϵͳÔçÆÚ£¬Êý¾ÝÁ¿»¹Ð¡µÄʱºò²»»áÒýÆðÌ«´óµÄÎÊÌ⣬µ«ÊÇËæ×ÅÊý¾ÝÁ¿³ÖÐøÔö¶à£¬ºóÐø³ÙÔç»á³öÏÖһ̨»úÆ÷Ó²¼þÆ¿¾±ÎÊÌâµÄ¡£¶øMongoDBÖ÷´òµÄ¾ÍÊǺ£Á¿Êý¾Ý¼Ü¹¹£¬Ëû²»Äܽâ¾öº£Á¿Êý¾ÝÔõôÐÐ!¡°·ÖƬ¡±¾ÍÓÃÕâ¸öÀ´½â¾öÕâ¸öÎÊÌâ¡£

´«Í³Êý¾Ý¿âÔõô×öº£Á¿Êý¾Ý¶Áд?Æäʵһ¾ä»°¸ÅÀ¨£º·Ö¶øÖÎÖ®¡£ÉÏͼ¿´¿´¾ÍÇå³þÁË£¬ÈçÏÂTaoBaoÔÀÐñÇ¿Ìáµ½µÄ¼Ü¹¹Í¼£º

ÉÏͼÖÐÓиöTDDL£¬ÊÇTaoBaoµÄÒ»¸öÊý¾Ý·ÃÎʲã×é¼þ£¬ËûÖ÷ÒªµÄ×÷ÓÃÊÇSQL½âÎö¡¢Â·ÓÉ´¦Àí¡£¸ù¾ÝÓ¦ÓõÄÇëÇóµÄ¹¦ÄܽâÎöµ±Ç°·ÃÎʵÄsqlÅжÏÊÇÔÚÄĸöÒµÎñÊý¾Ý¿â¡¢Äĸö±í·ÃÎʲéѯ²¢·µ»ØÊý¾Ý½á¹û¡£¾ßÌåÈçͼ£º

˵ÁËÕâô¶à´«Í³Êý¾Ý¿âµÄ¼Ü¹¹£¬ÄÇNoSQLÔõôȥ×öµ½ÁËÕâÐ©ÄØ?MySQLÒª×öµ½×Ô¶¯À©Õ¹ÐèÒª¼ÓÒ»¸öÊý¾Ý·ÃÎʲãÓóÌÐòÈ¥À©Õ¹£¬Êý¾Ý¿âµÄÔö¼Ó¡¢É¾³ý¡¢±¸·Ý»¹ÐèÒª³ÌÐòÈ¥¿ØÖÆ¡£Ò»µ«Êý¾Ý¿âµÄ½ÚµãÒ»¶à£¬ÒªÎ¬»¤ÆðÀ´Ò²ÊǷdz£Í·Ì۵ġ£²»¹ýMongoDBËùÓеÄÕâÒ»ÇÐͨ¹ýËû×Ô¼ºµÄÄÚ²¿»úÖÆ¾Í¿ÉÒԸ㶨!»¹ÊÇÉÏͼ¿´¿´MongoDBͨ¹ýÄÄЩ»úÖÆÊµÏÖ·ÓÉ¡¢·ÖƬ£º

´ÓͼÖпÉÒÔ¿´µ½ÓÐËĸö×é¼þ£ºmongos¡¢config server¡¢shard¡¢replica set¡£

mongos£¬Êý¾Ý¿â¼¯ÈºÇëÇóµÄÈë¿Ú£¬ËùÓеÄÇëÇó¶¼Í¨¹ýmongos½øÐÐЭµ÷£¬²»ÐèÒªÔÚÓ¦ÓóÌÐòÌí¼ÓÒ»¸ö·ÓÉÑ¡ÔñÆ÷£¬mongos×Ô¼º¾ÍÊÇÒ»¸öÇëÇó·Ö·¢ÖÐÐÄ£¬Ëü¸ºÔð°Ñ¶ÔÓ¦µÄÊý¾ÝÇëÇóÇëÇóת·¢µ½¶ÔÓ¦µÄshard·þÎñÆ÷ÉÏ¡£ÔÚÉú²ú»·¾³Í¨³£Óжàmongos×÷ΪÇëÇóµÄÈë¿Ú£¬·ÀÖ¹ÆäÖÐÒ»¸ö¹ÒµôËùÓеÄmongodbÇëÇó¶¼Ã»Óа취²Ù×÷¡£

config server£¬¹ËÃû˼ÒåΪÅäÖ÷þÎñÆ÷£¬´æ´¢ËùÓÐÊý¾Ý¿âÔªÐÅÏ¢(·ÓÉ¡¢·ÖƬ)µÄÅäÖá£mongos±¾ÉíûÓÐÎïÀí´æ´¢·ÖƬ·þÎñÆ÷ºÍÊý¾Ý·ÓÉÐÅÏ¢£¬Ö»ÊÇ»º´æÔÚÄÚ´æÀÅäÖ÷þÎñÆ÷Ôòʵ¼Ê´æ´¢ÕâЩÊý¾Ý¡£mongosµÚÒ»´ÎÆô¶¯»òÕ߹صôÖØÆô¾Í»á´Ó config server ¼ÓÔØÅäÖÃÐÅÏ¢£¬ÒÔºóÈç¹ûÅäÖ÷þÎñÆ÷ÐÅÏ¢±ä»¯»á֪ͨµ½ËùÓÐµÄ mongos ¸üÐÂ×Ô¼ºµÄ״̬£¬ÕâÑù mongos ¾ÍÄܼÌÐø×¼È·Â·ÓÉ¡£ÔÚÉú²ú»·¾³Í¨³£Óжà¸ö config server ÅäÖ÷þÎñÆ÷£¬ÒòΪËü´æ´¢ÁË·ÖÆ¬Â·ÓɵÄÔªÊý¾Ý£¬Õâ¸ö¿É²»ÄܶªÊ§!¾ÍËã¹ÒµôÆäÖÐһ̨£¬Ö»Òª»¹Óдæ»õ£¬ mongodb¼¯Èº¾Í²»»á¹Òµô¡£

shard£¬Õâ¾ÍÊÇ´«ËµÖÐµÄ·ÖÆ¬ÁË¡£ÉÏÃæÌáµ½Ò»¸ö»úÆ÷¾ÍËãÄÜÁ¦ÔÙ´óÒ²ÓÐÌ컨°å£¬¾ÍÏñ¾ü¶Ó´òÕÌÒ»Ñù£¬Ò»¸öÈËÔÙÀ÷º¦ºÈѪƿҲƴ²»¹ý¶Ô·½µÄÒ»¸öʦ¡£Ë×»°ËµÈý¸ö³ôƤ½³¶¥¸öÖî¸ðÁÁ£¬Õâ¸öʱºòÍŶӵÄÁ¦Á¿¾Í͹ÏÔ³öÀ´ÁË¡£ÔÚ»¥ÁªÍøÒ²ÊÇÕâÑù£¬Ò»Ì¨ÆÕͨµÄ»úÆ÷×ö²»Á˵Ķą̀»úÆ÷À´×ö£¬ÈçÏÂͼ£º

һ̨»úÆ÷µÄÒ»¸öÊý¾Ý±í Collection1 ´æ´¢ÁË 1T Êý¾Ý£¬Ñ¹Á¦Ì«´óÁË!ÔÚ·Ö¸ø4¸ö»úÆ÷ºó£¬Ã¿¸ö»úÆ÷¶¼ÊÇ256G£¬Ôò·Ö̯Á˼¯ÖÐÔÚһ̨»úÆ÷µÄѹÁ¦¡£Ò²ÐíÓÐÈËÎÊһ̨»úÆ÷Ó²Å̼ӴóÒ»µã²»¾Í¿ÉÒÔÁË£¬ÎªÊ²Ã´Òª·Ö¸øËĄ̈»úÆ÷ÄØ?²»Òª¹âÏëµ½´æ´¢¿Õ¼ä£¬Êµ¼ÊÔËÐеÄÊý¾Ý¿â»¹ÓÐÓ²Å̵ĶÁд¡¢ÍøÂçµÄIO¡¢CPUºÍÄÚ´æµÄÆ¿¾±¡£ÔÚmongodb¼¯ÈºÖ»ÒªÉèÖúÃÁË·ÖÆ¬¹æÔò£¬Í¨¹ýmongos²Ù×÷Êý¾Ý¿â¾ÍÄÜ×Ô¶¯°Ñ¶ÔÓ¦µÄÊý¾Ý²Ù×÷ÇëÇóת·¢µ½¶ÔÓ¦µÄ·ÖƬ»úÆ÷ÉÏ¡£ÔÚÉú²ú»·¾³ÖÐ·ÖÆ¬µÄƬ¼ü¿ÉÒªºÃºÃÉèÖã¬Õâ¸öÓ°Ïìµ½ÁËÔõô°ÑÊý¾Ý¾ùÔÈ·Öµ½¶à¸ö·ÖƬ»úÆ÷ÉÏ£¬²»Òª³öÏÖÆäÖÐһ̨»úÆ÷·ÖÁË1T£¬ÆäËû»úÆ÷ûÓзֵ½µÄÇé¿ö£¬ÕâÑù»¹²»Èç²»·ÖƬ!

replica set£¬ÉÏÁ½½ÚÒѾ­Ïêϸ½²¹ýÁËÕâ¸ö¶«¶«£¬ÔõôÕâÀïÓÖÀ´´ÕÈÈÄÖ!ÆäʵÉÏͼ4¸ö·ÖƬÈç¹ûûÓÐ replica set ÊǸö²»ÍêÕû¼Ü¹¹£¬¼ÙÉèÆäÖеÄÒ»¸ö·ÖƬ¹ÒµôÄÇËÄ·ÖÖ®Ò»µÄÊý¾Ý¾Í¶ªÊ§ÁË£¬ËùÒÔÔڸ߿ÉÓÃÐ﵀ᅮ¬¼Ü¹¹»¹ÐèÒª¶ÔÓÚÿһ¸ö·ÖƬ¹¹½¨ replica set ¸±±¾¼¯±£Ö¤·ÖƬµÄ¿É¿¿ÐÔ¡£Éú²ú»·¾³Í¨³£ÊÇ 2¸ö¸±±¾ + 1¸öÖٲá£

˵ÁËÕâô¶à£¬»¹ÊÇÀ´ÊµÕ½Ò»ÏÂÈçºÎ´î½¨¸ß¿ÉÓõÄmongodb¼¯Èº£º

Ê×ÏÈÈ·¶¨¸÷¸ö×é¼þµÄÊýÁ¿£¬mongos 3¸ö£¬ config server 3¸ö£¬Êý¾Ý·Ö3Ƭ shard server 3¸ö£¬Ã¿¸öshard ÓÐÒ»¸ö¸±±¾Ò»¸öÖÙ²ÃÒ²¾ÍÊÇ 3 * 2 = 6 ¸ö£¬×ܹ²ÐèÒª²¿Êð15¸öʵÀý¡£ÕâЩʵÀý¿ÉÒÔ²¿ÊðÔÚ¶ÀÁ¢»úÆ÷Ò²¿ÉÒÔ²¿ÊðÔÚһ̨»úÆ÷£¬ÎÒÃÇÕâÀï²âÊÔ×ÊÔ´ÓÐÏÞ£¬Ö»×¼±¸ÁË 3̨»úÆ÷£¬ÔÚͬһ̨»úÆ÷Ö»Òª¶Ë¿Ú²»Í¬¾Í¿ÉÒÔ£¬¿´Ò»ÏÂÎïÀí²¿Êðͼ£º

¼Ü¹¹´îºÃÁË£¬°²×°Èí¼þ!

1. ×¼±¸»úÆ÷£¬IP·Ö±ðÉèÖÃΪ£º 192.168.0.136¡¢192.168.0.137¡¢192.168.0.138¡£

2. ·Ö±ðÔÚÿ̨»úÆ÷ÉϽ¨Á¢mongodb·ÖƬ¶ÔÓ¦²âÊÔÎļþ¼Ð¡£

#´æ·ÅmongodbÊý¾ÝÎļþ

¡¡¡¡mkdir -p /data/mongodbtest

¡¡¡¡#½øÈëmongodbÎļþ¼Ð

¡¡¡¡cd /data/mongodbtest

3. ÏÂÔØmongodbµÄ°²×°³ÌÐò°ü

wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.8.tgz

¡¡¡¡#½âѹÏÂÔØµÄѹËõ°ü

¡¡¡¡tar xvzf mongodb-linux-x86_64-2.4.8.tgz

4. ·Ö±ðÔÚÿ̨»úÆ÷½¨Á¢mongos ¡¢config ¡¢ shard1 ¡¢shard2¡¢shard3 Îå¸öĿ¼¡£

ÒòΪmongos²»´æ´¢Êý¾Ý£¬Ö»ÐèÒª½¨Á¢ÈÕÖ¾ÎļþĿ¼¼´¿É¡£

#½¨Á¢mongosĿ¼

¡¡¡¡mkdir -p /data/mongodbtest/mongos/log

¡¡¡¡#½¨Á¢config server Êý¾ÝÎļþ´æ·ÅĿ¼

¡¡¡¡mkdir -p /data/mongodbtest/config/data

¡¡¡¡#½¨Á¢config server ÈÕÖ¾Îļþ´æ·ÅĿ¼

¡¡¡¡mkdir -p /data/mongodbtest/config/log

¡¡¡¡#½¨Á¢config server ÈÕÖ¾Îļþ´æ·ÅĿ¼

¡¡¡¡mkdir -p /data/mongodbtest/mongos/log

¡¡¡¡#½¨Á¢shard1 Êý¾ÝÎļþ´æ·ÅĿ¼

¡¡¡¡mkdir -p /data/mongodbtest/shard1/data

¡¡¡¡#½¨Á¢shard1 ÈÕÖ¾Îļþ´æ·ÅĿ¼

¡¡¡¡mkdir -p /data/mongodbtest/shard1/log

¡¡¡¡#½¨Á¢shard2 Êý¾ÝÎļþ´æ·ÅĿ¼

¡¡¡¡mkdir -p /data/mongodbtest/shard2/data

¡¡¡¡#½¨Á¢shard2 ÈÕÖ¾Îļþ´æ·ÅĿ¼

¡¡¡¡mkdir -p /data/mongodbtest/shard2/log

¡¡¡¡#½¨Á¢shard3 Êý¾ÝÎļþ´æ·ÅĿ¼

¡¡¡¡mkdir -p /data/mongodbtest/shard3/data

¡¡¡¡#½¨Á¢shard3 ÈÕÖ¾Îļþ´æ·ÅĿ¼

¡¡¡¡mkdir -p /data/mongodbtest/shard3/log

5. ¹æ»®5¸ö×é¼þ¶ÔÓ¦µÄ¶Ë¿ÚºÅ£¬ÓÉÓÚÒ»¸ö»úÆ÷ÐèҪͬʱ²¿Êð mongos¡¢config server ¡¢shard1¡¢shard2¡¢shard3£¬ËùÒÔÐèÒªÓö˿ڽøÐÐÇø·Ö¡£

Õâ¸ö¶Ë¿Ú¿ÉÒÔ×ÔÓɶ¨Ò壬ÔÚ±¾ÎÄ mongosΪ 20000£¬ config server Ϊ 21000£¬ shard1Ϊ 22001 £¬ shard2Ϊ22002£¬ shard3Ϊ22003.

6. ÔÚÿһ̨·þÎñÆ÷·Ö±ðÆô¶¯ÅäÖ÷þÎñÆ÷¡£

/data/mongodbtest/mongodb-linux-x86_64-2.4.8/bin/mongod
 --configsvr --dbpath /data/mongodbtest/config/data --port 21000 
--logpath /data/mongodbtest/config/log/config.log --fork

7. ÔÚÿһ̨·þÎñÆ÷·Ö±ðÆô¶¯mongos·þÎñÆ÷¡£

/data/mongodbtest/mongodb-linux-x86_64-2.4.8/bin/mongos --configdb
 192.168.0.136:21000,192.168.0.137:21000,192.168.0.138:21000 --port
20000 --logpath /data/mongodbtest/mongos/log/mongos.log --fork

8. ÅäÖø÷¸ö·ÖƬµÄ¸±±¾¼¯¡£

#ÔÚÿ¸ö»úÆ÷Àï·Ö±ðÉèÖÃ·ÖÆ¬1·þÎñÆ÷¼°¸±±¾¼¯shard1
/data/mongodbtest/mongodb-linux-x86_64-2.4.8/bin/mongod 
--shardsvr --replSet shard1 --port 22001 --dbpath /data/mongodbtest/shard1/data 
--logpath /data/mongodbtest/shard1/log/shard1.log --fork --nojournal --oplogSize 10

ΪÁË¿ìËÙÆô¶¯²¢½ÚÔ¼²âÊÔ»·¾³´æ´¢¿Õ¼ä£¬ÕâÀï¼ÓÉÏ nojournal ÊÇΪÁ˹رÕÈÕÖ¾ÐÅÏ¢£¬ÔÚÎÒÃǵIJâÊÔ»·¾³²»ÐèÒª³õʼ»¯Õâô´óµÄredoÈÕÖ¾¡£Í¬ÑùÉèÖà oplogsizeÊÇΪÁ˽µµÍ local ÎļþµÄ´óС£¬oplogÊÇÒ»¸ö¹Ì¶¨³¤¶ÈµÄ capped collection,Ëü´æÔÚÓÚ¡±local¡±Êý¾Ý¿âÖÐ,ÓÃÓڼǼReplica Sets²Ù×÷ÈÕÖ¾¡£×¢Ò⣬ÕâÀïµÄÉèÖÃÊÇΪÁ˲âÊÔ!

#ÔÚÿ¸ö»úÆ÷Àï·Ö±ðÉèÖÃ·ÖÆ¬2·þÎñÆ÷¼°¸±±¾¼¯shard2
/data/mongodbtest/mongodb-linux-x86_64-2.4.8/bin/mongod 
--shardsvr --replSet shard2 --port 22002 --dbpath /data/mongodbtest/shard2/data 
--logpath /data/mongodbtest/shard2/log/shard2.log --fork --nojournal --oplogSize 10
#ÔÚÿ¸ö»úÆ÷Àï·Ö±ðÉèÖÃ·ÖÆ¬3·þÎñÆ÷¼°¸±±¾¼¯shard3
/data/mongodbtest/mongodb-linux-x86_64-2.4.8/bin/mongod --shardsvr
 --replSet shard3 --port 22003 --dbpath /data/mongodbtest/shard3/data 
--logpath /data/mongodbtest/shard3/log/shard3.log --fork --nojournal --oplogSize 10

·Ö±ð¶Ôÿ¸ö·ÖƬÅäÖø±±¾¼¯£¬ÉîÈëÁ˽⸱±¾¼¯²Î¿¼±¾ÏµÁÐǰ¼¸ÆªÎÄÕ¡£

ÈÎÒâµÇ½һ¸ö»úÆ÷£¬±ÈÈçµÇ½192.168.0.136£¬Á¬½ÓMongoDB

#ÉèÖõÚÒ»¸ö·ÖƬ¸±±¾¼¯

¡¡¡¡/data/mongodbtest/mongodb-linux-x86_64-2.4.8/bin/mongo 127.0.0.1:22001

¡¡¡¡#ʹÓÃadminÊý¾Ý¿â

¡¡¡¡use admin

¡¡¡¡#¶¨Ò帱±¾¼¯ÅäÖÃ

¡¡¡¡config = { _id:"shard1", members:[
¡¡¡¡{_id:0,host:"192.168.0.136:22001"},
¡¡¡¡{_id:1,host:"192.168.0.137:22001"},
¡¡¡¡{_id:2,host:"192.168.0.138:22001",arbiterOnly:true}
¡¡¡¡]
¡¡¡¡}
¡¡¡¡#³õʼ»¯¸±±¾¼¯ÅäÖÃ
¡¡¡¡rs.initiate(config);
¡¡¡¡#ÉèÖõڶþ¸ö·ÖƬ¸±±¾¼¯
¡¡¡¡/data/mongodbtest/mongodb-linux-x86_64-2.4.8/bin/mongo 127.0.0.1:22002
¡¡¡¡#ʹÓÃadminÊý¾Ý¿â
¡¡¡¡use admin
¡¡¡¡#¶¨Ò帱±¾¼¯ÅäÖÃ
¡¡¡¡config = { _id:"shard2", members:[
¡¡¡¡{_id:0,host:"192.168.0.136:22002"},
¡¡¡¡{_id:1,host:"192.168.0.137:22002"},
¡¡¡¡{_id:2,host:"192.168.0.138:22002",arbiterOnly:true}
¡¡¡¡]
¡¡¡¡}
¡¡¡¡#³õʼ»¯¸±±¾¼¯ÅäÖÃ
¡¡¡¡rs.initiate(config);
¡¡¡¡#ÉèÖõÚÈý¸ö·ÖƬ¸±±¾¼¯
¡¡¡¡/data/mongodbtest/mongodb-linux-x86_64-2.4.8/bin/mongo 127.0.0.1:22003
¡¡¡¡#ʹÓÃadminÊý¾Ý¿â
¡¡¡¡use admin
¡¡¡¡#¶¨Ò帱±¾¼¯ÅäÖÃ
¡¡¡¡config = { _id:"shard3", members:[
¡¡¡¡{_id:0,host:"192.168.0.136:22003"},
¡¡¡¡{_id:1,host:"192.168.0.137:22003"},
¡¡¡¡{_id:2,host:"192.168.0.138:22003",arbiterOnly:true}
¡¡¡¡]
¡¡¡¡}
¡¡¡¡#³õʼ»¯¸±±¾¼¯ÅäÖÃ
¡¡¡¡rs.initiate(config);

9. Ŀǰ´î½¨ÁËmongodbÅäÖ÷þÎñÆ÷¡¢Â·ÓÉ·þÎñÆ÷£¬¸÷¸ö·ÖƬ·þÎñÆ÷£¬²»¹ýÓ¦ÓóÌÐòÁ¬½Óµ½ mongos ·ÓÉ·þÎñÆ÷²¢²»ÄÜʹÓÃ·ÖÆ¬»úÖÆ£¬»¹ÐèÒªÔÚ³ÌÐòÀïÉèÖÃ·ÖÆ¬ÅäÖã¬ÈÃ·ÖÆ¬ÉúЧ¡£

#Á¬½Óµ½mongos /data/mongodbtest/mongodb-linux-x86_64-2.4.8/bin/mongo 127.0.0.1:20000

¡¡¡¡#ʹÓÃadminÊý¾Ý¿â user admin

¡¡¡¡#´®ÁªÂ·ÓÉ·þÎñÆ÷Óë·ÖÅ丱±¾¼¯1

¡¡¡¡db.runCommand( { addshard : "shard1/192.168.0.136:22001,192.168.0.137:22001,192.168.0.138:22001"});

ÈçÀïshardÊǵ¥Ì¨·þÎñÆ÷£¬Óà db.runCommand( { addshard : ¡° [: ]¡± } )ÕâÑùµÄÃüÁî¼ÓÈ룬Èç¹ûshardÊǸ±±¾¼¯£¬ÓÃdb.runCommand( { addshard : ¡°replicaSetName/ [:port][,serverhostname2[:port],¡­]¡± });ÕâÑùµÄ¸ñʽ±íʾ ¡£

#´®ÁªÂ·ÓÉ·þÎñÆ÷Óë·ÖÅ丱±¾¼¯2

¡¡¡¡db.runCommand( { addshard : "shard2/192.168.0.136:22002,192.168.0.137:22002,192.168.0.138:22002"});
¡¡¡¡#´®ÁªÂ·ÓÉ·þÎñÆ÷Óë·ÖÅ丱±¾¼¯3
¡¡¡¡db.runCommand( { addshard : "shard3/192.168.0.136:22003,192.168.0.137:22003,192.168.0.138:22003"});
¡¡¡¡#²é¿´·ÖƬ·þÎñÆ÷µÄÅäÖÃ
¡¡¡¡db.runCommand( { listshards : 1 } );
¡¡¡¡#ÄÚÈÝÊä³ö
¡¡¡¡[plain] view plaincopy{
¡¡¡¡"shards" : [
¡¡¡¡{
¡¡¡¡"_id" : "shard1",
¡¡¡¡"host" : "shard1/192.168.0.136:22001,192.168.0.137:22001"
¡¡¡¡},
¡¡¡¡{
¡¡¡¡"_id" : "shard2",
¡¡¡¡"host" : "shard2/192.168.0.136:22002,192.168.0.137:22002"
¡¡¡¡},
¡¡¡¡{
¡¡¡¡"_id" : "shard3",
¡¡¡¡"host" : "shard3/192.168.0.136:22003,192.168.0.137:22003"
¡¡¡¡}
¡¡¡¡],
¡¡¡¡"ok" : 1
¡¡¡¡}

ÒòΪ192.168.0.138ÊÇÿ¸ö·ÖƬ¸±±¾¼¯µÄÖٲýڵ㣬ËùÒÔÔÚÉÏÃæ½á¹ûûÓÐÁгöÀ´¡£

10. ĿǰÅäÖ÷þÎñ¡¢Â·ÓÉ·þÎñ¡¢·ÖƬ·þÎñ¡¢¸±±¾¼¯·þÎñ¶¼ÒѾ­´®ÁªÆðÀ´ÁË£¬µ«ÎÒÃǵÄÄ¿µÄÊÇÏ£Íû²åÈëÊý¾Ý£¬Êý¾ÝÄܹ»×Ô¶¯·ÖƬ£¬¾Í²îÄÇôһµãµã£¬Ò»µãµã¡£¡£¡£

Á¬½ÓÔÚmongosÉÏ£¬×¼±¸ÈÃÖ¸¶¨µÄÊý¾Ý¿â¡¢Ö¸¶¨µÄ¼¯ºÏ·ÖƬÉúЧ¡£

#Ö¸¶¨testdb·ÖƬÉúЧ

¡¡¡¡db.runCommand( { enablesharding :"testdb"});

¡¡¡¡#Ö¸¶¨Êý¾Ý¿âÀïÐèÒª·ÖƬµÄ¼¯ºÏºÍƬ¼ü

¡¡¡¡db.runCommand( { shardcollection : "testdb.table1",key : {id: 1} } )

ÎÒÃÇÉèÖÃtestdbµÄ table1 ±íÐèÒª·ÖƬ£¬¸ù¾Ý id ×Ô¶¯·ÖƬµ½ shard1 £¬shard2£¬shard3 ÉÏÃæÈ¥¡£ÒªÕâÑùÉèÖÃÊÇÒòΪ²»ÊÇËùÓÐmongodb µÄÊý¾Ý¿âºÍ±í ¶¼ÐèÒª·ÖƬ!

11. ²âÊÔ·ÖÆ¬ÅäÖýá¹û¡£

#Á¬½Ómongos·þÎñÆ÷

¡¡¡¡/data/mongodbtest/mongodb-linux-x86_64-2.4.8/bin/mongo 127.0.0.1:20000

¡¡¡¡#ʹÓÃtestdb use testdb;

¡¡¡¡#²åÈë²âÊÔÊý¾Ý

¡¡¡¡for (var i = 1; i <= 100000; i++)
¡¡¡¡db.table1.save({id:i,"test1":"testval1"});
¡¡¡¡#²é¿´·ÖƬÇé¿öÈçÏ£¬²¿·ÖÎÞ¹ØÐÅϢʡµôÁË
¡¡¡¡db.table1.stats();
¡¡¡¡[java] view plaincopy{
¡¡¡¡"sharded" : true,
¡¡¡¡"ns" : "testdb.table1",
¡¡¡¡"count" : 100000,
¡¡¡¡"numExtents" : 13,
¡¡¡¡"size" : 5600000,
¡¡¡¡"storageSize" : 22372352,
¡¡¡¡"totalIndexSize" : 6213760,
¡¡¡¡"indexSizes" : {
¡¡¡¡"_id_" : 3335808,
¡¡¡¡"id_1" : 2877952
¡¡¡¡},
¡¡¡¡"avgObjSize" : 56,
¡¡¡¡"nindexes" : 2,
¡¡¡¡"nchunks" : 3,
¡¡¡¡"shards" : {
¡¡¡¡"shard1" : {
¡¡¡¡"ns" : "testdb.table1",
¡¡¡¡"count" : 42183,
¡¡¡¡"size" : 0,
¡¡¡¡...
¡¡¡¡"ok" : 1
¡¡¡¡},
¡¡¡¡"shard2" : {
¡¡¡¡"ns" : "testdb.table1",
¡¡¡¡"count" : 38937,
¡¡¡¡"size" : 2180472,
¡¡¡¡...
¡¡¡¡"ok" : 1
¡¡¡¡},
¡¡¡¡"shard3" : {
¡¡¡¡"ns" : "testdb.table1",
¡¡¡¡"count" :18880,
¡¡¡¡"size" : 3419528,
¡¡¡¡...
¡¡¡¡"ok" : 1
¡¡¡¡}
¡¡¡¡},
¡¡¡¡"ok" : 1
¡¡¡¡}

¿ÉÒÔ¿´µ½Êý¾Ý·Öµ½3¸ö·ÖƬ£¬¸÷×Ô·ÖÆ¬ÊýÁ¿Îª£º shard1 ¡°count¡± : 42183£¬shard2 ¡°count¡±£º 38937£¬shard3 ¡°count¡± : 18880¡£ÒѾ­³É¹¦ÁË!²»¹ý·ÖµÄºÃÏñ²»ÊǺܾùÔÈ£¬ËùÒÔÕâ¸ö·ÖƬ»¹ÊǺÜÓн²¾¿µÄ£¬ºóÐøÔÙÉîÈëÌÖÂÛ¡£

12. Java³ÌÐòµ÷ÓÃ·ÖÆ¬¼¯Èº£¬ÒòΪÎÒÃÇÅäÖÃÁËÈý¸ömongos×÷ΪÈë¿Ú£¬¾ÍËãÆäÖÐÄĸöÈë¿Ú¹ÒµôÁ˶¼Ã»¹ØÏµ£¬Ê¹Óü¯Èº¿Í»§¶Ë³ÌÐòÈçÏ£º

[java] view plaincopypublic class TestMongoDBShards { public static void main(String[] args)

¡¡¡¡{ try { List addresses = new ArrayList();

¡¡¡¡ServerAddress address1 = new ServerAddress("192.168.0.136" , 20000); ServerAddress
¡¡¡¡address2 = new ServerAddress("192.168.0.137" , 20000); ServerAddress address3
¡¡¡¡= new ServerAddress("192.168.0.138" , 20000); addresses.add(address1);
¡¡¡¡addresses.add(address2); addresses.add(address3); MongoClient client =
¡¡¡¡new MongoClient(addresses); DB db = client.getDB( "testdb" ); DBCollection
¡¡¡¡coll = db.getCollection( "table1" ); BasicDBObject object = new BasicDBObject();
¡¡¡¡object.append( "id" , 1); DBObject dbObject = coll.findOne(object); System.
¡¡¡¡out .println(dbObject); } catch (Exception e) { e.printStackTrace(); }
¡¡¡¡} }

Õû¸ö·ÖƬ¼¯Èº´î½¨ÍêÁË£¬Ë¼¿¼Ò»ÏÂÎÒÃÇÕâ¸ö¼Ü¹¹ÊDz»ÊÇ×ã¹»ºÃÄØ?Æäʵ»¹ÓÐºÜ¶àµØ·½ÐèÒªÓÅ»¯£¬±ÈÈçÎÒÃǰÑËùÓеÄÖٲýڵã·ÅÔÚһ̨»úÆ÷£¬ÆäÓàÁ½Ì¨»úÆ÷³Ðµ£ÁËÈ«²¿¶Áд²Ù×÷£¬µ«ÊÇ×÷ΪÖٲõÄ192.168.0.138Ï൱¿ÕÏС£ÈûúÆ÷3 192.168.0.138¶à·Öµ£µãÔðÈΰÉ!¼Ü¹¹¿ÉÒÔÕâÑùµ÷Õû£¬°Ñ»úÆ÷µÄ¸ºÔطֵĸü¼Ó¾ùºâÒ»µã£¬Ã¿¸ö»úÆ÷¼È¿ÉÒÔ×÷ΪÖ÷½Úµã¡¢¸±±¾½Úµã¡¢Öٲýڵ㣬ÕâÑùѹÁ¦¾Í»á¾ùºâºÜ¶àÁË£¬Èçͼ£º

µ±È»Éú²ú»·¾³µÄÊý¾ÝÔ¶Ô¶´óÓÚµ±Ç°µÄ²âÊÔÊý¾Ý£¬´ó¹æÄ£Êý¾ÝÓ¦ÓÃÇé¿öÏÂÎÒÃDz»¿ÉÄܰÑÈ«²¿µÄ½ÚµãÏñÕâÑù²¿Êð£¬Ó²¼þÆ¿¾±ÊÇÓ²ÉË£¬Ö»ÄÜÀ©Õ¹»úÆ÷¡£ÒªÓúÃmongodb»¹Óкܶà»úÖÆÐèÒªµ÷Õû£¬²»¹ýͨ¹ýÕâ¸ö¶«¶«ÎÒÃÇ¿ÉÒÔ¿ìËÙʵÏָ߿ÉÓÃÐÔ¡¢¸ßÀ©Õ¹ÐÔ£¬ËùÒÔËü»¹ÊÇÒ»¸ö·Ç³£²»´íµÄNosql×é¼þ¡£

ÔÙ¿´¿´ÎÒÃÇʹÓõÄmongodb java Çý¶¯¿Í»§¶Ë MongoClient(addresses)£¬Õâ¸ö¿ÉÒÔ´«Èë¶à¸ömongos µÄµØÖ·×÷Ϊmongodb¼¯ÈºµÄÈë¿Ú£¬²¢ÇÒ¿ÉÒÔʵÏÖ×Ô¶¯¹ÊÕÏ×ªÒÆ£¬µ«ÊǸºÔؾùºâ×öµÄºÃ²»ºÃÄØ?´ò¿ªÔ´´úÂë²é¿´£º

ËüµÄ»úÖÆÊÇÑ¡ÔñÒ»¸öping ×î¿ìµÄ»úÆ÷À´×÷ΪËùÓÐÇëÇóµÄÈë¿Ú£¬Èç¹ûÕą̂»úÆ÷¹Òµô»áʹÓÃÏÂһ̨»úÆ÷¡£ÄÇÕâÑù¡£¡£¡£¡£¿Ï¶¨ÊDz»ÐеÄ!ÍòÒ»³öÏÖ˫ʮһÕâÑùµÄÇé¿öËùÓÐÇëÇó¼¯Öз¢Ë͵½Õâһ̨»úÆ÷£¬Õą̂»úÆ÷ºÜÓпÉÄܹҵô¡£Ò»µ«¹ÒµôÁË£¬°´ÕÕËüµÄ»úÖÆ»á×ªÒÆÇëÇóµ½ÏĄ̂»úÆ÷£¬µ«ÊÇÕâ¸öѹÁ¦×ÜÁ¿»¹ÊÇûÓмõÉÙ°¡!ÏÂһ̨»¹ÊÇ¿ÉÄܱÀÀ££¬ËùÒÔÕâ¸ö¼Ü¹¹»¹ÓЩ¶´!ÏÞÓÚÎÄÕÂÆª·ù£¬Çë´ýºóÐø½â¾ö¡£

   
3876 ´Îä¯ÀÀ       34
Ïà¹ØÎÄÕÂ

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

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

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ 12-11[±±¾©]
LLM´óÄ£ÐÍÓëÖÇÄÜÌ忪·¢ÊµÕ½ 12-18[±±¾©]
ǶÈëʽÈí¼þ²âÊÔ 12-25[±±¾©]
AIÔ­ÉúÓ¦ÓõÄ΢·þÎñ¼Ü¹¹ 1-9[±±¾©]
AI´óÄ£Ðͱàд¸ßÖÊÁ¿´úÂë 1-14[±±¾©]
ÐèÇó·ÖÎöÓë¹ÜÀí 1-22[±±¾©]

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ


²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí


GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí