Spanner 時間點復原 (PITR) 可防止資料意外遭到刪除或寫入。舉例來說,如果操作員不小心寫入資料,或是應用程式推出作業導致資料庫毀損,您可以使用 PITR 無縫復原過去某個時間點 (最多七天) 的資料。如果需要長期保留資料,您可以使用備份和還原或匯出和匯入功能。
根據預設,資料庫會保留資料和結構定義的所有版本,時間長達一小時。您可以透過 version_retention_period
選項將這個時間限制延長至七天。如需操作說明,請參閱「設定保留期間」一節。Spanner 會以微秒精細度儲存舊版資料,資料庫會維護 earliest_version_time
,代表可復原舊版資料的最早時間。
資料復原方式
您可以透過兩種方式復原資料:
如要復原部分資料庫,請執行過時讀取,指定過去的查詢條件和時間戳記,然後將結果寫回實際資料庫。這通常用於對實際資料庫執行精確的作業。舉例來說,如果您不小心刪除特定資料列,或錯誤更新部分資料,可以使用這個方法復原資料。如需操作說明,請參閱「還原部分資料庫」。
如要復原整個資料庫,請備份或匯出指定過去時間戳記的資料庫,然後將其還原或匯入至新資料庫。當您必須將資料庫還原至發生損毀問題前的時間點時,通常會使用此方法來復原資料損毀問題。請注意,備份或匯出資料庫可能需要數小時,且您無法還原或匯出至現有資料庫。如需操作說明,請參閱還原整個資料庫。
效能注意事項
資料庫的保留期限越長,尤其是經常覆寫資料的資料庫,會使用更多系統資源。這可能會影響資料庫的效能,尤其是在執行個體未配置足夠的運算容量時。如果資料庫的覆寫率很高 (例如資料庫每天被覆寫多次),建議您逐步延長保留期限並監控系統。請留意以下事項:
提高儲存空間利用率。建議您設定儲存空間警示,確保不會超過儲存空間限制。延長保留期限時,請注意,隨著資料庫累積舊版資料,儲存空間用量會逐漸增加。這是因為舊資料已過期,但在先前的保留期限內,這些資料不會過期。舉例來說,如果您將保留期限從 3 天延長至 7 天,就需要等待 4 天,資料庫儲存空間用量才會穩定。我們也提供預估儲存空間增加量的操作說明。
CPU 使用率和延遲時間增加。Spanner 會使用額外的運算資源,壓縮並維護舊版資料。監控執行個體和資料庫,確保延遲時間和 CPU 使用率維持在可接受的程度。
執行結構定義更新的時間增加。延長保留期限,表示結構定義版本必須保留更長的時間,這可能會導致結構定義更新在等待伺服器資源時遭到
throttled
。請務必遵循結構定義更新的最佳做法,並遵守結構定義更新限制。
定價
使用 PITR 不會產生額外費用,不過,如果您將資料庫的版本保留期限從預設的一小時延長,資料庫儲存空間和運算容量的費用可能會增加。由於只會儲存單一版本的資料庫,因此按照需求執行的備份費用不會受到影響。詳情請參閱「效能考量事項」一節。在增加資料庫的版本保留期限前,您可以預估資料庫儲存空間的預期增加量。
如要進一步瞭解 Spanner 的計費方式,請參閱 Spanner 定價。
後續步驟
- 進一步瞭解如何使用 PITR 復原資料。