時間點復原 (PITR) 總覽

Cloud Firestore 時間點復原 (PITR) 功能可以防止意外刪除或寫入作業。PITR 會使用過去的時間戳記,保留文件的版本。舉例來說,如果開發人員推送任何不正確的資料、意外刪除或寫入資料,PITR 可順暢將資料復原至過去某個時間點 (最多 7 天)。

針對任何遵循最佳做法的即時資料庫,使用 PITR 不會影響讀取或寫入效能。

時間點復原 (PITR) 視窗

啟用時間點復原功能後,Cloud Firestore 會開始保留時間點復原資料。時間點復原資料會在時間點復原 (PITR) 視窗中保留 7 天。

您可以根據時間點復原功能啟用時間,讀取時間戳記的資料:

時間點復原功能啟用狀態 提供最早的時間點復原資料
已停用 讀取要求時間的 1 小時前
在 7 天內啟用 啟用時間點復原功能前 1 小時
啟用時間超過 7 天 讀取要求時間的 7 天前

系統會在 PITR 視窗中保留每分鐘一個版本。您可以使用整分鐘的時間戳記,以分鐘為單位閱讀文件。非以分鐘為單位的讀取作業 (例如 2023-05-30 09:00:00.1234AM) 會傳回 read_time 太舊的錯誤。

多次寫入時,系統只會保留文件的一個版本。舉例來說,如果文件有多次寫入介於 2023-05-30 09:00:00AM (專屬) 和 2023-05-30 09:01:00AM (含) 時間戳記之間的 v1, v2, ... vk,則時間戳記 2023-05-30 09:01:00AM 的讀取要求會傳回文件的 vk 版本。

您可以讀取在時間點復原期間建立的資料。資料會以分鐘為單位的儲存時間,而您也可以按相同的精細程度復原資料。Cloud Firestore PITR 功能預設為停用。

資料庫的 earliestVersionTime 欄位會指定資料的最早讀取時間。

無論您是否啟用 PITR,都能讀取 (但無法匯出) 過去 1 小時內任何微秒精細程度的時間戳記文件,但無法匯出早於 earliestVersionTime 時間的文件。

復原資料的方式

您可以透過兩種方式復原資料:

  • 如要復原部分資料庫,請指定查詢條件或使用直接鍵查詢,搭配過去的時間戳記,再執行過時讀取,然後將結果寫回使用中的資料庫。通常用於即時資料庫的手術作業。舉例來說,如果您不小心刪除特定文件或錯誤更新資料子集,可以使用這個方法進行復原。如需操作說明,請參閱復原資料庫一節。

  • 如要復原整個資料庫,請匯出指定過去時間戳記的資料庫,然後匯入至新的資料庫。PITR 匯出作業支援所有篩選器,包括匯出所有文件及匯出特定集合。您可以匯出時間點復原資料,其中時間戳記是過去七天內的完整時間戳記,但不得早於最早的版本時間。

定價

為資料庫啟用時間點復原功能前,請先考量下列定價資訊:

  • 儲存空間:Cloud Firestore 每天都會測量資料庫大小。在一個月期間,系統會計算這些樣本點的平均值,藉此計算資料庫儲存空間大小。這個平均值會乘以時間點率 (GB-月) 的單位價格。詳情請參閱儲存空間定價

    時間點復原 (PITR) 儲存空間功能沒有免費方案。如要使用時間點復原 (PITR),則須啟用計費功能。

  • 運算計費:若您在 7 天的時間點復原期間進行的任何查詢,無論是使用過時讀取或匯出,都會依據讀取的文件數量產生讀取作業費用。詳情請參閱價格一文。

  • 最低費用:即使您在啟用後一天內停用時間點復原 (PITR),最多還是需要支付 1 天的時間點復原 (PITR) 儲存空間費用。

後續步驟