遷移至代管災難復原服務
本頁說明如何從 BigQuery 跨區域複寫功能遷移至 BigQuery 管理型災難復原功能。
總覽
BigQuery 跨區域複製 (CRR) 和代管災難復原 (DR) 功能,都是為了提升資料可用性和災難復原能力而設計。不過,兩者處理區域性中斷的方式不同。如果主要區域無法使用,CRR 不允許升級次要副本。相較之下,DR 提供更全面的保護,即使主要區域無法使用,也能容錯移轉至次要副本。使用 CRR 時,系統只會複製儲存空間,但使用 DR 時,系統會複製儲存空間和運算容量。
下表說明 CRR 和 DR 的功能:
| 功能 | CRR | DR |
|---|---|---|
| 初始複製程序 | 使用 CRR 複製初始資料集。 | 在將 CRR 資料集遷移至 DR 資料集之前,初始負載會先透過 CRR 複製。 |
| 促銷活動複製 | 使用標準複製功能。 | 使用強化型複製功能。 |
| 升遷流程 | 在資料集層級宣傳。 | 在預留項目層級升級 (預留項目容錯移轉和資料集升級)。一個容錯移轉預留項目可附加多個資料集。 使用 DR 時,無法在資料集層級宣傳。 |
| 促銷活動執行 | 透過每個資料集的 UI 或以 SQL 為基礎的 DDL 指令。不支援 CLI、用戶端程式庫、API 或 Terraform。 | 透過 UI 或 SQL 型 DDL 指令,為每個 EPE 預留項目設定。不支援 CLI、用戶端程式庫、API 或 Terraform。 |
| 容錯移轉模式 | 軟式容錯移轉。 | 硬式容錯移轉。 |
| 版本需求 | 任何運算資源模式。 | Enterprise Plus 版本。 |
| 限制 | CRR 限制。 | 包括內容擁有權限制和數位版權限制。 |
| 寫入權限 | 在任何容量模型下執行的工作,都可以寫入主要區域的複製資料集。次要一律為唯讀狀態。 | 只有在 Enterprise Plus 預訂項目下執行的工作,才能寫入主要區域的複製資料集。次要資料集和預訂副本一律為唯讀。 |
| 讀取權限 | 在任何容量模型下執行的工作,都可以讀取複製的資料集。 | 在任何容量模型下執行的工作,都可以讀取複製的資料集。 |
遷移影響
以下各節將概述遷移至 DR 時的費用和功能異動。
費用影響
從 CRR 遷移至 DR 時,請考量下列成本影響:
DR 僅支援 Enterprise Plus 版本的寫入存取權,這會產生較高的運算成本。您可以從任何容量模型讀取資料,因此現有工作的讀取費用不會變更。
DR 使用Turbo 複寫,因此會產生額外費用 (視區域配對而定)。
CRR 和 DR 的儲存空間價格相同。
如要進一步瞭解定價,請參閱「定價」。
功能影響
從 CRR 遷移至 DR 時,請考量下列功能影響:
容錯移轉僅支援預訂層級。如果現有工作依賴資料集層級的容錯移轉,就會失敗。
資料集附加至 DR 預訂後,只有 Enterprise Plus 版查詢可以寫入資料集。如果現有的寫入作業未使用 Enterprise Plus 版的運算容量,就會失敗。
事前準備
如要遷移至 DR,必須符合下列先決條件:
您有已啟用 BigQuery 的有效 Google Cloud 專案。
您已使用 CRR 建立及複製資料集。
資料集具有相同的主要和次要位置,可用於 DR。
您擁有使用 DR 的必要權限。如要進一步瞭解權限,請參閱「開始前」一文。
從 CRR 遷移至 DR
以下各節說明如何將資料集從 CRR 遷移至 DR。本文假設您已為 CRR 設定資料集。
建立容錯移轉預留項目
如要啟用災難復原功能,您必須在主要區域建立容錯移轉預留項目。使用適當的主要和次要區域設定預留項目。主要和次要區域應與您打算遷移至 DR 的所有 CRR 資料集區域相符。如要建立容錯移轉預留空間,請選擇下列其中一個選項:
控制台
前往 Google Cloud 控制台的「BigQuery」頁面。
在導覽選單中,依序點選「容量管理」和「建立預留項目」。
在「Reservation name」(預留項目名稱) 欄位中,輸入預留項目的名稱。
在「位置」清單中選取位置。
在「版本」清單中,選取 Enterprise Plus 版本。
在「預留項目大小選取器」清單中,選取預留項目大小上限。
選用:在「Baseline slots」(基準運算單元) 欄位中,輸入預訂的基準運算單元數量。
可用的自動調度資源運算單元數量,是將「基準運算單元」值從「預留項目大小上限」值中扣除後所得的結果。舉例來說,如果您建立的預留項目有 100 個基準運算單元,且預留項目大小上限為 400,則預留項目會有 300 個自動調度運算單元。如要進一步瞭解基準運算單元,請參閱「使用預留項目搭配基準和自動調度運算單元」一文。
在「次要位置」清單中,選取次要位置。
如要停用閒置運算單元共用,並只使用指定的運算單元容量,請按一下「忽略閒置運算單元」切換鈕。
如要展開「進階設定」部分,請按一下展開箭頭。
選用:如要設定目標工作並行數,請按一下「覆寫自動目標工作並行設定」切換鈕,然後輸入「目標工作並行數」的值。 費用預估表格會顯示時段明細。預留項目摘要會顯示在「容量摘要」表格中。
按一下 [儲存]。
新預訂項目會顯示在「預訂時段」分頁中。
SQL
如要建立預留項目,請使用CREATE RESERVATION資料定義語言 (DDL) 陳述式。
前往 Google Cloud 控制台的「BigQuery」頁面。
在查詢編輯器中輸入下列陳述式:
CREATE RESERVATION `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME` OPTIONS ( slot_capacity = NUMBER_OF_BASELINE_SLOTS, edition = ENTERPRISE_PLUS, secondary_location = SECONDARY_LOCATION);
請替換下列項目:
ADMIN_PROJECT_ID:擁有預留資源的管理專案專案 ID。LOCATION:預訂的位置。如果選取 BigQuery Omni 位置,版本選項會限制為 Enterprise 版。RESERVATION_NAME:預訂的名稱。名稱開頭和結尾須為小寫英文字母或數字,中間只能使用小寫英文字母、數字和破折號。
NUMBER_OF_BASELINE_SLOTS:要分配給預訂的基準時段數量。您無法在同一個預訂中設定slot_capacity選項和edition選項。SECONDARY_LOCATION:預留項目的次要位置。如果發生中斷情形,附加至這個預留項目的任何資料集都會容錯移轉至這個位置。
按一下「執行」。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
將資料集附加至預留項目
建立容錯移轉預留項目後,請將跨區域資料集 (或多個資料集) 附加至預留項目。這會為所有附加的資料集啟用容錯移轉功能。如要將資料集附加至預留項目,請選擇下列其中一個選項:
控制台
前往 Google Cloud 控制台的「BigQuery」頁面。
在導覽選單中,依序點選「容量管理」和「運算單元預留項目」分頁標籤。
按一下要附加資料集的預留項目。
按一下「Disaster recovery」(災害復原) 分頁標籤。
按一下「新增容錯移轉資料集」。
輸入要與預訂項目建立關聯的資料集名稱。
按一下「新增」。
SQL
如要將資料集附加至預留項目,請使用 ALTER SCHEMA SET OPTIONS DDL 陳述式。
前往 Google Cloud 控制台的「BigQuery」頁面。
在查詢編輯器中輸入下列陳述式:
ALTER SCHEMA `DATASET_NAME` SET OPTIONS ( failover_reservation = ADMIN_PROJECT_ID.RESERVATION_NAME);
請替換下列項目:
DATASET_NAME:資料集名稱。ADMIN_PROJECT_ID.RESERVATION_NAME:要與資料集建立關聯的預訂名稱。
按一下「執行」。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
驗證設定
如要驗證設定狀態,請查詢 INFORMATION_SCHEMA.SCHEMATA_REPLICAS 檢視區塊。
PROJECT_ID.`region-REGION`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS[_BY_PROJECT]
確認資料集已附加至正確區域的正確預訂。
取代下列項目:-
選用:
PROJECT_ID:您的 Google Cloud 專案 ID。如未指定,系統會使用預設專案。 -
REGION:任何資料集區域名稱。 例如:`region-us`。
範例
下列範例會逐步說明如何使用 GoogleSQL,從 CRR 遷移至 DR,並提供實用範例。在本例中,假設:
您目前正在處理名為「
myproject」的專案。您已建立名為「
mydataset」的資料集,並設定 CRR。mydataset的主要區域為us-central1,次要區域為us-west1。
如要開始將資料集遷移至 DR,請先使用 Enterprise Plus 版本建立預留項目。在本範例中,預訂名稱為 myreservation。
CREATE RESERVATION `myproject.region-us-central1.myreservation`
OPTIONS (
slot_capacity = 0,
edition = ENTERPRISE_PLUS,
autoscale_max_slots = 50,
secondary_location = 'us-west-1');
預留項目建立完成後,您就可以將資料集附加至預留項目。以下範例會將資料集附加至預訂:
ALTER SCHEMA
`myproject.mydataset`
SET OPTIONS (
failover_reservation = 'myproject.myreservation');
然後確認資料集已成功附加。
SELECT
failover_reservation_project_id,failover_reservation_name,
FROM
`myproject`.`region-us-west1`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS
WHERE
schema_name='mydataset';
這項查詢的結果應如下所示:
+---------------------------------+---------------------------+ | failover_reservation_project_id | failover_reservation_name | +---------------------------------+---------------------------+ | myproject | myreservation | | myproject | myreservation | +---------------------------------+---------------------------+