Restaurer un instantané de base de données à partir de Staging ou Production
Cet article explique comment restaurer une base de données snapshot à partir de Staging ou Production sur l’infrastructure Adobe Commerce sur Cloud Pro.
Produits et versions concernés
- Adobe Commerce sur les infrastructures cloud, toutes les versions prises en charge
Choisissez la solution la plus adaptée à votre cas :
Méthode 1 : transférer le dump de la base de données vers votre ordinateur local et l'importer meth2
Les étapes sont les suivantes :
-
À l’aide de SFTP, accédez à l’emplacement où le snapshot de base de données a été placé, généralement sur le premier serveur/nœud 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é est 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 : doivent prendre des mesures supplémentaires pour extraire la base de données appropriée avant d’importer l’image mémoire.
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;"
-
Copiez le dump file de la base de données (par exemple :
<cluster ID>.sql.gz
pour Production ou<cluster ID_stg>.sql.gz
pour Staging) sur votre ordinateur local. -
Vérifiez que vous avez configuré la SSH tunnel pour vous connecter à la base de données à distance : SSH et sFTP: SSH tunneling dans notre documentation destinée aux développeurs.
-
Connexion à la base de données.
code language-sql mysql -h <db-host> -P <db-port> -p -u <db-user> <db-name>
-
Drop la base de données ; à l’invite de MariaDB, saisissez :
(Pour Production)
code language-sql drop database <cluster ID>;
(Pour Staging)
code language-sql drop database <cluster ID_stg>;
-
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 : importer la base de données dump directement depuis le serveur meth3
Les étapes sont les suivantes :
-
Accédez à l’emplacement où la snapshot de base de données a été placée, généralement sur le premier serveur/nœud de votre cluster (par exemple :
/mnt/recovery-<recovery_id>
). -
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>
-
Drop la base de données ; à l’invite de MariaDB, saisissez :
(Pour Production)
code language-sql drop database <cluster ID>;
(Pour Staging)
code language-sql drop database <cluster ID_stg>;
-
Après avoir déposé la base de données, recréez la base de données :
code language-mysql create database [database_name];
-
Saisissez la commande suivante pour importer le snapshot :
(Pour importer la sauvegarde de la base de données depuis 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 depuis 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 :