Ripristinare il database master (Transact-SQL)
Si applica a: SQL Server
Questo articolo spiega come ripristinare il database master
da un backup completo del database.
Avviso
In caso di ripristino di emergenza, l'istanza in cui il database master
viene ripristinato deve essere il più vicino possibile a una corrispondenza esatta con l'originale. Come minimo, questa istanza di ripristino deve essere la stessa versione, edizione e livello di patch e deve avere la stessa serie di funzionalità e la stessa configurazione esterna (nome host, appartenenza al cluster e così via) dell'istanza originale. In caso contrario, potrebbe verificarsi un comportamento indefinito dell'istanza di SQL Server, con supporto di funzionalità incoerente, e potrebbe non essere fattibile.
Per ripristinare il database master
Avviare l'istanza del server in modalità utente singolo.
È possibile avviare SQL Server usando i parametri di avvio
-m
o-f
. Per altre informazioni sui parametri di avvio, vedere Opzioni di avvio del servizio del motore di database.Da un prompt dei comandi eseguire i comandi seguenti e assicurarsi di sostituire
MSSQLXX.instance
con il nome di cartella appropriato:cd C:\Program Files\Microsoft SQL Server\MSSQLXX.instance\MSSQL\Binn sqlservr -c -f -s <instance> -mSQLCMD
- Il parametro
-mSQLCMD
garantisce che solo sqlcmd possa connettersi a SQL Server. - Per il nome di un'istanza predefinita, utilizzare
-s MSSQLSERVER
-c
avvia SQL Server come applicazione per ignorare il gestore di controllo del servizio e ridurre il tempo di avvio
Se l'istanza di SQL Server non può essere avviata a causa di un database
master
danneggiato, prima è necessario ricompilare i database di sistema. Per altre informazioni, vedere Ricompilare database di sistema.- Il parametro
Connessione a SQL Server usando SQLCMD da un'altra finestra del prompt dei comandi
SQLCMD -S <instance> -E -d master
Per ripristinare un backup completo del database master, usare l'istruzione Transact-SQL RESTORE DATABASE seguente:
RESTORE DATABASE master FROM <backup_device> WITH REPLACE
L'opzione REPLACE indica a SQL Server di ripristinare il database specificato anche quando è già presente un database con lo stesso nome. Il database esistente, se presente, viene eliminato. In modalità utente singolo è consigliabile immettere l'istruzione RESTORE DATABASE nell' utilità sqlcmd. Per altre informazioni, vedere Usare l'utilità sqlcmd.
Importante
Dopo il ripristino del database master, l'istanza di SQL Server viene arrestata e termina il processo di sqlcmd. Prima di riavviare l'istanza del server, rimuovere il parametro di avvio in modalità utente singolo. Per altre informazioni, vedere Configurazione delle opzioni di avvio del server (Gestione configurazione SQL Server).
Riavviare l'istanza del server normalmente come servizio, senza usare parametri di avvio.
Proseguire con gli altri passaggi di recupero, quali il ripristino di altri database, il collegamento dei database e la correzione delle mancate corrispondenze tra utenti.
Esempio
Nell'esempio seguente viene ripristinato il database master
nell'istanza predefinita del server. In questo esempio si presuppone che l'istanza del server sia già in esecuzione in modalità utente singolo. Viene avviata l'utilità sqlcmd
ed eseguita un'istruzione RESTORE DATABASE
che ripristina un backup completo del database master
da un dispositivo disco: Z:\SQLServerBackups\master.bak
.
Nota
Per un'istanza denominata, il comando sqlcmd deve specificare l'opzione -S<NomeComputer>\<NomeIstanza>.
C:\> sqlcmd
1> RESTORE DATABASE master FROM DISK = 'Z:\SQLServerBackups\master.bak' WITH REPLACE;
2> GO
Vedi anche
Ripristini di database completi (modello di recupero con registrazione minima)
Ripristini di database completi (modello di recupero con registrazione completa)
Risolvere i problemi relativi agli utenti isolati (SQL Server)
Collegamento e scollegamento di un database (SQL Server)
Ricompilare database di sistema
Opzioni di avvio del servizio del motore di database
Gestione configurazione SQL Server
Backup e ripristino di database di sistema (SQL Server)
RESTORE (Transact-SQL)