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

  1. 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.

  2. Connessione a SQL Server usando SQLCMD da un'altra finestra del prompt dei comandi

    SQLCMD -S <instance> -E -d master
    
  3. 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).

  4. Riavviare l'istanza del server normalmente come servizio, senza usare parametri di avvio.

  5. 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)