Det är inte vanligt att se den här typen av problem, men jag har sett det inträffa sporadiskt.
Den bästa korrigerande åtgärden att vidta här är att trappa ner den primära av den refererade TO-skärven som kommer att rensa bort bakgrundsborttagningarna. Borttagningstrådarna finns bara på den aktuella primära (de kommer att replikeras från den primära via oplog
allt eftersom de bearbetas). När du trappar ner den blir den en sekundär, trådarna kan inte längre skriva och du får en ny primär utan några pågående borttagningar. Du kanske vill starta om den tidigare primära efter steget ned för att rensa bort gamla markörer, men det är vanligtvis inte brådskande.
När du har gjort detta kommer du att ha kvar ett stort antal föräldralösa dokument, som kan vara adresser med cleanUpOrphaned
kommando
som jag skulle rekommendera att köra på tider med låg trafik (om du har sådana tider).
Som referens, om detta är ett återkommande problem, är det troligt att primärvalen kämpar lite när det gäller belastning, och för att undvika att raderingarna hamnar i kö kan du ställa in _waitForDelete
alternativ
för att balanseraren ska vara sant (falskt som standard) enligt följande:
use config
db.settings.update(
{ "_id" : "balancer" },
{ $set : { "_waitForDelete" : true } },
{ upsert : true }
)
Detta kommer att innebära att varje migrering är långsammare (kanske betydligt) men kommer inte att orsaka att bakgrundsborttagningarna ackumuleras.