Crea un backup differenziale del database (SQL Server)

Si applica a:SQL Server

Questo articolo descrive come creare un backup differenziale del database in SQL Server utilizzando SQL Server Management Studio, Transact-SQL o PowerShell.

Per una panoramica dei concetti e dei compiti di backup, vedi Panoramica di Backup (SQL Server).

Prerequisiti

Un backup differenziale del database richiede un backup completo del database precedente. Se il database non ne ha uno, fai prima un backup completo del database. Per altre informazioni, vedere Creare un backup completo del database.

Consigli

Poiché i backup differenziali aumentano di dimensione nel tempo, il ripristino può estendere significativamente il tempo necessario per ripristinare un database. Adotta un nuovo backup completo a intervalli prestabiliti per stabilire una nuova base differenziale.

Ad esempio, puoi fare un backup completo settimanale del database, seguito da backup differenziali giornalieri durante la settimana.

Limitazioni

Non puoi usare l'istruzione BACKUP in una transazione esplicita o implicita.

Permissions

BACKUP DATABASE e BACKUP LOG sono autorizzazioni predefinite per i membri del ruolo del server predefinito sysadmin e dei ruoli predefiniti del database db_owner e db_backupoperator.

L'account del servizio SQL Server deve avere permessi di lettura e scrittura sul file fisico del dispositivo di backup. Problemi di proprietà o permessi su quel file impediscono le operazioni di backup e ripristino, e compaiono solo quando viene eseguita l'operazione di backup o ripristino.

Ad esempio, la procedura di archiviazione sp_addumpdevice sistema, che aggiunge una voce di dispositivo di backup alle tabelle di sistema, non convalida l'accesso ai file.

Uso di SQL Server Management Studio

  1. In Esplora oggetti, collegati al motore di database e poi espandi l'albero server.

  2. Espandi Database, poi seleziona un database utente. Oppure, espandi i database di sistema e seleziona un database di sistema.

  3. Fare clic con il pulsante destro del mouse sul database, scegliere Attività e quindi selezionare Backup. Verrà visualizzata la finestra di dialogo Backup database .

  4. Nell'elenco a tendina del database , verifica il nome del database. Opzionalmente, seleziona un database diverso.

    Puoi effettuare un backup differenziale con qualsiasi modello di recupero (completo, con logging in massa o semplice).

  5. Nell'elenco a tendina Tipo di backup , seleziona Differenziale.

    Importante

    Quando selezioni Differenziale, assicurati che la casella di controllo Backup di sola copia sia deselezionata. Non è possibile creare un backup differenziale da un backup completo di sola copia. Per altre informazioni, vedere Backup di sola copia.

  6. Per il componente Backup, seleziona Database.

  7. Nella casella di testo Nome , accetta il nome predefinito del set di backup o inseriscine uno nuovo.

  8. Opzionalmente, inserisci una descrizione nella casella di testo Descrizione .

  9. Specifica quando il set di backup scade:

    • Per scadere il set di backup dopo un certo numero di giorni, seleziona After (il valore predefinito) e inserisci il numero di giorni. I valori variano da 0 a 99999. Un valore di 0 significa che il set di backup non scade mai.

      Il valore predefinito è impostato nell'opzione Backup media retention predefinita (in giorni) nella pagina Impostazioni del database nella finestra di dialogo Proprietà del server . Per aprirlo, clicca con il tasto destro sul nome del server in Esplora oggetti, seleziona Proprietà e poi seleziona la pagina Impostazioni del database.

    • Per scadere il set di backup in una data specifica, seleziona On e inserisci la data.

  10. Per la destinazione di backup, seleziona Disco o URL. Per aggiungere fino a 64 unità disco per un singolo set di media, seleziona Aggiungi. I percorsi selezionati appaiono nella lista a tendina Backup to .

    Per rimuovere una destinazione di backup, selezionarla, poi selezionare Rimuovi. Per visualizzare il contenuto di una destinazione di backup, selezionarla e fare clic su Contenuto.

    Nota

    Per maggiori informazioni sul backup verso URL, vedi SQL Server backup to URL for Archiviazione BLOB di Azure.

  11. Per visualizzare o selezionare le opzioni avanzate, selezionare Opzioni nel riquadro Selezione pagina .

  12. Per Overwrite Media, seleziona una delle seguenti opzioni:

    • Esegui backup sul set di supporti esistente

      Seleziona Aggiungi al set di backup esistenteoppure Sovrascrivi tutti i set di backup esistenti. Opzionalmente, seleziona la casella di controllo Controlla il nome del set di supporti e la scadenza del set di backup e immetti un nome nella casella di testo Nome del set di supporti.

      Se non specifichi un nome, SQL Server crea il set di media con un nome vuoto. Se specifichi un nome, SQL Server controlla il media per confermare che il nome corrisponda.

      Se lasci il nome del media vuoto e selezioni la casella, il controllo ha successo solo se anche il nome sul media è vuoto.

    • Esegui backup su un nuovo set di supporti e cancella tutti i set di backup esistenti

      Inserisci un nome nella casella di testo del nome del set Nuovi media . Opzionalmente, descrivi il set di media nella casella di testo per la descrizione del set Nuovi media .

  13. Nella sezione Affidabilità , seleziona opzionalmente:

  14. SQL Server supporta la compressione dei backup. Di default, SQL Server comprime i backup in base all'opzione backup-compression default di configurazione del server. Indipendentemente dal valore predefinito a livello di server, seleziona Comprimi backup per comprimere il backup, oppure seleziona Non comprimere il backup per evitare la compressione.

    Per visualizzare l'impostazione predefinita corrente per la compressione dei backup, vedere Configurazione del server: backup compression default. Per maggiori informazioni sulla compressione dei backup, vedi Compressione di backup (SQL Server).

Osservazioni:

  • Puoi invece usare la Maintenance Plan Wizard per creare backup differenziali del database.

  • Le opzioni della sezione Registro delle transazioni sono inattive a meno che tu non stia facendo il backup di un registro delle transazioni. Specifica questa opzione nella sezione Tipo di Backup della pagina Generale .

Usare Transact-SQL

Esegui l'istruzione BACKUP DATABASE per creare il backup differenziale del database. Specificare:

  • Il nome del database di cui eseguire il backup.

  • Il dispositivo di backup in cui archiviare il backup completo del database.

  • La clausola DIFFERENTIAL per fare il backup solo delle parti del database che sono cambiate dopo l'ultimo backup completo del database.

Usare la sintassi seguente:

BACKUP DATABASE database_nameTO< backup_device>WITH DIFFERENTIAL

Esempio (Transact-SQL)

Gli esempi di codice in questo articolo usano il database di esempio AdventureWorks2025 o AdventureWorksDW2025, che è possibile scaricare dalla home page Microsoft SQL Server Samples and Community Projects.

-- Create a full database backup first.
BACKUP DATABASE AdventureWorks2025
    TO AdventureWorks2025_1
    WITH INIT;
GO

-- Time elapses.
-- Create a differential database backup, appending the backup
-- to the backup device containing the full database backup.
BACKUP DATABASE AdventureWorks2025
    TO AdventureWorks2025_1
    WITH DIFFERENTIAL;
GO

Osservazioni:

Per informazioni sul backup su nastro, consulta BACKUP le opzioni del nastro e l'esempio Backup su un dispositivo a nastro in Crea un backup completo del database.

Nota

L'opzione TAPE verrà rimossa in una versione futura di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.

Usare PowerShell.

Usare il cmdlet Backup-SqlDatabase. Per specificare un backup differenziale del database, si usa il parametro -Incremental insieme a -BackupAction Database.

Nota

Questo esempio richiede il SqlServer modulo. Per altre informazioni, vedere Provider PowerShell per SQL Server.

Esempio (PowerShell)

Il seguente esempio crea un backup differenziale del AdventureWorks2025 database verso la posizione di backup predefinita dell'istanza Computer\Instanceserver. Deve già esistere un backup completo del database.

Per esempi di sintassi completi, vedere Backup-SqlDatabase.

$credential = Get-Credential

Backup-SqlDatabase -ServerInstance Computer[\Instance] -Database AdventureWorks2025 -BackupAction Database -Incremental -Credential $credential