Restaurar um instantâneo de BD de Staging ou Production
Este artigo mostra como restaurar um banco de dados snapshot de Staging ou Production no Adobe Commerce na infraestrutura do Cloud Pro.
>Se você precisar restaurar o instantâneo parcialmente, por exemplo, restaurando apenas as tabelas de catálogo deixando as tabelas de ordem intactas, consulte seu desenvolvedor ou DBA.
Produtos e versões afetados
- Adobe Commerce na infraestrutura em nuvem, todas as versões com suporte
Escolha o mais apropriado para seu caso:
Método 1: Transfira o banco de dados dump para o computador local e importe-o meth2
Antes de importar o instantâneo, você deve seguir etapas adicionais para extrair o banco de dados apropriado antes de prosseguir com a importação de despejo.
As etapas são:
-
Usando o SFTP, navegue até o local onde o banco de dados snapshot foi colocado, normalmente no primeiro servidor/nó do cluster (Por exemplo:
/mnt/recovery-<recovery_id>).Projetos baseados no Azure:
Se seu projeto for baseado no Azure (ou seja, sua URL de projeto se parece comhttps://us-a1.magento.cloud/projects/<cluster_id>), o instantâneo será colocado em:/mnt/shared/<cluster ID>/all-databases.sql.gz/mnt/shared/<cluster ID_stg>/all-databases.sql.gz
Etapas de extração específicas do Azure
Para produção:
code language-bash 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;"Para Preparo:
code language-bash 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: `<cluster ID_stg>`/,/^-- 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;" -
Copie o banco de dados dump file (Por exemplo:
<cluster ID>.sql.gzpara Production ou<cluster ID_stg>.sql.gzpara Staging) no computador local. -
Verifique se você configurou o SSH tunnel para se conectar ao banco de dados remotamente: SSH e sFTP: SSH tunneling em nossa documentação para desenvolvedores.
-
Conectar ao banco de dados.
code language-bash mysql -h <db-host> -P <db-port> -p -u <db-user> <db-name> -
Drop o banco de dados; no prompt MariaDB, digite:
(Para Production)
code language-bash drop database <cluster ID>;(Para Staging)
code language-bash drop database <cluster ID_stg>; -
Digite o seguinte comando para importar o snapshot:
(Para Production)
code language-bash zcat <cluster ID>.sql.gz | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | mysql -h 127.0.0.1 -P <db-port> -p -u <db-user> <db-name>(Para Staging)
code language-bash 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étodo 2: importar o banco de dados dump diretamente do servidor meth3
As etapas são:
-
Navegue até o local onde o banco de dados snapshot foi colocado, geralmente no primeiro servidor/nó de cluster (Por exemplo:
/mnt/recovery-<recovery_id>). -
Para drop e recriar o banco de dados de nuvem, primeiro conecte-se ao banco de dados:
code language-bash mysql -h 127.0.0.1 -P <db-port> -p -u <db-user> <db-name> -
Drop o banco de dados; no prompt MariaDB, digite:
(Para Production)
code language-bash drop database <cluster ID>;(Para Staging)
code language-bash drop database <cluster ID_stg>; -
Depois de soltar o banco de dados, recrie-o:
code language-bash create database [database_name]; -
Digite o seguinte comando para importar o snapshot:
(Para importar o backup do banco de dados de Production)
code language-bash zcat <cluster ID>.sql.gz | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | mysql -h 127.0.0.1 -p -u <db-user> <db-name>(Para importar o backup do banco de dados de Staging)
code language-bash zcat <cluster ID_stg>.sql.gz | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | mysql -h 127.0.0.1 -p -u <db-user> <db-name>(Para importar um backup de banco de dados de qualquer outro ambiente)
code language-bash zcat <database-backup-name>.sql.gz | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | mysql -h 127.0.0.1 -p -u <db-user> <db-name>(Para importar um backup de banco de dados de qualquer outro ambiente)
code language-bash zcat <database-backup-name>.sql.gz | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | mysql -h 127.0.0.1 -p -u <db-user> <db-name>
Leitura relacionada
Em nossa documentação do desenvolvedor: