Bigtable 備份總覽
本頁面提供 Bigtable 備份的總覽。本文內容適用於 Bigtable 系統管理員和開發人員。
備份功能可讓您儲存資料表結構定義與內容的副本,日後即可透過備份還原至新的資料表。Bigtable 提供下列類型的備份,具體取決於您的災難復原 (DR) 需求,以及 Bigtable 叢集使用的儲存空間類型 (HDD 或 SSD)。
- 標準備份經過最佳化調整,適合長期保留。從標準備份還原至 SSD 叢集時,還原作業必須額外透過 Bigtable 最佳化調整,資料表才能達到正式環境等級的效能。詳情請參閱「還原時的效能」。
- 熱備份的還原效率最佳,可以提供正式環境等級的效能,並以低延遲供應資料。詳情請參閱「熱備份」。
您可以透過下列方式建立備份:
- 啟用自動備份功能,讓 Bigtable 每天為您建立備份。
- 使用 Google Cloud 控制台、gcloud CLI 或 Bigtable 用戶端程式庫,視需要建立備份。
- 建立備份副本。
閱讀本頁面之前,請先詳閱「Bigtable 總覽」和「管理資料表」。
功能與特色
Bigtable 備份功能提供下列功能和優點:
- 完全整合:Bigtable 會處理備份作業,不需匯入或匯出資料。
- 增量:備份會與來源資料表和該資料表的其他備份共用實體儲存空間。
- 符合成本效益:使用 Bigtable 備份,可避免使用其他服務匯出、儲存及匯入資料時產生的費用。
- 自動到期:每個備份都有使用者定義的保留期限。詳情請參閱本文的「保留」一節。
- 彈性的還原選項:從備份還原至與備份建立位置不同的執行個體中的資料表。
- 自動備份:啟用自動備份功能,讓 Bigtable 每天建立備份。
- 熱備份:可用於正式環境的熱備份,可讓您規劃災難復原。
用途
備份功能適用於下列用途:
- 業務持續性
- 監管法規遵循
- 測試與開發
- 災難復原
請考量下列災難復原情境:
| 目標 | 備份策略 | 還原策略 |
|---|---|---|
| 防範人為錯誤:您希望隨時備妥最新的資料備份,以防資料意外刪除或損毀。 | 根據業務需求決定備份建立時間表,例如每日。您也可以選擇定期建立備份副本,並儲存在其他專案或區域,提高隔離和保護程度。如要進一步保護資料,請將備份副本儲存在存取權限受限的專案或執行個體中。 | 從備份或副本還原至新資料表,然後將要求重新轉送至新資料表。 |
| 可用區無法使用:您必須確保在 Google Cloud 可用區無法使用的情況下 (雖然不太可能發生),資料仍可供使用。 | 啟用自動備份功能,讓 Bigtable 每天為執行個體中的每個叢集建立備份。或者,您也可以定期建立備份,然後定期建立最新備份的副本,並將其儲存在不同可用區的一或多個叢集中 (也可以儲存在不同的執行個體或專案中)。 | 如果提供服務的叢集所在可用區無法使用,請將遠端備份副本還原至新資料表,然後將要求重新轉送至新資料表。 |
| 資料損毀:使用備份復原部分資料表資料,例如來源資料表部分損毀時。 | 啟用複製和自動備份功能,在多個區域建立每日備份,這樣一來,如果某個叢集上的資料表損毀,您就有一或多個備份,不會與損毀的叢集共用儲存空間。 | 從備份還原至新叢集或執行個體上的新資料表。接著,使用 Bigtable 用戶端程式庫或 Dataflow 編寫應用程式,從新資料表讀取資料,然後將資料寫回來源資料表。資料複製到原始資料表後,請刪除新資料表。 |
| 快速復原:迅速恢復至完整的正式環境效能水準,盡可能縮短停機時間。 | 設定自動備份功能,每天建立熱備份,或視需要建立熱備份,確保您隨時都有最新的資料表熱備份。 | 從熱備份還原至新資料表,然後將要求重新轉送至新資料表。 |
熱備份
熱備份是可用於正式環境的備份,經過最佳化調整,可快速復原,在還原後不久從新資料表讀取時,延遲時間較短。從熱備份還原至正式環境效能的速度,比從標準備份還原更快。
您可以視需求隨時建立熱備份,或設定自動備份政策,每天建立熱備份:
- 隨需熱備份:您可以選擇是否設定由熱級別到標準級別的存留時間。如未設定轉換時間,備份會維持熱級別,直到過期為止。如要自動將備份轉換為標準備份,可以將轉換時間設為備份建立開始時間後至少 24 小時。你也可以之後再設定或修改這項時間。詳情請參閱「建立熱備份」和「修改備份或備份副本」。
- 自動熱備份:必須設定熱備份保留時間。如要在 SSD 執行個體啟用自動熱備份,您必須指定 24 小時至 10 天的時間長度,且不得超過政策的保留期限。這項設定會決定每日備份在自動轉換為標準備份之前,會保留為熱備份多久,並在剩餘的保留期限內維持標準備份。詳情請參閱「設定熱自動備份」。
將最新備份設為熱備份
如要在快速災難復原與儲存空間成本之間取得平衡,可以只將最新備份保留為熱備份,並將舊備份儲存為標準備份:
- 每日自動備份:設定自動備份政策,並在 Google Cloud 控制台中將熱保留時間設為 24 小時或 1 天。Bigtable 每 24 小時會建立一次自動備份,因此每日備份會維持熱級別,直到建立下一個每日備份為止,然後在剩餘的保留期限內自動轉為標準級備份。如需操作說明,請參閱「設定熱自動備份」。
- 隨需備份:如果定期建立熱備份,請將每個備份從熱級別轉換為標準級別的時間,設為下次排定熱備份的時間 (至少在備份建立開始時間的 24 小時後)。達到該時間後,舊備份會自動轉為標準備份,最新備份則維持熱備份。如需操作說明,請參閱「建立熱備份」。
熱備份的限制
熱備份有下列限制:
- 您可以將熱備份轉換為標準備份,但無法將標準備份轉換為熱備份。
- 您只能為 SSD 執行個體中的資料表建立隨選熱備份,以及設定自動熱備份。無法在 HDD 執行個體建立熱備份。
- Bigtable 不支援對已啟用分級式儲存空間的資料表進行熱備份。詳情請參閱「分層儲存空間總覽」。
- 熱備份的副本一律為標準備份。備份副本無法像原始熱備份一樣,快速還原至正式環境等級的效能,並以低延遲供應資料。
使用 Bigtable 備份
您可以對 Bigtable 備份執行下列操作。無論如何,目的地專案、執行個體和叢集都必須已存在。您無法在備份作業中建立這些資源。
|
||
| 動作 | 目的地選項 | |
|---|---|---|
| 建立標準級備份 |
|
|
| 建立熱備份 |
|
|
| 從標準或熱備份還原至新資料表 |
|
|
| 複製備份1、2 |
|
|
如需這些動作和更新、刪除備份等作業的逐步說明,請參閱「管理備份」。
請使用下列指令處理 Bigtable 備份:
- Google Cloud 控制台
- Google Cloud CLI
- Cloud Bigtable 用戶端程式庫
備份儲存空間
手動或透過程式建立的資料表備份,會儲存在您指定的單一叢集。啟用自動備份功能後,Bigtable 會將備份儲存在執行個體中的每個叢集。在 Enterprise Plus 版中,您可以選取已啟用自動備份功能的叢集位置。
建立備份時,如果叢集的 CPU 或儲存空間使用率超出建議上限,備份建立作業可能會延遲。詳情請參閱「瞭解 CPU 和磁碟用量」。
資料表的備份包含建立備份時,資料表在建立備份的叢集中的所有資料。備份的大小絕不會超過建立備份時的來源資料表大小。
Bigtable 備份為漸進式。備份使用的儲存空間量取決於資料表的大小,以及與原始資料表或其他相同資料表的備份共用未變更資料儲存空間的程度。因此,備份大小取決於上次備份後的資料差異量。
每個叢集每個資料表最多可建立 150 個備份。
您可以刪除含有備份的資料表。為保護備份,你無法刪除下列項目:
- 包含一或多個備份的叢集。如要刪除叢集,您必須刪除這些備份,或等待備份到期。
- 在資料表的自動備份政策中,設為位置的叢集。如要刪除叢集,您必須先更新自動備份政策,移除叢集位置或停用資料表的自動備份功能。
- 在任何叢集中有一或多個備份的執行個體。
從備份還原至新資料表後,備份仍會存在。如果不再需要,可以刪除或任其過期。備份儲存空間不會計入專案的節點儲存空間限制。
備份中的資料會經過加密。
保留
Bigtable 備份功能可讓您將資料保留指定時間。您可以設定個別備份的保留期限,或將其納入自動備份政策:
- 保留期限從建立備份時起算。
- 如果資料表已啟用自動備份功能,預設保留期限為七天。
- 在 Enterprise 和 Enterprise Plus 版本中,您可以為自動備份政策設定自訂保留期限,最長可達 90 天。如果是個別隨選備份,或更新現有備份的保留期限,Enterprise 版最多可指定 90 天,Enterprise Plus 版最多可指定 365 天。
- 如果建立備份副本,副本的保留期限最長為建立後 30 天。
- 建立備份時,您可以指定到期日,而非保留期限。到期日是絕對日期和時間,而保留期限則指定時間長度。這兩種方法產生的到期時間都遵循相同的規則和限制。
- 將熱備份轉換為標準備份時,保留期限或到期時間不會改變。如果是隨選熱備份,您可以選擇是否設定由熱備份轉為標準備份的時間,但自動熱備份必須設定熱備份保留時間。
您可以變更備份或自動備份政策的保留期限。詳情請參閱「修改備份或備份副本」和「更新自動備份政策」。
還原後儲存空間
從備份還原的新資料表,儲存費用與任何資料表相同。
從備份還原的資料表,消耗的儲存空間可能與原始資料表不同,且大小可能會在還原後減少。大小差異取決於來源叢集和目的地叢集最近一次壓縮的時間。
由於壓縮作業會輪流進行,因此資料表建立後可能就會立即進行壓縮。不過,壓縮作業最多可能需要一週才會執行。
從備份還原的新資料表不會沿用來源資料表的垃圾收集政策。在開始將新資料寫入資料表之前,請先在新資料表中設定垃圾收集政策。詳情請參閱「設定垃圾收集」。
費用
使用備份時,須支付標準網路費用。備份作業 (包括建立、複製或從備份還原) 不會產生費用。
儲存費用
標準備份和熱備份的儲存費用不同。
標準級備份儲存費用
如要儲存標準備份或備份副本,系統會依據備份或備份副本所在叢集的區域,收取標準備份儲存空間費率。
標準備份是資料表的完整邏輯副本。Bigtable 會在背景最佳化標準備份儲存空間的使用率。這項最佳化措施代表標準備份是遞增的,會盡可能與原始資料表或資料表的其他備份共用實體儲存空間。由於 Bigtable 內建儲存空間最佳化功能,儲存標準備份或備份副本的費用,有時可能低於資料表備份的完整實體副本費用。
在已啟用自動備份功能的複製執行個體中,由於每個叢集都會建立每日備份,因此儲存空間費用可能會較高。在 Enterprise Plus 版中,您可以只為特定位置的叢集啟用自動備份,藉此降低這些費用。
熱備份儲存費用
如要儲存熱備份,系統會根據熱備份所在叢集的區域,收取熱備份儲存空間費率。
熱備份會以就緒狀態儲存,並經過最佳化調整,可快速還原,因此您必須支付資料表整個邏輯副本的儲存費用,而非像標準備份一樣,只需支付增量部分的費用。
熱備份轉為標準級備份時 (包括自動熱備份的保留期限到期時),系統會依熱備份儲存空間費率收取備份費用,並在轉換後依標準級備份儲存空間費率收費。轉換本身不會產生額外費用。如要查看資料表設定的保留時間長度,請參閱「查看自動備份政策」。如要進一步瞭解備份儲存空間費率,請參閱「定價」。
複製備份的費用
如果建立備份副本的區域與來源備份不同,系統會按照標準網路費率,向您收取將資料複製到目的地叢集的費用。在來源備份所在的相同區域建立副本時,不會產生網路流量費用。
還原費用
從備份還原新資料表時,系統會向您收取複製作業的網路費用。如果新資料表位於使用複製功能的執行個體中,系統會向您收取一次性複製費用,將資料複製到執行個體中的所有叢集。
如果還原的目的地執行個體與建立備份的執行個體不同,且備份的執行個體和目的地執行個體在同一區域中沒有至少一個叢集,則您必須支付一次性費用,用於將初始資料複製到目的地叢集,費用按標準網路費率計算。
CMEK
在受客戶自行管理的加密金鑰 (CMEK) 保護的叢集中建立備份時,備份會固定至建立時叢集 CMEK 金鑰的主要版本。備份建立後,即使 KMS 金鑰已輪替,也無法修改金鑰和金鑰版本。
從備份還原時,備份固定的金鑰版本必須啟用,備份解密程序才能成功。新資料表會受到目的地執行個體中各叢集的最新主要版本 CMEK 金鑰保護。如要將受 CMEK 保護的備份還原至其他執行個體,目的地執行個體也必須受 CMEK 保護,但不必與來源執行個體採用相同的 CMEK 設定。
複製作業注意事項
本節說明在採用複製功能的執行個體中,備份及還原資料表時應瞭解的其他概念。
複製和備份
在複製的執行個體中手動備份資料表時,您要選擇建立及儲存備份的叢集。針對已啟用自動備份功能的資料表,系統每天都會為執行個體中的個別叢集建立備份。在 Enterprise Plus 版本中,您可以限制自動備份功能,只備份特定位置的叢集。
您不必停止寫入含有備份的叢集,但應瞭解 Bigtable 如何處理叢集的複製寫入作業。
備份是資料表在建立備份時,在儲存備份的叢集中的狀態副本。尚未從執行個體中其他叢集複製的資料表資料,不會納入備份。
每個備份作業都有開始和結束時間。在備份作業之前或期間,傳送至叢集的寫入作業可能不會納入備份。造成這種不確定性的因素有兩個:
- 寫入作業可能會傳送至備份已複製的資料表部分。
- 寫入其他叢集的資料可能尚未複製到包含備份的叢集。
換句話說,時間戳記早於備份時間的部分寫入作業,可能不會納入備份。
如果這種不一致的情況不符合您的業務需求,您可以在寫入要求中使用一致性權杖,確保所有複製的寫入作業都包含在備份中。
自動備份建立的複製資料表備份並非完全相同,因為各叢集的備份時間可能不同。
複製和還原
將備份還原至新資料表時,目的地叢集的還原作業完成後,系統會立即開始與執行個體中其他叢集相互複製。
效能
建立備份時,請遵循下列最佳做法,確保效能維持在最佳狀態。
備份時的效能
建立備份通常需要不到一分鐘的時間,但最多可能需要一小時。在正常情況下,建立備份不會影響服務效能。
為確保最佳效能,請勿每五分鐘建立一次以上的單一資料表備份。如果更頻繁地建立備份,服務延遲時間可能會明顯增加。
還原時的效能
將備份還原至單一叢集執行個體中的資料表,需要幾分鐘的時間。在複製的執行個體中,還原作業需要較長時間,因為資料必須複製到所有叢集。Bigtable 一律會選擇最有效率的路徑來複製資料。
如果還原至與備份建立位置不同的執行個體,還原作業所需時間會比還原至相同執行個體更長。如果目的地執行個體沒有叢集,且該叢集與建立備份的叢集位於相同可用區,則更是如此。
資料表越大,還原所需時間越長。
如果您有 SSD 執行個體,即使還原作業完成,在資料表最佳化期間,您一開始可能會遇到較高的讀取延遲。在還原作業期間,您隨時可以查看狀態,確認最佳化作業是否仍在進行中。
如果還原至與備份建立位置不同的執行個體,目的地執行個體可以使用 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 從備份還原時,不會建立新的執行個體。如果還原要求中指定的目的地執行個體不存在,還原作業就會失敗。
- 如果從備份還原至 SSD 叢集中的資料表,然後刪除新還原的資料表,則刪除作業可能需要一段時間才能完成,因為 Bigtable 會等待資料表最佳化完成。
複製
- 如果備份將在 24 小時內到期,就無法建立副本。
- 無法複製備份副本。
CMEK
- 受 CMEK 保護的備份必須還原至受 CMEK 保護的執行個體中的新資料表。
- 建立受 CMEK 保護的備份副本時,目的地叢集也必須受 CMEK 保護。