Bigtable 備份總覽
本頁面提供 Bigtable 備份總覽。本文內容適用於 Bigtable 管理員和開發人員。
備份功能可讓您儲存資料表結構定義與內容的副本,日後即可透過備份還原至新的資料表。Bigtable 提供兩種備份類型。您建立的備份類型取決於災難復原 (DR) 需求,以及 Bigtable 叢集使用的儲存空間類型 (HDD 或 SSD)。
- 標準備份經過最佳化調整,適合長期保留。從標準備份還原至固態硬碟叢集時,Bigtable 必須進行額外最佳化,才能將資料表效能提升至正式環境等級。詳情請參閱「還原時的效能」。
- 熱備份的還原效率最佳,可以提供正式環境等級效能,並以低延遲供應資料。詳情請參閱「熱備份」。
您可以透過下列方式建立備份:
- 啟用自動備份功能,讓 Bigtable 每天為您建立備份。
- 使用 Google Cloud 控制台、gcloud CLI 或 Bigtable 用戶端程式庫,視需要建立備份。
- 建立備份副本。
閱讀本頁面之前,請先熟悉 Bigtable 總覽和管理資料表。
功能
- 完全整合:備份作業完全由 Bigtable 服務處理,無須匯入或匯出。
- 增量:備份會與來源資料表和資料表的其他備份共用實體儲存空間。
- 經濟實惠:使用 Bigtable 備份功能,可避免使用其他服務匯出、儲存及匯入資料時產生的費用。
- 自動到期:每個備份都有使用者定義的到期日,最多可設為備份建立後的 90 天。備份副本最多可保留 30 天。
- 彈性的還原選項:您可以從備份還原資料到資料表,但執行個體必須與備份建立時的執行個體不同。
- 自動備份:啟用自動備份功能後,Bigtable 每天都會建立備份。
- 熱備份:規劃災難復原程序時,可使用隨時可供正式環境使用的熱備份。
用途
備份功能在下列用途中相當實用:
- 業務持續性
- 監管法規遵循
- 測試與開發
- 災難復原
請考量下列災難復原情境:
目標 | 備份策略 | 還原策略 |
---|---|---|
防範人為錯誤: 建議您隨時備妥最近的資料備份,以防資料遭誤刪或損毀。 | 根據業務需求決定備份建立時間表,例如每天備份。您可以視需要定期建立備份副本,並將副本儲存在其他專案或區域,進一步隔離及保護資料。如要進一步保護資料,請將備份副本儲存在存取權限受限的專案或執行個體中。 | 從備份或副本還原至新資料表,然後將要求重新導向至新資料表。 |
區域無法使用: 您必須確保萬一 Google Cloud 區域無法使用,資料仍可存取。 | 啟用自動備份功能後,Bigtable 每天都會為執行個體中的個別叢集建立備份。或者,您也可以定期建立備份,然後定期建立最新備份的副本,並將副本儲存在不同區域的一或多個叢集 (視需要儲存在不同執行個體或專案)。 | 如果服務叢集所在的可用區無法使用,請從遠端備份副本還原至新資料表,然後將要求重新導向至新資料表。 |
資料損毀: 使用備份還原部分資料表資料,例如來源資料表的部分資料已損毀時。 | 啟用複製和自動備份功能,在多個區域建立每日備份,這樣一來,如果某個叢集上的資料表毀損,您就能使用一或多個備份,這些備份不會與毀損叢集共用儲存空間。 | 從備份還原至新叢集或執行個體上的新資料表。接著,使用 Bigtable 用戶端程式庫或 Dataflow 撰寫應用程式,從新資料表讀取資料,然後將資料寫回來源資料表。資料複製到原始資料表後,請刪除新資料表。 |
快速復原: 迅速還原至正式環境效能等級,盡量縮短停機時間。 | 請務必隨時保留資料表的最新熱備份。 | 從熱備份還原至新資料表,然後將要求重新導向至新資料表。 |
熱備份
熱備份是已準備好用於正式環境的備份,經過最佳化處理,可快速復原,且在復原後不久從新資料表讀取資料時,延遲時間較短。從熱備份還原至正式環境的速度,比從標準備份還原更快。
您可以將熱備份轉換為標準備份,但無法將標準備份轉換為熱備份。
您無法使用自動備份建立熱備份,也無法在 HDD 叢集上建立熱備份。
使用 Bigtable 備份
您可以對 Bigtable 備份執行下列動作。在所有情況下,目的地專案、執行個體和叢集都必須已存在。您無法在備份作業中建立這些資源。
|
||
動作 | 目的地選項 | |
---|---|---|
建立標準備份 |
|
|
建立熱備份 |
|
|
從標準或熱備份還原至新資料表 |
|
|
複製備份1, 2 |
|
如需這些動作的逐步操作說明,以及更新和刪除備份等作業,請參閱「管理備份」。
您可以使用下列項目處理 Bigtable 備份:
- Google Cloud 控制台
- Google Cloud CLI
- Cloud Bigtable 用戶端程式庫
備份儲存空間
您手動或以程式輔助方式建立的資料表備份,會儲存在您指定的單一叢集中。啟用自動備份功能後,系統會將備份儲存在執行個體中的每個叢集。
如果叢集在您建立備份時,CPU 或儲存空間用量超出建議上限,備份作業可能會延遲。詳情請參閱「瞭解 CPU 和磁碟用量」。
資料表備份包含建立備份時,備份建立所在叢集中的資料表內所有資料。備份大小絕不會超過建立備份時的來源資料表。
Bigtable 備份為漸進式。備份占用的儲存空間量取決於資料表的大小,以及備份與原始資料表或相同資料表的其他備份共用未變更資料的程度。因此備份大小取決於上次備份後出現的資料異動量。
每個叢集每個資料表最多可以建立 150 個備份。
您可以刪除有備份的資料表。為保護備份,您無法刪除含有備份的叢集,也無法刪除在任何叢集中有一或多個備份的執行個體。
從備份還原至新資料表後,備份仍會存在。您可以在不再需要時刪除或任由其到期。備份儲存空間不會計入專案的節點儲存空間限制。
備份中的資料會經過加密。
保留
備份的保留期限最多可設為 90 天。如果您建立備份副本,副本的保留期限上限為 30 天。
您可以變更備份的保留期限,最多可保留 90 天 (自備份建立時間起算)。詳情請參閱「修改備份或備份副本」。
如果使用 --enable-automated-backup
標記設定政策,已啟用自動備份功能的資料表保留期限為七天。您可以傳遞 --automated-backup-retention-period
標記,將保留期限設為自訂值 (3 天到 90 天)。詳情請參閱「更新自動備份政策」。
還原後的儲存空間
從備份還原的新資料表,儲存空間費用與任何資料表相同。
從備份還原的資料表所用的儲存空間,可能與原始資料表不同,而且還原後大小可能會縮減。大小差異取決於來源叢集和目的地叢集最近一次發生壓縮的時間。
由於壓縮作業是持續進行,因此資料表建立後可能隨即開始壓縮。不過,壓縮作業最多可能需要一週才會完成。
從備份還原的新資料表不會沿用來源資料表的垃圾收集政策。開始將新資料寫入資料表之前,請先在新資料表中設定垃圾收集政策。詳情請參閱「設定垃圾收集」。
費用
使用備份時,系統會收取一般網路費用。備份作業 (包括建立、複製或從備份還原) 不會產生費用。
儲存空間費用
標準備份和熱備份的儲存費用不同。
標準備份儲存空間費用
如要儲存標準備份或備份副本,系統會根據備份或備份副本所在叢集的區域,以標準備份儲存空間費率向您收費。
標準備份是資料表的完整邏輯副本。在幕後,Bigtable 會將標準備份儲存空間使用率最佳化。這項最佳化措施表示標準備份是累加備份,會盡可能與原始資料表或資料表的其他備份共用實體儲存空間。Bigtable 已針對內建儲存空間進行最佳化,因此儲存標準備份或備份副本的費用,有時比資料表完整實體副本的備份費用還少。
在啟用自動備份功能的複寫執行個體中,由於系統每天都會為每個叢集建立備份,因此儲存空間費用可能會較高。
熱備份儲存空間費用
如要儲存熱備份,系統會根據叢集所在區域的熱備份儲存空間費率計費。
由於熱備份會以就緒狀態儲存,並經過最佳化調整,可快速還原,因此您需要支付整個資料表邏輯副本的儲存空間費用,而不是像標準備份一樣支付增量部分的費用。
複製備份內容的費用
如果您在與來源備份不同的區域建立備份副本,系統會按標準網路費率,向您收取將資料複製到目的地叢集的費用。如果您在與來源備份相同的區域建立副本,則不會產生網路流量費用。
還原費用
如果您是從備份還原新的資料表,則須支付複製作業的網路費用。如果新資料表所在的執行個體使用了複製功能,則須支付一次性複製費用,將資料複製到執行個體中的所有叢集。
如果還原備份的執行個體與建立備份的執行個體不同,且備份執行個體和目的地執行個體在同一區域中沒有至少一個叢集,則系統會按照標準網路費率,向您收取初次將資料複製到目的地叢集的一次性費用。
客戶管理的加密金鑰
在受客戶自行管理的加密金鑰 (CMEK) 保護的叢集中建立備份時,備份會固定在建立時叢集 CMEK 金鑰的主要版本。備份建立後,即使 KMS 金鑰輪替,也無法修改備份的金鑰和金鑰版本。
從備份還原時,備份所固定的金鑰版本必須啟用,備份解密程序才能成功。新資料表會受到目標執行個體中各叢集最新主要 CMEK 金鑰版本的保護。如要從受 CMEK 保護的備份還原至其他執行個體,目的地執行個體也必須受 CMEK 保護,但不需要與來源執行個體具有相同的 CMEK 設定。
複製作業注意事項
本節說明在採用複寫的執行個體中備份及還原資料表時,需要瞭解的其他概念。
複製和備份
在複製的執行個體中手動備份資料表時,請選擇要建立及儲存備份的叢集。針對已啟用自動備份功能的資料表,系統每天都會為執行個體中的個別叢集建立備份。
您不必停止寫入含有備份的叢集,但應瞭解 Bigtable 如何處理複製到叢集的寫入作業。
備份是資料表的副本,儲存在備份建立時的叢集狀態。備份內容不包含尚未從執行個體中其他叢集複製的資料表資料。
每項備份作業都有開始和結束時間。在備份作業開始前或進行期間不久後傳送至叢集的寫入作業可能不會納入備份。造成這項不確定性的因素有兩個:
- 寫入作業可能會傳送至備份已複製的資料表區段。
- 寫入其他叢集的作業可能尚未複製到包含備份的叢集。
換句話說,備份時間之前的部分寫入作業可能不會納入備份。
如果這種不一致性不符合貴商家的需求,您可以在寫入要求中使用一致性權杖,確保備份作業包含所有複製的寫入內容。
透過自動備份功能建立的複寫資料表備份並非完全相同,因為各叢集的備份時間可能不同。
複製和還原
將備份還原至新資料表時,在目標叢集上完成還原作業後,執行個體中其他叢集之間的複製作業會立即開始。
成效
建立備份時,請採用下列最佳做法,確保效能維持在最佳狀態。
備份時的效能
建立備份通常不到一分鐘即可完成,但最久可能需要一小時。在一般情況下,建立備份不會影響放送成效。
為獲得最佳效能,請勿每五分鐘備份單一資料表超過一次。如果備份作業執行頻率過高,可能會導致服務延遲時間明顯增加。
還原時的效能
從備份還原至單一叢集執行個體中的資料表,需要幾分鐘的時間。在已複製的執行個體中,還原作業需要較長時間,因為資料必須複製到所有叢集。Bigtable 一律會選擇最有效率的資料複製路徑。
如果還原至備份建立位置以外的執行個體,還原作業所需時間會比還原至相同執行個體長。如果目的地執行個體與建立備份的叢集不在同一個區域,就更是如此。
還原較大的資料表所需時間,會比還原較小的資料表來得長。
如果您使用固態硬碟執行個體,即使還原作業完成,資料表在最佳化期間的讀取延遲情況仍可能較為嚴重。您可以在還原作業期間隨時查看狀態,瞭解最佳化作業是否仍在進行中。
如果還原至備份建立位置以外的執行個體,目的地執行個體可以使用 HDD 或 SSD 儲存空間。不需要與來源執行個體使用相同的儲存空間類型。
存取權控管
IAM 權限可控管備份和還原作業的存取權。備份權限位於執行個體層級,適用於執行個體中的所有備份。
用來建立資料表備份的帳戶,必須有權讀取資料表,並在資料表所在的執行個體 (來源執行個體) 中建立備份。
用來複製備份的帳戶必須具備讀取來源備份的權限,以及在目標執行個體和專案中建立備份的權限。
用來從備份還原新資料表的帳戶,必須有權在要還原的執行個體中建立資料表。
動作 | 必要 IAM 權限 |
---|---|
建立備份 | bigtable.tables.readRows、bigtable.backups.create |
取得備份 | bigtable.backups.get |
列出備份 | bigtable.backups.list |
刪除備份 | bigtable.backups.delete |
更新備份 | bigtable.backups.update |
複製備份 | bigtable.backups.read、bigtable.backups.create |
從備份還原至新資料表 | bigtable.tables.create、bigtable.backups.restore |
取得作業 | bigtable.instances.get |
列出作業 | bigtable.instances.get |
最佳做法
建立備份策略前,請先參考下列最佳做法。如要進一步瞭解災難復原規劃,請參閱「為雲端基礎架構中斷情況設計災難復原機制」一文的 Bigtable 部分。
建立備份
- 請勿以高於每五分鐘一次的頻率備份資料表。
- 備份使用複寫功能的資料表時,請考量下列因素,然後選擇要儲存備份的叢集:
- 費用。執行個體中的某個叢集可能位於成本較低的區域。
- 與應用程式伺服器的距離。建議您盡可能將備份資料儲存在靠近服務應用程式的位置。
- 如果您需要確保備份包含所有複製的寫入作業,請在備份使用複寫功能的執行個體中的資料表時,搭配寫入要求使用一致性權杖。
從備份還原
- 如果您需要從備份還原,請預先規劃新資料表的名稱。重點是提前做好準備,這樣在遇到問題時就不必臨時決定。
- 如果還原資料表的原因不是誤刪,請務必先確保所有讀取和寫入作業都指向新資料表,再刪除原始資料表。
- 如要還原至其他執行個體,請先建立目標執行個體,再啟動備份還原作業。
- 為避免資料表還原速度緩慢,請等待還原作業完成,再針對同一區域中的相同來源資料表啟動另一項還原作業。
- 建立備份後,請至少等待一小時,再從標準備份還原。如需更快速地還原,請改用熱備份。
配額與限制
備份和還原要求以及備份儲存空間須遵守 Bigtable 配額和限制。
限制
Bigtable 備份有以下限制:
一般
- 您無法直接從備份檔讀取資料。
- 備份是指特定時間點單一叢集中的資料表版本。備份內容不代表一致的狀態。不同叢集中相同資料表的備份也適用相同規定。
- 單次作業無法備份多個資料表。
- 您無法將 Bigtable 備份匯出、複製或移至其他服務,例如 Cloud Storage。
- Bigtable 備份僅包含 Bigtable 資料,且不會與其他 Google 服務的備份整合或相關聯。
- 您無法備份檢視區塊。
還原
- 您無法從備份還原至現有資料表。
- 您只能還原至現有執行個體。從備份還原時,Bigtable 不會建立新的執行個體。如果還原要求中指定的目的地執行個體不存在,還原作業就會失敗。
- 如果您從備份還原至固態硬碟叢集中的資料表,然後刪除新還原的資料表,Bigtable 會等待資料表最佳化作業完成,因此刪除作業可能需要一段時間才能完成。
複製中
- 如果備份即將在 24 小時內到期,就無法複製。
- 您無法建立備份副本的副本。
CMEK
- 受 CMEK 保護的備份資料必須還原至受 CMEK 保護的執行個體中的新資料表。
- 建立受 CMEK 保護的備份副本時,目的地叢集也必須受 CMEK 保護。