PaaS デプロイの高可用性とディザスター リカバリーについて説明する

完了

可用性に関して言えば、PaaS は事情が異なります。構成できるのは、Azure に用意されているオプションだけです。

Azure SQL Database と Azure SQL Managed Instance の SQL Server ベースのオプションの場合、オプションはアクティブ geo レプリケーション (Azure SQL Database のみ) と自動フェールオーバー グループ (Azure SQL Database または Azure SQL Managed Instance) です。

Azure SQL Database にはサービス レベル アグリーメントがあり、99.99 の可用性が保証されています。つまり、ダウンタイムはほとんど発生しません。 ハードウェア障害などのノード レベルの問題が発生した場合は、組み込みのフェールオーバー メカニズムが開始されます。 データベースに対するすべてのトランザクション変更は、コミット時にストレージに同期的に書き込まれます。 ノードレベルの中断が発生した場合、データベース サーバーは新しいノードを自動的に作成してデータ ストレージをアタッチします。

アプリケーションの観点からは、新しいノードのスピンアップの一環としてすべての接続が削除され、実行中のトランザクションが失われるため、必要な再試行ロジックをコーディングする必要があります。 クラウド アプリケーションは一時的な障害に対応した設計が求められることから、このプロセスは、あらゆるクラウド アプリケーションのベスト プラクティスと考えられます。

Azure SQL Database と Azure SQL Managed Instance には、読み取りレプリカを作成するオプションが用意されています。 これらのレプリカは、プライマリ データベースから作業をオフロードするのに役立つレポートなどのアクティビティに使用できます。 さらに、読み取りレプリカは、異なるリージョンに配置されることで可用性を向上させ、1 つのリージョンで問題が発生した場合でもデータにアクセスできるようにします。

データベースの可用性

Azure SQL Database と Azure SQL Managed Instance で、データベースの状態を OFFLINE または EMERGENCY に設定することはできません。 考えてみれば、OFFLINE はデータベースをアタッチできないため、意味がありません。 EMERGENCY を使用できないため、緊急モードの修復を行うことはできませんが、Azure がサービスを管理および保守しているため、その必要はありません。 Azure SQL Database では、RESTRICTED_USER や専用管理者接続 (DAC) などの他の機能を使用できます。

高速データベース復旧 (ADR) は、このエンジンに組み込まれています。 ADR では、トランザクション ログが積極的に切り捨てられ、永続バージョン ストア (PVS) が使用されます。 このテクノロジを使うと、トランザクションのロールバックを瞬時に実行し、実行時間の長いトランザクションに関する既知の問題を解決できます。 また、Azure SQL でデータベースを迅速に復旧できます。

Azure SQL Database と Azure SQL Managed Instance では、ADR によってデータベースの全般的な可用性が大幅に向上します。 それは SLA の大きな要因です。 これらの理由から、ADR は既定で有効になっており、無効にすることはできません。

データベースの整合性

このモジュールの最初で説明したように、データとバックアップの複数のコピーがローカルとリージョン全体の両方に存在します。 定期的に、バックアップと復元の整合性チェックが実行されます。 "消えた書き込み" や "古い読み取り" も検出されます。 ユーザーは DBCC CHECKDB (修復なし) を実行でき、CHECKSUM は既定でオンになっています。 バックエンドでは、可能な場合は自動ページ修復が実行され、データ整合性エラー アラートの監視が行われます。 影響がない場合は、通知なしの修復が行われます。 影響がある場合は、事前通知が提供されます。