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