第3回では、SQL Server 2022 の新機能の一つである Azure SQL Managed Instance へのリンク機能の拡充 (ディザスタリカバリ) についてまとめてみました。
今回は、SQL Server 2022 の新機能の一つである 包含可用性グループ について、自分の整理も兼ねてまとめてみようと思います。
包含可用性グループについて
SQL Server Always On 可用性グループは、シェアードナッシング (Shared Nothing) でSQL Server の高可用性を実現する機能となります。
※ 引用 : Always On 可用性グループとは
可用性グループに所属する 各可用性レプリカ (ノード) には システム データベース、ユーザーデータベースが配置され、可用性データベースに追加されたユーザーデータベースは、各可用性レプリカ間でデータの同期が行われています。
SQL Server Always On フェールオーバー クラスター インスタンス (FCI) のように共有ディスクを保持する必要がなく、特定の可用性レプリカ(ノード)でディスク障害が発生したとしても他の可用性レプリカ(ノード)でサービスを継続させることが可能になるというメリットがあります。
しかしながら、SQL Server 2019 以前のバージョンでは、基本的に ユーザーデータベース のみしか可用性データベースに追加できず、システム データベース master に保持されている ログイン情報、アクセス権限情報、システム データベース msdb に保持されている SQL Server Agent ジョブ情報などについては、各可用性レプリカ (ノード) 上で手動で作成する必要がありました。
包含可用性グループは、システム データベース master のログイン、ユーザー、アクセス許可のみを含む特殊なデータベースと、システム データベース msdb の SQL Server Agent ジョブ関連情報を含む特殊なデータベースを可用性データベースに追加し、包含可用性グループがフェールオーバーして他の可用性ノードに移動したとしても、移動前の可用性ノードで利用できていたログイン、ユーザー、アクセス許可、SQL Server Agent ジョブを利用可能にしているようです。
包含可用性グループは、SQL Server Management Studio (SSMS) から 新しい可用性グループ ウィザードを起動し、少しわかりづらいのですが「可用性グループ オプション」で「含まれている」、「システム データベースの再利用」にチェックを入れることで簡単に作成が可能です。
包含可用性グループを構成後、SSMS で該当可用性グループの可用性データベースを確認すると、可用性データベースの他に、<可用性グループ名>_master 、<可用性グループ名>_msdb という二つのデータベースが追加されていることが確認できます。
なお、<可用性グループ名>_master 、<可用性グループ名>_msdb へのアクセスは、包含可用性グループリスナー経由で該当包含可用性グループにアクセスした場合、master や msdb への接続が <可用性グループ名>_master 、<可用性グループ名>_msdb へリダイレクトすることで実現しているようです。
そのため、包含可用性グループを利用する場合は、ほぼ包含可用性グループリスナーが必須になるのではないかと思います。
包含可用性グループを利用するメリットがある一方で以下のような機能はサポートされていないようです。
- SQL Server レプリケーション機能
- 分散可用性グループ
※ 一部抜粋
そのため、包含可用性グループを構築する場合は、メリット以上のデメリットがないかをしっかりと検討したうえで構築されると良いかと思います。
※ 包含可用性グループの詳細な考慮事項については、以下の URL を参照
まとめ
今回は、SQL Server 2022 の新機能の一つである 包含可用性グループ についてまとめてみました。
包含可用性グループを利用することで、各可用性レプリカ (ノード) 毎に設定が必要だったログイン設定、SQL Server Agent ジョブの設定が緩和されます。
しかしながら、SQL Server レプリケーション機能 (スナップショット、トランザクション、マージのすべての種類) が使用できないなどデメリットもあるようです。
そのため、包含可用性グループを構築する場合は、メリット以上のデメリットがないかをしっかりと検討したうえで構築されると良いかと思います。
【第5回 SQL Server 2022 新機能】分散型可用性グループ REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT オプション へ
※ 2023年3月現在