複数のアカウントにまたがるデータベースのフェールオーバー

このトピックでは、災害復旧のために、異なる 地域 の複数のアカウントに複製されたデータベースをフェールオーバーするために必要な手順について説明します。

注釈

アカウント管理者( ACCOUNTADMIN ロールを持つユーザー)のみがデータベースのフェールオーバーを有効にして管理できます。

このトピックの内容:

データベース複製およびフェールオーバー/フェールバック用のウェブインターフェイス

アカウント管理者( ACCOUNTADMIN ロールを持つユーザー)は、Snowflakeウェブインターフェイスの Databases Databases tab タブの Replication エリアを使用して、以下のアクションを含む、データベース複製の構成と管理に関連するほとんどのアクションを実行できます。

  • プライマリデータベースとして機能するようにローカルデータベースを昇格。

  • プライマリデータベース(Business Critical Editionアカウント(またはそれ以上))のフェールオーバーを有効化。

  • セカンダリデータベースを1回(手動)または繰り返し(タスクを使用して、スケジュールに従い)更新。

  • プライマリデータベース(Business Critical Editionアカウント(またはそれ以上))として機能するセカンダリデータベースを昇格。

  • プライマリデータベースの複製および/またはフェールオーバーを無効化。

前提条件

  1. アカウントのセットでプライマリデータベースのレプリケーションを有効にします。

  2. ステップ1で指定された1つ以上のアカウントにプライマリデータベースのセカンダリデータベース(つまり、レプリカ)を少なくとも1つ作成し、プライマリデータベースの最新の更新でレプリカを定期的に更新(つまり、同期)します。

手順については、 複数のアカウント間におけるデータベースの複製 をご参照ください。

ステップ1:組織内のすべてのアカウントを表示する

組織内のアカウントのリストを取得して、データベースの複製とフェールオーバーにリンクされているアカウントを特定します。

組織内のアカウントのリストを表示するには、 SHOW REPLICATION ACCOUNTS をクエリします。

SHOW REPLICATION ACCOUNTS;

+------------------+---------------------------------+---------------+------------+
| snowflake_region | created_on                      | name          | comment    |
|------------------+---------------------------------+---------------+------------|
| AWS_US_WEST_2    | 2018-11-19 16:11:12.720 -0700   | MYACCOUNT1    |            |
| AWS_US_EAST_1    | 2019-06-02 14:12:23.192 -0700   | MYACCOUNT2    |            |
+------------------+---------------------------------+---------------+------------+

次の表には、Snowflake地域 IDs の完全なリストが示されています。

Snowflake地域 IDs

地域

地域 ID

Snowflake 地域 ID

メモ

Amazon Web Services(AWS)

US 西部(オレゴン)

us-west-2

aws_us_west_2

US 東部(オハイオ)

us-east-2.aws

aws_us_east_2

US 東部(バージニア北部)

us-east-1

aws_us_east_1

US 東部(商業組織、バージニア政府北部)

us-east-1-gov.aws

aws_us_east_1_gov

Business Critical(またはそれ以上)のアカウントでのみ使用できます。Snowflakeがまだサポートしていない独立した専用クラウドである、 AWS GovCloud (US)には位置していません。

カナダ(中部)

ca-central-1.aws

aws_ca_central_1

EU (アイルランド)

eu-west-1

aws_eu_west_1

EU (フランクフルト)

eu-central-1

aws_eu_central_1

アジア太平洋(東京)

ap-northeast-1.aws

aws_ap_northeast_1

アジア太平洋(ムンバイ)

ap-south-1.aws

aws_ap_south_1

アジア太平洋(シンガポール)

ap-southeast-1

aws_ap_southeast_1

アジア太平洋(シドニー)

ap-southeast-2

aws_ap_southeast_2

Google Cloud Platform(GCP)

US 中央部1(アイオワ)

us-central1.gcp

gcp_us_central1

ヨーロッパ西部2(ロンドン)

europe-west2.gcp

gcp_europe_west2

ヨーロッパ西部4(オランダ)

europe-west4.gcp

gcp_europe_west4

Microsoft Azure

西 US 2(ワシントン)

west-us-2.azure

azure_westus2

東 US 2(バージニア)

east-us-2.azure

azure_eastus2

US バージニア政府

us-gov-virginia.azure

azure_usgovvirginia

Business Critical(またはそれ以上)のアカウントでのみ利用可能です。

カナダ中央部(トロント)

canada-central.azure

azure_canadacentral

西ヨーロッパ(オランダ)

west-europe.azure

azure_westeurope

東南アジア(シンガポール)

southeast-asia.azure

azure_southeastasia

スイス北部(チューリッヒ)

switzerland-north.azure

azure_switzerlandnorth

オーストラリア東部(ニューサウスウェールズ)

australia-east.azure

azure_australiaeast

ステップ2:プライマリデータベースのフェールオーバーを有効にする

注釈

複数のアカウント間におけるデータベースの複製 でこのプライマリデータベースのフェールオーバーを有効にした場合は、このステップをスキップしてください。

ALTER DATABASE ... ENABLE FAILOVER TO ACCOUNTS ステートメントを使用して、組織内の1つ以上のアカウントへのプライマリデータベースのフェールオーバーを有効にします。これらのアカウントのいずれか(つまり、セカンダリデータベース)にあるこのプライマリデータベースのレプリカは、プライマリデータベースとして機能するように昇格できます。

プライマリデータベースのフェールオーバーの有効化は、指定されたアカウントでプライマリデータベースのレプリカが作成された前、 または 後に行うことができます。

プライマリデータベース mydb1aws_us_west_2 地域内)からアカウント myaccount2 および myaccount3aws_us_east_1 地域内(AWS)および azure_westeurope (Azure))へのフェールオーバーを有効にします。この例では、プライマリデータベースが myaccount1 アカウントに保存されているとします。 ALTER DATABASE コマンドはそのアカウントで実行する必要があります。

ALTER DATABASE mydb1 ENABLE FAILOVER TO ACCOUNTS aws_us_east_1.myaccount2, azure_westeurope.myaccount3;

ステップ3:プライマリデータベースとして機能するレプリカデータベースを昇格する

プライマリデータベースのレプリカは、 ALTER DATABASE ... PRIMARY ステートメントを実行することでプライマリデータベースとして機能するように昇格できます。昇格すると、データベースは書き込み可能になります。同時に、以前のプライマリデータベースは読み取り専用レプリカデータベースになります。

昇格するセカンダリデータベースを含むアカウントで ALTER DATABASE ステートメントを実行します。

注釈

セカンダリデータベースを昇格させるには、操作の実行に使用されるロールに、データベースに対する OWNERSHIP 権限が必要です。

-- Promote a secondary database to serve as the primary database.
ALTER DATABASE mydb1 PRIMARY;

-- Verify that the former secondary database was promoted successfully.
SHOW REPLICATION DATABASES;