備份總覽

本文件概要說明 Spanner 備份和備份時間表。

Spanner 可讓您隨選建立資料庫的完整備份,並使用備份時間表建立完整或增量備份。完整備份會儲存資料庫的所有資料,而增量備份只會包含上次備份後發生變更的資料。

當操作員或應用程式錯誤導致邏輯資料損毀時,您可以還原備份。

備份具有高可用性,且經過加密處理,從建立備份起算,最多可保留一年。建立備份時,備份會位於與來源資料庫相同的執行個體、區域和專案中。如果您基於法規遵循或業務連續性的原因,需要在其他區域或專案中還原備份,可以將備份複製到位於其他區域或專案的執行個體。

每個備份都有相關聯的 createTimeversionTimecreateTime 是 Spanner 開始建立備份時的時間戳記。versionTime 是資料庫內容在備份中擷取的時間戳記。備份包含 versionTime 資料庫的一致檢視畫面。

對於隨選備份,createTimeversionTime 預設為相同。如有需要,您可以在建立隨選備份時指定較舊的 versionTime,前提是該版本仍在資料庫的版本保留期限內。

對於排定備份,versionTime 是指您建立備份時間表時所選擇的時間。Spanner 會在 versionTime 後四小時內開始建立備份,因此 createTime 會落在這個四小時的時間範圍內。這與隨選備份不同,後者會在收到要求時開始建立備份。

舉例來說,假設您建立備份排程的頻率為 0 7 * * * UTC,或是每天世界標準時間上午 7:00。也就是說,每個備份的 versionTime 都會設為世界標準時間上午 7 點,而 createTime 則是世界標準時間上午 7 點至上午 11 點之間四小時內的時間戳記。

如要進一步瞭解如何使用 API 使用 createTimeversionTime,請參閱 備份 API 參考資料

主要功能與特色

  • 資料一致性:Spanner 資料庫的備份在備份的 versionTime 上具有交易一致性和外部一致性

  • 複寫:備份會與來源資料庫位於相同的執行個體,並在相同的地理位置複製。對於區域執行個體,備份會儲存在三個讀取/寫入區域中。對於雙地區多地區執行個體,備份會儲存在包含讀取/寫入或唯讀備用資源的所有區域中。如果您需要將資料庫備份儲存在其他區域或專案中,可以將完成的備份從來源執行個體複製到位於其他區域或專案中的目的地執行個體。詳情請參閱「複製備份」。

  • 自動到期:所有備份都會指定使用者指定的到期日,以決定自動刪除的時間。Spanner 會非同步刪除過期的備份,因此在備份到期和實際刪除之間可能會有延遲。

建立備份

建立備份時,備份會位於與來源資料庫相同的執行個體、區域和專案。

備份檔案包含備份 versionTime 時資料庫中的下列資訊:

  • 完整備份包含所有資料。增量備份只包含上次備份後變更的資料。
  • 結構定義資訊,包括資料表名稱、欄位、資料類型、次要索引、變更串流,以及這些實體之間的關係。
  • 使用 ALTER DATABASE SET OPTIONS 指令設定的所有資料庫選項。

Spanner 備份不包含下列資訊:

  • versionTime 後,對資料或結構定義所做的任何修改。
  • 身分與存取權管理 (IAM) 政策。
  • 變更串流資料記錄。雖然變更串流結構定義會儲存,但變更串流資料會串流傳送,並與所描述的變更幾乎同時使用。

為確保備份的外部一致性,Spanner 會將資料庫的內容釘選在 versionTime 上。這樣可避免垃圾收集系統在備份作業期間移除相關資料值。接著,執行個體中的每個讀寫和唯讀區域都會開始並行複製資料。如果有任何區域暫時無法使用,備份作業會在該區域重新上線後才會完成。作業完成後,備份就能立即還原。對於多區域執行個體,所有區域中的所有讀寫和唯讀區域都必須完成備份副本,備份才能標示為可還原。

備份排程

您可以透過 Spanner 為資料庫排定完整或增量備份作業。增量備份只包含上次備份後發生變更的資料,而完整備份則會儲存資料庫的所有內容。您可以指定備份排程類型 (完整或增量) 和 Spanner 的備份頻率。

完整備份排程可每隔 12 小時或更長的時間建立備份。增量備份排程可每隔 4 小時或更長的時間建立備份。

Spanner 會透過備份排程為資料庫提供增量備份。您無法視需求建立增量備份。

系統會在排定時間的 4 小時內開始備份作業。每個資料庫最多可設定四個備份排程。

增量備份

增量備份會在完整備份之間建立鏈結。增量備份排程建立的第一個備份是完整備份。鏈結中建立的連續備份是增量備份,每個備份只包含鏈結中上一個備份後變更的資料。

除了初始完整備份外,Spanner 最多可為每個鏈結建立 13 個增量備份。鏈結會透過對應的 incrementalBackupChainId 值識別。鏈結達到最大長度時,Spanner 會建立新的鏈結,從初始完整備份開始。

在某些情況下,Spanner 可能會在達到鏈結長度上限前建立新的鏈結。以下列舉幾種情況:

  • 最早的完整備份是在 28 天前或更早時間建立。
  • 鏈結中最新的備份會遭到刪除。
  • 增量備份排程已修改。

以下是一些可協助您決定是否使用增量備份的因素:

  • 加密:增量備份僅支援使用Google-owned and Google-managed encryption keys 進行加密,即使資料庫是使用客戶管理的加密金鑰 (CMEK) 加密也一樣。

  • 還原:還原增量備份的時間可能比還原含有相同資料的完整備份還要長。

  • 刪除:如果您刪除鏈結中的備份或備份到期,Spanner 可能仍會保留備份,以支援鏈結中較新的備份 (如果有)。Spanner 需要鏈結中的所有舊備份,才能還原增量備份。如要刪除備份鏈結中的所有資料,包括已過期或已刪除的備份,請刪除鏈結中的所有備份。

  • 保留:每個備份排程都包含下列條件,提供排程相關資訊:

    • creation_interval:代表備份排程的指定排程頻率。
    • retention_duration:代表排程建立的備份保留多久。對於特定鏈結,如果需要支援鏈結中較新的備份,最舊的完整備份會保留至原始到期日後。完整備份的總保留期限不得超過下列值中的較小值:
      • retention_duration + 28 天
      • retention_duration + (creation_interval*14)
  • 備份副本:複製增量備份時,Spanner 會從初始完整備份開始,複製備份鏈結,並在要複製的特定增量備份結束。Spanner 會根據已使用的儲存空間總量向您收費。

如要進一步瞭解如何建立增量備份,請參閱「建立及管理備份時間表」。

預設備份排程

建立新的 Spanner 執行個體時,您可以指定 Spanner 是否要為執行個體中的每個新資料庫建立預設備份排程。預設備份排程會每 24 小時建立一次完整備份。這些備份的保留期限為 7 天。建立預設備份排程之後,您可以加以編輯或刪除。

系統會為所有新執行個體自動啟用預設備份時間表。您可以在建立執行個體時,或稍後編輯執行個體時,在執行個體中啟用或停用預設備份排程。

您可以為現有執行個體啟用預設備份排程。不過,預設備份時程不適用於執行個體中的現有資料庫。預設備份時間表只會套用至執行個體中的新資料庫。

預設備份排程需要 24 小時才能生效,並開始建立備份。

您必須先刪除執行個體中的所有備份,才能刪除執行個體。如果您是為了測試而建立及刪除執行個體,可以於 24 小時內刪除新執行個體,以免手動刪除其備份。

如需啟用或停用預設備份排程的操作說明,請參閱「編輯預設備份排程類型」。

完整備份和增量備份的儲存費用

每個 Spanner 備份都包含下列欄位,可提供儲存空間用量資訊:

  • exclusiveSizeBytes:顯示備份所需的位元組數量。這個大小代表備份的計費大小。
  • freeableSizeBytes:顯示刪除備份後釋放的位元組數。
  • oldestVersionTime:顯示鏈結中最舊的完整備份的 versionTime,即使該備份已過期也一樣。您可以使用這個欄位瞭解儲存哪些資料。

漸進式備份可節省儲存空間費用。增量備份的 exclusiveSizeBytes 欄位可能比完整備份小得多,因為增量備份只需要儲存鏈中上次備份後的變更。為鏈結中的每個備份新增這個欄位值,可反映鏈結中備份使用的位元組總數。

增量備份會依賴同個鏈結中的所有舊備份來進行還原。也就是說,如果有較新的增量備份,系統就無法刪除鏈結中所有較舊備份的資料,且同一個鏈結中所有較舊備份的 freeableSizeBytes 欄位為零。

假設您為資料庫建立完整備份排程和增量備份排程,而該資料庫的大小為 100 GB,且每天增加 10 GB。下表列出這些備份排程的可能儲存空間費用:

完整排程備份大小 增量排程備份大小
1 100 GB 100 GB
2 110 GB 10 GB
3 120 GB 10 GB
4 130 GB 10 GB
5 140 GB 10 GB

在 5 天內,完整備份排程會使用 600 GB 的儲存空間,而增量備份排程會使用約 140 GB 的儲存空間。對於增量備份排程,完整備份大小是鏈結中所有備份大小的總和,直到該備份為止,並會反映在 sizeBytes 欄位中。

備份複製功能的運作方式

Spanner 可讓您將 Spanner 資料庫的備份從一個執行個體複製到其他區域或專案中的執行個體,以提供額外的資料保護和法規遵循功能。

如果目標或來源 Google Cloud 區域無法使用,就無法複製備份。如要保護資料,如果發生區域服務中斷,您需要定期將備份複製到受影響區域以外的位置。

複製的備份與原始備份具有相同的重要功能。此外,您也可以還原與複製備份相同的執行個體中的備份,以支援跨區域和跨專案的備份和還原用途。

Spanner 備份的儲存位置

備份是 Spanner 中的資源。每個備份資源會在資源階層中與其來源資料庫位於同一個執行個體下,並且具有使用以下格式的資源路徑:

projects/PROJECT_ID/instances/INSTANCE_ID/backups/BACKUP_NAME

取代下列內容:

  • PROJECT_ID:專案 ID。
  • INSTANCE_ID:執行個體 ID。
  • BACKUP_NAME:備份名稱。

備份會在來源資料庫遭到刪除後繼續存在,但不會比其上層執行個體存活更久。為避免誤刪備份,如果 Spanner 例項有備份,就無法刪除該例項。如果您想刪除執行個體,建議您先還原備份,然後匯出已還原的資料庫,再刪除備份和執行個體。

加密

Spanner 備份 (例如資料庫) 會透過Google-owned and Google-managed encryption keys 或客戶管理的加密金鑰 (CMEK) 加密。根據預設,備份會使用與資料庫相同的加密設定,但您可以在建立備份時指定不同的加密設定,藉此覆寫這項行為。如果備份啟用 CMEK,備份會在建立時使用 KMS 金鑰的主要版本進行加密。備份建立後,即使 KMS 金鑰已輪替,備份的金鑰和金鑰版本也無法修改。詳情請參閱建立支援 CMEK 的備份

備份副本會使用相同的加密設定 (Google-owned and Google-managed encryption keys 或客戶管理的加密金鑰 (CMEK)) 做為來源備份加密設定。如要覆寫這類行為,請在複製備份時指定不同的加密設定。如果您希望在跨區域複製時,複製的備份能以 CMEK 加密,請指定與目的地區域相對應的 Cloud KMS 金鑰

您可以在建立或修改備份排程時指定加密設定。如果您希望備份排程建立由 CMEK 金鑰加密的備份,則必須指定金鑰路徑。

增量備份只支援使用Google-owned and Google-managed encryption keys的加密功能,即使資料庫是使用 CMEK 金鑰加密也一樣。

成效

本節說明 Spanner 的最佳備份效能。

備份時的效能

執行備份時,Spanner 會建立備份工作,將資料直接從資料庫複製到備份儲存空間,並根據資料庫的大小調整這項工作的大小。這個備份工作不會使用分配給資料庫執行個體的 CPU 資源,因此不會影響執行個體的效能。此外,資料庫執行個體的運算負載不會影響備份作業的速度。如要追蹤備份作業的進度和完成狀態,請參閱「顯示備份進度」。

一般來說,大部分備份作業需要 1 到 4 小時才能完成。部分備份檔案的大小可能較大,或是資源有內部排隊情形,因此可能需要較長的時間才能完成。如果在沒有其他因素變更的情況下,備份作業的時間比平常還要長,可能是因為在某個區域中安排備份工作時發生延遲。這項作業有時可能需要 30 分鐘才能完成。建議您不要取消並重新啟動備份作業,因為您可能會遇到與新備份作業相同的排程延遲情形。

備份時的效能

備份作業的複製時間取決於來源備份的大小,以及為複製備份所選的目的地地區等因素。一般來說,大部分的備份作業會在 1 到 4 小時內完成。部分副本可能需要較長時間才能完成,具體取決於備份大小和目的地區域。備份的複製作業不會對來源執行個體或資料庫造成任何效能影響。您可以為來源備份建立多個並行副本,並將這些副本複製到不同區域的執行個體,而不會影響效能。

複製增量備份時,Spanner 也會複製鏈結中的所有舊備份。Spanner 會同時複製所有備份,而非逐一複製備份鏈結,以提升效能。

刪除備份

如果同一個鏈結中存在較新的增量備份,刪除增量備份可能就無法復原儲存空間。較新的增量備份會依賴已刪除的增量備份中提供的資料,以及鏈結中較舊的備份。Spanner 會保留資料,並只在所有較新的增量備份到期時釋出儲存空間。freeableSizeBytes 欄位會顯示刪除備份後可釋出多少儲存空間。

定價

系統會根據備份在每個時間單位使用的儲存空間量計費。備份作業完成後即開始計費,直到備份刪除為止。備份建立完成後,系統會收取至少 24 小時的費用。建立備份後,如果在備份完成後立即刪除,系統仍會向您收取 24 小時的費用。

備份副本的儲存費用會與原始備份相同。如果您在兩個占用不同區域的執行個體之間建立副本,則需要支付資料輸出費用

舉例來說,如果您將資料庫從來源多地區執行個體設定 nam7 複製到目標多地區執行個體設定 nam-eur-asia3,則會產生下列費用:

  • 重疊的 us-central1 區域不收費
  • 不會收取見證 us-central2 區域的費用
  • 跨洲資料移轉費用會計兩次:每個新大陸 (歐洲和亞洲) 各一次
  • 在同一大洲的區域之間傳輸資料us-east1 收費一次
  • 在歐洲,在同一大洲的區域之間傳輸資料的費用為一次性收費

Spanner 會將複製程序最佳化,盡可能減少跨區域轉移的次數。這有助於盡可能減少資料傳輸成本,同時提供快速的備份副本體驗。

備份會分開儲存及計費。備份儲存空間不會影響資料庫儲存空間的帳單費用資料庫儲存空間限制。詳情請參閱「儲存空間使用率指標」。

如需備份費用的完整資訊,請參閱 Spanner 定價

後續步驟