[Somente PaaS]{class="badge informative" title="Aplica-se somente a projetos do Adobe Commerce na nuvem (infraestrutura do PaaS gerenciada pela Adobe) e a projetos locais."}

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.

NOTE
Estes métodos restaurarão o instantâneo completo.
​>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

Escolha o mais apropriado para seu caso:

NOTE
Se estiver importando um instantâneo para um ambiente de integração, lembre-se do tamanho do banco de dados. Bancos de dados grandes podem causar degradação de desempenho após a importação. É recomendável primeiro importar o instantâneo para um ambiente de preparo ou local para revisar e reduzir seu tamanho antes de transferi-lo para a integração. Além disso, considere desativar os trabalhos cron na ramificação de integração se surgirem problemas de desempenho após a importação. Para obter mais informações, consulte Ambiente de integração no guia do Commerce na infraestrutura em nuvem.

Método 1: Transfira o banco de dados dump para o computador local e importe-o meth2

NOTE
O formato do instantâneo em projetos do Azure será diferente e conterá outros bancos de dados que não podem ser importados.
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:

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

    Projetos baseados no Azure:
    Se seu projeto for baseado no Azure (ou seja, sua URL de projeto se parece com https://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;"
    
  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-bash
    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-bash
    drop database <cluster ID>;
    

    (Para Staging)

    code language-bash
    drop database <cluster ID_stg>;
    
  6. 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:

  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-bash
    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-bash
    drop database <cluster ID>;
    

    (Para Staging)

    code language-bash
    drop database <cluster ID_stg>;
    
  4. Depois de soltar o banco de dados, recrie-o:

    code language-bash
    create database [database_name];
    
  5. 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:

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