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