Informazioni sul log shipping (SQL Server)

Si applica a:SQL Server

SQL Server consente di inviare automaticamente i backup del log delle transazioni da un database primario in un'istanza del server primario a uno o più database secondari in istanze separate del server secondario. I backup del log delle transazioni vengono applicati singolarmente a ogni database secondario. Un terzo server facoltativo, noto come server di monitoraggio, registra la cronologia e lo stato delle operazioni di backup e di ripristino e genera avvisi nel caso in cui tali operazioni non vengano eseguite come previsto.

Vantaggi

  • Fornisce una soluzione di recupero di emergenza per un solo database primario e uno o più database secondari, ognuno in un'istanza separata di SQL Server.

  • Supporta l'accesso in sola lettura limitato ai database secondari (durante l'intervallo tra processi di ripristino).

  • Consente un ritardo specificato dall'utente tra l'esecuzione del backup del log del database primario da parte del server primario e il momento in cui è necessario che i server secondari eseguano il ripristino del backup del log. Un ritardo maggiore può essere utile, ad esempio, se i dati vengono modificati per errore nel database primario. Se la modifica accidentale viene identificata rapidamente, un ritardo può consentire il recupero dei dati precedenti alla modifica da un database secondario prima che la modifica venga estesa anche a questo database.

Termini e definizioni

  • server primario: istanza di SQL Server che costituisce il server di produzione.

  • server primario: il database nel server primario per il quale si desidera eseguire il backup su un altro server. Tutte le procedure di amministrazione della configurazione per il log shipping tramite SQL Server Management Studio vengono eseguite dal database primario.

  • server secondario: l'istanza di SQL Server dove si vuole tenere una copia in modalità warm standby del database primario.

  • server secondario: la copia in modalità warm standby del database primario. Il database secondario potrebbe trovarsi nello stato RECOVERING o nello stato STANDBY, in cui rimane disponibile per l'accesso in sola lettura limitato.

  • server di monitoraggio: istanza facoltativa di SQL Server che tiene traccia di tutti i dettagli del log shipping, tra cui:

    • Quando è stato eseguito l'ultimo backup del log delle transazioni nel database primario.
    • Quando i server secondari hanno eseguito per l'ultima volta la copia e il ripristino dei file di backup.
    • Informazioni sugli avvisi di backup non riusciti.

    Importante

    Una volta configurato il server di monitoraggio, non sarà possibile modificarlo senza prima rimuovere il log shipping.

  • processo di backup: processo di SQL Server Agent che esegue il backup, registra la cronologia nel server locale e nel server di monitoraggio ed elimina i file di backup e le informazioni sulla cronologia precedenti. Se il log shipping è abilitato, nell'istanza del server primario viene creata la categoria di processi relativa al backup per il log shipping.

  • processo di copia: processo di SQL Server Agent che copia i file di backup del server primario in una destinazione configurabile del server secondario e registra la cronologia nel server secondario e nel server di monitoraggio. Se il log shipping è abilitato in un database, la categoria di processi relativa alla copia per il log shipping viene creata in ciascun server secondario in una configurazione per il log shipping.

  • processo di ripristino: processo di SQL Server Agent che ripristina i file di backup copiati nei database secondari. Registra la cronologia nel server locale e nel server di monitoraggio ed elimina i file e le informazioni sulla cronologia precedenti. Se il log shipping è abilitato in un database, la categoria di processi relativa al ripristino per il log shipping viene creata per l'istanza del server secondario.

  • processo di gestione avvisi: processo di SQL Server Agent che genera avvisi per i database primario e secondario nel caso in cui le operazioni di backup e ripristino non vengano completate entro la soglia stabilita. Se il log shipping è abilitato in un database, la categoria relativa alla gestione degli avvisi per il log shipping viene creata sull'istanza del server di monitoraggio.

    Suggerimento

    Per ogni avviso, è necessario specificare un numero. Assicurarsi inoltre di configurare l'avviso in modo che un operatore venga notificato quando viene generato un avviso.

Panoramica del log shipping

Il log shipping prevede tre operazioni:

  1. Backup del log delle transazioni nell'istanza del server primario.
  2. Copia del file di log delle transazioni nell'istanza del server secondario.
  3. Ripristino del backup del log nell'istanza del server secondario.

È possibile distribuire il log a più istanze del server secondario e in questo caso sarà necessario ripetere le operazioni 2 e 3 per ognuna delle istanze.

Il failover di una configurazione per il log shipping dal server primario al server secondario non viene eseguito automaticamente. Se il database primario non è più disponibile, è possibile portare online manualmente uno qualsiasi dei database secondari.

È possibile utilizzare un database secondario per la generazione di report.

È inoltre possibile configurare avvisi per la configurazione per il log shipping.

Configurazione tipica per il log shipping

Nella figura seguente viene illustrata una configurazione per il log shipping con l'istanza del server primario, tre istanze del server secondario e un'istanza del server di monitoraggio. Nella figura vengono illustrati i passaggi eseguiti dai processi di backup, copia e ripristino:

  1. L'istanza del server primario esegue il processo di backup per eseguire il backup del log delle transazioni nel database primario. Il backup del log viene quindi inserito in un file di backup del log primario, che viene inviato alla cartella di backup. In questa figura, la cartella di backup risiede in una directory condivisa, la condivisione di backup.

  2. Ognuna delle tre istanze del server secondario esegue un processo di copia per copiare il file di backup del log primario nella propria cartella di destinazione locale.

  3. Ognuna delle istanze del server secondario esegue un processo di ripristino per ripristinare il backup del log dalla cartella di destinazione locale al database secondario locale.

Tramite le istanze dei server primario e secondario vengono inviati la propria cronologia e il proprio stato all'istanza del server di monitoraggio.

Diagram of configuration showing backup, copy, and restore jobs.

Interoperabilità

Il log shipping può essere usato con le funzionalità o i componenti seguenti di SQL Server:

Nota

Gruppi di disponibilità Always On e il mirroring del database si escludono reciprocamente. Un database configurato per una di queste funzionalità non può essere configurato per l'altra.

Attenzione

Problema noto: per i database con tabelle ottimizzate per la memoria, l'esecuzione di un backup del log delle transazioni senza ripristino e l'esecuzione successiva di un ripristino del log delle transazioni con ripristino può comportare un processo di ripristino del database che non risponde. Questo problema può influire anche sulla funzionalità di log shipping. Per risolvere il problema, è possibile riavviare l'istanza di SQL Server prima di avviare il processo di ripristino.