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

Il comando di riparazione di MongoDB non è riuscito

Se mongod con la riparazione non lo sta facendo, quindi sta incontrando un livello di danneggiamento che non può riparare o aggirare in termini di avere un set di file di database valido e corretto da avviare.

Puoi eseguire mongodump con riparazione , che è più aggressivo in termini di tentativo di aggirare la corruzione e non sta avviando un mongod istanza (quindi non richiede che i file siano corretti per poter procedere).

mongodump --repair --dbpath /var/lib/mongodb/ <other options here>

Tieni presente, tuttavia, che a causa del modo in cui tenta di aggirare la corruzione, potresti ritrovarti con più copie di un documento. Con come mongorestore funziona questo non è un problema, ma a seconda del livello di corruzione puoi finire con file di dump molto più grandi di quanto ti aspetteresti. In un caso molto estremo, una volta ho visto la produzione di dati 10x, sebbene quella fosse l'eccezione piuttosto che la regola.

Dopo aver scaricato tutto in modo soddisfacente, avvia mongod pulire e reimportare per tornare a un buono stato.