分享方式:


對區塊 Blob 資料執行時間點還原

您可以使用時間點還原,將一或多組區塊 Blob 還原至先前的狀態。 本文說明如何啟用儲存體帳戶的時間點還原,以及如何執行還原作業。

若要深入了解時間點還原,請參閱區塊 Blob 的時間點還原

注意

只有標準效能層級的一般用途 v2 儲存體帳戶可支援時間點還原。 只有經常性存取和非經常性存取層中的資料可以使用時間點還原進行還原。

警告

時間點還原僅支援對區塊 Blob 執行還原作業。 容器的作業無法還原。 如果您藉由呼叫刪除容器作業來刪除儲存體帳戶中的容器,則無法使用還原作業還原該容器。 如果您稍後想要還原,請刪除個別的 Blob,而不是刪除整個容器。 此外,Microsoft 建議啟用容器和 Blob 的虛刪除,以防止意外刪除。 如需詳細資訊,請參閱容器的虛刪除Blob 的虛刪除

啟用和設定時間點還原

啟用和設定時間點還原之前,請先啟用其儲存體帳戶的必要條件:虛刪除、變更摘要和 Blob 版本設定。 如需啟用上述各項功能的詳細資訊,請參閱下列文章:

重要

啟用虛刪除、變更摘要和 Blob 版本設定可能會產生額外的費用。 如需詳細資訊,請參閱 Blob 的虛刪除Azure Blob 儲存體中的變更摘要支援,以及 Blob 版本設定

若要使用 Azure 入口網站設定時間點還原,請遵循下列步驟:

  1. 瀏覽至您的儲存體帳戶。
  2. 在 [設定] 底下,選擇 [資料保護]
  3. 選取 [開啟時間點還原]。 選取此選項後,也會啟用 Blob、版本設定和變更摘要的虛刪除。
  4. 設定時間點還原的還原點上限 (以天為單位)。 此數值必須至少為一天,並且小於為 Blob 虛刪除指定的保留期間。
  5. 儲存您的變更。

下圖顯示為時間點還原設定的儲存體帳戶,其還原點設為七天前,Blob 虛刪除的保留期間設為 14 天。

Screenshot showing how to configure point-in-time restore in the Azure portal

選擇還原點

還原點是還原資料的日期和時間。 Azure 儲存體一律會使用 UTC 日期/時間值作為還原點。 不過,Azure 入口網站可讓您以本地時間指定還原點,然後將該日期/時間值轉換為 UTC 日期/時間值,以執行還原作業。

當您使用 PowerShell 或 Azure CLI 執行還原作業時,您應以 UTC 日期/時間值指定還原點。 如果還原點是以本地時間值 (而非 UTC 時間值) 指定的,則在某些情況下,還原作業可能仍會如預期運作。 例如,如果您的本地時間是 UTC 減去五個小時,則指定本地時間值,將會導致還原點比您提供的值早五個小時。 若未對要在那五小時期間內還原的資料進行任何變更,則無論提供的時間值為何,還原作業都會產生相同的結果。 建議您為還原點指定 UTC 時間,以免發生非預期的結果。

執行還原作業

您可以還原儲存體帳戶中的所有容器,也可以還原一或多個容器中某個範圍內的 Blob。 Blob 的範圍會按照字典順序定義。 每個還原作業最多可支援十個字典範圍。 範圍的開頭包括在內,但不包括範圍的結尾。

為開始範圍和結束範圍指定的容器模式至少須包含三個字元。 用來分隔容器名稱與 Blob 名稱的正斜線 (/) 不會計入此最小值中。 如何建構還原範圍的幾個範例:

  • 若要在還原範圍中包含名為 myContainer 的整個容器,請使用 start range myContainer 和 end range myContainer-0。 這會顯示如何將 '-0' 新增為結束範圍值的容器名稱尾碼,包括還原容器中的所有內容。
  • 若要包含整個虛擬目錄階層,例如容器 myContainer 內的目錄 myFolder,請使用 start range myContainer/myFolder/ 和 end range myContainer/myFolder0。 將 '0' 新增為結尾範圍的虛擬目錄名稱尾碼,包含還原時具有 'myContainer/myFolder/' 前置詞的所有檔案。

字典範圍中不支援萬用字元。 任何萬用字元都會被視為標準字元。

您可以在傳至還原作業的範圍中明確指定 $root$web 容器中的 Blob,以還原這些 Blob。 $root$web 容器只有在明確指定時,才會還原。 其他系統容器無法還原。

只有區塊 Blob 才會還原。 分頁 Blob 和附加 Blob 不包含在還原作業中。 若要進一不了解附加 Blob 的相關限制,請參閱區塊 Blob 的時間點還原

重要

當您執行還原作業時,Azure 儲存體會對要在作業執行期間還原的範圍內 Blob 封鎖資料作業。 在主要位置中會封鎖讀取、寫入和刪除作業。 因此,在還原作業執行期間,在 Azure 入口網站中列出容器之類的作業可能不會如預期執行。

如果儲存體帳戶是異地複寫的,則在還原作業執行期間,從次要位置讀取的作業可以繼續進行。

還原一組資料所需的時間,取決於在還原期間所進行的寫入和刪除作業數目 (在花費最多一小時取得還原作業之後)。 例如,假設有一個帳戶包含一百萬個物件,而且每日會新增 3,000 個物件及刪除 1,000 個物件,則大約需要二到三小時才能還原至過去 30 天的時間點。 具有少量變更的還原最多需要一小時來完成。 對於具有此變動率的帳戶,不建議採用保留期間和還原時間超過過去 90 天的方式。

還原帳戶中的所有容器

您可以還原儲存體帳戶中的所有容器,使其回復為先前在指定時間點的狀態。

若要使用 Azure 入口網站還原儲存體帳戶中的所有容器和 Blob,請遵循下列步驟:

  1. 瀏覽至儲存體帳戶的容器清單。

  2. 在工具列上選擇 [還原容器],然後選擇 [全部還原]

  3. 在 [還原所有容器] 窗格中,藉由提供日期和時間來指定還原點。

  4. 勾選方塊,確認您要繼續進行。

  5. 選取 [還原] 以開始執行還原作業。

    Screenshot showing how to restore all containers to a specified restore point

還原區塊 Blob 的範圍

您可以在單一容器內或跨多個容器,還原一或多個字典式的 Blob 範圍,讓這些 Blob 回復為過去在指定時間點的狀態。

若要使用 Azure 入口網站還原一或多個容器中的 Blob 範圍,請遵循下列步驟:

  1. 瀏覽至儲存體帳戶的容器清單。

  2. 選取要還原的一或多個容器。

  3. 在工具列上選擇 [還原容器],然後選擇 [還原所選項目]

  4. 在 [還原選取的容器] 窗格中,藉由提供日期和時間來指定還原點。

  5. 指定要還原的範圍。 使用正斜線 (/) 將容器名稱與 Blob 前置詞分隔。

  6. 根據預設,[還原選取的容器] 窗格會指定包含容器中所有 Blob 的範圍。 如果您不想要還原整個容器,請刪除此範圍。 預設範圍如下圖所示。

    Screenshot showing the default blob range to delete before specifying custom range

  7. 勾選方塊,確認您要繼續進行。

  8. 選取 [還原] 以開始執行還原作業。

下圖顯示一組範圍的還原作業。

Screenshot showing how to restore ranges of blobs in one or more containers

影像中顯示的還原作業會執行下列動作:

  • 還原 container1 的完整內容。
  • 還原 container2 中字典範圍 blob1blob5 內的 Blob。 此範圍會還原具有 blob1blob11blob100blob2 等名稱的 Blob。 範圍的結尾包括在內,因此會還原名稱開頭為 blob4 的 Blob,但不會還原名稱開頭為 blob5 的 Blob。
  • 還原 container3container4 中的所有 Blob。 由於範圍的結尾不包括在內,所以此範圍不會還原 container5

下一步