MS SQL Serverの高可用性(HA)完全ガイド|5つの可用性オプションと設定手順を解説
高可用性(HA:High Availability)とは、計画的なメンテナンスであれ、予期しない障害であれ、あらゆる状況においてアプリケーションやデータベースを24時間365日利用できる状態に保つためのソリューション、プロセス、およびテクノロジーの総称です。
MS SQL Serverでデータベースの可用性を確保する方法は、基本となる5つのオプションがあります。
- レプリケーション(Replication)
- ログシッピング(Log Shipping)
- ミラーリング(Mirroring)
- クラスタリング(Clustering)
- AlwaysOn 可用性グループ(AlwaysON Availability Groups)
レプリケーション(Replication)
レプリケーションは、オブジェクトレベルのテクノロジーを使用し、レプリケーションタスク(エージェント/ジョブ)を通じて、元のデータをコピー先へ複製する仕組みです。理解しておくべき主な用語は以下の通りです。
- パブリッシャー(Publisher):データの供給元となるサーバーです。
- ディストリビューター(Distributor):省略可能な中継サーバーで、複製されたデータを一時的に保持し、サブスクライバーへ配送します。
- サブスクライバー(Subscriber):データを受け取るコピー先サーバーです。
ログシッピング(Log Shipping)
ログシッピングは、データベースレベルのテクノロジーを使用し、トランザクションログのバックアップタスクを通じて、ソース側のデータをコピー先へ転送する仕組みです。主な用語は以下の通りです。
- プライマリサーバー(Primary Server):データの供給元となるサーバーです。
- セカンダリサーバー(Secondary Server):データを受け取るコピー先サーバーです。
- 監視サーバー(Monitor Server):省略可能で、ログシッピングの稼働状況を監視する役割を担います。
ミラーリング(Mirroring)
ミラーリングは、データベースレベルのテクノロジーを使用し、エンドポイントとポート番号による接続を介して、ネットワーク経由のトランザクションによってプライマリ側のデータをセカンダリ側へコピーする仕組みです。主な用語は以下の通りです。
- プリンシパルサーバー(Principal Server):データの供給元となるサーバーです。
- ミラーサーバー(Mirror Server):データを受け取るコピー先サーバーです。
- ウィットネスサーバー(Witness Server):省略可能で、自動フェイルオーバーを実現するための仲裁役として機能します。
クラスタリング(Clustering)
クラスタリングは、インスタンスレベルのテクノロジーを使用し、データを共通の保管場所(共有ストレージ)に格納して、プライマリとセカンダリの両方のサーバーから利用できるようにする仕組みです。この方式では、共有ストレージ上にWindowsクラスタリングを構成する必要があります。主な用語は以下の通りです。
- アクティブノード(Active Node):SQL Serverサービスが稼働しているノードです。
- パッシブノード(Passive Node):SQL Serverサービスが待機しているノードです。
AlwaysOn 可用性グループ(AlwaysON Availability Groups)
AlwaysOn 可用性グループは、データベースグループレベルのテクノロジーを使用し、トランザクションを通じてプライマリ側のデータをセカンダリ側へ転送する仕組みです。Windowsクラスタリングの構成が必要ですが、共有ストレージは不要という点が大きな特徴です。主な用語は以下の通りです。
- プライマリレプリカ(Primary Replica):データの供給元となるサーバーです。
- セカンダリレプリカ(Secondary Replica):データを受け取るコピー先サーバーです。
ミラーリングとログシッピングのHA構成手順
ここでは、クラスタリング、AlwaysOn 可用性グループ、レプリケーションを除く、ミラーリングおよびログシッピングのHA構成手順を順を追って解説します。
ステップ1:完全バックアップとトランザクションログバックアップの取得
まず、元のデータベースの完全バックアップとトランザクションログ(T-log)バックアップを取得します。
具体例:
TESTINSTANCEをプライマリSQL Server、DEVINSTANCEをセカンダリサーバーとして、TestDBデータベースのミラーリング/ログシッピングを構成するケースを想定します。次のクエリを使用して、ソースサーバー(TESTINSTANCE)上で完全バックアップとトランザクションログバックアップを取得します。
SQL ServerのTESTINSTANCEに接続し、新しいクエリウィンドウを開いて、以下のコードを入力して実行してください。
Backup database TestDB to disk = 'D:testdb_full.bak'
GO
Backup log TestDB to disk = 'D:testdb_log.trn'
ステップ2:バックアップファイルをコピー先サーバーへコピー
次に、作成したバックアップファイルをコピー先サーバーへコピーします。
この例では、物理サーバーは1台で2つのSQL Serverインスタンスが共存しているため、コピーは不要です。ただし、2つのSQL Serverインスタンスがそれぞれ別の物理サーバー上にある場合は、以下の2つのファイルを、セカンダリサーバー(DEVINSTANCEがインストールされている環境)の適切な場所へコピーしてください。
ステップ3:NORECOVERYオプションでデータベースを復元
バックアップファイルを使用して、コピー先サーバー上でNORECOVERYオプションを指定してデータベースを復元します。
具体例:
DEVINSTANCEに接続し、新しいクエリウィンドウを開きます。元のデータベースと同じ名前であるTestDBとして復元するため、以下のコードを入力します。ログシッピングの構成では、別の名前を使用することも可能です。復元時には norecovery オプションを指定します。
Restore database TestDB from disk = 'D:TestDB_full.bak'
with move 'TestDB' to 'D:DATATestDB_DR.mdf',
move 'TestDB_log' to 'D:DATATestDB_log_DR.ldf',
norecovery
GO
Restore database TestDB from disk = 'D:TestDB_log.trn' with norecovery
復元後、DEVINSTANCEサーバーのデータベースフォルダーを更新すると、「復元中」の状態になったTestDBデータベースが表示されることを確認できます。
ステップ4:HA(ログシッピング/ミラーリング)の構成
続いて、実際にHA機能を構成していきます。
具体例:
プライマリサーバーであるTESTINSTANCE上のTestDBデータベースを右クリックし、[プロパティ] をクリックします。以下のような画面が表示されます。
ステップ5:ミラーリングまたはトランザクションログ配布の選択
要件に応じて [ミラーリング] または [トランザクション ログ配布] のページを選択し、ウィザードの指示に従って操作を進めることで、構成を完了させます。
-
MS SQL Serverの高可用性(HA)完全ガイド|5つの可用性オプションと設定手順を解説
高可用性(HA:High Availability)とは、計画的なメンテナンスであれ、予期しない障害であれ、あらゆる状況においてアプリケーションやデータベースを24時間365日利用できる状態に保つためのソリューション、プロセス、およびテクノロジーの総称です。 MS SQL Serverでデータベースの可用性を確保する方法は、基本となる5つのオプションがあります。 レプリケーション(Replication) ログシッピング(Log Shipping) ミラーリング(Mirroring) クラスタリング(Clustering) AlwaysOn 可用性グループ(AlwaysON Availabi
-
SQL Serverデータベースへのログイン方法|SSMSとT-SQLの2つの手順を解説
SQL Serverへのログインは、WindowsやメールアカウントにIDとパスワードでサインインするのと同じように、データベースへアクセスするための基本的な手段です。SQL Serverには、主に以下の4種類のログイン方式が用意されています。 Windowsのログイン情報を使用する認証(Windows認証) SQL Server専用に作成されたログイン(SQL Server認証) 証明書から作成されたログイン 非対称キーから作成されたログイン 本記事では、このうち実務でよく使われる「Windows資格情報によるログイン」と「SQL Server専用のログイン」の2つに焦点を当てて解説しま