Come recuperare i dati da una tabella SQL corrotta?
Riassunto: Quando una tabella di database SQL risulta danneggiata, è possibile ripristinare i dati della tabella dal backup più recente. Se il backup non funziona, è possibile utilizzare alcuni metodi per recuperare i dati dalla tabella SQL corrotta. Cercare di riparare o ricostruire la tabella, esportare i dati dalla tabella di SQL Server utilizzando l'utilità BCP o utilizzare uno strumento di recupero SQL professionale per ripristinare il database e tutte le sue tabelle. Leggete i dettagli di questi metodi.
Una tabella del database SQL può corrompersi a causa di problemi di archiviazione, come spazio insufficiente sull’unità, settori danneggiati sull’unità, ecc. Oltre a ciò, un attacco di malware, l’arresto improvviso del sistema e la cancellazione accidentale dei dati sono altri fattori che possono causare la corruzione della tabella. L’esecuzione di DBCC CHECKDB può aiutare a rilevare la corruzione della tabella. Ad esempio, un errore di corruzione della tabella si presenta come segue:
Metodi per recuperare i dati da una tabella SQL corrotta
Utilizzare i metodi indicati di seguito nella stessa sequenza per estrarre quanti più dati possibili dalla tabella danneggiata. Tuttavia, per evitare di perdere i dati, si consiglia di utilizzare uno strumento di recupero SQL.
Metodo 1 – Eseguire il comando DBCC CHECKDB con l’opzione di riparazione
Come si può vedere nel messaggio di errore sopra riportato, repair_allow_data_loss è suggerito come livello minimo di riparazione per risolvere l’errore. Eseguire DBCC CHECKDB con l’opzione di riparazione per la tabella corrotta (come indicato di seguito).
dbcc checkdb (nome_tabella, repair_allow_data_loss) |
Sostituire ‘nome_tabella’ con il nome della tabella SQL problematica. Se non funziona, provate il metodo successivo.
Metodo 2 – Spostare i dati dalla tabella corrotta alla nuova tabella
Nota: questo metodo funziona solo se il database è accessibile. Se anche il database è interessato, utilizzare il metodo 3.
Eliminare tutti gli oggetti del database corrente e creare un nuovo database con una nuova tabella. Spostate tutti i dati, tranne la tabella danneggiata, nel nuovo database. Una volta terminato, provate a spostare i dati dalla tabella a quella nuova. I passaggi dettagliati sono i seguenti:
- Fare clic con il pulsante destro del mouse sul database contenente la tabella danneggiata ed espandere Tabelle.
- Fare clic con il pulsante destro del mouse sulla tabella, fare clic su Script tabella come > GETTA E CREA A > Nuova finestra dell’editor di query.
- Fare clic su Esegui per eseguire la query. In questo modo la tabella selezionata verrà eliminata e ricreata.
Se il problema persiste, passare al metodo successivo.
Metodo 3 – Utilizzare il programma di copia massiva (BCP) per esportare i dati della tabella
Bulk Copy Program (BCP) è un programma a riga di comando che consente di estrarre i dati da una tabella di database SQL e di esportarli in un formato di file specificato dall’utente. In sostanza, è possibile utilizzare l’utility BCP per esportare tutti i dati validi dalla tabella danneggiata in un file di dati. È quindi possibile importare i dati in una nuova tabella. Per sapere come utilizzare l’utilità, consultare questo link.
Anche se questo metodo può funzionare, copiare i dati di una tabella di grandi dimensioni e importarli in una nuova tabella può richiedere ore o giorni di lavoro.
Un’alternativa migliore per ottenere dati da una tabella SQL corrotta
Un’alternativa migliore per recuperare i dati da una tabella SQL corrotta è utilizzare uno strumento di recupero SQL, come Stellar Repair for MS SQL. Il software può aiutare ad eseguire un recupero più rapido delle tabelle del database SQL. Essenzialmente, il software ripara i file di database (MDF e NDF) e recupera tutti gli oggetti, comprese le tabelle, in pochi clic. Permette anche di recuperare i record eliminati. Ecco come funziona il software:
- Avviare il software dopo averlo scaricato e installato.
- Sfogliare il file del database contenente la tabella danneggiata. Se non si riesce a trovare il file, utilizzare l’opzione Trova per cercare il file.
- Una volta caricato il file di database, fare clic su Ripara. Nella finestra di dialogo “Seleziona modalità di scansione” che si apre, scegliere l’opzione di scansione standard predefinita per una scansione più rapida delle tabelle del database. Se la scansione standard non funziona, utilizzare l’opzione di scansione avanzata.
- Facendo clic su OK si avvia il processo di riparazione e si visualizza un’anteprima di tutte le tabelle e gli altri oggetti recuperabili.
- Selezionare tutte le tabelle o quelle specifiche che si desidera ripristinare e fare clic sull’icona Salva nel menu File.
- Nella finestra di dialogo “Salva database”, eseguire le seguenti operazioni:
- Salvare i dati recuperati in formato MDF, HTML, CSV o XLS. Se avete selezionato il formato MDF, scegliete di salvare i dati in un nuovo database o in un database esistente. Quindi, inserire i dettagli del server e la posizione per il salvataggio dei dati.
- Fare clic su Salva.
- Al termine della procedura di riparazione, viene visualizzato il messaggio “Salvataggio completato”.
È possibile accedere ai dati della tabella dal file riparato memorizzato nella posizione selezionata.
Conclusione
Se la tabella del database SQL è corrotta, potete innanzitutto controllare il backup per ottenere i dati della tabella. Se il backup non è disponibile o non funziona, seguite i metodi discussi in questo post per ottenere i dati dalla tabella corrotta. Tuttavia, il modo migliore e più semplice è utilizzare uno strumento di recupero SQL per recuperare tutti i dati della tabella.