複数のアカウントにまたがるデータベースのフェールオーバー¶
このトピックでは、災害復旧のために、異なる 地域 の複数のアカウントに複製されたデータベースをフェールオーバーするために必要な手順について説明します。
注釈
アカウント管理者( ACCOUNTADMIN ロールを持つユーザー)のみがデータベースのフェールオーバーを有効にして管理できます。
このトピックの内容:
データベース複製およびフェールオーバー/フェールバック用のウェブインターフェイス¶
アカウント管理者( ACCOUNTADMIN ロールを持つユーザー)は、Snowflakeウェブインターフェイスの Databases タブの Replication エリアを使用して、以下のアクションを含む、データベース複製の構成と管理に関連するほとんどのアクションを実行できます。
プライマリデータベースとして機能するようにローカルデータベースを昇格。
プライマリデータベース(Business Critical Editionアカウント(またはそれ以上))のフェールオーバーを有効化。
セカンダリデータベースを1回(手動)または繰り返し(タスクを使用して、スケジュールに従い)更新。
プライマリデータベース(Business Critical Editionアカウント(またはそれ以上))として機能するセカンダリデータベースを昇格。
プライマリデータベースの複製および/またはフェールオーバーを無効化。
前提条件¶
アカウントのセットでプライマリデータベースのレプリケーションを有効にします。
ステップ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 東部(オハイオ)
|
|
|
|
US 東部(バージニア北部)
|
|
|
|
US 東部(商業組織、バージニア政府北部)
|
|
|
Business Critical(またはそれ以上)のアカウントでのみ使用できます。Snowflakeがまだサポートしていない独立した専用クラウドである、 AWS GovCloud (US)には位置していません。 |
カナダ(中部)
|
|
|
|
ヨーロッパ(ロンドン)
|
|
|
|
EU (アイルランド)
|
|
|
|
EU (フランクフルト)
|
|
|
|
アジア太平洋(東京)
|
|
|
|
アジア太平洋(ムンバイ)
|
|
|
|
アジア太平洋(シンガポール)
|
|
|
|
アジア太平洋(シドニー)
|
|
|
|
Google Cloud Platform(GCP) |
|||
US 中央部1(アイオワ)
|
|
|
|
ヨーロッパ西部2(ロンドン)
|
|
|
|
ヨーロッパ西部4(オランダ)
|
|
|
|
Microsoft Azure |
|||
西 US 2(ワシントン)
|
|
|
|
東 US 2(バージニア)
|
|
|
|
US バージニア政府
|
|
|
Business Critical(またはそれ以上)のアカウントでのみ利用可能です。 |
カナダ中央部(トロント)
|
|
|
|
西ヨーロッパ(オランダ)
|
|
|
|
東南アジア(シンガポール)
|
|
|
|
スイス北部(チューリッヒ)
|
|
|
|
オーストラリア東部(ニューサウスウェールズ)
|
|
|
ステップ2:プライマリデータベースのフェールオーバーを有効にする¶
注釈
複数のアカウント間におけるデータベースの複製 でこのプライマリデータベースのフェールオーバーを有効にした場合は、このステップをスキップしてください。
ALTER DATABASE ... ENABLE FAILOVER TO ACCOUNTS ステートメントを使用して、組織内の1つ以上のアカウントへのプライマリデータベースのフェールオーバーを有効にします。これらのアカウントのいずれか(つまり、セカンダリデータベース)にあるこのプライマリデータベースのレプリカは、プライマリデータベースとして機能するように昇格できます。
プライマリデータベースのフェールオーバーの有効化は、指定されたアカウントでプライマリデータベースのレプリカが作成された前、 または 後に行うことができます。
例¶
プライマリデータベース mydb1
( aws_us_west_2
地域内)からアカウント myaccount2
および myaccount3
( aws_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;