遷移至代管災難復原機制

本頁說明如何從 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 限制 包括CRR 限制DR 限制
寫入權限 在任何容量模式下執行的工作,都可以寫入主要區域的複製資料集。次要區域一律為唯讀。 只有在 Enterprise Plus 預訂項目下執行的工作,才能寫入主要區域的複製資料集。次要資料集和預訂副本一律為唯讀。
讀取權限 在任何容量模型下執行的工作,都可以讀取複製的資料集。 在任何容量模型下執行的工作,都可以讀取複製的資料集。

遷移影響

以下各節將概述遷移至 DR 時的費用和功能異動。

費用影響

從 CRR 遷移至 DR 時,請考量下列成本影響:

  • DR 僅支援 Enterprise Plus 版本的寫入存取權,這會產生較高的運算成本。您可以從任何容量模型讀取資料,因此現有工作的讀取成本不會變更。

  • DR 使用 Turbo 複寫,因此會產生額外費用 (視區域配對而定)。

  • CRR 和 DR 的儲存空間價格相同。

如要進一步瞭解定價,請參閱「定價」。

功能影響

從 CRR 遷移至 DR 時,請考量下列功能影響:

  • 災難復原僅支援預留項目層級的容錯移轉。如果現有工作依賴資料集層級的容錯移轉,就會失敗。

  • 資料集附加至 DR 預留項目後,只有 Enterprise Plus 版查詢可以寫入資料集。如果現有的寫入作業未使用 Enterprise Plus 版的運算容量,就會失敗。

事前準備

開始遷移作業前,請先熟悉跨區域複製受管理災難復原的概念。

如要遷移至 DR,必須符合下列先決條件:

  • 您有已啟用 BigQuery 的有效 Cloud de Confiance by S3NS 專案。

  • 您已使用 CRR 建立及複製資料集。

  • 資料集具有相同的主要和次要位置,可用於 DR。

  • 您擁有使用 DR 的必要權限。如要進一步瞭解權限,請參閱「開始前」一文。

從 CRR 遷移至 DR

以下各節說明如何將資料集從 CRR 遷移至 DR。本文假設您已為 CRR 設定資料集。

建立容錯移轉預留項目

如要啟用災難復原功能,您必須在主要區域建立容錯移轉預留項目,並設定適當的主要和次要區域。主要和次要區域應與您打算遷移至 DR 的所有 CRR 資料集區域相符。如要建立容錯移轉預留項目,請選擇下列其中一個選項:

控制台

  1. 前往 Cloud de Confiance 控制台的「BigQuery」頁面。

    前往「BigQuery」

  2. 在導覽選單中,依序點選「容量管理」和「建立預留項目」

  3. 在「Reservation name」(預留項目名稱) 欄位中,輸入預留項目的名稱。

  4. 在「位置」清單中選取位置。

  5. 在「版本」清單中,選取 Enterprise Plus 版本。

  6. 在「預留項目大小選取器」清單中,選取預留項目大小上限。

  7. 選用:在「Baseline slots」(基準運算單元) 欄位中,輸入保留項目的基準運算單元數量。

    可用自動調度資源運算單元數量的計算方式,是從「預留項目大小上限」值減去「基準運算單元」值。舉例來說,如果您建立的預留項目有 100 個基準運算單元,且預留項目大小上限為 400,則預留項目有 300 個自動調度資源運算單元。如要進一步瞭解基準運算單元,請參閱「使用設有基準和自動調度資源運算單元的預留項目」。

  8. 在「次要位置」清單中,選取次要位置。

  9. 如要停用閒置的運算單元共用功能,並只使用指定的運算單元容量,請按一下「忽略閒置的運算單元」切換鈕。

  10. 如要展開「進階設定」部分,請按一下展開箭頭。

  11. 選用:如要設定目標工作並行,請按一下「覆寫自動目標工作並行設定」切換鈕,然後輸入「目標工作並行」的值。「費用預估」資料表會顯示運算單元細目。「容量摘要」資料表會顯示預留項目摘要。

  12. 按一下 [儲存]

新預訂項目會顯示在「預訂時段」分頁中。

SQL

如要建立預留項目,請使用CREATE RESERVATION資料定義語言 (DDL) 陳述式

  1. 前往 Cloud de Confiance 控制台的「BigQuery」頁面。

    前往「BigQuery」

  2. 在查詢編輯器中輸入下列陳述式:

    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:預留項目的次要位置。如果發生中斷情形,附加至這個預留項目的任何資料集都會容錯移轉至這個位置。

  3. 按一下「執行」

如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。

將資料集附加至預留項目

建立容錯移轉預留項目後,請將跨區域資料集 (或多個資料集) 附加至預留項目。這樣一來,所有附加的資料集都會啟用容錯移轉功能。如要將資料集附加至預留項目,請選擇下列其中一個選項:

控制台

  1. 前往 Cloud de Confiance 控制台的「BigQuery」頁面。

    前往「BigQuery」

  2. 在導覽選單中,依序點選「容量管理」和「運算單元預留項目」分頁標籤。

  3. 按一下要附加資料集的預留項目。

  4. 按一下「Disaster recovery」(災難復原) 分頁標籤。

  5. 按一下「新增容錯移轉資料集」

  6. 輸入要與預訂項目建立關聯的資料集名稱。

  7. 按一下「新增」。

SQL

如要將資料集附加至預留項目,請使用 ALTER SCHEMA SET OPTIONS DDL 陳述式

  1. 前往 Cloud de Confiance 控制台的「BigQuery」頁面。

    前往「BigQuery」

  2. 在查詢編輯器中輸入下列陳述式:

    ALTER SCHEMA
      `DATASET_NAME`
    SET OPTIONS (
      failover_reservation = ADMIN_PROJECT_ID.RESERVATION_NAME);

    請替換下列項目:

    • DATASET_NAME:資料集名稱。

    • ADMIN_PROJECT_ID.RESERVATION_NAME:要與資料集建立關聯的預訂名稱。

  3. 按一下「執行」

如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。

驗證設定

如要驗證設定狀態,請查詢 INFORMATION_SCHEMA.SCHEMATA_REPLICAS 檢視區塊

PROJECT_ID.`region-REGION`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS[_BY_PROJECT]

確認資料集已附加至正確區域的正確預訂。

取代下列項目:
  • 選用:PROJECT_ID:專案 ID。 Cloud de Confiance 如未指定,系統會使用預設專案。
  • 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             |
+---------------------------------+---------------------------+

後續步驟