Restauration d’un instantané de la base de données Staging ou Production

Cet article explique comment restaurer une base de données snapshot 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 : transfert de la base dump sur votre ordinateur local et importez-le meth2

Les étapes sont les suivantes :

  1. Utilisation sFTP, accédez à l’emplacement de la base de données. snapshot a été placé, 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 si l’URL de votre projet ressemble à https://us-a1.magento.cloud/projects/<cluster_id>, l’instantané est alors placé dans /mnt/shared/<cluster ID>/all-databases.sql.gz ou /mnt/shared/<cluster ID_stg>/all-databases.sql.gz au lieu de .

    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 prendre des mesures supplémentaires pour extraire la base de données appropriée avant d'importer la vidage.

    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. Copier 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 que vous avez configuré la variable SSH tunnel pour vous connecter à la base de données à distance : SSH et sFTP: SSH tunneling dans notre 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 la base de données ; au niveau de la MariaDB invite, 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 : import de la base de données dump directement à partir du serveur meth3

Les étapes sont les suivantes :

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

  2. À drop et recréez 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 la base de données ; au niveau de la MariaDB invite, 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 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 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>
    

Lecture connexe

Dans notre documentation destinée aux développeurs :

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