Een DB-momentopname herstellen vanuit Staging of Production

In dit artikel wordt getoond hoe u een database kunt herstellen snapshot van Staging of Production op Adobe Commerce op Cloud Pro Infrastructure.

Betrokken producten en versies

Kies de meest geschikte optie voor uw kwestie:

Methode 1: De database overbrengen dump naar uw lokale computer en deze importeren meth2

De stappen zijn:

  1. Gebruiken sFTP, navigeer naar de locatie waar de database zich bevindt snapshot is geplaatst, gewoonlijk op de eerste server/de knoop van uw cluster (Bijvoorbeeld: /mnt/recovery-<recovery_id>). NOTA: Als uw project op Azure-Gebaseerd is, d.w.z., kijkt uw project URL ongeveer als https://us-a1.magento.cloud/projects/<cluster_id>, wordt de opname geplaatst /mnt/shared/<cluster ID>/all-databases.sql.gz of /mnt/shared/<cluster ID_stg>/all-databases.sql.gz in plaats daarvan.

    NOTA: Het formaat van de momentopname op Azure projecten zal verschillend zijn en bevat andere gegevensbestanden die niet kunnen worden ingevoerd. Alvorens de momentopname in te voeren, zult u extra stappen moeten nemen om het aangewezen gegevensbestand te halen alvorens de stortplaats in te voeren.

    Voor productie:

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

    Voor opmaken:

    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. De database kopiƫren dump file (Bijvoorbeeld: <cluster ID>.sql.gz for Production of <cluster ID_stg>.sql.gz for Staging) naar uw lokale computer.

  3. Zorg ervoor dat u de SSH tunnel op afstand verbinding maken met de database: SSH en sFTP: SSH tunneling in onze ontwikkelaarsdocumentatie.

  4. Maak verbinding met de database.

    code language-sql
    mysql -h <db-host> -P <db-port> -p -u <db-user> <db-name>
    
  5. Drop de databank; MariaDB prompt, enter:

    (Voor Production)

    code language-sql
    drop database <cluster ID>;
    

    (Voor Staging)

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

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

    (Voor 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: De database importeren dump rechtstreeks vanaf de server meth3

De stappen zijn:

  1. Ga naar de locatie waar de database zich bevindt snapshot is geplaatst, gewoonlijk op de eerste server/de knoop van uw cluster (Bijvoorbeeld: /mnt/recovery-<recovery_id>).

  2. Naar drop en maak de clouddatabase opnieuw, maak eerst verbinding met de database:

    code language-sql
    mysql -h 127.0.0.1 -P <db-port> -p -u <db-user> <db-name>
    
  3. Drop de databank; MariaDB prompt, enter:

    (Voor Production)

    code language-sql
    drop database <cluster ID>;
    

    (Voor Staging)

    code language-sql
    drop database <cluster ID_stg>;
    
  4. Voer de volgende opdracht in om de snapshot:

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

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

Gerelateerde lezing

In onze documentatie voor ontwikkelaars:

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