Backup e rollback del file system, dei supporti e del database

Questo comando consente di eseguire il backup di:

  • Il file system (escluse var e pub/static directory)
  • La directory pub/media
  • Il database

I backup sono archiviati nella directory var/backups e possono essere ripristinati in qualsiasi momento utilizzando il comando magento setup:rollback.

Dopo il backup, puoi eseguire il rollback in un secondo momento.

TIP
Per i progetti Adobe Commerce su infrastrutture cloud, consulta Snapshot e gestione backup nella Guida cloud.

Abilita backup

La funzione di backup è disabilitata per impostazione predefinita. Per attivare questa opzione, immettere il seguente comando CLI:

bin/magento config:set system/backup/functionality_enabled 1
WARNING
Avviso di rimozione:
La funzionalità di backup è obsoleta dal 2.1.16, 2.2.7 e 2.3.0. Si consiglia di esaminare ulteriori tecnologie di backup e strumenti di backup binari (come Percona XtraBackup).

Imposta il limite di file aperti

Il rollback a un backup precedente può non riuscire in modo invisibile all'utente, causando la scrittura di dati incompleti nel file system o nel database tramite il comando magento setup:rollback.

A volte, una lunga stringa di query causa la mancanza di memoria dell’utente a causa di troppe chiamate ricorsive.

Impostare i file aperti ulimit

È consigliabile impostare i file aperti ulimit per l'utente del file system su un valore pari a 65536 o superiore.

È possibile eseguire questa operazione sulla riga di comando oppure impostarla come impostazione permanente per l'utente modificandone lo script shell.

Prima di continuare, se non lo hai già fatto, passa al proprietario del file system.

Comando:

ulimit -s 65536

Se necessario, puoi modificare questo valore in un valore maggiore.

NOTE
La sintassi dei file aperti ulimit dipende dalla shell UNIX utilizzata. L’impostazione precedente dovrebbe funzionare con CentOS e Ubuntu con la shell Bash. Tuttavia, per macOS, l'impostazione corretta è ulimit -S 65532. Per ulteriori informazioni, consultare la pagina man o il riferimento al sistema operativo.

Per impostare facoltativamente il valore nella shell Bash dell'utente:

  1. Se non lo hai già fatto, passa al proprietario del file system.

  2. Apri /home/<username>/.bashrc in un editor di testo.

  3. Aggiungi la seguente riga:

    code language-bash
    ulimit -s 65536
    
  4. Salvare le modifiche apportate a .bashrc e uscire dall'editor di testo.

WARNING
È consigliabile evitare di impostare un valore per pcre.recursion_limit nel file php.ini, in quanto potrebbe causare rollback incompleti senza alcun avviso di errore.

Backup

Utilizzo comando:

bin/magento setup:backup [--code] [--media] [--db]

Il comando esegue le seguenti operazioni:

  1. Mette l'archivio in modalità di manutenzione.

  2. Esegue una delle seguenti opzioni di comando.

    table 0-row-3 1-row-3 2-row-3 3-row-3
    Opzione Significato Nome e percorso del file di backup
    --code Esegue il backup del file system (escluse le directory var e pub/static). var/backups/<timestamp>/_filesystem.tgz
    --media Eseguire il backup della directory pub/media. var/backups/<timestamp>/_filesystem_media.tgz
    --db Eseguire il backup del database. var/backups/<timestamp>/_db.sql
  3. Porta il negozio fuori dalla modalità di manutenzione.

Ad esempio, per eseguire il backup del file system e del database,

bin/magento setup:backup --code --db

Messaggi simili alla seguente visualizzazione:

Enabling maintenance mode
Code backup is starting...
Code backup filename: 1434133011_filesystem.tgz (The archive can be uncompressed with 7-Zip on Windows systems)
Code backup path: /var/www/html/magento2/var/backups/1434133011_filesystem.tgz
[SUCCESS]: Code backup completed successfully.
DB backup is starting...
DB backup filename: 1434133011_db.sql
DB backup path: /var/www/html/magento2/var/backups/1434133011_db.sql
[SUCCESS]: DB backup completed successfully.
Disabling maintenance mode

Rollback

Questa sezione illustra come ripristinare un backup precedente. È necessario conoscere il nome del file di backup da ripristinare.

Per trovare il nome dei backup, immettere:

bin/magento info:backups:list

La prima stringa nel nome del file di backup è la marca temporale.

Per eseguire il rollback a un backup precedente, immettere:

bin/magento setup:rollback [-c|--code-file="<name>"] [-m|--media-file="<name>"] [-d|--db-file="<name>"]

Ad esempio, per ripristinare un backup multimediale denominato 1440611839_filesystem_media.tgz, immettere:

bin/magento setup:rollback -m 1440611839_filesystem_media.tgz

Messaggi simili alla seguente visualizzazione:

[SUCCESS]: Media rollback completed successfully.
Please set file permission of bin/magento to executable
Disabling maintenance mode
recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995