# SQL BACKUP DATABASE: per proteggere il tuo database dalla perdita di dati

L’istruzione SQL BACKUP DATABASE serve per creare una copia di sicurezza di un database, salvandola in una posizione diversa. Il comando WITH DIFFERENTIAL permette inoltre di salvare solo le modifiche rispetto all’ultimo backup, risparmiando tempo e spazio di archiviazione.

## Cos’è SQL BACKUP DATABASE?

Lo [Structured Query Language](https://www.ionos.it/digitalguide/server/know-how/che-cose-sql/) (SQL) è adatto per gestire record di dati altamente sensibili e di grandi dimensioni, salvandoli e amministrandoli in modo semplice ed efficiente. Un’operazione importante per garantire la sicurezza di questi dati è creare una copia di [backup](https://www.ionos.it/digitalguide/server/sicurezza/che-cose-un-backup/) di un database già esistente e in uso. In questo modo puoi proteggerti **contro la perdita di dati o danni al disco rigido**, continuando a lavorare senza ritardi. Questa pratica è fortemente consigliata sia alle aziende sia ai privati. L’istruzione SQL BACKUP DATABASE ti permette di creare una copia di backup in pochi passi.

Attenzione: solo creando una copia di riserva **su un disco rigido diverso** puoi garantire che i tuoi dati continueranno a essere disponibili anche in caso di perdita del database originale. Il disco rigido usato per il backup deve disporre di uno **spazio di archiviazione sufficiente**. Puoi scegliere tra un [backup completo](https://www.ionos.it/digitalguide/server/know-how/backup-completo/) o parziale , ovvero un [backup differenziale](https://www.ionos.it/digitalguide/server/know-how/backup-differenziali/). Ti presentiamo le due opzioni e le loro differenze.

## Sintassi e funzionamento

La sintassi di SQL BACKUP DATABASE è costituita solo da due righe. Servono solo il nome del database e la posizione in cui archiviare il backup. Il codice si presenta come segue:

```sql
BACKUP DATABASE nome_del_database
TO DISK = 'nuova_posizione_di_archiviazione';
```

`nome_del_database` indica il database di cui si desidera creare una copia di backup. `TO DISK` permette di definire la posizione del disco in cui salvare i dati.

## Esempio di utilizzo dell’istruzione

A livello pratico SQL BACKUP DATABASE potrebbe presentarsi come segue:

```sql
BACKUP DATABASE lista clienti
TO DISK = 'C:\backup\nuovo_backup.bak';
```

## Backup parziale con WITH DIFFERENTIAL

Dopo aver creato un backup puoi anche scegliere di eseguire un BACKUP WITH DIFFERENTIAL. Con questo metodo non vengono salvati tutti i dati, ma solo le modifiche apportate **dopo l’ultimo backup**. In questo modo **risparmi tempo e spazio**, dato che gran parte del database è già stata salvata in precedenza. L’importante è che la posizione di archiviazione del nuovo backup corrisponda a quella del backup originale. In questo caso la sintassi è la seguente:

```sql
BACKUP DATABASE nome_del_database
TO DISK = 'nuova_posizione_di_archiviazione'
WITH DIFFERENTIAL;
```

Applicata al nostro esempio sopra, l’operazione SQL BACKUP DATABASE con il [comando SQL](https://www.ionos.it/digitalguide/server/configurazione/comandi-sql/) WITH DIFFERENTIAL si presenterebbe come segue:

```sql
BACKUP DATABASE lista clienti
TO DISK = 'C:\backup\nuovo_backup.bak'
WITH DIFFERENTIAL;
```

## Comandi simili a SQL BACKUP DATABASE

Un’alternativa a SQL BACKUP DATABASE è **transaction log**. Anche in questo modo vengono considerate tutte le modifiche che sono state apportate dopo l’ultimo backup del transaction log o dopo la creazione del database originario. In qualsiasi momento puoi così ritornare a una versione precedente del database e accedere a essa. La sintassi è la seguente:

```sql
BACKUP LOG nome_del_database
TO DISK = 'nuova_posizione_di_archiviazione';
```

Di seguito i parametri per il nostro esempio:

```sql
BACKUP LOG lista clienti
TO DISK = 'C:\backup\nuovo_backup.bak';
```

Per ripristinare un backup hai bisogno del comando **`RESTORE DATABASE`**. Qui la sua sintassi:

```sql
RESTORE DATABASE nome_del_database
FROM DISK = 'nuova_posizione_di_archiviazione';
```

In questo caso non indichi dove deve essere richiamato il backup, ma la sua posizione di archiviazione. Nel nostro esempio il comando si presenterà come segue:

```sql
RESTORE DATABASE lista clienti
FROM DISK = 'C:\backup\nuovo_backup.bak';
```

Consiglio Prestazioni elevate e tempi di accesso rapidi: scegliendo l’[hosting SQL Server](https://www.ionos.it/cloud/sql-server-hosting) di IONOS usufruisci in ogni momento del migliore accesso possibile ai tuoi dati. Scegli tra MSSQL, MySQL o MariaDB e approfitta di un supporto personalizzato!


This is a markdown version of: [https://www.ionos.it/digitalguide/server/configurazione/sql-backup-database/](https://www.ionos.it/digitalguide/server/configurazione/sql-backup-database/) for AI/LLM consumption.