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

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:

  1. 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;"
    
  2. 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.

  3. 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.

  4. Conectar ao banco de dados.

    code language-sql
    mysql -h <db-host> -P <db-port> -p -u <db-user> <db-name>
    
  5. 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>;
    
  6. 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:

  1. 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>).

  2. 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>
    
  3. 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>;
    
  4. 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:

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