# Backup automatici dei database su storage S3

> Pianifica backup di MySQL, MariaDB e PostgreSQL sul tuo bucket S3-compatible, conserva quanti backup vuoi e scaricali o ripristinali in pochi clic.

La pagina **Backup** di un server crea backup pianificati dei suoi database. Ogni backup è un dump compresso (`.sql.gz`) di uno o più database, caricato in un bucket S3-compatible di tua proprietà. Decidi tu ogni quanto viene eseguito un backup e quanti backup conservare, e dalla stessa pagina puoi scaricarli o ripristinarli.

La pagina è disponibile su ogni server con un motore di database (MySQL, MariaDB o PostgreSQL): app server e server database.

![La pagina Backup con una pianificazione notturna e un elenco di backup riusciti](https://ops.vimonto.com/docs-media/it/server-backups.webp?v=161e760d "Backup pianificati dei database")

## Prima di iniziare: aggiungi uno storage

I backup finiscono in un tuo object storage, mai su Vimonto Deploy. Per prima cosa aggiungi uno storage dei backup alla tua organizzazione in **Impostazioni** → **Integrazioni** (vedi [storage dei backup](https://ops.vimonto.com/docs/it/connections/storage-providers)). Sono supportati Amazon S3, DigitalOcean Spaces, Hetzner Object Storage, Scaleway Object Storage, OVHcloud Object Storage, Cloudflare R2 e altri storage S3-compatible.

Finché non c'è uno storage, la pagina mostra **Aggiungi prima uno storage**.

![La sezione Storage dei backup nelle integrazioni di un'organizzazione](https://ops.vimonto.com/docs-media/it/storage-providers.webp?v=161e760d)

## Pianifica un backup

1. Apri il server e scegli **Backup** nella barra laterale.
2. Clicca su **Pianifica backup**.
3. Compila il modulo:

| Campo | Significato |
| --- | --- |
| **Nome** | Un nome per questa pianificazione, ad esempio "Backup giornaliero". |
| **Database** | I database di cui fare il backup. Scegline almeno uno. |
| **Storage** | Il provider di storage a cui vanno i backup. |
| **Quando** | **Ogni ora**, **Ogni notte** (a mezzanotte), **Ogni settimana** (la domenica a mezzanotte), **Ogni mese** (il primo del mese a mezzanotte) o **Pianificazione personalizzata**. |
| **Pianificazione** | Solo per una pianificazione personalizzata: un'espressione cron con cinque campi, ad esempio `30 3 * * *` per ogni notte alle 3:30. |
| **Conserva** | Quanti backup riusciti conservare, da 1 a 365. |
| **Cartella nel bucket** | Dove vanno i file, ad esempio `backups/web-1`. Lettere, numeri, punti, trattini e underscore, con `/` tra le cartelle. |
| **Email se un backup non riesce** | Facoltativo, e già compilato con il tuo indirizzo. Questo indirizzo riceve un'email quando un backup non riesce; lascialo vuoto per non ricevere email. |

4. Clicca su **Pianifica backup**.

Le pianificazioni seguono il fuso orario del server, che puoi cambiare nelle [impostazioni del server](https://ops.vimonto.com/docs/it/servers/server-settings). Il primo backup viene eseguito al successivo orario pianificato; clicca su **Esegui backup ora** per crearne uno subito.

Un server può avere più pianificazioni, ad esempio una oraria che conserva 24 backup e una mensile che ne conserva 12.

## Come funziona un backup

All'orario pianificato, Vimonto Deploy avvia un task in background che puoi seguire nella pagina [Attività](https://ops.vimonto.com/docs/it/organization/activity) o aprire dal link **Output** del backup. Per ogni database:

1. esegue il dump del database sul server: `mysqldump` (o `mariadb-dump`) in un'unica transazione, incluse routine, trigger ed eventi, oppure `pg_dump` per PostgreSQL;
2. comprime il dump con gzip;
3. lo carica direttamente dal server nel tuo bucket, in `{folder}/{date and time}/{database}.sql.gz`.

Il server riceve solo un link di upload temporaneo per quel singolo file. Le chiavi del tuo storage restano in Vimonto Deploy e non vengono mai scritte sul server.

Ogni backup nell'elenco mostra l'orario, la dimensione totale e lo stato: **In esecuzione**, **Riuscito** o **Non riuscito**. Un backup non riuscito mostra il suo errore; i file caricati prima dell'errore vengono rimossi, perché un backup parziale non serve a nulla. I membri che vedono il server ricevono anche la notifica **Backup non riuscito**, tramite i canali scelti nelle [notifiche](https://ops.vimonto.com/docs/it/more/notifications).

### Quanti backup vengono conservati?

Dopo ogni backup riuscito, Vimonto Deploy conserva i backup riusciti più recenti fino al numero indicato in **Conserva** ed elimina dal tuo bucket tutto ciò che è più vecchio, compresi i backup non riusciti. La pagina mostra i 20 backup più recenti di ogni pianificazione.

## Scarica un backup

Apri il menu delle azioni (**⋯**) di un backup riuscito e scegli **Scarica** seguito dal nome del database. Il browser scarica il file `.sql.gz` direttamente dal tuo storage, tramite un link valido per cinque minuti.

## Ripristina un backup

1. Apri il menu delle azioni (**⋯**) di un backup riuscito e scegli **Ripristina** seguito dal nome del database.
2. In **Nel database**, scegli il database in cui ripristinare. Il database originale è già selezionato, ma puoi sceglierne un altro, ad esempio per ripristinare in una copia.
3. Clicca su **Continua**, digita il nome del database di destinazione per confermare e clicca su **Ripristina**.

Il server scarica il dump e lo carica nel database di destinazione. Le sue tabelle vengono sostituite da quelle del backup.

> [!WARNING]
> Il ripristino sostituisce le tabelle del database di destinazione. Le modifiche fatte dopo il backup vanno perse. Per confrontare prima, crea un database vuoto nella pagina [Database](https://ops.vimonto.com/docs/it/servers/databases) e ripristina lì.

## Modifica o elimina una pianificazione

Apri il menu delle azioni (**⋯**) di una pianificazione e scegli **Modifica** per cambiarne le impostazioni, oppure **Elimina** per rimuoverla. Eliminare una pianificazione ferma i nuovi backup e rimuove dal tuo storage tutti i backup che ha creato. Confermi digitando il nome della pianificazione.

Per eliminare un singolo backup, apri il suo menu delle azioni e scegli **Elimina**. Un backup non riuscito ha invece un pulsante **Rimuovi**.

## Chi può gestire i backup?

I membri con il permesso di gestire i backup possono pianificarli, eseguirli, scaricarli, ripristinarli ed eliminarli; per impostazione predefinita sono proprietari, amministratori, manager e sviluppatori. Ogni membro che vede il server vede le sue pianificazioni e l'elenco dei backup; se la tua organizzazione limita i membri ai server dei loro [team](https://ops.vimonto.com/docs/it/organization/teams), si tratta solo dei server dei loro team. Vedi [membri e ruoli](https://ops.vimonto.com/docs/it/organization/members-and-roles).

## Domande frequenti

### Viene fatto il backup dei file o dell'intero server?

No. I backup contengono solo database. Il tuo codice si trova nel repository Git e viene distribuito di nuovo a ogni [deploy](https://ops.vimonto.com/docs/it/sites/deployments); conserva i file caricati in un object storage o fanne il backup separatamente.

### Cosa succede se il server è offline all'orario pianificato?

I backup partono solo per i server attivi. Un backup che non può essere eseguito non viene recuperato in seguito; il successivo parte al prossimo orario pianificato.

### Posso ripristinare un backup su un altro server?

Non dalla pagina: un ripristino carica in un database sullo stesso server. Scarica il file `.sql.gz` e importalo sull'altro server, ad esempio con `gunzip -c backup.sql.gz | mysql database_name` nel [terminale](https://ops.vimonto.com/docs/it/servers/terminal).

### Perché una nuova pianificazione non mostra backup?

Il primo backup viene eseguito al successivo orario pianificato. Clicca su **Esegui backup ora** per crearne uno subito e verificare che il tuo storage funzioni.

### Cosa succede ai backup quando un server viene trasferito?

Le pianificazioni e l'elenco dei backup vengono rimossi dal server, perché lo storage appartiene alla vecchia organizzazione; i file restano in quello storage. Il nuovo proprietario pianifica i backup verso il proprio storage. Vedi [trasferire un server](https://ops.vimonto.com/docs/it/servers/transfer-a-server).
