備份及回覆檔案系統、媒體及資料庫

這個命令可讓您備份:

  • 檔案系統(不包括varpub/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

建議將檔案系統使用者的開啟檔案ulimit設定為65536或以上的值。

您可以在命令列上執行此操作,也可以透過編輯使用者的shell指令碼將其設為永久設定。

繼續之前,如果您尚未這樣做,請切換至檔案系統擁有者

命令:

ulimit -s 65536

如有需要,可將其變更為較大的值。

NOTE
開啟檔案ulimit的語法取決於您使用的UNIX Shell。 前面的設定應該適用於CentOS和Ubuntu以及Bash shell。 不過,對於macOS,正確的設定是ulimit -S 65532。 如需詳細資訊,請參閱線上手冊或作業系統參考資訊。

若要選擇設定使用者的Bash shell中的值:

  1. 如果您尚未這樣做,請切換至檔案系統擁有者

  2. 在文字編輯器中開啟/home/<username>/.bashrc

  3. 新增下列行:

    code language-bash
    ulimit -s 65536
    
  4. 將變更儲存至.bashrc並結束文字編輯器。

WARNING
我們建議您避免在檔中設置的值pcre.recursion_limitphp.ini,因為它可能會導致不完全回滾且沒有失敗通知。

備份

命令用法:

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

回覆

本節將討論如何回覆至您先前建立的備份。 您必須知道要還原之備份檔案的檔案名稱。

若要尋找備份的名稱,請輸入:

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