Restaurer un instantané de la base de données depuis Staging ou Production

Cet article explique comment restaurer une base de données snapshot à partir de Staging ou Production sur l’infrastructure Adobe Commerce on Cloud Pro.

Produits et versions concernés

Choisissez la méthode la plus adaptée à votre cas :

Méthode 1 : transférer la base de données dump sur votre ordinateur local et l’importer meth2

Les étapes sont les suivantes :

  1. En utilisant SFTP, accédez à l’emplacement où la base de données snapshot a été placée, généralement sur le premier serveur/noeud de votre cluster (par exemple : /mnt/recovery-<recovery_id>). REMARQUE : Si votre projet est basé sur Azure, c’est-à-dire que l’URL de votre projet ressemble à https://us-a1.magento.cloud/projects/<cluster_id>, l’instantané sera placé dans /mnt/shared/<cluster ID>/all-databases.sql.gz ou /mnt/shared/<cluster ID_stg>/all-databases.sql.gz à la place.

    REMARQUE : Le format de l’instantané sur les projets Azure sera différent et contient d’autres bases de données qui ne peuvent pas être importées. Avant d’importer l’instantané, vous devez : Vous devez prendre des mesures supplémentaires pour extraire la base de données appropriée avant d’importer la sauvegarde.

    Pour la production :

    code language-sql
    cd /mnt/shared/<cluster ID/
    gunzip all-databases.sql.gz
    head -n 17 all-databases.sql > <cluster ID>.sql
    sed -n '/^-- Current Database: `<cluster ID>`/,/^-- Current Database: `/p' all-databases.sql >> <cluster ID>.sql gzip <cluster ID>.sql
    zcat <cluster ID>.sql.gz | \
    sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | \
    mysql -h 127.0.0.1 \
    -u $DB_USER \
    --password=$MYSQL_PWD $DB_NAME \
    --init-command="SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT ;SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS ;SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION ;SET NAMES utf8 ;SET @OLD_TIME_ZONE=@@TIME_ZONE ;SET TIME_ZONE='+00:00' ;SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 ;SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 ;SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' ;SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0;"
    

    Pour l’évaluation :

    code language-sql
    cd /mnt/shared/<cluster ID/ | cd /mnt/shared/<cluster ID_stg>
    gunzip all-databases.sql.gz
    head -n 17 all-databases.sql > <cluster ID_stg>.sql
    sed -n '/^-- Current Database: `wyf2o4zlrljjs`/,/^-- Current Database: `/p' all-databases.sql >> <cluster ID_stg>.sql
    gzip <cluster ID_stg>.sql
    zcat <cluster ID_stg>.sql.gz | \
    sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | \
    mysql -h 127.0.0.1 \
    -u $DB_USER \
    --password=$MYSQL_PWD $DB_NAME \
    --init-command="SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT ;SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS ;SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION ;SET NAMES utf8 ;SET @OLD_TIME_ZONE=@@TIME_ZONE ;SET TIME_ZONE='+00:00' ;SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 ;SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 ;SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' ;SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0;"
    
  2. Copiez la base de données dump file (par exemple : <cluster ID>.sql.gz pour Production ou <cluster ID_stg>.sql.gz pour Staging) sur votre ordinateur local.

  3. Assurez-vous d’avoir configuré le SSH tunnel pour vous connecter à la base de données à distance : SSH et sFTP : SSH tunneling dans la documentation destinée aux développeurs.

  4. Connexion à la base de données.

    code language-sql
    mysql -h <db-host> -P <db-port> -p -u <db-user> <db-name>
    
  5. Drop de la base de données ; à l’invite MariaDB, saisissez :

    (Pour Production)

    code language-sql
    drop database <cluster ID>;
    

    (Pour Staging)

    code language-sql
    drop database <cluster ID_stg>;
    
  6. Saisissez la commande suivante pour importer le snapshot :

    (Pour Production)

    code language-sql
    zcat <cluster ID>.sql.gz | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | mysql -h 127.0.0.1 -P <db-port> -p -u   <db-user> <db-name>
    

    (Pour Staging)

    code language-sql
    zcat <cluster ID_stg>.sql.gz | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | mysql -h 127.0.0.1 -P <db-port> -p -u   <db-user> <db-name>
    

Méthode 2 : importez la base de données dump directement à partir du serveur meth3

Les étapes sont les suivantes :

  1. Accédez à l’emplacement où la base de données snapshot a été placée, généralement sur le premier serveur/noeud de votre cluster (par exemple : /mnt/recovery-<recovery_id>).

  2. Pour drop et recréer la base de données cloud, connectez-vous d’abord à la base de données :

    code language-sql
    mysql -h 127.0.0.1 -P <db-port> -p -u <db-user> <db-name>
    
  3. Drop de la base de données ; à l’invite MariaDB, saisissez :

    (Pour Production)

    code language-sql
    drop database <cluster ID>;
    

    (Pour Staging)

    code language-sql
    drop database <cluster ID_stg>;
    
  4. Saisissez la commande suivante pour importer le snapshot :

    (Pour importer la sauvegarde de la base de données à partir de Production)

    code language-sql
    zcat <cluster ID>.sql.gz | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | mysql -h 127.0.0.1 -p -u <db-user> <db-name>
    

    (Pour importer la sauvegarde de la base de données à partir de Staging)

    code language-sql
    zcat <cluster ID_stg>.sql.gz | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | mysql -h 127.0.0.1 -p -u <db-user> <db-name>
    

    (Pour importer une sauvegarde de base de données à partir de tout autre environnement)

    code language-sql
    zcat <database-backup-name>.sql.gz | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | mysql -h 127.0.0.1 -p -u <db-user> <db-name>
    

    (Pour importer une sauvegarde de base de données à partir de tout autre environnement)

    code language-sql
    zcat <database-backup-name>.sql.gz | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | mysql -h 127.0.0.1 -p -u <db-user> <db-name>
    

Lecture connexe

Dans notre documentation destinée aux développeurs :

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a