SQL Server on Linuxの可用性について ②


前回の投稿では、SQL Server on Linuxの基本的な可用性について紹介しました。
本記事ではそれ以外の可用性機能について紹介します。

◆SQL Server on Linuxのフェイルオーバクラスタリング

Windows版と同様に、SQL Server on Linuxのフェイルオーバクラスタは、共有ストレージに接続された複数のサーバで構成されています。サーバはクラスタノードと呼ばます。
Windows版のSQL Serverのフェイルオーバクラスタリングインスタンスと同様に、SQL Server on Linuxクラスタリングは、インスタンスレベルでの保護、自動および手動のフェイルオーバ、アプリケーションやクライアントの透過的なフェイルオーバ、数秒から数分のPTOをサポートします。

SQL Server on Linuxでフェイルオーバクラスタリングを行う場合は、Windows版とは違い、ネイティブのLinux Pacemaker high availabilityテクノロジを使用します。
すべてのクラスタノードは、ストレージリソースへのアクティブな接続を必要としており、Pacemakerが障害を検出すると、クラスタリングコンポーネントはSQL インスタンスを別のノードへ移動させます。
イメージとしては、下記のような図となります。

◆AlwaysOn可用性グループ

Windows版のSQL Serverと同様に、SQL Server on Linuxの可用性レベルはAlwaysOn可用性グループによって提供されます。

SQL Server on LinuxにてサポートされているAlwaysOn可用性グループは以下となります。

  • 最大8つのセカンダリレプリカの保護
  • 複数データベースの保護
  • 最大3つの同期レプリカ
  • 同期および非同期のセカンダリレプリカの混合
  • 手動または自動でのフェイルオーバ
  • 読み取り専用のセカンダリ提供
  • 読み取り専用ルーティング

Linux上の可用性グループには、2つの構成タイプがあります。Pacemalerを使用してビジネス継続性を提供する高可用性構成を作成するか、クラスタマネージャーを使用せずに読み取りスケールアウト可用性グループを作成できます。読み取りスケールアウトは、パフォーマンスのスケールアウトのための読み取り専用レプリカのみを提供します。

高可用性とデータ保護を提供する可用性グループ構成には、3つの同期レプリカが必要です。Windows Serverフェールオーバークラスタが存在しない場合、可用性グループの構成は、参加するSQL Serverインスタンスのマスターデータベースに格納されます。高可用性とデータ保護を提供するには、少なくとも3つの同期レプリカが必要です。

2つの同期レプリカを持つ可用性グループはデータ保護を提供できますが、この構成では自動高可用性を提供できません。プライマリレプリカが停止している場合、可用性グループは自動的にフェイルオーバーします。

ただし、プライマリレプリカがリカバリされるまで、アプリケーションは自動的に可用性グループに接続できません。WindowsとLinuxの両方のレプリカを含む可用性グループを混在させることができますが、Microsoftはこれをデータ移行にのみ推奨します。

SQL Server on Linuxは、企業がリレーショナルデータベースアプリケーションに必要とするエンタープライズレベルのデータ保護および可用性機能を提供します。ただし、LinuxのSQL Serverはフェールオーバークラスタリング、可用性グループ、およびログ配布をサポートしていますが、データベースミラーリングはサポートしていません。データベースのミラーリングはWindows版のSQL Server 2017でもサポートされていますが、将来的に削除される予定の償却された機能です。

関連したトピックス