Sauvegarde et restauration du système de fichiers, du média et de la base de données

Cette commande permet de sauvegarder :

  • Le système de fichiers (à l’exclusion des répertoires var et pub/static)
  • Répertoire pub/media
  • La base

Les sauvegardes sont stockées dans le répertoire var/backups et peuvent être restaurées à tout moment à l’aide de la commande magento setup:rollback.

Après la sauvegarde, vous pouvez restaurer ultérieurement.

TIP
Pour Adobe Commerce sur les projets d’infrastructure cloud, voir Gestion des instantanés et des sauvegardes dans le guide Cloud.

Activation des sauvegardes

La fonction de sauvegarde est désactivée par défaut. Pour l’activer, saisissez la commande d’interface de ligne de commande suivante :

bin/magento config:set system/backup/functionality_enabled 1
WARNING
Avis d’obsolescence :
La fonctionnalité de sauvegarde est obsolète depuis les versions 2.1.16, 2.2.7 et 2.3.0. Nous vous recommandons d’étudier des technologies de sauvegarde supplémentaires et des outils de sauvegarde binaires (tels que Percona XtraBackup).

Définition de la limite des fichiers ouverts

La restauration d’une sauvegarde précédente peut échouer de manière silencieuse, ce qui entraîne l’écriture de données incomplètes dans le système de fichiers ou la base de données à l’aide de la commande magento setup:rollback.

Parfois, une longue chaîne de requête entraîne une insuffisance de mémoire de l’utilisateur en raison d’un trop grand nombre d’appels récursifs.

Comment définir les fichiers ouverts ulimit

Nous vous recommandons de définir les fichiers ouverts ulimit pour l’utilisateur du système de fichiers sur une valeur de 65536 ou plus.

Vous pouvez le faire sur la ligne de commande ou en faire un paramètre permanent pour l’utilisateur en modifiant son script shell.

Avant de poursuivre, si ce n’est pas déjà fait, passez à l’propriétaire du système de fichiers.

Commande :

ulimit -s 65536

Si nécessaire, vous pouvez définir cette valeur sur une valeur plus élevée.

NOTE
La syntaxe des fichiers ouverts ulimit dépend du shell UNIX que vous utilisez. Le paramètre précédent doit fonctionner avec CentOS et Ubuntu avec le conteneur Bash. Toutefois, pour macOS, le paramètre correct est ulimit -S 65532. Pour plus d’informations, consultez la page de gestion ou la référence du système d’exploitation.

Pour définir éventuellement la valeur dans le conteneur Bash de l’utilisateur :

  1. Si vous ne l’avez pas déjà fait, basculez vers le propriétaire du système de fichiers.

  2. Ouvrez /home/<username>/.bashrc dans un éditeur de texte.

  3. Ajoutez la ligne suivante :

    code language-bash
    ulimit -s 65536
    
  4. Enregistrez vos modifications dans .bashrc et quittez l’éditeur de texte.

WARNING
Nous vous recommandons d’éviter de définir une valeur pour pcre.recursion_limit dans le fichier php.ini, car cela peut entraîner des restaurations incomplètes sans préavis d’échec.

Sauvegarde

Utilisation des commandes :

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

La commande effectue les tâches suivantes :

  1. Met le magasin en mode de maintenance.

  2. Exécute l’une des options de commande suivantes.

    table 0-row-3 1-row-3 2-row-3 3-row-3
    Option Signification Nom et emplacement du fichier de sauvegarde
    --code Sauvegarde le système de fichiers (à l’exception des répertoires var et pub/static). var/backups/<timestamp>/_filesystem.tgz
    --media Sauvegardez le répertoire pub/média. var/backups/<timestamp>/_filesystem_media.tgz
    --db Sauvegardez la base. var/backups/<timestamp>/_db.sql
  3. Supprime le magasin hors mode de maintenance.

par exemple pour sauvegarder le système de fichiers et la base de données,

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

Messages similaires à l’affichage suivant :

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

Retour arrière

Cette section explique comment restaurer une sauvegarde que vous avez effectuée précédemment. Vous devez connaître le nom de fichier du fichier de sauvegarde à restaurer.

Pour connaître le nom de vos sauvegardes, saisissez :

bin/magento info:backups:list

La première chaîne du nom du fichier de sauvegarde est l’horodatage.

Pour restaurer une sauvegarde précédente, saisissez :

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

Par exemple, pour restaurer une sauvegarde multimédia nommée 1440611839_filesystem_media.tgz, saisissez

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

Messages similaires à l’affichage suivant :

[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