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.
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
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>
). OBSERVAÇÃO: se seu projeto for baseado no Azure, ou seja, sua URL de projeto se parece com https://us-a1.magento.cloud/projects/<cluster_id>, então o instantâneo será colocado em/mnt/shared/<cluster ID>/all-databases.sql.gz
ou/mnt/shared/<cluster ID_stg>/all-databases.sql.gz
.OBSERVAÇÃO: o formato do instantâneo nos projetos do Azure será diferente e conterá outros bancos de dados que não podem ser importados. Antes de importar o snapshot, você é necessário executar etapas adicionais para extrair o banco de dados apropriado antes de importar o dump.
Para produção:
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;"
Para Preparo:
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;"
-
Copie o banco de dados dump file (Por exemplo:
<cluster ID>.sql.gz
para Production ou<cluster ID_stg>.sql.gz
para 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-sql 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-sql drop database <cluster ID>;
(Para Staging)
code language-sql drop database <cluster ID_stg>;
-
Digite o seguinte comando para importar o snapshot:
(Para 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>
(Para 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é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-sql 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-sql drop database <cluster ID>;
(Para Staging)
code language-sql drop database <cluster ID_stg>;
-
Digite o seguinte comando para importar o snapshot:
(Para importar o backup do banco de dados 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>
(Para importar o backup do banco de dados 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>
(Para importar um backup de banco de dados de qualquer outro ambiente)
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>
(Para importar um backup de banco de dados de qualquer outro ambiente)
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>
Leitura relacionada
Em nossa documentação do desenvolvedor: