Cloud Firestore 時間點復原 (PITR) 可防止意外刪除或寫入。PITR 會保留先前時間戳記的文件版本。舉例來說,如果開發人員推送任何不正確的資料、不小心刪除或寫入資料,PITR 就能將資料順利復原至過去的某個時間點 (最多 7 天)。
對於遵循最佳做法的任何即時資料庫,使用 PITR 不會影響讀取或寫入的效能。
PITR 視窗
啟用 PITR 後,Cloud Firestore 就會開始保留 PITR 資料。PITR 資料會在 PITR 期間保留 7 天。
您可以根據啟用 PITR 的時間,讀取時間戳記的資料:
PITR 啟用狀態 | 最早可用的 PITR 資料 | |
---|---|---|
已停用 | 讀取要求時間前 1 小時 | |
在 7 天內啟用 | 啟用 PITR 前 1 小時 | |
已啟用超過 7 天 | 讀取要求時間前 7 天 |
在 PITR 期間,系統會保留每分鐘的單一版本。您可以使用整分鐘時間戳記,以分鐘為單位讀取文件。如果讀取作業不是以分鐘為精細度 (例如 2023-05-30 09:00:00.1234AM
),系統會傳回 read_time 過舊的錯誤。
在多次寫入的情況下,系統只會保留一份文件版本。舉例來說,如果文件有多次寫入作業,範圍從 v1, v2, ... vk
到 2023-05-30 09:00:00AM
(不含) 和 2023-05-30 09:01:00AM
(含) 之間的時間戳記,則時間戳記 2023-05-30 09:01:00AM
的讀取要求會傳回文件的 vk
版本。
您可以讀取在 PITR 時間範圍內建立的資料。資料以分鐘為單位的精細程度儲存,您可以以相同的精細程度復原資料。Cloud Firestore PITR 功能預設為停用。
資料庫的 earliestVersionTime 欄位會指定資料的最早可讀時間。
無論是否已啟用 PITR,您都可以讀取 (但無法匯出) 過去一小時內任何微秒精細度的時間戳記,但不能讀取 earliestVersionTime 之前的時間戳記。
資料復原方式
您可以透過兩種方式復原資料:
如要復原部分資料庫,請執行過時讀取,指定查詢條件或使用直接鍵查詢,並搭配過去的時間戳記,然後將結果寫回即時資料庫。這類作業通常用於對即時資料庫執行精確的操作。舉例來說,如果您不小心刪除特定文件,或錯誤更新部分資料,可以使用這個方法復原。如需操作說明,請參閱「還原部分資料庫」一文。
如要復原整個資料庫,請匯出指定過去時間戳記的資料庫,然後匯入新資料庫。PITR 匯出作業支援所有篩選器,包括匯出所有文件和匯出特定集合。您可以匯出時間戳記為過去七天內整分鐘時間戳記的 PITR 資料,但不得早於 earliestVersionTime。
定價
為資料庫啟用 PITR 前,請先考量下列定價資訊:
儲存空間:Cloud Firestore 會每天測量資料庫大小。系統會在一個月的期間內計算這些樣本點的平均值,用來計算資料庫儲存空間大小。這個平均值會乘以 PITR 的單位價格 (GB-月)。詳情請參閱儲存空間定價。
PITR 儲存空間沒有免費方案,因此您必須啟用結帳功能,才能使用 PITR。
運算帳單:在 7 天 PITR 期間,透過過時讀取或匯出作業所做的任何查詢,都會根據讀取的文件數產生讀取作業費用。詳情請參閱價格一文。
最低計費:即使您在啟用 PITR 後的 1 天內停用 PITR,仍可能會被收取最多 1 天的 PITR 儲存空間費用。
後續步驟
- 進一步瞭解如何使用 PITR 復原資料。