sql >> Database teknologi >  >> NoSQL >> MongoDB

moveChunk kunne ikke engagere TO-shard i dataoverførslen:kan ikke acceptere nye bidder, fordi

Det er ikke almindeligt at se denne slags problemer, men jeg har set det forekomme sporadisk.

Den bedste afhjælpende handling at tage her er at trappe ned den primære af det refererede TO-shard, som vil fjerne baggrundssletninger. Slettetrådene findes kun på den aktuelle primære (de vil blive replikeret fra den primære via oplog efterhånden som de behandles). Når du trapper den ned, bliver den en sekundær, trådene kan ikke længere skrive, og du får en ny primær uden afventende sletninger. Du ønsker måske at genstarte den tidligere primære efter trin ned for at rydde gamle markører ud, men det er normalt ikke presserende.

Når du gør dette, vil du stå tilbage med et stort antal forældreløse dokumenter, som kan være adresser med cleanUpOrphaned kommando som jeg vil anbefale at køre på tidspunkter med lav trafik (hvis du har sådanne tider).

Til reference, hvis dette er et tilbagevendende problem, så er det sandsynligt, at primærvalgene kæmper lidt med hensyn til belastning, og for at undgå køen af ​​sletninger kan du indstille _waitForDelete mulighed for balanceren til sand (falsk som standard) som følger:

use config
db.settings.update(
   { "_id" : "balancer" },
   { $set : { "_waitForDelete" : true } },
   { upsert : true }
)

Dette vil betyde, at hver migrering er langsommere (måske betydeligt), men vil ikke få baggrundssletninger til at akkumulere.




  1. int til flydende konvertering i Mongo find

  2. Mongoose:Cast til ObjectId mislykkedes

  3. Brug af mongo med FLASK og python

  4. Mongoose:Udfyld et befolket felt