Condividi tramite


Backup completi del database (SQL Server)

Si applica a:SQL Server

Un backup completo del database consente di eseguire il backup dell'intero database. Questo include parte del registro delle transazioni in modo che il database completo possa essere recuperato dopo il ripristino del backup completo. I backup completi del database rappresentano il database al momento del completamento del backup.

Poiché le dimensioni del database aumentano, i backup completi del database richiedono più tempo e più spazio di archiviazione. Per un database di grandi dimensioni può pertanto essere utile integrare un backup completo del database con una serie di backup database differenziali. Per altre informazioni, vedere Backup differenziali (SQL Server).

Importante

TRUSTWORTHY è impostato su OFF in un backup del database. Per informazioni su come impostare TRUSTWORTHY su ON, vedere Opzioni ALTER DATABASE SET (Transact-SQL).

Backup del database nel modello di recupero semplice

Se si utilizza il modello di recupero semplice, dopo ogni backup, il database è esposto al rischio di potenziale perdita di lavoro nel caso si verifichi un'emergenza. L'esposizione alla perdita di lavoro aumenta a ogni aggiornamento fino al backup successivo, quando l'esposizione torna a zero e inizia un nuovo ciclo di esposizione alla perdita di lavoro. Il rischio di perdita dei dati cresce nel tempo che intercorre tra un backup e l'altro. Nella figura seguente viene illustrato il rischio di perdita di dati per una strategia di backup che utilizza solo backup completi di database.

Diagramma che mostra l'esposizione alla perdita di lavoro tra i backup del database.

Esempio (Transact-SQL)

Nell'esempio seguente viene illustrato come creare un backup completo del database utilizzando WITH FORMAT per sovrascrivere eventuali backup esistenti e creare un nuovo set di supporto.

-- Back up the AdventureWorks2022 database to new media set.
BACKUP DATABASE AdventureWorks2022
    TO DISK = 'Z:\SQLServerBackups\AdventureWorksSimpleRM.bak'
    WITH FORMAT;
GO

Backup del database nel modello di recupero completo

Per i database che utilizzano il recupero completo o con log delle operazioni bulk, i backup del database sono necessari, ma non sufficienti. Sono inoltre necessari i backup del log delle transazioni. Nella figura seguente viene illustrata la strategia di backup meno complessa che è possibile adottare con il modello di recupero completo.

Diagramma che mostra la serie di backup completi del database e di backup del log.

Per informazioni sulle modalità di creazione dei backup di log, vedere Backup del log delle transazioni (SQL Server).

Esempio (Transact-SQL)

Nell'esempio seguente viene illustrato come creare un backup completo del database utilizzando WITH FORMAT per sovrascrivere i backup esistenti e creare un nuovo set di supporti. Viene quindi eseguito il backup del log delle transazioni. In una situazione reale sarebbe necessario eseguire una serie di backup del log regolari. In questo caso il database di esempio AdventureWorks2022 viene impostato per l'utilizzo del modello di recupero completo.

USE master;
GO
ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;
GO
-- Back up the AdventureWorks2022 database to new media set (backup set 1).
BACKUP DATABASE AdventureWorks2022
  TO DISK = 'Z:\SQLServerBackups\AdventureWorks2022FullRM.bak'
  WITH FORMAT;
GO
--Create a routine log backup (backup set 2).
BACKUP LOG AdventureWorks2022 TO DISK = 'Z:\SQLServerBackups\AdventureWorks2022FullRM.bak';
GO

Utilizzare un backup completo del database per ripristinare il database

È possibile ricreare un intero database in un solo passaggio ripristinando il database da un backup completo del database in qualsiasi posizione. Nel backup è inclusa una parte del log delle transazioni sufficiente per consentire il recupero del database fino al momento in cui è terminato il backup. Lo stato del database ripristinato corrisponde allo stato del database originale al termine del backup del database, escluse eventuali transazioni di cui non è stato eseguito il commit. Nel modello di recupero completo, dovresti quindi ripristinare tutti i successivi backup del log delle transazioni. Quando il database viene recuperato, viene effettuato il rollback delle transazioni di cui non è stato eseguito il commit.

Per altre informazioni, vedere Ripristini di database completi (Modello di recupero con registrazione minima) o Ripristini di database completi (Modello di recupero con registrazione completa).