SQL Server mantiene i database di sistema (master, model, msdb e resource) per il funzionamento di un’istanza del server. Tuttavia, non è possibile connettersi a un’istanza del server se i database di sistema presentano problemi di corruzione. Per riportare il server in linea, si può provare a ripristinare i database di sistema dai backup. Se non esiste un backup recente, la ricostruzione dei database di sistema può aiutare a risolvere il problema. Questo blog spiega i passaggi per ricostruire i database di sistema.
Prima di iniziare il processo di ricostruzione, è necessario seguire alcuni prerequisiti per garantire che i database del sistema vengano ripristinati alle impostazioni originali.
Prerequisiti
- Assicurarsi di essere un membro del ruolo sysadmin ruolo per ricostruire i database del sistema.
- Tenere traccia degli hotfix applicati all’istanza del server e della collazione corrente. Sarà necessario riapplicare gli hotfix dopo aver completato il processo di ricostruzione.
- Quando i database di sistema vengono ricostruiti, vengono installati nella posizione originale. Pertanto, se i file di dati o di log (.ldf) di un database di sistema sono stati spostati in un’altra posizione, sarà necessario spostarli nuovamente. È quindi necessario registrare la posizione attuale dei file di dati e di log.
- I file modello sono necessari durante il processo di ricostruzione. Assicurarsi che sul server locale esistano copie dei file di modello dei dati e dei registri master, model e msdb. I file dei modelli si trovano in:
C:\File di programma\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\Binn\Template
Passi per ricostruire i database di sistema in SQL Server
Nota: prima di applicare i passaggi seguenti, controllare i registri degli errori SQL per trovare maggiori dettagli sul motivo per cui l’istanza del server non si avvia. È probabile che il problema non riguardi il database master.
Seguite questi passaggi per ricostruire i database di sistema per un’istanza del server:
- Prima di avviare il processo di ricostruzione, eseguire un backup completo di tutti i database di sistema e dei database utente. Potrebbe essere necessario ripristinare il backup per evitare la perdita di dati. Per ulteriori dettagli, vedere Backup e ripristino dei database di sistema (SQL Server).
- Accedere all’unità del supporto di installazione per copiare la posizione del file setup.exe sul server locale del sistema. Per impostazione predefinita, il file setup.exe si trova in:
C:\Program Files\Microsoft SQL Server\140\Setup Bootstrap\SQLServer2017
Qui, ‘140’ è il numero di versione di SQL Server. È possibile sostituire la versione con la versione del proprio SQL Server (‘110’, ‘120’, ‘130’, ecc.).
- Ora aprite il prompt dei comandi come amministratore ed eseguite il seguente script:
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName /SQLSYSADMINACCOUNTS=accounts [ /SAPWD= StrongPassword ] [ /SQLCOLLATION=CollationName]
Nel comando precedente, sostituite InstanceName con il nome dell’istanza di SQL Server.
Inoltre, sostituite ‘=accounts‘ con il nome dell’account locale di Windows o il nome del dominio che si desidera utilizzare per accedere a SQL Server dopo il processo di ricostruzione. Questo è importante perché si perderanno tutti i login durante la ricostruzione del database master. Quando si aggiunge più di un account, inserire uno spazio vuoto per separare gli account. Inoltre, aggiungere una password per l’account SQL Server.
Ad esempio, nel comando REBUILD, abbiamo sostituito il nome dell’istanza con MSSQLSERVER che ricostruiremo. Inoltre, abbiamo aggiunto il nome dell’account locale di Windows per SYSADMINACCOUNTS e abbiamo inserito la password per l’account SA. Abbiamo rimosso SQLCOLLATION, poiché non è necessario.
Premere Invio e il processo di ricostruzione si conclude senza alcun errore. È possibile verificare se il processo di ricostruzione è stato completato correttamente controllando il file di registro Summary.txt. Questo file si trova nel percorso C:\Program Files\Microsoft SQL Server\140\Setup Bootstrap\Logs.
- Al termine del processo di ricostruzione, potrebbe essere necessario ripristinare i database di sistema dal backup eseguito nel passaggio 1. Questo accade di solito quando è necessario ripristinare i database utente (persi) presenti prima del processo di ricostruzione. Di solito questo accade quando è necessario ripristinare i database utente (persi) che erano presenti prima del processo di ricostruzione. Una volta completato il processo di ripristino, SQL Server si spegne. Riavviare il server e verificare se è possibile accedere ai database.
Per concludere
In questo blog sono state illustrate le istruzioni passo-passo per la ricostruzione di tutti i database di sistema. Ha inoltre illustrato alcuni prerequisiti da soddisfare prima della ricostruzione. Per riparare i file di database corrotti di SQL Server (.mdf e .ndf), è possibile utilizzare uno strumento di riparazione dei database SQL. Stellar Repair for MS SQL è uno di questi strumenti che aiuta a riparare sia i file .mdf che .ndf e a ripristinare il database nella sua forma originale con tutti i dati intatti.