[Alleen PaaS]{class="badge informative" title="Is alleen van toepassing op Adobe Commerce op Cloud-projecten (door Adobe beheerde PaaS-infrastructuur) en op projecten in het veld."}

Een DB-momentopname herstellen vanuit Staging of Production

In dit artikel wordt weergegeven hoe u een database snapshot vanaf Staging of Production op Adobe Commerce kunt herstellen in de Cloud Pro-infrastructuur.

NOTE
Deze methodes zullen de volledige momentopname herstellen.
​>Als u de momentopname gedeeltelijk - voor voorbeeld moet herstellen, slechts het herstellen van de cataloguslijsten terwijl het verlaten van de ordetabellen intact-u moet met uw ontwikkelaar of DBA raadplegen.

Betrokken producten en versies

Kies de meest geschikte optie voor uw kwestie:

Methode 1: Breng de database dump over naar de lokale computer en importeer deze. meth2

NOTE
Het formaat van de momentopname op Azure projecten zal verschillend zijn en bevat andere gegevensbestanden die niet kan worden ingevoerd.
Alvorens de momentopname in te voeren, moet u extra stappen nemen om het aangewezen gegevensbestand te halen alvorens met de stortplaatsinvoer te werk te gaan.

De stappen zijn:

  1. Navigeer met SFTP naar de locatie waar de database snapshot is geplaatst, meestal op de eerste server/het eerste knooppunt van de cluster (bijvoorbeeld: /mnt/recovery-<recovery_id>).

    op Azure-Gebaseerde projecten:
    Als uw project Azure-gebaseerd is (uw project-URL ziet er zo uit als https://us-a1.magento.cloud/projects/<cluster_id>), wordt de momentopname geplaatst in:

    • /mnt/shared/<cluster ID>/all-databases.sql.gz
    • /mnt/shared/<cluster ID_stg>/all-databases.sql.gz

    Azure-Specifieke extractiestappen

    voor productie:

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

    voor het Opvoeren:

    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. Kopieer de database dump file (bijvoorbeeld <cluster ID>.sql.gz for Production of <cluster ID_stg>.sql.gz for Staging ) naar uw lokale computer.

  3. Zorg ervoor u opstelling SSH tunnel om met het gegevensbestand ver hebt te verbinden: SSH en sFTP: SSH tunnelingin onze ontwikkelaarsdocumentatie.

  4. Maak verbinding met de database.

    code language-bash
    mysql -h <db-host> -P <db-port> -p -u <db-user> <db-name>
    
  5. Drop de database; voer bij de MariaDB -prompt het volgende in:

    (Voor Production)

    code language-bash
    drop database <cluster ID>;
    

    (Voor Staging)

    code language-bash
    drop database <cluster ID_stg>;
    
  6. Voer de volgende opdracht in om de snapshot te importeren:

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

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

Methode 2: Importeer de database dump rechtstreeks vanaf de server meth3

De stappen zijn:

  1. Navigeer naar de locatie waar de database snapshot is geplaatst, meestal op de eerste server/node van de cluster (bijvoorbeeld: /mnt/recovery-<recovery_id> ).

  2. Maak eerst verbinding met de database als u de clouddatabase wilt drop en opnieuw wilt maken:

    code language-bash
    mysql -h 127.0.0.1 -P <db-port> -p -u <db-user> <db-name>
    
  3. Drop de database; voer bij de MariaDB -prompt het volgende in:

    (Voor Production)

    code language-bash
    drop database <cluster ID>;
    

    (Voor Staging)

    code language-bash
    drop database <cluster ID_stg>;
    
  4. Nadat u de database hebt neergezet, maakt u de database opnieuw:

    code language-bash
    create database [database_name];
    
  5. Voer de volgende opdracht in om de snapshot te importeren:

    (Voor het importeren van de back-up van de database vanuit 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>
    

    (Voor het importeren van de back-up van de database vanuit 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>
    

    (Voor het importeren van een databaseback-up vanuit een andere omgeving)

    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>
    

    (Voor het importeren van een databaseback-up vanuit een andere omgeving)

    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>
    

Gerelateerde lezing

In onze documentatie voor ontwikkelaars:

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