Wiederherstellen eines DB-Snapshots von Staging oder Production

In diesem Artikel wird gezeigt, wie eine DB snapshot von Staging oder Production in der Cloud Pro-Infrastruktur von Adobe Commerce wiederhergestellt wird.

Betroffene Produkte und Versionen

Wählen Sie die für Ihren Fall am besten geeignete Option aus:

Methode 1: Übertragen Sie die Datenbank dump auf Ihren lokalen Computer und importieren Sie sie. meth2

Die Schritte sind:

  1. Navigieren Sie mit SFTP zu dem Speicherort, an dem die Datenbank snapshot platziert wurde, in der Regel auf dem ersten Server/Knoten Ihrer cluster (z. B. /mnt/recovery-<recovery_id>). HINWEIS: Wenn Ihr Projekt Azure-basiert ist, d. h. Ihre Projekt-URL ungefähr https://us-a1.magento.cloud/projects/<cluster_id> aussieht, wird der Schnappschuss stattdessen in /mnt/shared/<cluster ID>/all-databases.sql.gz oder /mnt/shared/<cluster ID_stg>/all-databases.sql.gz platziert.

    HINWEIS: Das Format der Momentaufnahme bei Azure-Projekten ist anders und enthält andere Datenbanken, die nicht importiert werden können. Vor dem Import des Snapshots werden Sie vor dem Import des Dump zusätzliche Schritte durchführen müssen, um die entsprechende Datenbank zu extrahieren.

    Für die 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 das Staging:

    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. Kopieren Sie die Datenbank dump file (z. B. <cluster ID>.sql.gz für Production oder <cluster ID_stg>.sql.gz für Staging) auf Ihren lokalen Computer.

  3. Stellen Sie sicher, dass Sie in unserer Entwicklerdokumentation die SSH tunnel so eingerichtet haben, dass eine Remote-Verbindung mit der Datenbank hergestellt wird: SSH und sFTP: SSH tunneling.

  4. Stellen Sie eine Verbindung zur Datenbank her.

    code language-sql
    mysql -h <db-host> -P <db-port> -p -u <db-user> <db-name>
    
  5. Drop die Datenbank; geben Sie an der Eingabeaufforderung MariaDB Folgendes ein:

    (Für Production)

    code language-sql
    drop database <cluster ID>;
    

    (Für Staging)

    code language-sql
    drop database <cluster ID_stg>;
    
  6. Geben Sie den folgenden Befehl ein, um die snapshot zu importieren:

    (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>
    

Methode 2: Import der Datenbank dump direkt vom Server meth3

Die Schritte sind:

  1. Navigieren Sie zu dem Speicherort, an dem die Datenbank snapshot platziert wurde, in der Regel auf dem ersten Server/Knoten Ihres cluster (z. B. /mnt/recovery-<recovery_id>).

  2. Um drop zu verwenden und die Cloud-Datenbank neu zu erstellen, stellen Sie zunächst eine Verbindung zur Datenbank her:

    code language-sql
    mysql -h 127.0.0.1 -P <db-port> -p -u <db-user> <db-name>
    
  3. Drop die Datenbank; geben Sie an der Eingabeaufforderung MariaDB Folgendes ein:

    (Für Production)

    code language-sql
    drop database <cluster ID>;
    

    (Für Staging)

    code language-sql
    drop database <cluster ID_stg>;
    
  4. Geben Sie den folgenden Befehl ein, um die snapshot zu importieren:

    (Für den Import der Datenbanksicherung von 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>
    

    (Für den Import der Datenbanksicherung von 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 den Import einer Datenbanksicherung aus einer anderen Umgebung)

    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 den Import einer Datenbanksicherung aus einer anderen Umgebung)

    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>
    

Verwandtes Lesen

In unserer Entwicklerdokumentation:

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