適用対象:Azure SQL データベース
このガイドでは、 可用性ゾーンを使用してゾーン冗長性のために Azure SQL Database を更新する方法について説明します。
Azure SQL Database のゾーン冗長性を有効にすると、高可用性が保証され、データベースとエラスティック プールは、アプリケーション ロジックを変更することなく、致命的なデータセンターの停止などの大規模な障害に対して回復性を確保できます。 ゾーンの冗長性が有効になっている場合、データベースは可用性ゾーンを利用して、1 つの Azure リージョン内の複数の物理的な場所にデータをレプリケートします。
Prerequisites
可用性ゾーンのサポートを有効にする前に、Azure SQL Database がサポートされているサービス レベルとデプロイ モデルにあることを確認してください。 可用性ゾーンをサポートするリージョンで、レベルとモデルが提供されていることを確認します。
Service tier | Deployment model | ゾーン冗長の可用性 |
---|---|---|
Premium | 単一のデータベースまたはエラスティック プール | 可用性ゾーンをサポートしているすべてのリージョン |
Business Critical | 単一のデータベースまたはエラスティック プール | 可用性ゾーンをサポートしているすべてのリージョン |
General Purpose | 単一のデータベースまたはエラスティック プール | 可用性ゾーンをサポートしている選択されたリージョン |
Hyperscale | Single database | 可用性ゾーンをサポートしているすべてのリージョン |
Downtime requirements
Premium、Business Critical、General Purpose サービス レベルでゾーンの再ナンシーを有効にすることは、短時間切断されたオンライン操作です。 標準の一時的なエラーのための再試行ロジックを実装している場合、フェールオーバーに気付くことはありません。
Hyperscale サービス レベルの場合、ゾーン冗長のサポートはデータベースの作成時にのみ指定でき、リソースがプロビジョニングされた後は変更できません。 可用性ゾーンのサポートに移行する場合は、データベースのコピー、ポイントインタイム リストア、または geo レプリカを使用してデータを転送する必要があります。 ターゲット データベースがソースとは異なるリージョンにある場合、またはターゲットのデータベース バックアップ ストレージの冗長性がソース データベースと異なる場合、ダウンタイムは、データ操作のサイズに比例します。
ゾーン冗長性を有効にする (Premium、Business Critical、General Purpose)
Premium、Business Critical、General Purpose のサービス レベルでは、ゾーンの冗長性を有効にできます。
単一データベースまたはエラスティック プールのゾーン冗長性を有効にするには、次の手順に従います。
単一データベースのゾーン冗長を有効にする
Azure portal に移動して、データベースを見つけます。 SQL データベースを検索して選択します。
目的のデータベースを選択します。
[設定] で、[コンピューティングとストレージ] を選択します。
[このデータベース ゾーンに冗長性を持たせますか?] に [はい] を選択します。
Select Apply.
Azure portal の上部メニューにある [通知] で操作完了通知を受け取るのを待ちます。
ゾーン冗長が有効になっていることを確認するには、[概要] を選択し、[プロパティ] を選択します。
[可用性] セクションで、ゾーン冗長が [有効] に設定されていることを確認します。
エラスティック プールのゾーン冗長性を有効にする
Important
エラスティック プールのゾーン冗長のサポートを有効にすると、プール ゾーン内のすべてのデータベースが冗長になります。
Azure portal に移動して、目的のエラスティック プールを見つけて選択します。
[設定] で、[コンピューティングとストレージ] を選択します。
[このエラスティック プール ゾーンに冗長性を持たせますか?] に [はい] を選択します。
Select Save.
Azure portal の上部メニューにある [通知] で操作完了通知を受け取るのを待ちます。
ゾーン冗長が有効になっていることを確認するには、[構成] を選択し、[プールの設定] を選択します。
ゾーン冗長オプションは、[はい] に設定する必要があります。
Redeployment (Hyperscale)
Hyperscale サービス レベルの場合、ゾーン冗長のサポートはデータベースの作成時にのみ指定でき、データベースがプロビジョニングされた後は変更できません。 ゾーン冗長のサポートを受ける場合は、既存の Hyperscale サービス レベルの単一データベースからデータ転送を実行する必要があります。 転送を実行して、ゾーン冗長オプションを有効にするには、データベース コピー、ポイントインタイム リストア、または geo レプリカを使用してクローンを作成する必要があります。
Redeployment considerations
再デプロイには、2 つのモードがあります (オンラインとオフライン):
データベース コピーおよびポイントインタイム リストアの方法 (オフライン モード) では、特定の時点でトランザクション上一貫性のあるデータベースを作成できます。 その結果、コピーまたは復元操作が開始された後に実行されたデータ変更は、コピーまたは復元されたデータベースでは使用できません。
geo レプリカの方法 (オンライン モード) は、ソースのデータ変更がターゲットに同期される再デプロイです。
アプリケーションの接続文字列は、ゾーン冗長データベースを指すよう更新する必要があります。
単一データベースの再デプロイ
Database copy
Azure portal、PowerShell、または Azure CLI を使用してデータベース コピーを作成し、ゾーン冗長を有効にするには、Azure SQL Database でのトランザクション上一貫性のあるデータベースのコピーのコピーに関する記事の手順に従います。
Point-in-time restore
Azure portal、PowerShell、または Azure CLI を使用してポイントインタイム データベース復元を作成し、ゾーン冗長を有効にするには、ポイントインタイム リストアに関する記事の手順に従います。
Geo-replica
データベースの geo レプリカを作成するには:
「アクティブ geo レプリケーションとフェールオーバーを構成する (Azure SQL Database)」の Azure portal、PowerShell、または Azure CLI の手順に従って、[コンピューティングとストレージ] でゾーン冗長を有効にします。
レプリカがシード処理され、データのシード処理にかかる時間は、ソース データベースのサイズによって異なります。 Azure portal でシード処理の状態を監視するか、レプリカ データベースで次の TSQL クエリを実行して監視できます。
SELECT * FROM sys.dm_geo_replication_link_status; SELECT * FROM sys.dm_operation_status;
データベースのシード処理が完了したら、計画された (データ損失なし) フェールオーバーを実行して、ゾーン冗長ターゲット データベースをプライマリにします。
-
sys.dm_geo_replication_link_status を使用して、geo レプリケーション状態のステータスを表示します。 セカンダリ データベースがトランザクション一貫性のある状態になってる場合、
replication_state_desc
はCATCH_UP
です。 -
sys.dm_operation_status 動的管理ビューで、シード処理操作が完了したときに
state_desc
になるCOMPLETED
を探します。
-
sys.dm_geo_replication_link_status を使用して、geo レプリケーション状態のステータスを表示します。 セカンダリ データベースがトランザクション一貫性のある状態になってる場合、
新しいゾーン冗長データベースを反映するように、アプリケーションの接続文字列内のサーバー名を更新します。
クリーンアップするには、geo レプリカ リレーションシップから元の非ゾーン冗長データベースを削除することを検討してください。 削除することも選択できます。
ゾーンの冗長性を検証する
Azure PowerShell または Azure CLI または REST API を使用して、データベースの ZoneRedundant
プロパティを確認できます。
- Azure portal で、Azure SQL Database に移動します。
- [設定] で、[コンピューティングとストレージ] を選択します。
- [このデータベース ゾーンを冗長にしますか?] 設定の値を確認します。
Disable zone-redundancy
単一データベースまたはエラスティック プールのゾーン冗長を無効にするには、Azure portal、ARM API、PowerShell、または CLI を使用できます。
単一データベースのゾーン冗長を無効にする
Azure portal に移動して、ゾーン冗長を解除するデータベースを見つけて選択します。
[設定] で、[コンピューティングとストレージ] を選択します。
[このデータベース ゾーンに冗長性を持たせますか?] に [いいえ] を選択します。
Select Save.
エラスティック プールのゾーン冗長を無効にする
Azure portal に移動して、ゾーン冗長を解除するエラスティック プールを見つけて選択します。
[設定] で、[コンピューティングとストレージ] を選択します。
「このエラスティック プール ゾーンに冗長性を持たせますか?」 のために 「いいえ」 を選択します。
Select Save.
Hyperscale サービス レベルのゾーン冗長を無効にするには、再デプロイ (Hyperscale) に関する記事に記載されている手順を逆にすることができます。