Come risolvere l’errore 5172 del database SQL
I due maggiori lati negativi del Sistema di Gestione del Database sono la complessità e la lunghezza, il che espone il database alla corruzione. Microsoft SQL è la scelta preferita tra gli amministratori dei sistemi di gestione dei database, ma questo aspetto non aiuta a superare i lati negativi. Come altri RDBMS, il Database SQL è colpito da corruzione e una di queste è la corruzione del file di intestazione database SQL.
Il server SQL rifiuta di avviarsi. ERRORLOG mostra il seguente errore sulle proprietà dell’Audit:
2017-10-30 15:45:36.36 spid9s Starting up database ‘model’.
2017-10-30 15:45:36.37 spid9s Error: 5172, Severity: 16, State: 15.
2017-10-30 15:45:36.37 spid9s The header for file ‘C:\Program Files\Microsoft SQL Server\MSSQL12.DAR_P11D\MSSQL\DATA\model.mdf’ is not a valid database file header. The PageAudit property is incorrect.
2017-10-30 15:45:36.39 spid9s Error: 945, Severity: 14, State: 2.
2017-10-30 15:45:36.39 spid9s Database ‘model’ cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server error log for details.
2017-10-30 15:45:36.39 spid9s SQL Trace was stopped due to server shutdown. Trace ID = ‘1’. This is an informational message only; no user action is required.
Questo è un caso di errore 5172 del server Microsoft SQL. Puoi trovare altri errori simili. Nel seguente articolo riceverai delle informazioni sulle cause e le soluzioni della corruzione del file di intestazione del database SQL in MS SQL database ma prima di questo, devi capire le informazioni di base sul file di intestazione, i suoi effetti, le possibili cause e le soluzioni appropriate.
Cosa è la pagina di file di intestazione database
Nel server SQL, i dati vengono conservati in un’unità chiamata Pagita, numerata in sequenza a partire da 0 per la prima pagina nel file. La prima pagina è anche conosciuta come pagina di intestazione che contiene le informazioni riguardo ai dettagli del file. Ciascun file viene identificato con un unico numero ID. Per il database SQL, i numeri di pagina e di file determinano una pagina.
Analogamente, i file dati SQL vengono conservati con l’estensione .MDF e .NDF e lo spazio su disco si distribuisce logicalmente nelle pagine dalla numero 0. Tutte le operazioni di disco input-output vengono effettuate nelle pagine. In breve, il server SQL legge e scrive intere pagine dati. Visualizza di seguito la struttura dei file dati del server SQL:
Numero pagine | Identificazione |
Pagina 0 | Intestazione |
Pagina 1 | Primo PFS |
Pagina 2 | Primo GAM |
Pagina 3 | Primo SGAM |
Pagina 4 | Inutilizzata |
Pagina 5 | Inutilizzata |
Pagina 6 | Primo DCM |
Pagina 7 | Primo BCM |
Descrizione pagina – Pagina 0 (Intestazione): La prima pagine del file dati SQL occupa circa 8FB di spazio di archiviazione. Conserva i metadati riguardo particolari file dati SQL. Tutti i file hanno un intestazione a pagina 0, il che non può essere recuperato con CHECKDB. L’intero file viene ripristinato nel caso di danno o corruzione del file di intestazione. Controlla il contenuto dell’intestazione con la pagina DBCC. Un’opzione migliore è “DBCC FILEHEADER” anche conosciuto come purpose command.
DBCC FILEHEADER
Quando un amministratore esegue il comando SQL Database DBCC FILEHEADER su un particolare database, cerca due parametri – 1) Nome/ID del Database e 2) File ID. Il Syntax command è:
DBCC FILEHEADER (‘DBName’, ‘FileId’);
GO
Il comando DBCC FILEHEADER ritorna un tabular output con contenuti di tavola indicando informazioni riguardo al database comprese output, crescita, ID di collegamento, stato, dimensione settore e altro.
Ora che hai capito le basi del database SQL, parliamo dell’errore di corruzione del file di intestazione SQL DB.
Possibile cause ed effetti – Corruzione del file di intestazione SQL
Come discusso sopra, la pagina del file di intestazione SQL è un importante componente e qualunque corruzione su questa pagina attacca direttamente il database, al punto da renderlo disfunzionale. L’esito è “Incoerenza del database” o “Totale inaccessibilità al database” in casi estremi. Infatti, tutti gli amministratori SQL tengono gli occhi sul database per 24/7; ciononostante, ragioni inaspettate potrebbero portare alla corruzione della pagina del file di intestazione:
- Comportamento inadeguato di driver e controller
- interruzioni imprevedibili di corrente
- Riavvio brusco del server SQL
Le aziende sono provviste di un piano di ripristino in caso di disastro ma la maggior parte delle volte, o non è raggiungibile oppure l’amministratore non può eseguire il piano.
Soluzioni per ripristinare in caso di disastro
Il modo migliore per ripristinare è recuperare i dati di backup e la maggior parte delle aziende fa il backup dei propri dati; tuttavia, quando il backup si trova nella stessa posizione e si verifica un’improvvisa mancanza di corrente, il risultato potrebbe essere la corruzione del file di backup SQL. In tal caso, segui i passaggi seguenti:
- Interrompi il server SQL
- Copia i file MDF e LDF in un’altra posizione
- Elimina i file MDF e LDF originali
- Avvia nuovamente il server SQL
- Crea un nuovo database (DB) con lo stesso nome DB e i nomi dei file
- Interrompi il server SQL
- Sovrascrivi i file creati MDF e LDF
Questi passaggi consentiranno un recupero online del database. Imposta la modalità EMERGENCY o SINGLE USER per questo database ed esegui DBCC CHECKDB come segue:
DBCC CHECKDB (databaseName, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS
Nota: Eseguendo il comando DBCC CHECKDB potrebbe dare un risultato positivo – potresti finire per perdere alcuni dati con il contrassegno come REPAIR_ALLOW_DATA_LOSS. I dati dell’azienda sono decisivi e dovrebbero essere disponibili. Una perdita parziale dei dati potrebbe sfociare in una perdita di affari.
Con questa opzione, hai escluso un’opzione di ripristino dei dati usando il metodo manuale. L’unico e, di fatto, miglior modo è usareStellar Repair for MS SQL. Questo strumento di ripristino datbase SQL ripara i file MDF corrotti e recupera tutti i dati.
Conclusione
Sebbene RDBMS venga usato da gran parte degli amministratori database SQL, è esposto a corruzione e improvvisi arresti. Per superare questo problema, crea un backup del database in diversi posizioni per consentire un recupero facile. Se quest’opzione non è disponibile, ricorri al piano B e lascia che software terzi si occupino della corruzione del file di intestazione del database SQL e che ripristino il tuo database corrotto in poco tempo. Infatti, le aziende dovrebbero affidarsi a un software terzo come piano di backup alternativo per evitare le perdite.