Backup del log delle transazioni (SQL Server)

Si applica a:SQL Server

Le informazioni contenute in questo articolo sono rilevanti solo per i database di SQL Server che usano il modello di recupero con registrazione completa o con registrazione minima delle operazioni bulk. In questo articolo viene illustrata l'esecuzione del backup del log delle transazioni di un database di SQL Server.

Per poter creare backup dei log è necessario aver creato almeno un backup completo. A quel punto, è possibile eseguire il backup del log delle transazioni in qualsiasi momento a meno che non sia già stato eseguito.

È consigliabile eseguire backup del log spesso, sia per ridurre al minimo il rischio di perdita dei dati sia per consentire il troncamento del log.

In genere, un amministratore del database crea un backup completo occasionale del database, ad esempio con cadenza settimanale ed eventualmente crea una serie di backup differenziali a intervalli più brevi, ad esempio giornalmente. Indipendentemente dai backup di database, l'amministratore esegue il backup del log delle transazioni a intervalli frequenti. L'intervallo ottimale per un determinato tipo di backup dipende da fattori quali l'importanza dei dati, le dimensioni del database e il carico di lavoro del server. Per altre informazioni sull'implementazione di una buona strategia, vedere Indicazioni in questo articolo.

Modalità di funzionamento di una sequenza di backup del log

La sequenza della catena di log dei backup del log delle transazioni è indipendente dai backup dei dati. Si consideri ad esempio la sequenza di eventi seguente:

Tempo Event
8:00 Backup del database
12.00 Backup del log delle transazioni
16:00 Backup del log delle transazioni
18:00 Backup del database
20.00 Backup del log delle transazioni

Il backup del log delle transazioni creato alle 20:00 contiene i record del log delle transazioni dalle 16:00 alle 20:00, estendendo l'ora in cui è stato creato il backup completo del database alle 18:00. La sequenza di backup del log delle transazioni è continua, dal backup del database completo iniziale creato alle 8:00 all’ultimo backup del log delle transazioni creato alle 20:00. Per informazioni su come applicare i backup del log, vedere l'esempio in Applicare backup del log delle transazioni (SQL Server).

Consigli

Se un log delle transazioni è danneggiato, il lavoro eseguito dopo il backup valido più recente viene perso. Pertanto è consigliabile inserire i file di log in una risorsa di archiviazione con tolleranza di errore.

Se un database è danneggiato, oppure deve essere ripristinato, è consigliabile creare un backup della parte finale del log per consentire il ripristino del database al momento corrente.

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.

Per impostazione predefinita, per ogni operazione di backup eseguita in modo corretto viene aggiunta una voce al log degli errori di SQL Server e al registro eventi di sistema. Se il backup del log viene eseguito di frequente, questi messaggi possono aumentare rapidamente, provocando la creazione di log degli errori di dimensioni elevate e rendendo difficile l'individuazione di altri messaggi. In questo caso è possibile eliminare tali voci di log di backup usando il flag di traccia 3226 se nessuno degli script dipende da esse. Per altre informazioni, vedere Flag di traccia (Transact-SQL).

Eseguire backup del log abbastanza frequenti da soddisfare i requisiti aziendali e in particolare il requisito di tolleranza per eventuali perdite di dati, che potrebbero ad esempio verificarsi in seguito al danneggiamento della risorsa di archiviazione dei log.

  • La frequenza appropriata per l'esecuzione dei backup del log viene determinata in base al raggiungimento di un compromesso tra la tolleranza per il rischio di perdita dei dati e la quantità di backup del log che è possibile archiviare, gestire e potenzialmente ripristinare. Considerare l’obiettivo del tempo di ripristino (RTO) e l’obiettivo del punto di ripristino (RPO) richiesti quando si implementa la strategia di ripristino, in particolare la frequenza di backup del log.

  • Potrebbe essere sufficiente eseguire un backup del log ogni 15 - 30 minuti. Se nella propria azienda è necessario limitare al minimo il rischio di perdita dei dati, valutare se eseguire i backup del log con una maggiore frequenza. L'esecuzione di backup del log più frequenti offre il vantaggio aggiuntivo di un aumento della frequenza del troncamento del log, con una conseguente riduzione delle dimensioni dei file di log.

Importante

Per limitare il numero di backup dei log che è necessario ripristinare, è fondamentale eseguire regolarmente il backup dei dati. Ad esempio, è possibile pianificare un backup completo del database una volta la settima e backup differenziali del database una volta al giorno.
Anche in questo caso considerare gli obiettivi RTO e RPO richiesti quando si implementa la strategia di ripristino, in particolare la frequenza del backup completo e differenziale del database.