Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È possibile sfruttare i vantaggi di un database mirror gestito per scopi di disponibilità per l'offload dei report. Per usare un database mirror per la creazione di report, è possibile creare uno snapshot del database nel database mirror e indirizzare le richieste di connessione client allo snapshot più recente. Un'istantanea del database è statica, di sola lettura e coerente con le transazioni del database di origine come esisteva al momento della sua creazione. Per creare uno snapshot del database in un database mirror, il database deve trovarsi nello stato di mirroring sincronizzato.
A differenza del database mirror stesso, uno snapshot del database è accessibile ai client. Finché il server mirror comunica con il server principale, è possibile indirizzare i client di reportistica a connettersi a uno snapshot. Si noti che poiché uno snapshot del database è statico, i nuovi dati non sono disponibili. Per rendere i dati relativamente recenti disponibili agli utenti, è necessario creare periodicamente un nuovo snapshot del database e avere le applicazioni che indirizzano le connessioni client in ingresso allo snapshot più recente.
Un nuovo snapshot del database è quasi vuoto, ma aumenta nel tempo man mano che sempre più pagine di database vengono aggiornate per la prima volta. Poiché ogni snapshot in un database aumenta in modo incrementale in questo modo, ogni snapshot del database utilizza tutte le risorse del normale database. A seconda delle configurazioni del server mirror e del server principale, la presenza di un numero eccessivo di snapshot del database in un database mirror potrebbe ridurre le prestazioni nel database principale. È pertanto consigliabile mantenere solo alcuni snapshot relativamente recenti nei database mirror. In genere, dopo aver creato uno snapshot sostitutivo, è consigliabile reindirizzare le query in ingresso al nuovo snapshot ed eliminare lo snapshot precedente dopo il completamento delle query correnti.
Annotazioni
Per ulteriori informazioni sugli snapshot di database, vedere Snapshot del database (SQL Server).
Se si verifica il cambio di ruolo, il database e i relativi snapshot vengono riavviati, disconnettendo temporaneamente gli utenti. Successivamente, gli snapshot del database rimangono nell'istanza del server in cui sono stati creati, che è diventato il nuovo database principale. Gli utenti possono continuare a usare gli snapshot dopo il failover. Tuttavia, in questo modo viene eseguito un carico aggiuntivo nel nuovo server principale. Se le prestazioni sono un problema nell'ambiente in uso, è consigliabile creare uno snapshot nel nuovo database mirror quando diventa disponibile, reindirizzare i client al nuovo snapshot ed eliminare tutti gli snapshot del database dal database mirror precedente.
Annotazioni
Per una soluzione di creazione di report dedicata con scalabilità orizzontale, prendere in considerazione la replica. Per altre informazioni, vedere Replica di SQL Server.
Esempio
In questo esempio vengono creati snapshot in un database con mirroring.
Si supponga che il database di una sessione di mirroring del database sia AdventureWorks2012. In questo esempio vengono creati tre snapshot del database della copia mirror del database AdventureWorks, che risiede nell'unità F. Gli snapshot sono denominati AdventureWorks_0600, AdventureWorks_1200e AdventureWorks_1800 per identificare i tempi di creazione approssimativi.
Creare il primo snapshot del database nel mirror di AdventureWorks2012.
CREATE DATABASE AdventureWorks_0600 ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_0600.SNP') AS SNAPSHOT OF AdventureWorks2012Creare il secondo snapshot del database nel mirror di AdventureWorks2012. Gli utenti che usano
AdventureWorks_0600ancora possono continuare a usarlo.CREATE DATABASE AdventureWorks_1200 ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_1200.SNP') AS SNAPSHOT OF AdventureWorks2012A questo punto, le nuove connessioni client possono essere indirizzate a livello di codice allo snapshot più recente.
Crea il terzo snapshot sullo specchio AdventureWorks2012. Gli utenti che usano
AdventureWorks_0600ancora oAdventureWorks_1200possono continuare a usarli.CREATE DATABASE AdventureWorks_1800 ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_1800.SNP') AS SNAPSHOT OF AdventureWorks2012A questo punto, le nuove connessioni client possono essere indirizzate a livello di codice allo snapshot più recente.
Attività correlate
Vedere anche
Snapshot del database (SQL Server)
Connettere i client a una sessione di mirroring del database (SQL Server)