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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
mongoDB ¸´ÖÆÆª
 
  3749  次浏览      31
 2018-3-20 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚ±à³ÌÈËÉú,Ö÷ÒªÊÇÔÚ½øÐнڵãÑ¡¾ÙÖ®ºóµÄоÉPrimary½ÚµãµÄÊý¾Ý²»Í¬²½¡£

¸´ÖƼ¯¼ò½é

Mongodb¸´ÖƼ¯ÓÉÒ»×éMongodʵÀý£¨½ø³Ì£©×é³É£¬°üº¬Ò»¸öPrimary½ÚµãºÍ¶à¸öSecondary½Úµã£¬Mongodb Driver£¨¿Í»§¶Ë£©µÄËùÓÐÊý¾Ý¶¼Ð´ÈëPrimary£¬Secondary´ÓPrimaryͬ²½Ð´ÈëµÄÊý¾Ý£¬ÒÔ±£³Ö¸´ÖƼ¯ÄÚËùÓгÉÔ±´æ´¢ÏàͬµÄÊý¾Ý¼¯¡£

¹Ù·½ÎĵµÉϵĸ´ÖƼ¯

PrimaryÑ¡¾Ù

¸´ÖƼ¯ÔÚ³õʼ»¯Ö®ºóÒª½øÐÐPriamryÑ¡¾Ù£¬ÔÚ»ñµÃ´ó¶àÊýµÄ³ÉԱͶƱ֮ºóµÄ½Úµã»á³ÉΪPriamry½Úµã£¬ÆäÓàµÄ³ÉΪSecondary½Úµã

³õʼ»¯¸´ÖƼ¯

config = {
_id : "my_replica_set",
members : [
{_id : 0, host : "rs1.example.net:27017"},
{_id : 1, host : "rs2.example.net:27017"},
{_id : 2, host : "rs3.example.net:27017"},
]
}

rs.initiate(config)

´ó¶àÊýµÄ¶¨ÒåΪN/2 + 1 NΪ¸´ÖƼ¯ÊýÁ¿¡£µ±¸´ÖƼ¯µÄ´æ»îµÄÊýÁ¿²»×ã´ó¶àÊýʱ£¬Õû¸ö¸´ÖƼ¯ÎÞ·¨Ñ¡³öPriamry £¬¸´ÖƼ¯Ö»Ìṩ¶Á·þÎñ¡£

ÌØÊâµÄSecondary

PriamryµÄ×÷ÓÃÊǽ«×Ô¼ºµÄÊý¾Ýͬ²½¸øÆäËûµÄSecondary¡£²¢±£³Ö×îеÄÊý¾Ý

ÏÂÃæÊÇÒ»Ð©ÌØÊâµÄSecondaryµÄ½ÚµãµÄ½éÉÜ£¬ÕâЩ¼¸µãµÄÖ÷Òª×÷ÓÃÊÇÔÚPriamry½ÚµãÖ÷¶¯»ò±»¶¯Í˳öʱ£¬Ñ¡¾Ù³öеÄPriamry½Úµã

Arbiter

Arbiter½ÚµãÖ»²ÎÓëͶƱ£¬²»Äܱ»Ñ¡ÎªPrimary£¬²¢ÇÒ²»´ÓPrimaryͬ²½Êý¾Ý¡£

Arbiter±¾Éí²»´æ´¢Êý¾Ý£¬ÊǷdz£ÇáÁ¿¼¶µÄ·þÎñ

Arbiter±¾Éí²»´æ´¢Êý¾Ý£¬ÊǷdz£ÇáÁ¿¼¶µÄ·þÎñ

Priority0½ÚµãµÄÑ¡¾ÙÓÅÏȼ¶Îª0£¬²»»á±»Ñ¡¾ÙΪPrimary

Vote0

Mongodb 3.0À¸´ÖƼ¯³ÉÔ±×î¶à50¸ö£¬²ÎÓëPrimaryÑ¡¾ÙͶƱµÄ³ÉÔ±×î¶à7¸ö£¬ÆäËû³ÉÔ±£¨Vote0£©µÄvoteÊôÐÔ±ØÐëÉèÖÃΪ0£¬¼´²»²ÎÓëͶƱ¡£

Hidden

Hidden½Úµã²»Äܱ»Ñ¡ÎªÖ÷£¨PriorityΪ0£©£¬²¢ÇÒ¶ÔDriver²»¿É¼û¡£

Delayed

Delayed½Úµã±ØÐëÊÇHidden½Úµã£¬²¢ÇÒÆäÊý¾ÝÂäºóÓëPrimaryÒ»¶Îʱ¼ä£¨¿ÉÅäÖ㬱ÈÈç1¸öСʱ£©¡£

Ö÷Òª×÷ÓÃÊÇDelayedµÄ½ÚµãÊý¾Ý±ÈPriamryµÄÊý¾ÝÂäºó£¬ÕâÑùµ±PriamryµÄÊý¾Ý³öÏÖ´íÎóµÄʱºò£¬¿ÉÒÔͨ¹ýDelayed½ÚµãµÄÊý¾Ý½øÐлָ´

Êý¾ÝµÄͬ²½

ͬ²½µÄÔ­Àí

PrimaryÓëSecondaryÖ®¼äͨ¹ýoplogÀ´Í¬²½Êý¾Ý£¬PrimaryÉϵÄд²Ù×÷Íê³Éºó£¬»áÏòÌØÊâµÄlocal.oplog.rsÌØÊ⼯ºÏдÈëÒ»Ìõoplog£¬Secondary²»¶ÏµÄ´ÓPrimaryȡеÄoplog²¢Ó¦Óá£

µ±È»oplogµÄÊý¾ÝÒ²²»ÊÇÒ»Ö±ÔÚÔö¼Ó£¬µ±ÈÝÁ¿´ïµ½ÉÏÏÞʱ£¬»á½«×î¾ÉµÄÊý¾Ýɾ³ý¡£

oplogµÄ¸ñʽ

{
"ts" : Timestamp(1446011584, 2),
"h" : NumberLong("1687359108795812092"),
"v" : 2,
"op" : "i",
"ns" : "test.nosql",
"o" : { "_id" : ObjectId("563062c0b085733f34ab4129"), "name" : "mongodb", "score" : "100" }
}

ts£º ²Ù×÷ʱ¼ä£¬µ±Ç°timestamp + ¼ÆÊýÆ÷£¬¼ÆÊýÆ÷ÿÃë¶¼±»ÖØÖÃ

h£º²Ù×÷µÄÈ«¾ÖΨһ±êʶ

v£ºoplog°æ±¾ÐÅÏ¢

op£º²Ù×÷ÀàÐÍ

1 i£º²åÈë²Ù×÷

2 u£º¸üвÙ×÷

3 d£ºÉ¾³ý²Ù×÷

4 c£ºÖ´ÐÐÃüÁÈçcreateDatabase£¬dropDatabase£©

5 n£º¿Õ²Ù×÷£¬ÌØÊâÓÃ;

ns£º²Ù×÷Õë¶ÔµÄ¼¯ºÏ

o£º²Ù×÷ÄÚÈÝ£¬Èç¹ûÊǸüвÙ×÷

o2£º²Ù×÷²éѯÌõ¼þ£¬½öupdate²Ù×÷°üº¬¸Ã×Ö¶Î

Ð޸ĸ´ÖƼ¯ÅäÖÃ

µ±ÐèÒªÐ޸ĸ´ÖƼ¯Ê±£¬±ÈÈçÔö¼Ó³ÉÔ±¡¢É¾³ý³ÉÔ±¡¢»òÕßÐ޸ijÉÔ±ÅäÖã¨Èçpriorty¡¢vote¡¢hidden¡¢delayedµÈÊôÐÔ£©£¬¿Éͨ¹ýreplSetReconfigÃüÁrs.reconfig()£©¶Ô¸´ÖƼ¯½øÐÐÖØÐÂÅäÖá£

ÀýÈçÏÂÃæµÄÀý×Ó

cfg = rs.conf();
cfg.members[1].priority = 2;
rs.reconfig(cfg);

Õâ¸öÀý×ÓµÄ×÷ÓÃÊǽ«¸´ÖƼ¯µÄµÚ¶þ¸ö³ÉÔ±µÄPriamryÉèÖÃΪ2

PrimaryÑ¡¾ÙµÄÑ¡¾Ùϸ½Ú

ÏÂÃæµÄ¼¸ÖÖÇé¿ö»áÒý¸´ÖƼ¯µÄUÐͰ²¾Ó

1.¸´ÖƼ¯±»reconfig

2.Secondary½Úµã¼ì²âµ½Primaryå´»úʱ£¬»á´¥·¢ÐÂPrimaryµÄÑ¡¾Ù

3.µ±ÓÐPrimary½ÚµãÖ÷¶¯stepDown£¨Ö÷¶¯½µ¼¶ÎªSecondary£©Ê±£¬Ò²»á´¥·¢ÐµÄPrimaryÑ¡¾Ù

PriamryµÄÑ¡¾ÙÊܵ½¶à¸öÒòËØµÄÓ°Ïì ÀýÈç µã¼äÐÄÌø ÓÅÏȼ¶ ×îеÄoplogʱ¼äµÄÆäËûµÄÒòËØ

½Úµã¼äÐÄÌø

¸´ÖƼ¯³ÉÔ±¼äĬÈÏÿ2s»á·¢ËÍÒ»´ÎÐÄÌøÐÅÏ¢£¬Èç¹û10sδÊÕµ½Ä³¸ö½ÚµãµÄÐÄÌø£¬ÔòÈÏΪ¸Ã½ÚµãÒÑå´»ú£»Èç¹ûå´»úµÄ½ÚµãΪPriAlt text

mary£¬Secondary£¨Ç°ÌáÊǿɱ»Ñ¡ÎªPrimary£©»á·¢ÆðеÄPrimaryÑ¡¾Ù¡£

½ÚµãÓÅÏȼ¶

1.ÿ¸ö½Úµã¶¼ÇãÏòÓÚͶƱ¸øÓÅÏȼ¶×î¸ßµÄ½Úµã

2.ÓÅÏȼ¶Îª0µÄ½Úµã²»»áÖ÷¶¯·¢ÆðPrimaryÑ¡¾Ù Ò²¾ÍÊÇPriority0½Úµã

3.µ±Primary·¢ÏÖÓÐÓÅÏȼ¶¸ü¸ßSecondary£¬²¢ÇÒ¸ÃSecondaryµÄÊý¾ÝÂäºóÔÚ10sÄÚ£¬ÔòPrimary»áÖ÷¶¯½µ¼¶£¬ÈÃÓÅÏȼ¶¸ü¸ßµÄSecondaryÓгÉΪPrimaryµÄ»ú»á¡£

Optime

ÓµÓÐ×îÐÂoptime£¨×î½üÒ»ÌõoplogµÄʱ¼ä´Á£©µÄ½Úµã²ÅÄܱ»Ñ¡ÎªÖ÷¡£

ÍøÂç·ÖÇø

Ö»Óиü´ó¶àÊýͶƱ½Úµã¼ä±£³ÖÍøÂçÁ¬Í¨£¬²ÅÓлú»á±»Ñ¡Primary£»

¸´ÖƼ¯µÄ¶ÁдÉèÖÃ

Read Preference

ĬÈÏÇé¿öÏ£¬¸´ÖƼ¯µÄËùÓжÁÇëÇó¶¼·¢µ½Primary.

1.Driver (¿Í»§¶Ë)¿Éͨ¹ýÉèÖÃRead PreferenceÀ´½«¶ÁÇëÇó·Óɵ½ÆäËûµÄ½Úµã¡£

2.primary£º ĬÈϹæÔò£¬ËùÓжÁÇëÇó·¢µ½Primary

3.primaryPreferred£º PrimaryÓÅÏÈ£¬Èç¹ûPrimary²»¿É´ï£¬ÇëÇóSecondary

4.secondary£º ËùÓеĶÁÇëÇó¶¼·¢µ½secondary

5.secondaryPreferred£ºSecondaryÓÅÏÈ£¬µ±ËùÓÐSecondary²»¿É´ïʱ£¬ÇëÇóPrimary

6.nearest£º¶ÁÇëÇó·¢Ë͵½×î½üµÄ¿É´ï½ÚµãÉÏ£¨Í¨¹ýping̽²âµÃ³ö×î½üµÄ½Úµã£©

Write Concern

ĬÈÏÇé¿öÏ£¬PrimaryÍê³Éд²Ù×÷¼´·µ»Ø£¬µ«ÊÇDriver¿Éͨ¹ýÉèÖÃWrite ConcernÀ´ÉèÖÃд³É¹¦µÄ¹æÔò

ÀýÈç

db.products.insert(
{ item: "envelopes", qty : 100, type: "Clasp" },
{ writeConcern: { w: majority, wtimeout: 5000 } }
)

write concern¹æÔòÉèÖÃд±ØÐëÔÚ´ó¶àÊý½ÚµãÉϳɹ¦£¬³¬Ê±Ê±¼äΪ5s¡£

ÉÏÃæµÄÉèÖ÷½Ê½ÊÇÕë¶Ôµ¥¸öÇëÇóµÄ£¬Ò²¿ÉÒÔÐ޸ĸ±±¾¼¯Ä¬ÈϵÄwrite concern£¬ÕâÑù¾Í²»ÓÃÿ¸öÇëÇóµ¥¶ÀÉèÖÃ

cfg = rs.conf()
cfg.settings = {}
cfg.settings.getLastErrorDefaults = { w: "majority", wtimeout: 5000 }
rs.reconfig(cfg)

Òì³£´¦Àí£¨rollback£©

ÕâÀïµÄÒì³£´¦ÀíÖ÷ÒªÊÇÔÚ½øÐнڵãÑ¡¾ÙÖ®ºóµÄоÉPrimary½ÚµãµÄÊý¾Ý²»Í¬²½¡£Òª½²¾ÉµÄPriamryµÄ½øÐлعö²¿·Ö£¬ÒÔ±£Ö¤Êý¾Ý¼¯ÓëеÄPriamryÒ»ÖÂ

 

   
3749 ´Îä¯ÀÀ       31
Ïà¹ØÎÄÕÂ

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

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

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