クロスリージョン レプリケーションと障害復旧を使用する

このページでは、BigLake metastore のクロスリージョン レプリケーションと障害復旧を使用する方法について説明します。

この機能は、Cloud Storage のデュアルリージョン バケットまたはマルチリージョン バケットを使用するカタログでのみ使用できます。

始める前に

  1. Verify that billing is enabled for your Google Cloud project.

  2. Enable the BigLake API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

必要なロール

BigLake metastore で Iceberg REST カタログを使用するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

  • カタログ ユーザー アクセス、ストレージ アクセス、カタログの認証情報ベンダー モードの管理などの管理タスクを行います。
  • 認証情報ベンディング モードでテーブルデータを読み取る: プロジェクトに対する BigLake 閲覧者 roles/biglake.viewer
  • 認証情報ベンディング モードでテーブルデータを書き込む: プロジェクトに対する BigLake 編集者 roles/biglake.editor
  • 非認証情報ベンディング モードでカタログ リソースとテーブルデータを読み取る:
  • カタログ リソースを管理し、認証情報ベンディング モード以外でテーブルデータを書き込む:

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

レプリケーションと障害復旧のワークフロー

クロスリージョン レプリケーションと障害復旧を使用するには、次の一般的な手順を行います。

  1. レプリケーション ステータスを表示する: 現在のプライマリ リージョンとセカンダリ リージョンを特定して、フェイルオーバーのターゲット リージョンを決定します。
  2. 同期ステータスを確認する: プライマリ リージョンとセカンダリ リージョンの現在の状態を確認して、移行の準備ができていることを確認します。
  3. フェイルオーバー モードを選択する: ソフト フェイルオーバー(計画メンテナンスに最適)とハード フェイルオーバー(緊急復旧に最適)のいずれかを選択します。
  4. フェイルオーバーを開始する: 選択したモードに対応するコマンドを実行して、プライマリ リージョンとセカンダリ リージョンを切り替えます。

フェイルオーバーの準備

現在のプライマリ リージョンを特定し、セカンダリ リージョンの同期ステータスを確認します。次に、フェイルオーバーを開始します。

レプリケーションのステータスを表示する

カタログが複製されるリージョンを確認するには、次の gcloud alpha biglake iceberg catalogs describe コマンドを実行します。

gcloud alpha biglake iceberg catalogs describe CATALOG_NAME

CATALOG_NAME は、カタログの名前に置き換えます。

同期ステータスを確認する

フェイルオーバーを開始する前に、alpha biglake iceberg failover コマンドを使用して、セカンダリ レプリカの同期ステータスを確認します。

gcloud alpha biglake iceberg catalogs failover CATALOG_NAME \
    --validate_only \
    --primary-replica PRIMARY_REPLICA_REGION

次のように置き換えます。

  • CATALOG_NAME: カタログの名前。
  • PRIMARY_REPLICA_REGION: 新しいプライマリ レプリカとして指定するリージョン。

フェイルオーバーを開始する

障害復旧機能では、メタストア レプリケーションを使用してプライマリ リージョンとセカンダリ リージョンを指定します。すべてのテーブル コミット メタデータはプライマリ リージョンから提供され、セカンダリ リージョンに複製されます。フェイルオーバー オペレーションを使用して、カタログのプライマリ リージョンとセカンダリ リージョンを切り替えることができます。

ソフト フェイルオーバー

ソフト フェイルオーバーを開始するには、次の alpha biglake iceberg failover コマンドを実行します。

gcloud alpha biglake iceberg catalogs failover CATALOG_NAME \
    --primary-replica PRIMARY_REPLICA_REGION

次のように置き換えます。

  • CATALOG_NAME: カタログの名前。
  • PRIMARY_REPLICA_REGION: 新しいプライマリ レプリカとして指定するリージョン。

ハード フェイルオーバー

ハード フェイルオーバーを開始するには、次の alpha biglake iceberg failover コマンドを実行します。

gcloud alpha biglake iceberg catalogs failover CATALOG_NAME \
    --primary-replica PRIMARY_REPLICA_REGION \
    --conditional-failover-replication-time=REPLICATION_TIMESTAMP

次のように置き換えます。

  • CATALOG_NAME: カタログの名前。

  • PRIMARY_REPLICA_REGION: 新しいプライマリ レプリカとして指定するリージョン。

  • REPLICATION_TIMESTAMP: レプリケーションのチェックポイントとして機能する RFC 3339 タイムスタンプ。レプリケーション プロセスでは、レプリカにこの時点までにコミットされたすべてのデータが含まれていることが確認されます。レプリカにこのタイムスタンプの前にコミットされたすべてのデータが含まれていない場合、コマンドは失敗します。レプリケーションの遅延に関係なくフェイルオーバー プロセスを強制的に実行するには、このタイムスタンプを過去の日付に設定します。

次のステップ