在 Azure App Service 中備份並還原您的應用程式
在 Azure App Service 中,您可以輕鬆還原應用程式備份。 您也可以進行隨選或設定排程的自訂備份。 您可以藉由還原至新應用程式或位置,或是覆寫現有的應用程式以還原備份。 本文說明如何還原備份並建立自訂備份。
在基本、標準、進階和隔離層支援備份和還原。 針對基本層,只能備份和還原生產位置。 如需有關調整 App Service 方案以使用更高階層的詳細資訊,請參閱 在 Azure 中調整應用程式規模。
注意
針對 App Service 環境:
- 自動備份可還原至 App Service 環境本身內、而非在另一個 App Service 環境中的目標應用程式。
- 可以將自訂備份還原至另一個 App Service 環境中的目標應用程式,例如從 App Service 環境 v2 還原至 App Service 環境 v3。
- 備份可以還原至與來源應用程式相同的 OS 平台目標應用程式。
備份和還原 vs. 災害復原
平台 | 備份和還原指導 | 災害復原指南 |
---|---|---|
App Service web 應用程式 (免費和共用定價層) |
如果您已將 Web 應用程式部署至免費或共用層,且需要存取這些 Web 應用程式的備份和還原功能,請調整為基本層或更高層級。 | 在區域性災害期間,將 App Service 資源帶回不同的 Azure 區域中。 如從全區域失敗復原一文中所述,從 2025 年 3 月 31 日起,在 Azure 區域中的災害期間,App Service 應用程式將不會處於災害復原模式。 我們建議您實作常用的災害復原技術,以防止在區域性災害期間發生停機和資料遺失。 |
App Service web 應用程式 (基本、標準和進階定價層) |
在 Azure App Service 中,可進行隨選自訂備份或使用自動備份。 您可以藉由還原至新應用程式或位置,或是覆寫現有的應用程式以還原備份。 請參閱在 Azure App Service 中備份並還原應用程式,以取得更多資訊。 |
如需如何在區域性災害期間,將 App Service 資源在不同 Azure 區域中重新連線的最新指導,請參閱從全區域失敗中復原 - Azure App Service。 如從全區域失敗復原一文中所述,從 2025 年 3 月 31 日起,在 Azure 區域中的災害期間,App Service web 應用程式將不再處於災害復原模式。 我們鼓勵您實作常用的災害復原技術,以避免發生區域性災害時,Web 應用程式的功能或資料遺失。 |
App Service 環境 (V2 和 V3) | 在 Azure App Service 環境中,可進行隨選自訂備份或利用自動備份。 自動備份可還原至相同的 App Service 環境內、而非在另一個 App Service 環境中的目標應用程式。 可以將自訂備份還原至另一個 App Service 環境中的目標應用程式,例如從 V2 App Service 環境還原至 V3 App Service 環境。 備份可以還原至與來源應用程式相同的 OS 平台目標應用程式。 請參閱在 Azure App Service 中備份並還原應用程式,以取得更多詳細資訊。 |
我們鼓勵您使用常用的災害復原技術,為部署到 App Service 環境的 Web 應用程式實作災害復原指導。 |
Azure Functions: 專用方案 |
您在專用 (App Service) 方案中執行函式應用程式時,所需的函式應用程式內容會使用內建儲存體來維護。 在專用方案中,您可以進行隨選自訂備份或利用自動備份。 您可以藉由還原至新應用程式或位置,或是覆寫現有的應用程式以還原備份。 如需詳細資訊,請參閱在 Azure App Service 中備份和還原您的應用程式。 專用方案不會使用 Azure 檔案儲存體,但如果您使用 Azure 檔案儲存體連線錯誤設定了應用程式,則不支援備份。 |
有關如何在發生區域災害期間讓專用方案中的函式應用程式資源在不同的 Azure 區域中恢復連線的最新指導,請參閱從區域範圍內的失敗中復原 - Azure App Service。 如從全區域失敗復原一文中所述,從 2025 年 3 月 31 日起,在 Azure 區域中的災害期間,App Service 應用程式將不會處於災害復原模式。 您應該改為規劃函式應用程式的可靠性。 您也可以參閱專用方案中函式應用程式的常用災害復原技術。 |
Azure Functions: 彈性取用、 取用和進階方案 |
在彈性取用方案、取用方案或進階方案中執行的函式應用程式無法使用 App Service 中的自訂或自動備份功能。 在這些動態調整方案中,函式應用程式內容會在 Azure 儲存體中維護。 使用 Azure 儲存體備援選項,以確保儲存體帳戶在中斷期間符合其可用性和持久性目標。 您也可以從 Azure 入口網站將現有函式應用程式專案下載為 .zip 檔案。 |
我們強烈建議您規劃函式應用的可靠性。 |
自動備份與自訂備份
App Service 中有兩種備份類型。 只要應用程式位處支援的定價層中,系統就會定期為其建立自動備份。 自訂備份需要初始設定,且可視需要或依排程進行。 下表顯示這兩種類型間的差異。
功能 | 自動備份 | 自訂備份 |
---|---|---|
定價層 | 基本、標準、進階、隔離。 | 基本、標準、進階、隔離。 |
需要設定 | 否。 | 是。 |
備份大小 | 30 GB。 | 10 GB,其中 4 GB 可以是連結的資料庫。 |
連結的資料庫 | 未備份。 | 您可以備份下列連結的資料庫:SQL Database、適用於 MySQL 的 Azure 資料庫、適用於 PostgreSQL 的 Azure 資料庫和應用程式內的 MySQL。 |
需要儲存體帳戶 | 否。 | 是。 |
備份頻率 | 每小時,無法設定。 | 可設定。 |
保留期 | 30 天,無法設定。 - 第 1-3 天:保留每小時備份。 - 第 4-14 天:保留每三小時備份。 - 第 15-30 天:保留每六小時備份。 |
0-30 天或無限期。 |
可下載 | 否。 | 可以,作為 Azure 儲存體 Blob。 |
部分備份 | 不支援。 | 支援。 |
透過虛擬網路進行備份 | 不支援。 | 支援。 |
還原備份
在 Azure 入口網站的應用程式管理頁面中,選取左側功能表中的 [備份]。 [備份] 頁面會列出您應用程式的所有自動和自訂備份,及每個備份的狀態。
選取 [還原] 連結,以選取要還原的自動備份或自訂備份。
會自動為您填入 [備份詳細資料] 區段。
在 [選擇目的地] 中指定要還原的目的地。 若要還原新的應用程式,請選取 [App Service] 方塊下方的 [新建]。 若要還原至新的部署位置,請選取部署位置方塊下方的 [新建]。
如果您選擇現有的位置,則系統會將其檔案系統中的所有現有資料予以清除和覆寫。 生產位置名稱和應用程式名稱相同。
您可以在 [進階選項] 下方還原您的網站設定。
選取還原。
建立自訂備份
在 Azure 入口網站的應用程式管理頁面上,選取左側功能表中的 [備份]。
在 [備份] 頁面頂端選取 [設定自訂備份]。
在 [儲存體帳戶] 中,選取相同訂閱中的現有儲存體帳戶,或選取 [新建]。 在 [容器] 中執行相同動作。
若要備份連結的資料庫,請選取 [下一步:進階] > [包含資料庫],然後選取要備份的資料庫。
注意
若要讓支援的資料庫出現在此清單中,其連接字串必須存在於您應用程式之 [設定] 頁面的 [連接字串] 區段中。
應用程式內的 MySQL 資料庫一律會備份,無須任何設定。 如果您對應用程式內 MySQL 資料庫進行手動設定 (例如,新增連接字串),可能就無法正確備份。
選取設定。
設定儲存體帳戶和容器之後,您可以隨時起始隨選備份。 隨選備份會無限期保留。
在 [備份] 頁面頂端選取 [立即備份]。
自訂備份會顯示在具有進度指示器的清單中。 如果失敗並出現錯誤,您可以選取明細項目以查看錯誤訊息。
設定自動排程備份
在 [設定自訂備份] 頁面中選取 [設定排程]。
視需要設定備份排程,接著選取 [設定]。
備份和還原連結的資料庫
自訂備份可以包含連結的資料庫 (除非透過 Azure 虛擬網路設定備份)。 若要確定您的備份包含連結的資料庫,請執行下列動作:
- 請確定連結的資料庫是受支援的。
- 建立指向資料庫的連接字串。 當應用程式設定中存在有效的連接字串時,資料庫會被視為「連結」至應用程式。
- 請遵循在建立自訂備份中的步驟,在 [進階] 索引標籤中選取連結的資料庫。
若要還原自訂備份中包含的資料庫:
- 請遵循還原備份中的步驟。
- 在 [進階選項] 中,選取 [包含資料庫]。
如需疑難排解資訊,請參閱為什麼我的連結資料庫未備份?。
透過 Azure 虛擬網路備份和還原
透過自訂備份,如果符合下列需求,則可以將應用程式的檔案和組態資料備份到受防火牆保護的儲存體帳戶:
- 此應用程式會與虛擬網路整合,或應用程式會位於 v3 App Service 環境中。
- 儲存體帳戶允許來自與應用程式整合之虛擬網路的存取權,或授予建立 v3 App Service 環境所使用虛擬網路的存取權。
若要透過 Azure 虛擬網路備份和還原:
- 在設定自訂備份時,請選取 [透過虛擬網路整合進行備份/還原]。
- 選取 [設定] 來儲存設定。
如果您沒有看到核取方塊,或核取方塊已停用,請確認您的資源符合需求。
儲存組態之後,會透過虛擬網路進行任何手動備份、排程的備份或還原。 如果您變更應用程式、虛擬網路或防止應用程式透過虛擬網路存取儲存體帳戶的儲存體帳戶,備份或還原作業會失敗。
設定部分備份
自訂備份支援部份備份 (但不支援自動備份)。 有時您並不想要備份應用程式上的所有項目。 以下是一些範例:
- 您為包含永不變更的靜態內容 (例如舊部落格文章或影像) 的應用程式 設定每週備份 。
- 您的應用程式有超過 10 GB 的內容。 (這是您一次可以備份的最大金額。)
- 您不想要備份記錄檔。
若要排除您未來備份中儲存的資料夾和檔案,請在應用程式的 %HOME%\site\wwwroot
資料夾中建立 _backup.filter
檔案。 請在此檔案中指定您想要排除的檔案和資料夾清單。
提示
您可以瀏覽至 https://<app-name>.scm.azurewebsites.net/DebugConsole
來存取檔案。 如果出現提示,登入您的 Azure 帳戶。
識別您想要從備份中排除的資料夾。 例如,假設您想要篩選掉醒目提示的資料夾和檔案。
建立名為 _backup.filter
的檔案並將上述清單放入此檔案中,但請移除根 %HOME%
。 一行列出一個目錄或檔案。 檔案的內容應該如下:
\site\wwwroot\Images\brand.png
\site\wwwroot\Images\2014
\site\wwwroot\Images\2013
使用 FTP 或任何其他方法,將此 _backup.filter
檔案上傳至網站的 D:\home\site\wwwroot\
目錄。 如果您希望的話,也可以使用 Kudu DebugConsole
直接建立該檔案,然後在該處插入內容。
以與平常相同的方式執行備份:自定隨選或自訂排程。 會從未來備份中排除 _backup.filter
中指定的所有檔案和資料夾。
注意
_backup.filter
變更還原的運作方式。 如果沒有 _backup.filter
,還原備份會刪除應用程式中的所有現有檔案,並將其取代為備份中的檔案。 使用 _backup.filter
時,應用程式檔案系統 _backup.filter
中包含的任何內容會保留為 (未刪除)。
備份的儲存方式
在您為應用程式建立一或多個備份之後,這些備份就會顯示在您儲存體帳戶及應用程式的 [容器] 頁面中。 在儲存體帳戶中,每個備份都是由一個 .zip
檔案 (包含備份資料) 和一個 .xml
檔案 (包含 .zip
檔案內容的資訊清單) 所組成。 如果您要存取備份而不實際執行應用程式還原,則可以透過將這些檔案解壓縮並加以瀏覽。
應用程式的資料庫備份則儲存在 .zip 檔案的根目錄中。 若是 SQL 資料庫,這會是 BACPAC 檔案 (無副檔名),而且可以匯入。 若要根據 BACPAC 匯出,在 Azure SQL Database 中建立資料庫,請參閱匯入 BACPAC 檔案以在 Azure SQL Database 中建立資料庫。
警告
對 websitebackups 容器中的檔案進行任何變更,都可能導致備份失效,進而無法還原。
錯誤訊息
[備份] 頁面會顯示每個備份的狀態。 若要取得失敗備份相關的記錄詳細資料,請選取清單中的明細項目。 使用以下資料表,來協助您對備份進行疑難排解。 如果資料表中未記載失敗,請開立支援票證。
錯誤 | Fix |
---|---|
儲存體存取失敗。 | 刪除備份排程並重新設定。 或者,重新設定備份儲存體。 |
網站 + 資料庫大小超過備份的 {0} GB 限制。 您的內容大小為 {1} GB。 | 從備份中排除某些檔案 ,或移除備份的資料庫部分,並改用外部提供的備份。 |
連線到伺服器 {1} 上的資料庫 {0} 時發生錯誤:使用方法「mysql_native_password」對使用者「<username>」裝載「{1}」的驗證失敗,並出現訊息:未知的資料庫「<db-name>」 | 更新資料庫連接字串。 |
無法解析 {0}。 {1} (CannotResolveStorageAccount) | 刪除備份排程並重新設定。 |
使用者「{0}」登入失敗。 | 更新資料庫連接字串。 |
建立 {0} ({1}) 的資料庫複本擲回例外狀況。 無法建立資料庫複本。 | 在連接字串中使用系統管理使用者。 |
伺服器主體「<name>」在目前的資訊安全內容下無法存取「主要」資料庫。 無法開啟登入所要求的資料庫 "master"。 登入失敗。 使用者「<name>」登入失敗。 | 在連接字串中使用系統管理使用者。 |
和 SQL Server 建立連線時,發生與網路相關或執行個體特定的錯誤。 找不到或無法存取伺服器。 檢查執行個體名稱是否正確以及 SQL Server 執行個體是否設定為允許遠端連接。 (提供者:具名管道提供者,錯誤: 40 - 無法開啟 SQL Server 連線)。 | 確保連接字串是否有效。 允許應用程式在資料庫伺服器設定中的輸出 IP。 |
無法開啟登入所要求的伺服器「<name>」。 登入失敗。 | 確保連接字串是否有效。 |
遺漏有效的共用存取簽章的強制參數。 | 刪除備份排程並重新設定。 |
需要 SSL 連線。 指定 SSL 選項,並在嘗試連線時重試。 | 資料庫備份不支援適用於 MySQL 的 Azure 資料庫和適用於 PostgreSQL 的 Azure 資料庫的 SSL 連線。 請改用個別資料庫中的原生備份功能。 |
使用指令碼進行自動化
您可以透過使用 Azure CLI 或 Azure PowerShell,以指令碼將備份管理作業自動化。
例如,請參閱:
常見問題集
- 備份是否為累加式更新或完整備份?
- Azure Functions 支援自動備份嗎?
- 自動備份中包含哪些內容?
- 自訂備份中包含哪些內容?
- 為什麼我的已連結資料庫未備份?
- 如果備份大小超過允許上限,會發生什麼事?
- 我可以使用已啟用安全性功能的儲存體帳戶嗎?
- 如何還原至不同訂用帳戶中的應用程式?
- 如何還原至在相同訂用帳戶,但位於不同區域中的應用程式?
- 自動備份會儲存在何處?
- 如何停止自動備份?
備份是否為累加式更新或完整備份?
每個備份都是應用程式的完整離線複本,而不是增量更新。
Azure Functions 支援自動備份嗎?
針對使用專用 (App Service) 基本、標準和進階層的 Azure Functions,可以使用自動備份。 自動備份不支援使用量或彈性進階定價層中的函式應用程式。
自動備份中包含哪些內容?
下表顯示自動備份中備份的內容:
Content | 已還原? |
---|---|
Windows 應用程式:目錄 %HOME% 下的所有應用程式內容。Linux 應用程式:目錄 /home 下的所有應用程式內容。自訂容器 (Windows 和 Linux):永續性儲存體中的內容。 |
Yes |
run-from-ZIP 套件的內容 | No |
來自任何自訂掛接 Azure 儲存體的內容,例如來自 Azure 檔案儲存體共用 | No |
下表顯示當您選擇還原應用程式設定時,要還原的應用程式設定:
設定 | 已還原? |
---|---|
原生記錄設定,包括 Azure 儲存體帳戶和容器設定 | Yes |
Application Insights 設定 | Yes |
健康狀態檢查 | Yes |
網路功能,例如私人端點、混合式連線和虛擬網路整合 | No |
驗證 | No |
受控識別 | No |
自訂網域 | No |
TLS/SSL | No |
橫向擴增 | No |
使用 Azure 監視器進行的診斷 | No |
警示和計量 | No |
Backup | No |
相關聯的部署位置 | No |
自訂備份支援的任何已連結資料庫 | No |
自訂備份中包含哪些內容?
自訂備份 (隨選備份或排程備份) 包含自動備份中包含的所有內容、設定以及任何連結的資料庫 (不超過允許的大小上限)。
透過 Azure 虛擬網路備份時,您無法備份連結的資料庫。
為什麼我的已連結資料庫未備份?
已連結資料庫僅針對自訂備份進行備份 (不超過允許的大小上限)。 如果超過備份大小上限 (10 GB),或超過資料庫大小上限 (4 GB),則備份就會失敗。 以下是已連結資料庫未能備份的一些常見原因:
- 不支援備份具 TLS 功能的適用於 MySQL 的 Azure 資料庫。 如果已設定備份,您會遇到備份失敗。
- 不支援備份具 TLS 功能的適用於 PostgreSQL 的 Azure 資料庫。 如果已設定備份,您會遇到備份失敗。
- 應用程式內 MySQL 資料庫會自動備份 (不含任何設定)。 如果您對應用程式內 MySQL 資料庫進行手動設定 (例如,新增連接字串),可能就無法正確備份。
如果備份大小超過允許上限,會發生什麼事?
如果備份大小超過大小上限,就無法還原自動備份。 同樣地,若超過備份或資料庫的大小上限,自訂備份即會失敗。 例如,若要減少儲存體大小,請考慮將記錄、影像、音訊和影片等檔案移至 Azure 儲存體。
我可以使用已啟用安全性功能的儲存體帳戶嗎?
如果儲存體帳戶是應用程式相同虛擬網路拓撲的一部分,您可以備份至受防火牆保護的儲存體帳戶。 請參閱透過 Azure 虛擬網路備份和還原。
如何還原至不同訂閱中的應用程式?
- 建立 Azure 儲存體容器的自訂備份。
- 將備份 ZIP 檔案下載到本機電腦。
- 在目標應用程式的 [備份] 頁面上,選取頂端功能表中的 [還原]。
- 在 [備份詳細資料] 中,選取 [來源] 中的 [儲存體]。
- 選取慣用的儲存體帳戶。
- 在 Zip 檔案中,選取 [上傳檔案]。
- 在 [名稱] 中,選取 [瀏覽] 及下載的 ZIP 檔案。
- 設定其餘區段所設的 [還原備份]。
如何還原至在相同訂用帳戶,但位於不同區域中的應用程式?
這些步驟與如何還原至不同訂用帳戶中的應用程式?相同。
自動備份會儲存在何處?
自動備份會儲存在與 App Service 相同的資料中心。 不應依賴它們作為災害復原計劃。
如何停止自動備份?
您無法停止自動備份。 自動備份會儲存在平台上,而且不會影響基礎應用程式執行個體或其儲存體。