에서 DB 스냅샷 복원 Staging 또는 Production

이 문서에서는 DB를 복원하는 방법을 보여 줍니다 snapshot 출처: Staging 또는 Production Adobe Commerce on Cloud Pro 인프라

영향을 받는 제품 및 버전

사용 사례에 가장 적합한 항목 선택:

방법 1: 데이터베이스 전송 dump 로컬 시스템으로 가져와서 가져오기 meth2

단계는 다음과 같습니다.

  1. 사용 sFTP를 클릭하고 데이터베이스가 있는 위치로 이동합니다. snapshot 이(가) 배치되었습니다(일반적으로 의 첫 번째 서버/노드). cluster (예: /mnt/recovery-<recovery_id>). 참고: 프로젝트가 Azure 기반 프로젝트인 경우, 즉 프로젝트 URL은 https://us-a1.magento.cloud/projects/ 과 비슷합니다.<cluster_id>스냅샷이에 배치됩니다. /mnt/shared/<cluster ID>/all-databases.sql.gz 또는 /mnt/shared/<cluster ID_stg>/all-databases.sql.gz 대신,

    참고: Azure 프로젝트의 스냅숏 형식은 다르며 가져올 수 없는 다른 데이터베이스를 포함합니다. 스냅샷을 가져오기 전에 추가 단계를 수행하여 적절한 데이터베이스를 추출한 후 덤프를 가져와야 합니다.

    프로덕션의 경우:

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

    스테이징의 경우:

    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. 데이터베이스 복사 dump file (예: <cluster ID>.sql.gz 대상 Production 또는 <cluster ID_stg>.sql.gz 대상 Staging)을 클릭하여 로컬 컴퓨터에 연결하십시오.

  3. 다음을 설정했는지 확인하십시오. SSH tunnel 데이터베이스에 원격으로 접속하려면 SSH 및 sFTP: SSH tunneling 개발자 설명서에서 확인할 수 있습니다.

  4. 데이터베이스에 연결합니다.

    code language-sql
    mysql -h <db-host> -P <db-port> -p -u <db-user> <db-name>
    
  5. Drop 데이터베이스; MariaDB 프롬프트에서 다음을 입력합니다.

    (대상 Production)

    code language-sql
    drop database <cluster ID>;
    

    (대상 Staging)

    code language-sql
    drop database <cluster ID_stg>;
    
  6. 다음 명령을 입력하여 snapshot:

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

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

방법 2: 데이터베이스 가져오기 dump 서버에서 직접 meth3

단계는 다음과 같습니다.

  1. 데이터베이스가 있는 위치로 이동합니다. snapshot 이(가) 배치되었습니다(일반적으로 의 첫 번째 서버/노드). cluster (예: /mnt/recovery-<recovery_id>).

  2. 종료 drop 클라우드 데이터베이스를 다시 생성하고 먼저 데이터베이스에 연결합니다.

    code language-sql
    mysql -h 127.0.0.1 -P <db-port> -p -u <db-user> <db-name>
    
  3. Drop 데이터베이스; MariaDB 프롬프트에서 다음을 입력합니다.

    (대상 Production)

    code language-sql
    drop database <cluster ID>;
    

    (대상 Staging)

    code language-sql
    drop database <cluster ID_stg>;
    
  4. 다음 명령을 입력하여 snapshot:

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

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

관련 읽기

개발자 설명서에서:

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