Restaurar una instantánea de base de datos desde Staging o Production

Este artículo muestra cómo restaurar una BD snapshot de Staging o Production en la infraestructura de Adobe Commerce en Cloud Pro.

Productos y versiones afectados

Elija el más apropiado para su caso:

Método 1: transferencia de la base de datos dump a su equipo local e impórtelo meth2

Estos son los pasos:

  1. Uso de sFTP, vaya a la ubicación donde se encuentra la base de datos snapshot se ha colocado, normalmente en el primer servidor/nodo de su cluster (Por ejemplo: /mnt/recovery-<recovery_id>). NOTA: Si el proyecto se basa en Azure, es decir, la dirección URL del proyecto es similar a https://us-a1.magento.cloud/projects/<cluster_id>, la instantánea se colocará en /mnt/shared/<cluster ID>/all-databases.sql.gz o /mnt/shared/<cluster ID_stg>/all-databases.sql.gz en su lugar.

    NOTA: El formato de la instantánea de los proyectos de Azure será diferente y contendrá otras bases de datos que no se pueden importar. Antes de importar la instantánea, deberá realizar pasos adicionales para extraer la base de datos adecuada antes de importar el volcado.

    Para la producción:

    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 Ensayo:

    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 la base de datos dump file (Por ejemplo: <cluster ID>.sql.gz para Production o <cluster ID_stg>.sql.gz para Staging) al equipo local.

  3. Asegúrese de haber configurado el SSH tunnel para conectarse a la base de datos de forma remota: SSH y sFTP: SSH tunneling en nuestra documentación para desarrolladores.

  4. Conéctese a la base de datos.

    code language-sql
    mysql -h <db-host> -P <db-port> -p -u <db-user> <db-name>
    
  5. Drop la base de datos; en el MariaDB , introduzca:

    (Para Production)

    code language-sql
    drop database <cluster ID>;
    

    (Para Staging)

    code language-sql
    drop database <cluster ID_stg>;
    
  6. Introduzca el siguiente comando para importar el 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 la base de datos dump directamente desde el servidor meth3

Estos son los pasos:

  1. Vaya a la ubicación de la base de datos snapshot se ha colocado, normalmente en el primer servidor/nodo de su cluster (Por ejemplo: /mnt/recovery-<recovery_id>).

  2. Hasta drop y vuelva a crear la base de datos en la nube, conéctese primero a la base de datos:

    code language-sql
    mysql -h 127.0.0.1 -P <db-port> -p -u <db-user> <db-name>
    
  3. Drop la base de datos; en el MariaDB , introduzca:

    (Para Production)

    code language-sql
    drop database <cluster ID>;
    

    (Para Staging)

    code language-sql
    drop database <cluster ID_stg>;
    
  4. Introduzca el siguiente comando para importar el 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>
    

Lectura relacionada

En nuestra documentación para desarrolladores:

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