Eseguire il backup del database

È possibile creare una copia del database utilizzando il comando ece-tools db-dump senza acquisire tutti i dati dell'ambiente da servizi e installazioni. Per impostazione predefinita, questo comando crea backup nella directory /app/var/dump-main per tutte le connessioni al database specificate nella configurazione dell'ambiente. L'operazione di dump del database passa alla modalità di manutenzione dell'applicazione, interrompe i processi della coda del consumatore e disattiva i processi cron prima dell'inizio del dump.

Considera le seguenti linee guida per l’immagine del database:

  • Per gli ambienti di produzione, Adobe consiglia di completare le operazioni di dump del database nelle ore di minore utilizzo per ridurre al minimo le interruzioni del servizio che si verificano quando il sito è in modalità manutenzione.
  • Se si verifica un errore durante l'operazione di dump, il comando elimina il file di dump per risparmiare spazio su disco. Esaminare i registri per i dettagli (var/log/cloud.log).
  • Per gli ambienti Pro Production, questo comando esegue il dump solo da uno dei tre nodi ad alta disponibilità, pertanto i dati di produzione scritti in un nodo diverso durante il dump potrebbero non essere copiati. Il comando genera un file var/dbdump.lock per impedire l'esecuzione del comando su più nodi.
  • Per un backup di tutti i servizi dell'ambiente, l'Adobe consiglia di creare un backup.

È possibile scegliere di eseguire il backup di più database aggiungendo i nomi dei database al comando. L'esempio seguente esegue il backup di due database: main e sales:

php vendor/bin/ece-tools db-dump main sales

Usa il comando php vendor/bin/ece-tools db-dump --help per altre opzioni:

  • --dump-directory=<dir> - Scegliere una directory di destinazione per il dump del database
  • --remove-definers - Rimuovi istruzioni DEFINER dal dump del database

Per creare un'immagine del database nell'ambiente di staging o di produzione:

  1. Utilizzare SSH per accedere o creare un tunnel per connettersi all'ambiente remoto che contiene il database da copiare.

  2. Elencare le relazioni dell’ambiente e prendere nota delle informazioni di accesso al database.

    code language-bash
    echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
    

    o

    code language-bash
    php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"]))->database);'
    
  3. Crea un backup del database. Per scegliere una directory di destinazione per il dump del database, utilizzare l'opzione --dump-directory.

    code language-bash
    php vendor/bin/ece-tools db-dump -- main
    

    Risposta di esempio:

    code language-terminal
    The db-dump operation switches the site to maintenance mode, stops all active cron jobs and consumer queue processes, and disables cron jobs before starting the dump process.
    Your site will not receive any traffic until the operation completes.
    Do you wish to proceed with this process? (y/N)? y
    2020-01-28 16:38:08] INFO: Starting backup.
    [2020-01-28 16:38:08] NOTICE: Enabling Maintenance mode
    [2020-01-28 16:38:10] INFO: Trying to kill running cron jobs and consumers processes
    [2020-01-28 16:38:10] INFO: Running Magento cron and consumers processes were not found.
    [2020-01-28 16:38:10] INFO: Waiting for lock on db dump.
    [2020-01-28 16:38:10] INFO: Start creation DB dump for main database...
    [2020-01-28 16:38:10] INFO: Finished DB dump for main database, it can be found here: /tmp/qxmtlseakof6y/dump-main-1580229490.sql.gz
    [2020-01-28 16:38:10] INFO: Backup completed.
    [2020-01-28 16:38:11] NOTICE: Maintenance mode is disabled.
    
  4. Il comando db-dump crea un file di archivio dump-<timestamp>.sql.gz nella directory del progetto remoto.

TIP
Se desideri inviare questi dati a un ambiente specifico, consulta Migrare i dati e i file statici.
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26