Backup di log delle transazioni (SQL Server)Transaction Log Backups (SQL Server)

QUESTO ARGOMENTO SI APPLICA A: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Le informazioni contenute in questo argomento sono rilevanti solo per i database di SQL ServerSQL Server che utilizzano i modelli di recupero con registrazione completa o con registrazione minima delle operazioni bulk.This topic is relevant only for SQL ServerSQL Server databases that are using the full or bulk-logged recovery models. In questo argomento viene illustrata l'esecuzione del backup del log delle transazioni di un database di SQL ServerSQL Server .This topic discusses backing up the transaction log of a SQL ServerSQL Server database.

Per poter creare backup dei log è necessario aver creato almeno un backup completo.Minimally, you must have created at least one full backup before you can create any log backups. A quel punto, è possibile eseguire il backup del log delle transazioni in qualsiasi momento a meno che non sia già stato eseguito.After that, the transaction log can be backed up at any time unless the log is already being backed up.

È consigliabile eseguire backup del log spesso, sia per ridurre al minimo il rischio di perdita dei dati sia per consentire il troncamento del log.We recommend you take log backups frequently, both to minimize work loss exposure and to truncate the transaction 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.A database administrator typically creates a full database backup occasionally, such as weekly, and, optionally, creates a series of differential database backup at a shorter interval, such as daily. Indipendentemente dai backup di database, l'amministratore esegue il backup del log delle transazioni a intervalli frequenti.Independent of the database backups, the database administrator backs up the transaction log at frequent intervals. 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.For a given type of backup, the optimal interval depends on factors such as the importance of the data, the size of the database, and the workload of the server. Per altre informazioni sull'implementazione di una buona strategia, vedere Indicazioni in questo argomento.For more information about implementing a good strategy, see Recommendations in this topic.

Modalità di funzionamento di una sequenza di backup del logHow a sequence of log backups works

La sequenza della catena di log dei backup del log delle transazioni è indipendente dai backup dei dati.The sequence of transaction log backups log chain is independent of data backups. Si consideri ad esempio la sequenza di eventi seguente:For example, assume the following sequence of events.

TimeTime EventoEvent
8.008:00 AM Backup del databaseBack up database.
12.00Noon Backup del log delle transazioniBack up transaction log.
16.004:00 PM Backup del log delle transazioniBack up transaction log.
18.006:00 PM Backup del databaseBack up database.
20.008:00 PM Backup del log delle transazioniBack up transaction log.

Il backup del log delle transazioni creato alle 20.00 contiene i record del log delle transazioni compresi tra le 16.00 e le 20.00, includendo l'ora di creazione del backup completo del database (18.00). La sequenza di backup del log delle transazioni è continua, dal primo backup completo del database creato alle 8.00 fino all'ultimo backup del log delle transazioni creato alle 20.00.The transaction log backup created at 8:00 PM contains transaction log records from 4:00 PM through 8:00 PM, spanning the time when the full database backup was created at 6:00 PM The sequence of transaction log backups is continuous from the initial full database backup created at 8:00 AM to the last transaction log backup created at 8:00 PM. Per informazioni su come applicare i backup del log, vedere l'esempio in Applicare backup log delle transazioni (SQL Server).For information about how to apply these log backups, see the example in Apply Transaction Log Backups (SQL Server).

IndicazioniRecommendations

  • Se un log delle transazioni è danneggiato, il lavoro eseguito dopo il backup valido più recente viene perso.If a transaction log is damaged, work that is performed since the most recent valid backup is lost. Pertanto è consigliabile inserire i file di log in una risorsa di archiviazione con tolleranza di errore.Therefore we strongly recommend that you put your log files on fault-tolerant storage.

  • 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.If a database is damaged or you are about to restore the database, we recommend that you create a tail-log backup to enable you to restore the database to the current point in time.

  • Per impostazione predefinita, per ogni operazione di backup eseguita in modo corretto viene aggiunta una voce al log degli errori di SQL ServerSQL Server e al registro eventi di sistema.By default, every successful backup operation adds an entry in the SQL ServerSQL Server error log and in the system event log. 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.If back up the log very frequently, these success messages accumulate quickly, resulting in huge error logs that can make finding other messages difficult. In questi casi è possibile eliminare tali voci di log utilizzando il flag di traccia 3226 se nessuno degli script dipende da esse.In such cases you can suppress these log entries by using trace flag 3226 if none of your scripts depend on those entries. Per altre informazioni, vedere Flag di traccia (Transact-SQL).For more information, see Trace Flags (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.Take frequent enough log backups to support your business requirements, specifically your tolerance for work loss such as might be caused by a damaged log storage.

    • 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.The appropriate frequency for taking log backups depends on your tolerance for work-loss exposure balanced by how many log backups you can store, manage, and, potentially, restore. Considerare gli obiettivi RTO e RPO richiesti quando si implementa la strategia di ripristino, in particolare la frequenza di backup del log.Think about the required RTO and RPO when implementing your recovery strategy, and specifically the log backup cadence.
    • Potrebbe essere sufficiente eseguire un backup del log ogni 15 - 30 minuti.Taking a log backup every 15 to 30 minutes might be enough. 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.If your business requires that you minimize work-loss exposure, consider taking log backups more frequently. 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.More frequent log backups have the added advantage of increasing the frequency of log truncation, resulting in smaller log files.

Importante

Per limitare il numero di backup dei log che è necessario ripristinare, è fondamentale eseguire regolarmente il backup dei dati.To limit the number of log backups that you need to restore, it is essential to routinely back up your data. Ad esempio, è possibile pianificare un backup completo del database una volta la settima e backup differenziali del database una volta al giorno.For example, you might schedule a weekly full database backup and daily differential database backups.
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.Again, think about the required RTO and RPO when implementing your recovery strategy, and specifically the full and differential database backup cadence.

Attività correlateRelated Tasks

Per creare un backup del log delle transazioniTo create a transaction log backup

Vedere ancheSee Also

Log delle transazioni (SQL Server) The Transaction Log (SQL Server)
Backup del log delle transazioni nella Guida sull'architettura e gestione del log delle transazioni in SQL Server Transaction Log Backups in the SQL Server Transaction Log Architecture and Management Guide
Backup e ripristino di database SQL Server Back Up and Restore of SQL Server Databases
Backup della parte finale del log (SQL Server) Tail-Log Backups (SQL Server)
Applicare backup log delle transazioni (SQL Server)Apply Transaction Log Backups (SQL Server)