Backup e ripristino: database di sistema (SQL Server)
Si applica a: SQL Server
SQL Server gestisce un set di database a livello di sistema, denominati database di sistema, fondamentali per un corretto funzionamento di un'istanza del server. Dopo ogni aggiornamento importante, è necessario eseguire il backup di numerosi database di sistema. Alcuni database di sistema di cui è necessario eseguire sempre il backup sono msdb
, master
e model
. Se un database usa la replica nell'istanza del server, è necessario eseguire il backup anche di un database di sistema distribution
. I backup di questi database di sistema consentono di ripristinare e recuperare il sistema SQL Server qualora si verifichi un errore a livello di sistema, come la perdita di un dispositivo di archiviazione.
Nella tabella seguente è presentato un riepilogo di tutti i database di sistema.
Database di sistema | Descrizione | Sono necessari dei backup? | Modello di recupero | Commenti |
---|---|---|---|---|
master | Nel database vengono registrate tutte le informazioni a livello di sistema relative a un sistema SQL Server. | Sì | Semplice | Eseguire il backup di master con la frequenza necessaria a garantire una sufficiente protezione dei dati in base alle esigenze aziendali. È consigliabile pianificare i backup con regolarità, pianificazione che è possibile integrare con backup aggiuntivi dopo un aggiornamento importante. I backup del log delle transazioni di master non sono supportati. |
model | Modello per tutti i database creati nell'istanza di SQL Server. | Sì | Configurabile dall'utente 1 | Eseguire il backup di model solo se necessario in base alle esigenze aziendali, ad esempio immediatamente dopo la personalizzazione delle opzioni del database.Procedura consigliata: creare solo backup completi del database model in base alle esigenze. Poiché nel database model vengono apportate solo di rado lievi modifiche, il backup del log non è necessario. |
msdb | Il database utilizzato da SQL Server Agent per la pianificazione di avvisi e processi e per la registrazione di operatori. msdb contiene anche tabelle di cronologia, ad esempio tabelle di cronologia di backup e ripristino. |
Sì | Con registrazione minima (impostazione predefinita) | Eseguire il backup di msdb a ogni aggiornamento. |
Database Resource (RDB) | Database di sola lettura che include copie di tutti gli oggetti di sistema forniti con SQL Server | No | None | Il database Resource risiede nel file mssqlsystemresource.mdf , che contiene solo codice. SQL Server non può quindi eseguire il backup del database Resource .Nota: è possibile eseguire un backup basato su file o su disco del file mssqlsystemresource.mdf considerando il file un file binario (.exe ) anziché un file di database. Non è tuttavia possibile utilizzare la funzionalità di ripristino di SQL Server su questi backup. Il ripristino di una copia di backup di mssqlsystemresource.mdf può essere eseguito solo manualmente, prestando attenzione a non sovrascrivere il database Resource corrente con una versione non aggiornata e potenzialmente non sicura. |
tempdb | Area di lavoro per il mantenimento dei set di risultati temporanei o intermedi. Questo database viene ricreato ogni volta che viene avviata un'istanza di SQL Server. Quando l'istanza del server viene chiusa, i dati inclusi in tempdb vengono eliminati in modo definitivo. |
No | Semplice | Non è possibile eseguire il backup del database di sistema tempdb . |
Configurare la distribuzione | Database esistente solo se il server è configurato come server di distribuzione repliche. In questo database sono memorizzati metadati e dati della cronologia per tutti i tipi di replica, nonché transazioni per la replica transazionale. | Sì | Semplice | Per informazioni su quando eseguire il backup del database distribution , vedere Eseguire il backup e ripristino di database replicati. |
1 Per conoscere l'attuale modello di recupero del modello, vedere Visualizzare o modificare il modello di recupero di un database (SQL Server) o sys.databases (Transact-SQL).
Limitazioni sul ripristino di database di sistema
I database di sistema possono essere ripristinati solo da backup creati nella versione di SQL Server eseguita nell'istanza del server. Per ripristinare un database di sistema in un'istanza del server che esegue SQL Server 2016 (13.x) con Service Pack 1, ad esempio, sarà necessario utilizzare un backup del database creato dopo che l'istanza del server è stata aggiornata a SQL Server 2016 (13.x) SP 1.
Per ripristinare un database, è necessario che l'istanza di SQL Server sia in esecuzione. Per l'avvio di un'istanza di SQL Server è necessario che il database master
sia accessibile e utilizzabile almeno in parte. Se il database master
diventa inutilizzabile, è possibile ripristinare uno stato utilizzabile del database in uno dei modi seguenti:
Ripristinare il database
master
da un backup del database corrente.Se è possibile avviare l'istanza del server, dovrebbe essere possibile anche ripristinare il database
master
da un backup completo del database. Per altre informazioni, vedere Ripristinare il database master (Transact-SQL).Ricompilare
master
completamente.Se non è possibile avviare SQL Server in seguito a gravi danni al database
master
, è necessario ricompilare il databasemaster
. Per altre informazioni, vedere Ricompilare database di sistema.Importante
La ricompilazione del database
master
comporta la ricompilazione di tutti i database di sistema.
In alcune circostanze, per i problemi relativi al recupero del database model
può essere necessario ricompilare i database di sistema o sostituire i file mdf
e ldf
del database model
. Per altre informazioni, vedere Ricompilare database di sistema.
Attività correlate
- Creare un backup completo del database
- Ripristini di database completi (modello di recupero con registrazione minima)
- Ripristinare il database master (Transact-SQL)
- Visualizzare o modificare il modello di recupero di un database (SQL Server)
- Spostare i database di sistema