Återställ en DB-ögonblicksbild från Staging eller Production

I den här artikeln visas hur du återställer en DB snapshot från Staging eller Production på Adobe Commerce i molnPro-infrastrukturen.

Berörda produkter och versioner

Välj det alternativ som passar bäst:

Metod 1: Överför databasen dump till den lokala datorn och importera den meth2

Stegen är:

  1. Använd SFTP och navigera till den plats där databasen snapshot har placerats, vanligtvis på den första servern/noden i cluster (till exempel: /mnt/recovery-<recovery_id>). Obs! Om ditt projekt är Azure-baserat, d.v.s. din projekt-URL ser ut ungefär som https://us-a1.magento.cloud/projects/<Cluster_id>, placeras ögonblicksbilden i /mnt/shared/<cluster ID>/all-databases.sql.gz eller /mnt/shared/<cluster ID_stg>/all-databases.sql.gz i stället.

    Obs! Formatet på ögonblicksbilden i Azure-projekt kommer att vara annorlunda och innehåller andra databaser som inte kan importeras. Innan du importerar ögonblicksbilden kommer du måste vidta ytterligare åtgärder för att extrahera lämplig databas innan dumpen importeras.

    För produktion:

    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;"
    

    För mellanlagring:

    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. Kopiera databasen dump file (till exempel: <cluster ID>.sql.gz för Production eller <cluster ID_stg>.sql.gz för Staging) till den lokala datorn.

  3. Kontrollera att du har konfigurerat SSH tunnel för fjärranslutning till databasen: SSH och sFTP: SSH tunneling i utvecklardokumentationen.

  4. Anslut till databasen.

    code language-sql
    mysql -h <db-host> -P <db-port> -p -u <db-user> <db-name>
    
  5. Drop databasen. Ange:MariaDB

    (för Production)

    code language-sql
    drop database <cluster ID>;
    

    (för Staging)

    code language-sql
    drop database <cluster ID_stg>;
    
  6. Ange följande kommando för att importera snapshot:

    (för 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>
    

    (för 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>
    

Metod 2: Importera databasen dump direkt från servern meth3

Stegen är:

  1. Navigera till platsen där databasen snapshot har placerats, vanligtvis på den första servern/noden i cluster (till exempel: /mnt/recovery-<recovery_id>).

  2. Om du vill drop och återskapa molndatabasen ansluter du först till databasen:

    code language-sql
    mysql -h 127.0.0.1 -P <db-port> -p -u <db-user> <db-name>
    
  3. Drop databasen. Ange:MariaDB

    (för Production)

    code language-sql
    drop database <cluster ID>;
    

    (för Staging)

    code language-sql
    drop database <cluster ID_stg>;
    
  4. Ange följande kommando för att importera snapshot:

    (Vid import av säkerhetskopiering av databas från 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>
    

    (Vid import av säkerhetskopiering av databas från 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>
    

    (För import av en säkerhetskopiering av en databas från någon annan miljö)

    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>
    

    (För import av en säkerhetskopiering av en databas från någon annan miljö)

    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>
    

Relaterad läsning

I vår utvecklardokumentation:

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