から DB スナップショットをリストアする Staging または Production

この記事では、DB の復元方法を説明します snapshot から Staging または Production (Cloud Pro インフラストラクチャ上のAdobe Commerce上)。

影響を受ける製品とバージョン

お客様の状況に最も適したものを選択してください。

方法 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