MS SQL Server fornisce i comandi DBCC CHECKDB per controllare e riparare i database danneggiati. Tuttavia, quando si esegue questo comando per riparare il database, a volte fallisce e visualizza un messaggio di errore. Il messaggio di errore può essere simile a questo:
Msg 8930, livello 16, stato 1, riga 1 Errore del database: Il database 1 ha metadati incoerenti. Questo errore non può essere corretto e impedisce un’ulteriore elaborazione DBCC. Si prega di ripristinare da un backup.
Il messaggio di errore indica che un danno ai metadati ha causato il fallimento del comando DBCC. I metadati contengono i cataloghi e le informazioni sulle tabelle. Memorizzano informazioni sulla struttura e sugli oggetti del database. Ad esempio, le tabelle di sistema contengono informazioni sulle tabelle utente e la tabella di visualizzazione sys.objects contiene informazioni su tabelle, stored procedure, viste e altri oggetti.
Questo errore può verificarsi per vari motivi, ad esempio a causa di un danno hardware, un errore software, ecc. Vediamo come risolvere questo errore e ripristinare i dati da un database danneggiato.
Come posso risolvere l’errore MS SQL 8930?
Se i metadati sono danneggiati, non sarà in grado di lavorare con il database. Purtroppo, non è possibile riparare il database con il comando DBCC se si verifica questo problema. Deve quindi ripristinare i dati dal backup.
Il backup è un file che contiene una copia dei dati e include anche i metadati dei database di SQL Server. Può ripristinare il suo database fino alla data del backup. Se dispone di un registro delle transazioni, può ripristinare i dati inserendo la data e l’ora.
Per ripristinare il database dal backup, segua i passi indicati:
- Apra SQL Server Management Studio (SSMS).
- Si colleghi all’istanza di SQL Server.
- In Esplora Oggetti, faccia clic con il pulsante destro del mouse sull’opzione Database e selezioni l’opzione Ripristina database.
- Selezioni l’opzione Dispositivo e poi clicchi sulle ellissi (…) per trovare il file di backup.
- Clicchi su Aggiungi e sfogli la posizione in cui si trova il suo file di backup (.bak).
- Selezioni il file e poi clicchi su OK.
- Clicchi nuovamente su OK per chiudere la finestra Seleziona dispositivi di backup.
- Clicchi su OK per ripristinare il backup del database.
In alternativa, può anche utilizzare il seguente comando Transact-SQL per ripristinare il backup del database:
UTILIZZARE [master];
GO
RIPRISTINO DEL DATABASE [StellarDB]
DA DISK = N’C:\Programmi\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\StellarDB.bak’ CON FILE = 1, NOUNLOAD, STATS = 5;
GO
Cosa succede se il backup non è disponibile?
Se la copia di backup è corrotta o non disponibile, l’unica opzione è riparare il database o il file di backup corrotto utilizzando un software di riparazione di database SQL di terze parti, come Stellar Repair for MS SQL – Technician. Questo software può facilmente riparare il file di backup del database SQL Server corrotto e ripristinare tutti gli oggetti con la massima integrità.
Per riparare il file di backup del database SQL con il software, proceda come segue:
- Apra il software e selezioni l’opzione Estrai dal backup MSSQL.
- Clicchi sull’icona Seleziona backup.
- Vengono visualizzate due opzioni: Cerca e Sfoglia. Può utilizzare l’opzione Cerca per cercare il file di backup, se non conosce la posizione del file. Altrimenti, può cliccare sul pulsante Sfoglia e selezionare il file di backup.
- Una volta selezionato il file di backup, prema il pulsante Scansione.
- Selezionare la modalità di scansione Standard.
- Selezioni i dati che desidera ripristinare e prema Avanti. Se desidera ripristinare solo alcune tabelle, può selezionare singole tabelle.
- Poi clicchi sul pulsante Salva.
- Può salvare i dati in,
- Nuovo database
- Database live (un database esistente)
- Altri formati, come Excel, CSV, ecc. (per salvare i dati di determinate tabelle)
Conclusione
L’errore 8930 si verifica quando si cerca di riparare un database corrotto utilizzando il comando DBCC CHECKDB in SQL Server. Questo accade quando i metadati sono corrotti o danneggiati. In questo caso, non è possibile riparare il database con il comando DBCC CHECKDB. Quindi l’unica opzione è ripristinare il database da un backup recente e sano. Tuttavia, se il backup non è disponibile o è corrotto, può utilizzare Stellar Repair for MS SQL per riparare il database corrotto o il backup stesso.
Was this article helpful?