遷移至代管災難復原服務

本頁說明如何從 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 資料集區域相符。如要建立容錯移轉預留空間,請選擇下列其中一個選項:

控制台

  1. 前往 Google Cloud 控制台的「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. 前往 Google Cloud 控制台的「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. 前往 Google Cloud 控制台的「BigQuery」頁面。

    前往「BigQuery」

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

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

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

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

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

  7. 按一下「新增」。

SQL

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

  1. 前往 Google Cloud 控制台的「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:您的 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             |
+---------------------------------+---------------------------+

後續步驟