Wiederherstellen eines DB-Snapshots aus Staging oder Production

Dieser Artikel zeigt, wie eine DB wiederhergestellt wird snapshot von Staging oder Production auf der Adobe Commerce on Cloud Pro-Infrastruktur.

Betroffene Produkte und Versionen

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

Methode 1: Datenbank übertragen dump auf Ihren lokalen Computer laden und importieren meth2

Die Schritte sind:

  1. Verwenden sFTP, navigieren Sie zum Speicherort der Datenbank. snapshot wurde platziert, normalerweise auf dem ersten Server/Knoten Ihrer cluster (Beispiel: /mnt/recovery-<recovery_id>). HINWEIS: Wenn Ihr Projekt Azure-basiert ist, d. h. Ihre Projekt-URL sieht ungefähr wie https://us-a1.magento.cloud/projects/ aus.<cluster_id>, wird der Schnappschuss in /mnt/shared/<cluster ID>/all-databases.sql.gz oder /mnt/shared/<cluster ID_stg>/all-databases.sql.gz anstatt.

    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 müssen Sie zusätzliche Schritte unternehmen, um die entsprechende Datenbank zu extrahieren, bevor Sie den Dump importieren.

    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. Datenbank kopieren dump file (Beispiel: <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 die SSH tunnel zur Remote-Verbindung mit der Datenbank: SSH und sFTP: SSH tunneling in unserer Entwicklerdokumentation.

  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 Datenbank, MariaDB Eingabeaufforderung, geben Sie 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:

    (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 zum Speicherort der Datenbank. snapshot wurde platziert, normalerweise auf dem ersten Server/Knoten Ihrer cluster (Beispiel: /mnt/recovery-<recovery_id>).

  2. nach drop und erstellen Sie die Cloud-Datenbank neu, verbinden Sie sich zunächst mit der Datenbank:

    code language-sql
    mysql -h 127.0.0.1 -P <db-port> -p -u <db-user> <db-name>
    
  3. Drop Datenbank, MariaDB Eingabeaufforderung, geben Sie 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:

    (Für 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 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>
    

Verwandtes Lesen

In unserer Entwicklerdokumentation:

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