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