Återställ en DB-ögonblicksbild från Staging eller Production
I den här artikeln visas hur du återställer en DB snapshot från Staging eller Production på Adobe Commerce i molnPro-infrastrukturen.
Berörda produkter och versioner
- Adobe Commerce i molninfrastruktur, alla versioner som stöds
Välj det alternativ som passar bäst:
Metod 1: Överför databasen dump till den lokala datorn och importera den meth2
Stegen är:
-
Använd SFTP och navigera till den plats där databasen 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, d.v.s. din 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 kommer du måste vidta ytterligare åtgärder för att extrahera lämplig databas innan dumpen importeras.
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;"
-
Kopiera databasen dump file (till exempel:
<cluster ID>.sql.gz
för Production eller<cluster ID_stg>.sql.gz
för Staging) till den lokala datorn. -
Kontrollera att du har konfigurerat SSH tunnel för fjärranslutning till databasen: SSH och sFTP: SSH tunneling i utvecklardokumentationen.
-
Anslut till databasen.
code language-sql mysql -h <db-host> -P <db-port> -p -u <db-user> <db-name>
-
Drop databasen. Ange:MariaDB
(för Production)
code language-sql drop database <cluster ID>;
(för Staging)
code language-sql drop database <cluster ID_stg>;
-
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:
-
Navigera till platsen där databasen snapshot har placerats, vanligtvis på den första servern/noden i cluster (till exempel:
/mnt/recovery-<recovery_id>
). -
Om du vill drop och återskapa molndatabasen ansluter du först till databasen:
code language-sql mysql -h 127.0.0.1 -P <db-port> -p -u <db-user> <db-name>
-
Drop databasen. Ange:MariaDB
(för Production)
code language-sql drop database <cluster ID>;
(för Staging)
code language-sql drop database <cluster ID_stg>;
-
Ange följande kommando för att importera snapshot:
(Vid import av säkerhetskopiering av databas från 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>
(Vid import av säkerhetskopiering av databas från 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 import av en säkerhetskopiering av en databas från någon annan miljö)
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 import av en säkerhetskopiering av en databas från någon annan miljö)
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>
Relaterad läsning
I vår utvecklardokumentation: