図5に登場したレプリカ(同期)モードの違いについても説明しておこう。先のウィザードではレプリカモードとして「自動フェールオーバー」以外の選択肢は「高い安全性」と「高パフォーマンス」があった。これらは言い換えると「同期」と「非同期」。違いはセカンダリの応答を待つか待たないかである。
「高い安全性(同期)」を選ぶと、アプリケーションからコミット要求を受けたらプライマリを更新し(1)、セカンダリにログを送信して(2)、書き込みを確認して(3)、コミット成功となる。安全性は高まるが、セカンダリの処理を待つことになる。もしセカンダリに選んだサーバの性能が悪ければセカンダリに性能が引きずられてしまうことになる(図6)。
ただし、北川氏によると「実質(1)と(2)は同時に進行する。遅延が発生するとしても「セカンダリにおいてログバッファからトランザクションログへ書き込む」時間にななる。一般的なSAS(Serial Attached SCSI)接続のハードディスクは、1台で1分間当たり1000回の入出力を処理できると言われているので、遅延時間は最大でも1ミリ秒程度になる」という。
一方、「高パフォーマンス(非同期)」を選ぶと、プライマリからセカンダリにログを送信するが、プライマリは自分の書き込みが終わればコミット成功をアプリケーションに返す。つまりセカンダリの処理完了を待たない(図7)。
最後にフェールオーバークラスターインスタンスとWindows Serverコアへのインストールについて言及しておこう。前者は従来のものと比べ、データベースのインストール先として共有ディスクを必要としなくなり、ネットワーク上の共有フォルダを使えるようになった。
また複数サイト(複数のサブネット)にまたがるフェールオーバークラスタリングも可能となった(従来はサブネットをまたいだクラスタリングは設定できなかった)。ゆえにネットワーク環境の制限をうけることなく、お互い離れた場所にあるサーバ同士でフェールオーバが可能になった。
Windows Server Coreへのインストールも地味ながら可用性向上に貢献する。Windows Server CoreとはGUIを持たないWindows Serverであり、ここにSQL Serverをインストールすることが可能となった。メリットは修正プログラムの適用回数を削減できること。
実はWindowsの修正プログラムのうち、かなりの割合がGUIに関係するものである。GUIを持たないWindows Server Coreなら適用すべき修正プログラムはぐんと減り、修正プログラム適用後の再起動も不要となる。再起動を減らせるということは、サーバの連続稼働を妨げる大きな要因を取り払えるということだ。その結果、AlwaysOn(常時稼働)に近づく。
次回はデータベースの処理性能向上に大きく貢献するカラムストアインデックスについて解説していく。
Copyright © ITmedia, Inc. All Rights Reserved.