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

I den här artikeln visas hur du återställer en databas snapshot från Staging eller Production på Adobe Commerce om Cloud Pro-infrastrukturen.

Berörda produkter och versioner

Välj det alternativ som passar bäst:

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

Stegen är:

  1. Använda sFTPnavigerar du till den plats där databasen finns 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, dvs. ditt 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 måste du utföra ytterligare åtgärder för att extrahera den aktuella databasen innan du importerar dumpen.

    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 for Production eller <cluster ID_stg>.sql.gz for Staging) till din lokala dator.

  3. Kontrollera att du har konfigurerat SSH tunnel för att fjärransluta till databasen: SSH och sFTP: SSH tunneling i vår dokumentation för utvecklare.

  4. Anslut till databasen.

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

    (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 den plats där databasen finns snapshot har placerats, vanligtvis på den första servern/noden i cluster (Till exempel: /mnt/recovery-<recovery_id>).

  2. Till drop och återskapa molndatabasen måste du först ansluta till databasen:

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

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

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

Relaterad läsning

I vår utvecklardokumentation:

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