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

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:

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

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

  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 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 sua cluster (Por exemplo: /mnt/recovery-<recovery_id>).

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

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