Ripristinare il database master (Transact-SQL)
Si applica a:SQL Server
Questo articolo illustra come ripristinare il master
database da un backup completo del database.
Avviso
In caso di ripristino di emergenza, l'istanza in cui il master
database 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 selezione 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 non è garantito che sia fattibile.
Per ripristinare il master
database
Avviare l'istanza del server in modalità utente singolo.
È possibile avviare SQL Server usando i
-m
parametri di avvio o-f
. Per altre informazioni sui parametri di avvio, vedere Opzioni di avvio del servizio motore di database.Da un prompt dei comandi eseguire i comandi seguenti e assicurarsi di sostituire
MSSQLXX.instance
con il nome della cartella appropriato:cd C:\Program Files\Microsoft SQL Server\MSSQLXX.instance\MSSQL\Binn sqlservr -c -f -s <instance> -mSQLCMD
- Il
-mSQLCMD
parametro garantisce che solo sqlcmd possa connettersi a SQL Server. - Per un nome di istanza predefinito, usare
-s MSSQLSERVER
-c
avvia SQL Server come applicazione per ignorare Service Control Manager per ridurre il tempo di avvio
Se l'istanza di SQL Server non può essere avviata a causa di un database danneggiato
master
, è prima necessario ricompilare i database di sistema. Per altre informazioni, vedere Ricompilare i database di sistema.- Il
Connettersi 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 DATABASEseguente:
RESTORE DATABASE master FROM <backup_device> WITH REPLACE
L'opzione REPLACE indica a SQL Server di ripristinare il database specificato anche quando esiste già 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 master , l'istanza di SQL Server si arresta e termina il processo sqlcmd . Prima di riavviare l'istanza del server, rimuovere il parametro di avvio in modalità utente singolo. Per altre informazioni, vedere Configurare le opzioni di avvio del server (Gestione configurazione SQL Server).
Riavviare l'istanza del server normalmente come servizio, senza usare parametri di avvio.
Continuare con altri passaggi di ripristino, ad esempio il ripristino di altri database, il collegamento di database e la correzione delle mancate corrispondenze degli 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<ComputerName<\>InstanceName.>
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)
Scollegamento e collegamento del 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)