ファイル・システム、メディア、データベースのバックアップとロールバック

このコマンドを使用すると、次の項目をバックアップできます。

  • ファイルシステム(var ディレクトリと pub/static ディレクトリを除く)
  • pub/media ディレクトリ
  • データベース

バックアップは var/backups ディレクトリに保存され、magento setup:rollback コマンドを使用していつでも復元できます。

バックアップ後、後で ロールバックできます。

TIP
クラウドインフラストラクチャプロジェクトのAdobe Commerceについては、クラウドガイドスナップショットとバックアップの管理を参照してください。

バックアップを有効にする

バックアップ機能はデフォルトで無効になっています。 有効にするには、次の CLI コマンドを入力します。

bin/magento config:set system/backup/functionality_enabled 1
WARNING
非推奨(廃止予定)のお知らせ:
バックアップ機能は、2.1.16、2.2.7、2.3.0 で非推奨(廃止予定)となりました。追加のバックアップテクノロジーとバイナリバックアップツール(Percona XtraBackup など)を調査することをお勧めします。

開いているファイルの上限を設定

以前のバックアップへのロールバックはサイレントに失敗する場合があり、magento setup:rollback コマンドを使用して不完全なデータがファイルシステムまたはデータベースに書き込まれる結果となります。

クエリ文字列が長いと、再帰呼び出しが多すぎることが原因で、ユーザーに割り当てられたメモリ領域がメモリ不足になることがあります。

開いているファイルの ulimit 定方法

ファイルシステムユーザーに対して開いているファイル ulimit65536 以上の値に設定することをお勧めします。

これをコマンドラインで実行するか、シェルスクリプトを編集してユーザーに恒久的な設定を与えることができます。

続行する前に、まだ実行していない場合は、 ファイルシステムの所有者に切り替えます。

コマンド:

ulimit -s 65536

必要に応じて、これを大きい値に変更できます。

NOTE
開いているファイル ulimit の構文は、使用する UNIX シェルによって異なります。 上記の設定は、Bash シェルを使用している CentOS および Ubuntu で動作する必要があります。 ただし、macOSの場合、正しい設定は ulimit -S 65532 です。 詳細については、マニュアルページまたは OS のリファレンスを参照してください。

ユーザーの Bash シェルにオプションで値を設定するには:

  1. まだ切り替えていない場合は、 ファイルシステムの所有者に切り替えます。

  2. /home/<username>/.bashrc をテキストエディターで開きます。

  3. 次の行を追加します。

    code language-bash
    ulimit -s 65536
    
  4. .bashrc への変更を保存し、テキストエディターを終了します。

WARNING
php.ini ファイルで pcre.recursion_limit の値を設定することは避けることをお勧めします。設定すると、エラー通知のない不完全なロールバックが生じる可能性があるからです。

バックアップ中

コマンドの使用法:

bin/magento setup:backup [--code] [--media] [--db]

コマンドは、次のタスクを実行します。

  1. ストアをメンテナンスモードにします。

  2. 次のいずれかのコマンド オプションを実行します。

    table 0-row-3 1-row-3 2-row-3 3-row-3
    オプション 意味 バックアップ ファイルの名前と場所
    --code ファイルシステムをバックアップします(var ディレクトリと pub/static ディレクトリを除く)。 var/backups/<timestamp>/_filesystem.tgz
    --media pub/media ディレクトリをバックアップします。 var/backups/<timestamp>/_filesystem_media.tgz
    --db データベースをバックアップします。 var/backups/<timestamp>/_db.sql
  3. ストアをメンテナンスモードから削除します。

例えば、ファイルシステムとデータベースをバックアップするには、次のように指定します。

bin/magento setup:backup --code --db

次のようなメッセージが表示されます。

Enabling maintenance mode
Code backup is starting...
Code backup filename: 1434133011_filesystem.tgz (The archive can be uncompressed with 7-Zip on Windows systems)
Code backup path: /var/www/html/magento2/var/backups/1434133011_filesystem.tgz
[SUCCESS]: Code backup completed successfully.
DB backup is starting...
DB backup filename: 1434133011_db.sql
DB backup path: /var/www/html/magento2/var/backups/1434133011_db.sql
[SUCCESS]: DB backup completed successfully.
Disabling maintenance mode

Rollback

このセクションでは、以前に作成したバックアップにロールバックする方法について説明します。 復元するバックアップファイルのファイル名を知っている必要があります。

バックアップの名前を検索するには、次のように入力します。

bin/magento info:backups:list

バックアップ ファイル名の最初の文字列はタイムスタンプです。

以前のバックアップにロールバックするには、次のように入力します。

bin/magento setup:rollback [-c|--code-file="<name>"] [-m|--media-file="<name>"] [-d|--db-file="<name>"]

たとえば、1440611839_filesystem_media.tgz という名前のメディア バックアップを復元するには、次のように入力します

bin/magento setup:rollback -m 1440611839_filesystem_media.tgz

次のようなメッセージが表示されます。

[SUCCESS]: Media rollback completed successfully.
Please set file permission of bin/magento to executable
Disabling maintenance mode
recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995