プロバイダーとしてリスティングにBCDRを使用する

プロバイダーの主な責任

コンシューマーに対してこのシームレスなエクスペリエンスを維持するために、プロバイダーは以下を確保する必要があります。

  • フェールオーバーグループの構成:すべてのリスティング、共有、およびリンクされたデータベースは、単一のフェールオーバーグループに属している必要があります。

  • メタデータの整合性:セカンダリアカウントがプライマリの正確なレプリカであることを確認するために、定期的にフェールオーバーグループを更新する必要があります。

  • 運用の継続性:災害が発生した場合、セカンダリアカウントをプライマリアカウントに昇格させると、Snowflakeは自動的に:doc:`自動フルフィルメント</collaboration/provider-listings-auto-fulfillment>`パイプラインのリダイレクトを管理します。プロバイダーは、その地域のコンシューマーにサービスを提供するために、元のプライマリ(可能な場合)のフェールオーバーグループを更新する必要があります。

注釈

「地域ごとに1つのマウントポイント」の制約は、引き続き厳密に適用されます。これにより、データの断片化を防ぎ、コンシューマーが常にデータリスティングへの明確で単一のパスを持つことができるようにします。

リスティングとその依存関係のフェールオーバーグループを構成する

このセクションでは、リスティングのフェールオーバーグループを構成して、リスティングとその依存関係が停止時により適切に保護されるようにする方法について説明します。

アクセス制御の要件

システム内のグループオブジェクトで複製とフェールオーバーを実行するために必要なロールを確認するには、:ref:`label-replication_privileges`を参照してください。

ステップ1:リスティングでフェールオーバーグループを作成する

リスティングを含む新しいフェールオーバーグループを作成するには、/sql-reference/sql/create-failover-group`を使用します。既存のフェールオーバーグループにリスティングを追加するには、:doc:/sql-reference/sql/alter-failover-group`を使用します。

注釈

フェールオーバーグループにリスティングを追加する場合は、リスティングとともに依存関係を含める必要があります。ダングリング参照など、フェールオーバーグループに属していない依存関係がリスティングに含まれている場合、Snowflakeは作成または変更プロセス中にエラーを返します。

リスティングへの共有の追加はオプションです。Snowflakeは、複製とフェールオーバーの対象となるすべてのリスティングとその共有を自動的に選択します。

次の例では、:doc:`/sql-reference/sql/create-failover-group`を使用してデータベースとリスティングの新しいフェールオーバーグループを作成します。この例では、フェールオーバーグループの名前は``provider_dr_fg``です。フェールオーバーグループのオブジェクト型には、``provider_dr_db``という名前のデータベースと、``myorg.myaccount2``という名前の許可済みアカウントが含まれます。

CREATE FAILOVER GROUP provider_dr_fg
  OBJECT_TYPES = DATABASES, LISTINGS
  ALLOWED_DATABASES = provider_dr_db
  ALLOWED_ACCOUNTS = myorg.myaccount2;

ステップ2:セカンダリフェールオーバーグループを作成する

許可済みアカウントで最初のフェールオーバーグループの複製を作成するには、次のコマンドを実行します。

CREATE FAILOVER GROUP provider_dr_fg
  AS REPLICA OF myorg.myaccount1.provider_dr_fg;
ALTER FAILOVER GROUP provider_dr_fg REFRESH;

ステップ3:セカンダリフェールオーバーグループを検証する

  1. リスティングが解決することを検証するには、/sql-reference/sql/show-listings-in-failover-group`コマンドの後に:doc:/sql-reference/sql/show-listings`コマンドを実行します。

    SHOW LISTINGS IN FAILOVER GROUP provider_dr_fg;
    SHOW LISTINGS LIKE 'provider_dr_listing_2';
    
  2. すべての共有がセカンダリアカウントのリスティングに正しく関連付けられていることを確認するには、SHOW SHARESクエリを実行します。

    応答の:code:`listing_global_name`フィールドには、NULL以外の値が含まれます。

    SHOW SHARES LIKE 'provider_dr_listing_share';
    

    注釈

    :code:`listing_global_name`フィールドのNULLという値は、セカンダリアカウントのリスティングに共有をアタッチする際の問題を示しています。フェールオーバーグループの構成を確認するか、Snowflakeチームに問い合わせてください。

フェールオーバー後のプロバイダーの制限

  • リスティング分析::doc:`/sql-reference/data-sharing-usage`の情報は、リスティングが最初に作成されたアカウントのリスティングでのみ使用できます。この情報は、フェールオーバーアカウントでは利用できない場合があります。