ワークスペースの複製

重要

  • ユーザーが所有するワークスペースでは、複製をサポートするためにBusiness Critical(BC)以上が必要です。

  • フェイルオーバーとフェイルバックには、Business Critical Edition以上が必要です。アップグレードについては、 Snowflakeサポート にお問い合わせください。

複製は、災害、停止、または利用不可の期間であっても、アカウント全体でワークスペースやその他の重要なオブジェクトを利用できるようにすることで、ビジネスの継続性を確保するのに役立ちます。管理者によって構成される複製グループは、定義されたスケジュールで、プライマリアカウントから1つ以上のセカンダリアカウントにアカウントオブジェクトとデータベースを複製します。

ワークスペース複製の仕組み

共有ワークスペースは、複製グループまたはフェールオーバーグループの一部であるデータベースに含まれている場合に複製されます。プライベートワークスペースは、その所有するユーザーが複製されるときに複製されます。セカンダリ(ターゲット)アカウントでは、複製されたコンテンツは読み取り専用です。ワークスペースファイルは実行可能ですが、編集できません。新しいクエリを作成して実行するには、セカンダリアカウントで元のワークシートインターフェイスを使用します。

データベースの複製は、高可用性をサポートするフェールオーバーグループとして構成できます。セカンダリフェールオーバーグループがプライマリに昇格すると、ワークスペースを含むすべてのオブジェクトが新しいプライマリアカウントで書き込み可能になります。

詳細については、 複数のアカウント間にわたる複製とフェールオーバーの概要 をご参照ください。

LOCAL ワークスペース

LOCAL ワークスペースはワークスペース複製に参加しません。ワークスペースファイルは現在のデプロイメント内に残り、他のデプロイメントにコピーされたり、同期されたりすることはありません。

ワークスペースの複製が有効な場合、セカンダリデプロイメントに既に存在する既存のワークスペースとファイルはすべて LOCAL として自動的に指定されます。これにより、複製が有効になってもユーザーが既存のワークスペースデータにアクセスできなくなることなく、セカンダリデプロイメント内の既存のワークスペースデータへのアクセスを維持できるようになります。

ワークスペース複製を設定する

ワークスペースを複製するには、次の設定タスクを順番に完了する必要があります。

ステップ1:アカウントの複製を有効にする

ORGADMIN ロールを持つユーザーは、組織内のソースとターゲットの各アカウントで複製を有効にする必要があります。

USE ROLE ORGADMIN;
SELECT SYSTEM$GLOBAL_ACCOUNT_SET_PARAMETER(
    '<organization_name>.<account_name>',
    'ENABLE_ACCOUNT_DATABASE_REPLICATION',
    'true');
Copy

詳しくは、 組織内のアカウントで複製を有効にする を参照してください。

ステップ2:複製グループを作成する

複製グループは、オプションで定義されたスケジュールで、プライマリアカウントからセカンダリアカウントにオブジェクトをコピーします。

複製グループを作成するには、複製グループにワークスペースを含むアカウントを指定します。

プライマリアカウント

USE ROLE ACCOUNTADMIN;

CREATE REPLICATION GROUP my_replication_group
    OBJECT_TYPES = USERS
    ALLOWED_ACCOUNTS = org_name.secondary_account_name
    [ REPLICATION_SCHEDULE = '10 MINUTE' ]
Copy

この例では:

  • ALLOWED_ACCOUNTS : 複製先のセカンダリアカウント。

  • REPLICATION_SCHEDULE : 複製の発生頻度(たとえば、「10 MINUTE」や「1 HOUR」など)

セカンダリアカウント

USE ROLE ACCOUNTADMIN;
CREATE REPLICATION GROUP my_replication_group
  AS REPLICA OF org_name.primary_account_name.my_replication_group;
Copy

高可用性のためのフェイルオーバーの設定

停止中に :ref:`フェールオーバー <label-replication_and_failover_groups>`(セカンダリアカウントのプライマリへの昇格)を有効にするには、複製グループの代わりにフェールオーバーグループを使用する必要があります。

プライマリアカウント

USE ROLE ACCOUNTADMIN;
CREATE FAILOVER GROUP my_failover_group
  OBJECT_TYPES = USERS
  ALLOWED_ACCOUNTS = org_name.secondary_account_name
  [ REPLICATION_SCHEDULE = '10 MINUTE' ]
Copy

セカンダリアカウント

USE ROLE ACCOUNTADMIN;
CREATE FAILOVER GROUP my_failover_group
  AS REPLICA OF org_name.primary_account_name.my_failover_group;
Copy

プライマリが失敗すると、セカンダリが引き継ぐ

フェールオーバーグループをプライマリに昇格 させると、ワークスペースは読み書き可能になります。

セカンダリアカウントの動作

利用可能な読み取り/書き込みワークスペースがない場合は、読み取り/書き込みをサポートする Snowsight のワークシートの使用に戻すこともできます。

考慮事項

  • クエリ結果は複製されません。クエリ結果は、クエリが最初に実行されたアカウントにのみ保存されます。

  • ファイルに対して選択されたロール、ウェアハウス、データベース、スキーマコンテキストは複製されません。これらのアカウントレベルのオブジェクトを別々に複製することはできますが、それらのコンテキストはターゲットアカウントのファイル上で選択されたままにはなりません。

制限事項

  • Git統合は、フェイルオーバー後に現在サポートされていません。ワークスペースのあるセカンダリアカウントがプライマリに昇格された場合は、Git統合を手動で再構成する必要があります。

  • セカンダリアカウントのワークスペースは読み取り専用です。

複製動作の詳細については、 複製に関する考慮事項 をご参照ください。