Forum

Indice Corrotto - Recupero Dati

Ultimo aggiornamento circa 1 mese fa
Cataldo-8
circa 1 mese fa

Ciao a tutti,

ho un grosso problema con un mio DB Mongo.

Qualsiasi query io provi a fare (find( ) , count( ) , etc.) restituisce questo errore.

exception: BSONObj size: 536871756 (0x2000034C) is invalid. Size must be between 0 and 16793600(16MB) First element: _id: ObjectId('5eaabac87fbaa8433bc16377')",


Chiarisco che non si tratta di query complicate, quindi è un problema legato al salvataggio dei dati.

Eseguendo il validate( ) sul db restituisce questo

        "ns" : db.Message",

        "datasize" : 259023456,

        "nrecords" : 114778,

        "lastExtentSize" : 92585984,

        "firstExtent" : "0:5000 ns:db-2020.Message",

        "lastExtent" : "4:4169000 ns:db-2020.Message",

        "extentCount" : 14,

        "firstExtentDetails" : {

                "loc" : "0:5000",

                "xnext" : "0:a9000",

                "xprev" : "null",

                "nsdiag" : "db-2020.Message",

                "size" : 8192,

                "firstRecord" : "0:68b0",

                "lastRecord" : "0:68b0"

        },

        "lastExtentDetails" : {

                "loc" : "4:4169000",

                "xnext" : "null",

                "xprev" : "4:2000",

                "nsdiag" : "db-2020.Message",

                "size" : 92585984,

                "firstRecord" : "4:76d48b0",

                "lastRecord" : "4:76d38b0"

        },

        "deletedCount" : 54891,

        "deletedSize" : 597699520,

        "nIndexes" : 0,

        "keysPerIndex" : {


        },

        "valid" : false,

        "errors" : [

                "bad pointer in deleted record list: 536870914:2e46b0 bucket: 5 k: 54795"

        ],

        "warning" : "Some checks omitted for speed. use {full:true} option to do more thorough scan.",

        "advice" : "ns corrupt. See http://dochub.mongodb.org/core/data-recovery",

        "ok" : 1


Lavorando con qualche GUI sono riuscito a recuperare circa 11.000 righe delle 115.000 contenute nel file, ma non riesco a capire quale sia il problema.
Ho provato con un mongoexport (sia in formato CSV che in formato JSON) ma si blocca appena raggiunge il blocco dati incriminato. 
Ho provato anche con un mongodump --repair e non è successo nulla
Ho provato con un reIndex( ) e nessun risultato, infatti controllando gli indici dice che non ce ne sono (nemmeno quello predefinito sull'ID)
Ho provato a cancellare direttamente il dato con l'ID indicato ma non riesce ad effettuare la query. Anche provando a scorrere i dati singolarmente con delle GUI si blocca al momento 

Credo di aver fatto tutti i tentativi possibili, anche cercando parecchio su vari forum. Sto brancolando nel buio, potete aiutarmi?
Ogni consiglio è ben accetto!
Grazie