sql >> Database >  >> NoSQL >> MongoDB

moveChunk kon TO-shard niet betrekken bij de gegevensoverdracht:kan geen nieuwe chunks accepteren omdat

Het is niet gebruikelijk om dit soort problemen te zien, maar ik heb het sporadisch gezien.

De beste corrigerende actie die u hier kunt nemen, is om de primaire van de TO-shard waarnaar wordt verwezen, te verlagen, waardoor de verwijderingen op de achtergrond worden gewist. De verwijderthreads bestaan ​​alleen op de huidige primaire (ze zullen worden gerepliceerd van die primaire via de oplog zoals ze worden verwerkt). Wanneer je het verlaat, wordt het een secundair, kunnen de threads niet langer schrijven en krijg je een nieuwe primaire zonder wachtende verwijderingen. Het kan zijn dat je de voormalige primaire opnieuw wilt starten na de stap naar beneden om oude cursors te verwijderen, maar dit is meestal niet urgent.

Zodra u dit doet, houdt u een groot aantal verweesde documenten over, die adressen kunnen zijn met de cleanUpOrphaned commando die ik zou aanraden om op tijden met weinig verkeer te werken (als je zulke tijden hebt).

Ter referentie, als dit een terugkerend probleem is, dan is het waarschijnlijk dat de voorverkiezingen een beetje worstelen met het laden, en om de wachtrij voor verwijderingen te voorkomen, kunt u de _waitForDelete optie voor de balancer op true (standaard onwaar) als volgt:

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

Dit betekent dat elke migratie langzamer gaat (misschien aanzienlijk) maar er niet voor zorgt dat de verwijderingen op de achtergrond zich ophopen.




  1. MongoDB verwijdert een subdocumentdocument uit een subdocument

  2. Hoe alfanumeriek sorteren in mongoDB?

  3. Opnieuw verbinding maken met 127.0.0.1:6379 mislukt - verbind ECONNREFUSED

  4. Hoe te sorteren met de som van 2 velden in MongoDB