この記事の内容
適用対象: Azure SQL データベース
Azure SQL Managed Instance
Azure SQL Database および Azure SQL Managed Instance 内のデータベースに計画メンテナンス イベントを準備する方法について説明します。
Azure SQL Database サービスと Azure SQL Managed Instance サービスのセキュリティ、コンプライアンス、安定、パフォーマンスを維持するため、サービス コンポーネントによる更新がほぼ連続して行われています。 最新で堅牢なサービス アーキテクチャと、ホット パッチのような革新的なテクノロジにより、ほとんどの更新は完全に透過的であり、可用性に影響を与えることはありません。 ただし、いくつかの更新の種類では、サービスが短時間中断し、特別な処理が必要になる場合があります。
計画メンテナンス中は、データベース クォーラムのメンバーは 1 つずつオフラインになります。これは、対応するプライマリ レプリカを 1 つ確保するためです。 Business Critical データベースおよび Premium データベースについては、クライアントのダウンタイムが発生しないように、少なくとも 1 つのセカンダリ レプリカもオンラインになります。
プライマリ レプリカをオフラインにする必要がある場合は、再構成プロセスが発生します。
- Business Critical データベースおよび Premium データベースについては、セカンダリ レプリカの 1 つが新しいプライマリ レプリカになります。
- General Purpose データベース、Standard データベース、Basic データベースについては、十分な空き容量がある別のステートレス コンピューティング ノードにプライマリ レプリカが移動します。
メンテナンス イベントでは、メンテナンス イベントの開始時に集められたプライマリとセカンダリのレプリカに応じて、1 つまたは複数の再構成が発生する場合があります。 平均すると、1 回の計画メンテナンス イベントあたり 1.7 回の再構成が発生します。 通常、再構成は 30 秒以内に完了します。 平均は 8 秒です。 アプリケーションが既に接続されている場合は、データベースの新しいプライマリ レプリカに再接続する必要があります。
新しいプライマリ レプリカがオンラインになる前に、データベースの再構成中に新しい接続が試行された場合、エラー 40613 (データベースは使用できません): Database '{databasename}' on server '{servername}' is not currently available. Please retry the connection later.
が発生します。後で接続を再試行してください。"" が発生します。データベースに実行時間の長いクエリがある場合、このクエリは再構成中に中断され、再開する必要があります。
メンテナンス期間機能を使用すると、対象となる Azure SQL データベースと SQL マネージド インスタンスに対して、予測可能なメンテナンス期間スケジュールを構成できます。 メンテナンス期間の前に事前通知を構成することもできます。 詳細については、以下を参照してください:
- Azure SQL データベースのメンテナンス期間
- Azure SQL Database のメンテナンス期間の事前通知の構成
- Azure SQL Managed Instance のメンテナンス期間
- Azure SQL Managed Instance のメンテナンス期間の事前通知の構成
運用環境にデプロイする前に、クライアント アプリケーションがメンテナンス イベントに対する回復性があることを確認します。
テストにより、アプリケーションの障害のリスクが軽減され、エンド ユーザーのアプリケーションの可用性に寄与します。 PowerShell、CLI、または REST API を使用してアプリケーションの障害に対する回復性のテストを行うことによって、計画メンテナンス イベント中にクライアント アプリケーションの動作をテストできます。
Azure SQL Managed Instance については、手動フェールオーバーの開始に関するページも参照してください。 手動フェールオーバーにより、プライマリ レプリカをオフラインにするメンテナンス イベントと同じ動作が生成されます。
クラウド データベース サービスに接続するクライアント運用アプリケーションでは、堅牢な接続再試行ロジックを実装する必要があります。 適切な自動再試行ロジックは、再構成をエンド ユーザーに可能な限り透過的にするのに役立ちます。
サービスの問題や計画メンテナンス作業についてのアラートを受け取りたい場合、Azure portal から、適切な種類のイベントとアクション グループに Service Health アラートを組み合わせて使用できます。 詳細については、Azure サービスの通知でアラートを受け取る方法に関するページを参照してください。
また、Azure portal で Azure SQL データベース可用性メトリックのアラートを監視および構成することもできます。
データベースでサインイン エラーが発生している場合は、Azure portal の [リソース正常性] ウィンドウで、現在の状態を確認します。 [正常性の履歴] セクションには、(該当する場合は) イベントごとのダウンタイムの理由が含まれています。
- Azure SQL Database の Resource Health と Azure SQL Managed Instance の Resource Health の詳細について説明します。
- 再試行ロジックの詳細については、「一時エラーの再試行ロジック」を参照してください。
- メンテナンス期間機能を使用して、メンテナンス期間のスケジュールを構成します。