Restaurar um instantâneo do BD a partir de Staging ou Production
Este artigo mostra como restaurar um BD snapshot de Staging ou Production na infraestrutura do Adobe Commerce na Cloud Pro.
Produtos e versões afetados
- Adobe Commerce na infraestrutura em nuvem, todas as versões compatíveis
Escolha o mais apropriado para seu caso:
Método 1: transferir o banco de dados dump para o computador local e importe-o meth2
As etapas são:
-
Usar sFTP, navegue até o local onde o banco de dados snapshot foi colocado, geralmente no primeiro servidor/nó de sua cluster (Por exemplo:
/mnt/recovery-<recovery_id>
). OBSERVAÇÃO: se seu projeto for baseado no Azure, ou seja, o URL do projeto será semelhante ao https://us-a1.magento.cloud/projects/<cluster_id>, o instantâneo será colocado em/mnt/shared/<cluster ID>/all-databases.sql.gz
ou/mnt/shared/<cluster ID_stg>/all-databases.sql.gz
em vez disso.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ê terá que 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;"
-
Copiar o banco de dados dump file (Por exemplo:
<cluster ID>.sql.gz
para Production ou<cluster ID_stg>.sql.gz
para Staging) ao computador local. -
Verifique se você configurou o SSH tunnel para conectar-se ao banco de dados remotamente: SSH e sFTP: SSH tunneling na documentação do desenvolvedor.
-
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 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 sua cluster (Por exemplo:
/mnt/recovery-<recovery_id>
). -
Para drop e recriar o banco de dados em 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 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 -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 -u <db-user> <db-name>
Leitura relacionada
Em nossa documentação do desenvolvedor: