[PaaS uniquement]{class="badge informative" title="S’applique uniquement aux projets Adobe Commerce on Cloud (infrastructure PaaS gérée par Adobe) et aux projets On-premise."}

Sauvegarde et restauration du système de fichiers, du support 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)
  • Le répertoire pub/media
  • La base de données

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 plus tard.

TIP
Pour les projets d’infrastructure cloud d’Adobe Commerce, voir Snapshots et gestion des sauvegardes dans le guide Cloud.

Activer les sauvegardes

La fonctionnalité 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 à partir des versions 2.1.16, 2.2.7 et 2.3.0. Nous vous recommandons d’étudier d’autres technologies de sauvegarde et outils de sauvegarde binaire (tels que Percona XtraBackup).

Définir la limite des fichiers ouverts

La restauration d’une sauvegarde précédente peut échouer en silence, 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 saturation de la mémoire allouée à l’utilisateur en raison d’un trop grand nombre d’appels récursifs.

Comment définir des fichiers ouverts ulimit

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

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

Avant de poursuivre, si vous ne l’avez pas déjà fait, passez au propriétaire du système de fichiers.

Commande :

ulimit -s 65536

Si nécessaire, vous pouvez augmenter cette valeur.

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

Pour définir éventuellement la valeur dans le shell 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 avertissement 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’exclusion des répertoires var et pub/static). var/backups/<timestamp>/_filesystem.tgz
    --media Sauvegardez le répertoire pub/media. var/backups/<timestamp>/_filesystem_media.tgz
    --db Sauvegardez la base de données. var/backups/<timestamp>/_db.sql
  3. Permet de sortir le magasin du mode de maintenance.

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

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

Des messages similaires à ce qui suit s’affichent :

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

Restaurer

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

Pour trouver le nom de vos sauvegardes, saisissez :

bin/magento info:backups:list

La première chaîne du nom du fichier de sauvegarde est la date et l’heure.

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 de média nommée 1440611839_filesystem_media.tgz, saisissez

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

Des messages similaires à ce qui suit s’affichent :

[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