Sauvegarde de la base
Vous pouvez créer une copie de votre base de données à l’aide de la commande ece-tools db-dump
sans capturer toutes les données d’environnement des services et des montages. Par défaut, cette commande crée des sauvegardes dans le répertoire /app/var/dump-main
pour toutes les connexions de base de données spécifiées dans la configuration de l’environnement. L’opération de vidage DB bascule l’application vers le mode de maintenance, arrête les processus de file d’attente des consommateurs et désactive les tâches cron avant que la vidage ne commence.
Tenez compte des instructions suivantes pour le vidage DB :
- Pour les environnements de production, Adobe recommande d’effectuer des opérations de vidage de la base de données aux heures creuses afin de minimiser les interruptions de service qui se produisent lorsque le site est en mode de maintenance.
- Si une erreur se produit lors de l’opération de vidage, la commande supprime le fichier de vidage pour économiser l’espace disque. Consultez les journaux pour plus de détails (
var/log/cloud.log
). - Pour les environnements de production, cette commande est vidée uniquement de un des trois noeuds haute disponibilité. Par conséquent, les données de production écrites sur un autre noeud pendant le vidage peuvent ne pas être copiées. La commande génère un fichier
var/dbdump.lock
pour empêcher l’exécution de la commande sur plusieurs noeuds. - Pour une sauvegarde de tous les services d’environnement, Adobe recommande de créer une sauvegarde.
Vous pouvez choisir de sauvegarder plusieurs bases de données en ajoutant les noms de la base à la commande . L’exemple suivant sauvegarde deux bases de données : main
et sales
:
php vendor/bin/ece-tools db-dump main sales
Utilisez la commande php vendor/bin/ece-tools db-dump --help
pour plus d’options :
--dump-directory=<dir>
: choisissez un répertoire cible pour le vidage de la base de données.--remove-definers
: suppression des instructions DEFINER du vidage de base de données
Pour créer un vidage de base de données dans l’environnement d’évaluation ou de production :
-
Utilisez SSH pour vous connecter ou créer un tunnel pour vous connecter à l’environnement distantqui contient la base de données à copier.
-
Listez les relations de l'environnement et notez les informations de connexion à la base de données.
code language-bash echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
ou
code language-bash php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"]))->database);'
-
Créez une sauvegarde de la base. Pour choisir un répertoire cible pour le vidage DB, utilisez l’option
--dump-directory
.code language-bash php vendor/bin/ece-tools db-dump -- main
Exemple de réponse :
code language-none 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.
-
La commande
db-dump
crée un fichier d’archivedump-<timestamp>.sql.gz
dans le répertoire du projet distant.