Utilizzi tipici degli snapshot del database
Uno snapshot del database è una vista statica di sola lettura di un database, ovvero il database di origine. Ogni snapshot del database è coerente a livello di transazioni con il database di origine al momento della creazione dello snapshot. Quando si crea uno snapshot del database, nel database sono di solito presenti transazioni aperte. Prima che lo snapshot risulti disponibile, viene eseguito il rollback delle transazioni aperte, per rendere lo snapshot del database coerente a livello di transazioni.
I client possono eseguire query in uno snapshot del database. Questa operazione risulta utile per la scrittura di report basati sui dati disponibili al momento della creazione dello snapshot. In caso di danneggiamento successivo del database di origine, è inoltre possibile ripristinare lo stato del database di origine corrispondente al momento in cui è stato creato lo snapshot.
Importante |
---|
Gli snapshot del database sono disponibili unicamente in SQL Server Enterprise Edition. |
Di seguito sono riportati alcuni vantaggi offerti dagli snapshot del database.
Mantenimento dei dati cronologici per la generazione di report.
Poiché uno snapshot del database offre una vista statica di un database, consente di estendere l'accesso ai dati a partire da un determinato punto nel tempo. Ad esempio, è possibile creare uno snapshot del database al termine di un determinato periodo di tempo, come il trimestre fiscale, per consentire la creazione successiva di report ed eseguire report di fine periodo sullo snapshot. Se lo spazio su disco è sufficiente, è inoltre possibile mantenere gli snapshot di fine periodo a tempo indeterminato, consentendo l'esecuzione di query sui risultati relativi a tali periodi, ad esempio per esaminare le prestazioni aziendali.
Utilizzo di un database mirror mantenuto per assicurare la disponibilità in modo da ripartire il carico di lavoro dei report.
L'utilizzo degli snapshot del database con il mirroring del database consente di rendere disponibili per la creazione di report i dati archiviati nel server mirror. L'esecuzione di query sul database mirror consente inoltre di liberare risorse sul server principale. Per ulteriori informazioni, vedere Mirroring e snapshot del database.
Salvaguardia dei dati da errori amministrativi.
Prima dell'esecuzione di aggiornamenti importanti, ad esempio un aggiornamento bulk o una modifica dello schema, la creazione di uno snapshot del database consente di proteggere i dati. In caso di errore è possibile utilizzare lo snapshot per il recupero, riportando il database allo stato memorizzato nello snapshot. Tale operazione risulta potenzialmente più rapida in questo caso rispetto al ripristino da un backup, ma non consente l'esecuzione successiva del rollforward.
Per ulteriori informazioni, vedere Ripristino di uno snapshot del database.
[!NOTA]
Gli snapshot del database dipendono dal database di origine. L'utilizzo di snapshot per il ripristino di un database, pertanto, non rappresenta una soluzione alternativa alla strategia di backup e ripristino. L'esecuzione di tutti i backup pianificati rimane comunque essenziale. Se è necessario ripristinare il database di origine al punto nel tempo in cui è stato creato uno snapshot del database, implementare criteri di backup che consentano di eseguire tale operazione.
Salvaguardia dei dati da errori degli utenti.
La creazione su base regolare di snapshot del database consente di ridurre l'impatto di un errore grave da parte degli utenti, ad esempio l'eliminazione di una tabella. Per assicurare un livello elevato di protezione, è possibile creare una serie di snapshot del database, relativi a un intervallo di tempo sufficiente per riconoscere e rispondere alla maggior parte degli errori da parte degli utenti. Ad esempio, è possibile mantenere da 6 a 12 snapshot in sequenza relativi a un intervallo di 24 ore, a seconda delle risorse del disco. Ogni volta che viene creato un nuovo snapshot è possibile eliminare lo snapshot meno recente.
Per il ripristino dopo un errore da parte degli utenti, è possibile riportare il database allo stato registrato nello snapshot immediatamente precedente l'errore. Tale operazione risulta potenzialmente più rapida in questo caso rispetto al ripristino da un backup, ma non consente l'esecuzione successiva del rollforward.
Per ulteriori informazioni sul ripristino di uno snapshot, vedere Ripristino di uno snapshot del database.
In alternativa, è possibile ricostruire manualmente una tabella eliminata o altri dati persi, basandosi sulle informazioni disponibili in uno snapshot. Ad esempio, è possibile eseguire una copia bulk dei dati dallo snapshot al database, quindi integrare manualmente i dati nel database.
[!NOTA]
Il numero di snapshot simultanei necessari in un database, la frequenza per la creazione di un nuovo snapshot e il tempo di memorizzazione degli snapshot dipendono dalle ragioni per cui si decide di utilizzare gli snapshot del database.
Gestione di un database di prova
In un ambiente di testing, può essere utile, durante l'esecuzione ripetuta di un protocollo di test, che il database contenga dati identici all'inizio di ogni sessione di test. Prima di eseguire la prima sessione, uno sviluppatore o un tester di applicazioni può creare uno snapshot del database nel database di prova. Dopo ogni test, sarà possibile ripristinare rapidamente lo stato precedente del database ripristinando il relativo snapshot.