ファイルシステム、メディア、データベースのバックアップとロールバック
このコマンドを使用すると、次のバックアップを作成できます。
- ファイルシステム (
varおよびpub/staticディレクトリを除く) pub/mediaディレクトリ- データベース
バックアップはvar/backups ディレクトリに保存され、magento setup:rollback コマンドを使用していつでも復元できます。
バックアップ後、後で ロールバック できます。
バックアップを有効にする
バックアップ機能はデフォルトで無効になっています。 有効にするには、次のCLI コマンドを入力します。
bin/magento config:set system/backup/functionality_enabled 1
バックアップ機能は、2.1.16、2.2.7、および2.3.0で廃止されました。 追加のバックアップテクノロジーとバイナリバックアップツール(Percona XtraBackupなど)を調査することをお勧めします。
開いているファイルの制限を設定する
以前のバックアップにロールバックすると、サイレントに失敗する可能性があり、不完全なデータがmagento setup:rollback コマンドを使用してファイルシステムまたはデータベースに書き込まれます。
クエリ文字列が長すぎると、再帰呼び出しが多すぎるため、ユーザーに割り当てられたメモリ領域がメモリ不足になることがあります。
開いているファイル ulimitの設定方法
ファイル システム ユーザーの開いているファイル ulimitを65536以上の値に設定することをお勧めします。
これはコマンドラインで行うことも、シェルスクリプトを編集してユーザーの永続的な設定にすることもできます。
続行する前に、まだ実行していない場合は、 ファイルシステム所有者に切り替えてください。
コマンド:
ulimit -s 65536
必要に応じてこれを大きな値に変更できます。
ulimitの構文は、使用するUNIX シェルによって異なります。 上記の設定は、CentOSおよびUbuntuとBash シェルで動作する必要があります。 ただし、macOSの場合、正しい設定はulimit -S 65532です。 詳細については、マニュアル ページまたはオペレーティング システム リファレンスを参照してください。オプションで、ユーザーのBash シェルの値を設定するには、次の手順を実行します。
-
まだ実行していない場合は、 ファイルシステム所有者に切り替えます。
-
/home/<username>/.bashrcをテキストエディターで開きます。 -
次の行を追加します。
code language-shell ulimit -s 65536 -
変更を
.bashrcに保存して、テキストエディターを終了します。
php.ini ファイルのpcre.recursion_limitに値を設定することを避けることをお勧めします。これにより、エラー通知なしで不完全なロールバックが発生する可能性があります。バックアップ
コマンドの使用状況:
bin/magento setup:backup [--code] [--media] [--db]
このコマンドは、次のタスクを実行します。
-
ストアをメンテナンスモードにします。
-
次のいずれかのコマンドオプションを実行します。
table 0-row-3 1-row-3 2-row-3 3-row-3 オプション 意味 バックアップファイルの名前と場所 --codeファイルシステムをバックアップします(varおよびpub/static ディレクトリを除く)。 var/backups/<timestamp>/_filesystem.tgz--mediapub/media ディレクトリをバックアップします。 var/backups/<timestamp>/_filesystem_media.tgz--dbデータベースをバックアップします。 var/backups/<timestamp>/_db.sql -
メンテナンスモードからストアを取り除きます。
例えば、ファイルシステムとデータベースをバックアップするには,
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
ロールバック
このセクションでは、以前に作成したバックアップにロールバックする方法について説明します。 復元するバックアップファイルのファイル名を知っている必要があります。
バックアップの名前を検索するには、次のように入力します。
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