高可用Windowsシステムの研究
SQL Server 2005の高可用テクノロジ編

第2回 SQL Serverの可用性向上のためのシステム構成

2.ログ配布の構成と働き

デジタルアドバンテージ
資料提供、技術協力:マイクロソフト
2007/03/12

 「ログ配布」とは、本番系のSQL Server(プライマリ・サーバ)が生成するトランザクション・ログ(データベース内のすべてのトランザクションと、それらのトランザクションによって加えられた変更を記録する情報)のバックアップを定期的に待機系サーバに転送してデータベースを冗長化し、万一の障害時には、待機系から復元処理を実行する可用性向上技術である。ログ配布のしくみを図にすると次のようになる。

ログ配布のしくみ
ログ配布では、本番系プライマリ・サーバのトランザクション・ログを待機系セカンダリ・サーバにコピーし、それを適用することで、データベースの冗長化を行う。

 プライマリ・サーバでは本番系のSQL Serverのインスタンスを実行し、ここでトランザクション・ログのバックアップをとる。プライマリ・サーバに格納されるユーザー・データベースは「プライマリ・データベース」と呼ばれる。プライマリ・データベースに指定する復旧モデルとしては、トランザクション・ログのバックアップが取得できる完全復旧モデル、または一括ログ復旧モデルのいずれかを設定しておく必要がある。復旧モデルとはトランザクション・ログの記録方法のことで、両者には次のような違いがある。なおこれ以外にも、SQL Server 2005の復旧モデルとしては、ログの切り捨てが自動的に行われる「単純復旧モデル」を選択できるが、ログ配布構成におけるプライマリ・データベースに対しては指定できない。

  • 完全復旧モデル
     すべてのトランザクション・ログが記録され、トランザクション・ログのすべてのレコードがバックアップ後まで保存される。

  • 一括ログ復旧モデル
     ほとんどの一括操作(インデックス作成、一括読み込みなど)については最小限のログが記録され、ほかのトランザクションについてはすべてのログが記録される。

 バックアップ出力されたトランザクション・ログは定期的にセカンダリ・サーバにコピーされ、続いてセカンダリ・サーバ側で指定のデータベースに対して適用(復元)される。セカンダリ・サーバは1台のプライマリ・サーバに対して複数台数を構成してもよいし、逆に1台のセカンダリ・サーバに複数のプライマリ・サーバのバックアップを持たせる構成にしてもよい。

 ログ配布におけるこれら一連の処理はSQL Serverのジョブ・タスクによって自動実行される。データベース管理者による手作業は不要である。

 監視サーバはバックアップと復元操作の履歴と状態を記録し、スケジュールどおりに処理が実行されていない場合には、オペレータへの通知タスクを実行する。ただし監視サーバは必須構成ではない。また場合によってはプライマリ・サーバまたはセカンダリ・サーバに監視サーバの役割を持たせることも可能である。しかし可用性を高めるためには、監視サーバの設置と、図に示したように、プライマリ/セカンダリ/監視の各サーバを別のコンピュータで構成することが強く推奨されている。

ログ配布の注意点

 構成にもよるが、一般的にセカンダリ・サーバに対するログ復元のタイミングには時差がある。従って万一プライマリ・サーバ側で障害が発生し、セカンダリ・サーバから手動によりフェイルオーバーを行う場合には、最初にデータを復元する必要がある。

 何らかの理由でトランザクション・ログを喪失してしまった場合には、トランザクションの損失が発生する可能性がある。例えばログ・バックアップの保存先である共有ディスクが破損したり、ネットワーク障害が発生したりして、セカンダリ・サーバにまだ適用されていないトランザクション・ログ・バックアップを損失した場合には、すでにセカンダリ・サーバへの適用を完了している以降のトランザクションは喪失する。また、プライマリ・サーバのディスク破損などにより、アクティブなトランザクション・ログのバックアップが取得できない場合は、最後のトランザクション・ログ・バックアップ以降のトランザクションは喪失する。

ログ配布の復元/復旧手順

 ログ配布における障害時の復元/復旧手順をまとめると次のようになる。なお、ロールの切り替え作業は、初回のロール切り替え(もしくは事前準備)と、次回以降で手順が一部異なっている。初めてセカンダリ・データベースにフェイルオーバーし、これを新しいプライマリ・データベースとして使用する場合には、初期ロールの切り替え手順(図の3Aの手順)が必要である。この初期手順を一度実行した後は、図の3Bの手順で、プライマリ・データベースとセカンダリ・データベース間でロールを簡単に切り替えられるようになる。

ログ配布におけるデータの復元/復旧手順
ロールの切り替え作業については、初回のみ3Aの手順が必要。それ以後は、より簡単な3Bの手順でロール切り替えが可能になる。
 

 INDEX
  [高可用Windowsシステムの研究−SQL Server 2005の高可用テクノロジ編]
  第2回 SQL Serverの可用性向上のためのシステム構成
      1.フェイルオーバー・クラスタの構成と働き
    2.ログ配布の構成と働き
      3.データベース・ミラーリングの構成とはたらき
      4.可用性向上テクノロジの比較
      5.複数の可用性向上テクノロジの組み合わせ
 
 [高可用Windowsシステムの研究]


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間