SQL Server fornisce un modo semplice per creare un backup di un database. I backup possono essere eseguiti con Transact-SQL, PowerShell o tramite la GUI.
Qui dimostrerò come creare un backup utilizzando la GUI di SQL Operations Studio (ora denominata Azure Data Studio), quindi utilizzando Transact-SQL e infine con SQL Server Powershell.
Crea un backup tramite la GUI SQLOPS/Azure Data Studio
-
Apri il dashboard del database
Nel riquadro di sinistra, fai clic con il pulsante destro del mouse sul database di cui desideri eseguire il backup e seleziona Gestisci .
Se stai utilizzando SSMS, in Esplora oggetti, fai clic con il pulsante destro del mouse sul database di cui desideri eseguire il backup e seleziona Attività> Backup... dal menu contestuale. Verrà avviato il Backup del database finestra di dialogo.
-
Avvia il Database di backup Finestra di dialogo
Fai clic su Backup pulsante.
-
Rivedi le impostazioni
Questa finestra di dialogo ti dà l'opportunità di modificare qualsiasi impostazione, se necessario.
Per il nostro esempio, lascia le impostazioni predefinite e fai clic su Backup per creare il backup.
Se hai requisiti di backup specifici, puoi modificare il tipo di backup e/o fare clic su Configurazione avanzata per regolare le impostazioni di configurazione avanzate.
-
Backup completato
Una volta completato il backup, viene visualizzato un messaggio di conferma che il backup è riuscito.
Backup di un database utilizzando Transact-SQL
Puoi eseguire lo stesso backup di cui sopra utilizzando T-SQL.
Per fare ciò, apri una nuova finestra di query ed esegui un BACKUP
dichiarazione.
Il BACKUP
accetta varie opzioni (proprio come l'opzione GUI), ma puoi anche eseguire un semplice backup con un minimo di codice.
Di seguito è riportato un esempio di un semplice script di backup su un sistema Linux o Mac. Lo script specifica il database di cui eseguire il backup e la posizione in cui eseguirne il backup.
BACKUP DATABASE Music TO DISK = '/var/opt/mssql/data/Music.bak';
Su un sistema Windows, il percorso utilizzerà barre inverse:
BACKUP DATABASE Music TO DISK = 'C:\Backups\Music.bak';
Dopo aver eseguito questo codice, il file di backup si troverà nella posizione specificata.
Backup di un database utilizzando PowerShell
SQL Server 2017 supporta Windows PowerShell, che è una shell di scripting, usata in genere per automatizzare le attività di amministrazione e distribuzione.
Il linguaggio PowerShell supporta una logica più complessa rispetto agli script Transact-SQL, che ti dà la possibilità di creare script più sofisticati per i tuoi backup e altre attività.
Il codice seguente creerà un backup proprio come negli esempi precedenti. Sostituisci semplicemente MyServer
con il nome del tuo server.
Backup-SqlDatabase -ServerInstance MyServer -Database Music
Puoi anche specificare una posizione
Backup-SqlDatabase -ServerInstance MyServer -Database Music -BackupFile 'C:\Backups\Music.bak'
Dopo aver eseguito questo codice, il file di backup si troverà nella posizione predefinita.
Puoi anche specificare -BackupAction Database
per affermare esplicitamente che si tratta di un backup completo. Tuttavia, questa è l'opzione predefinita.
Puoi vedere la documentazione completa per Backup-SqlDatabase
comando sul sito Web Microsoft.
Sovrascrivere i file di backup
Se esegui più backup utilizzando lo stesso nome file per il file di backup, potresti notare che ogni volta che esegui un backup, la dimensione del file di backup aumenta.
Questo perché ogni backup successivo si aggiunge al file esistente. Lo sta facendo perché stai usando lo stesso nome file e non hai specificato esplicitamente che ogni backup dovrebbe sovrascrivere qualsiasi file esistente.
C'è un'opzione che ti permette di sovrascrivere il file esistente.
- Utilizzo della GUI di SQLOPS , fai clic su Configurazione avanzata e in Backup sul media set esistente , seleziona Sovrascrivi tutti i set di backup esistenti .
- Utilizzo della GUI di SSMS , fai clic su Opzioni multimediali nel menu a sinistra di Backup database finestra di dialogo e seleziona Sovrascrivi tutti i set di backup esistenti in Sovrascrivi media sezione.
- Utilizzo di SQL aggiungi
WITH INIT
all'istruzione SQL. - Utilizzo di Powershell , aggiungi
-Initialize
al comando.
Utilizzo di nomi di file univoci
Tuttavia, è spesso una buona idea creare un backup completo con un nome file univoco (in genere includendo la data nel nome file). Avere un nome file univoco significherà che ogni backup sarà un file separato.
Inoltre, a seconda delle dimensioni del database e della quantità di nuovi dati inseriti, potresti voler integrare i backup completi con backup differenziali. Un backup differenziale acquisisce solo i dati che sono stati modificati dall'ultimo backup completo.