(57)【要約】【課題】  同一マシン上で稼動する複数のデータベースサーバを別々のマシンに切り替えるデータベース管理システムにおけるシステム全体の系の切り替え時間を短縮する。【解決手段】  データベースサーバのチェックポイントが発生した時、そのデータベースサーバの切り替え順序をマシン内にあるサーバのうち最後に設定するように変更することで、データベースサーバの切り替え開始順序をデータベースサーバが回復処理で参照するログの量の降順に保ち、システム全体の切り替え時間を短縮する。【選択図】  図１
2005209150.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続される実行系マシンと、待機系マシンと、該実行系マシン及び待機系マシンにより共用されるデータベースを有する外部記憶装置とを含むコンピュータシステムにおいて、
該外部記憶装置は、実行系のデータベースサーバにより発生したログを記憶するログファイルを格納し、
該実行系マシンは；
ユーザの情報処理装置からのＩ／Ｏ処理要求を受けて該データベースに対するＩ／Ｏの処理を行う複数のデータベースサーバと、
該データベースサーバを待機系のデータベースサーバに切り替える順序を示す情報を登録する記憶装置と、
系の切り替え時間を短縮するように系の切り替えの順序を変更するものであって、その変更された順序は該順序情報に反映される、切り替え順序決定部と、
該順序情報に従い、順次データベースサーバを切り離して、待機系マシンへ切り替え受入れ要求を発する切り替え制御部と、を有し、
該待機系のマシンは；
ユーザの情報処理装置からのＩ／Ｏ処理要求を受けて該データベースに対するＩ／Ｏの処理を行える少なくとも１つのデータベースサーバと、
切り替え指示を受け入れるかを判断する切り替え制御部と、を有し、
該切り替え制御部で切り替え指示を受入れた場合、待機系の該データベースサーバは、該ログファイルを参照して該データベースの回復処理を行うことを特徴とするコンピュータシステム。
【請求項２】
該実行系マシンは、実行系マシンの該データベースサーバにチェックポイントが発生したことを通知する手段を有し、
切り替え順序決定部は、該通知手段からの通知を受け、チェックポイントが発生した該データベースサーバの切り替え開始の順番が、他の少なくとも1つのデータベースサーバよりも後になるように、該順序情報を変更することを特徴とする請求項１記載のコンピュータシステム。
【請求項３】
切り替え順序決定部は、実行系マシンの該データベースサーバにチェックポイント発生時刻を問い合わせる手段を有し、
前記チェックポイント発生時刻に応じて該データベースサーバの切り替え開始の順番を変更することを特徴とする請求項１記載のコンピュータシステム。
【請求項４】
前記切り替え順序決定部は、該ログファイルのログの量に応じて該データベースサーバの切り替え開始の順番を変更することを特徴とする請求項２記載のコンピュータシステム。
【請求項５】
前記切り替え順序決定部は、チェックポイントが発生した該データベースサーバの切り替え開始の順番を最後に設定するように該順序情報を変更することを特徴とする請求項２記載のコンピュータシステム。
【請求項６】
前記実行系マシン及び待機系マシンは、同一のマシンであること特徴とする請求項１乃至５のいずれかに記載のコンピュータシステム。
【請求項７】
前記実行系マシンには端末が接続され、該端末からの指示によりデータベースサーバを特定すると共に、該データベースサーバの切り替え開始の順番を変更するように、前記順序情報を変更することを特徴とする請求項１乃至５のいずれかに記載のコンピュータシステム。
【請求項８】
前記実行系マシンは、障害の発生を判断する手段を有し、
該判断手段により障害発生が検知された場合、前記切り替え制御部の実行を行うことを特徴とする請求項１乃至７のいずれかに記載のコンピュータシステム。
【請求項９】
それぞれデータベースサーバを有する実行系マシン及び待機系マシンがデータベースを共用するシステムにおける、実行系マシンのデータベースサーバから待機系マシンのデータベースサーバへ系の切り替えを行う系切り替え制御方法であって、
該実行系のデータベースサーバの系切り替えを行う順序を示す情報を記憶装置に登録するステップと、
実行系マシンにある事象が発生したことを検知するステップと、
該事象の検知により該順序情報を変更するステップと、
該変更された順序情報に従って実行系のデータベースサーバから待機系のデータベースサーバへ系の切り替え処理を行うステップと、
を有することを特徴とする系切り替え制御方法。
【請求項１０】
前記事象の発生を検知するステップは、実行系のデータベースサーバにチェックポイントが発生したことを検知し、
前記順序情報を変更するステップは、チェックポイントが発生した該データベースサーバの切り替えの順番を他のデータベースサーバよりも後になるように、該順序情報を変更することを特徴とする請求項９記載の系切り替え制御方法。
【請求項１１】
実行系のデータベースサーバによりチェックポイントの発生時刻を記憶するステップを有し、
前記事象が発生した場合、チェックポイントの発生時刻に応じて該データベースサーバの切り替えの順序を設定するように前記順序情報を変更することを特徴とする請求項９記載の系切り替え制御方法。
【請求項１２】
実行系のデータベースサーバにより発生したログを記憶するログファイルを共通の記憶装置に格納するステップを有し、
前記事象が発生した場合、該ログファイルのログの量に応じて該データベースサーバの切り替えの順序を設定するように前記順序情報を変更することを特徴とする請求項９記載の系切り替え制御方法。
【請求項１３】
実行系に障害が発生したことを検知するステップを有し、
該障害の発生が検知された時に、前記切り替え処理を行うステップを実行することを特徴とする請求項９乃至１２のいずれかに記載の系切り替え制御方法。
【請求項１４】
前記切り替え処理を行うステップは、
前記順序情報に従って指定されたデータベースサーバに関連するリソースを切り離すステップと、
待機系の切り替え先となるデータベースサーバを特定するステップと、
を有することを特徴とする請求項９乃至１３のいずれかに記載の系切り替え制御方法。
【請求項１５】
前記切り替え処理を行うステップとして、
待機系では、受入れるデータベースサーバに対応するリソースを有効化するステップと、
前記ログファイルを参照して該データベースの回復処理を行うステップと、
を有することを特徴とする請求項１４に記載の系切り替え制御方法。
【請求項１６】
実行系マシン及び待機系マシンで共用するデータベースの回復処理方法において、
実行系のデータベースサーバにより発生したログをログファイルとして、共通の記憶装置に格納するステップと、
データベースサーバの系切り替えを開始する順番を示す情報を記憶装置に登録するステップと、
実行系のデータベースサーバにチェックポイントが発生したことを検知するステップと、
チェックポイントが検知された時、該データベースサーバの切り替え開始の順番を変えて、該順序情報を変更するステップと、
変更された該順序情報に従ってデータベースサーバの切り替えを行うステップと、
切り替えられたデータベースサーバに関連して該ログファイルを参照して該データベース
の回復処理を行うステップと、
を有することを特徴とするデータベースの回復処理方法。
【請求項１７】
更に、実行系マシンで障害が発生したことを検知するステップと有し、
該ステップで障害が検知された時、前記データベースサーバの切り替えを行うこと特徴とする請求項１６記載のデータベースの回復処理方法。
【請求項１８】
複数のデータベースサーバが同一のマシン上で稼動するデータベース管理システムにおけるデータベースサーバの切り替え制御方法において、
データベースサーバの系切り替えを開始する順番を示す情報を記憶装置に登録するステップと、
あるデータベースサーバにチェックポイントが発生した場合、その発生通知を受けるステップと、
チェックポイントが発生した該データベースサーバの切り替え開始の順番が後になるように、該順序情報を変更するステップと、
システムで障害が発生した時、変更された該順序情報に従ってデータベースサーバの切り替えを実行するステップと、
を有することを特徴とする系切り替え制御方法。
【請求項１９】
前記順序情報を該記憶装置に登録する場合、順番を固定するデータベースサーバを登録し、該順序情報を変更する場合、順番を固定するデータベースサーバを変更対象から除外することを特徴とする請求項１８記載の系切り替え制御方法。
【請求項２０】
請求項８乃至１９のいずれかの項に記載の方法を実行するための機能を有するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、系切り替え制御方法に係り、特にデータベース管理システムで障害が発生した時のデータベースサーバの切り替え制御方法、更にはデータベースの回復処理に関する。
【背景技術】
【０００２】
データベース管理システムの可用性を向上する手段として、系切り替えという技術が採用されている。系切り替えとは、障害が発生したマシンの処理を別のマシンに切り替えることでシステムを回復し、障害によるサービス停止時間を短縮する技術である。
【０００３】
系切り替え制御を適用したデータベース管理システムでは、サービスを実行しているマシンごとに障害時の切り替え先となるマシンが定義され、システムが実行系（運用系）のマシンの障害を検知すると待機系のマシンへの系切り替えを行う。この種の技術として、例えば特許文献１に開示されているものがある。
【０００４】
系切り替えでは、まず実行系のリソース、例えばデータベースを格納したディスクやネットワークのアドレスなど、を待機系に切り替える。リソースの切り替えが完了すると、待機系においてデータベースサーバが実行系から引き継いだデータベースのログを参照してデータベースの回復処理を実行する。データベース回復処理が完了した時点で待機系がサービスの受け付けを開始して実行系となり、系切り替えが完了する。この技術は、非特許文献１に説明されている。
【０００５】
複数のデータベースサーバが同一マシン上で稼動するデータベース管理システムに系切り替えを適用する場合は、障害が発生したマシン上の複数のデータベースサーバを別々のマシンに切り替える構成をとることが多い。障害が発生したマシンの処理を複数マシンが分担して引き継ぐことで障害中の負荷を分散し、切り替え先マシンの負荷上昇を抑えるのである。この技術は、非特許文献２に説明されている。
【０００６】
システムの可用性を向上させるためにはまた、系の切り替えのための時間を出来るだけ短くして、システムのサービス停止時間を短縮することが望ましい。
データベースサーバ単体の切り替えに要する時間は、データベースの状態に応じて変動する。データベースサーバの切り替え処理ではリソースの切り替え処理とデータベースの回復処理を行うが、このうちデータベースの回復処理に要する時間が障害発生時のデータベースサーバの状態に依存するためである。
【０００７】
データベースの回復処理とは、障害発生時点までのデータベースの更新結果を外部記憶装置上のデータベースに反映する処理である。一般に、データベースの更新結果は、まず主記憶装置上に確保したバッファ（キャッシュメモリ）上に記憶される。バッファ上の情報はできるだけ長くバッファ上に存在させることによって外部記憶装置との入出力処理オーバーヘッドを削減している。従って、障害が発生した時点で外部記憶装置上のデータベースに反映されていない更新結果が存在する。障害発生時には、データベースを障害発生前の状態に回復するために外部記憶装置上のデータベースに反映されていない更新内容を外部記憶装置上のデータベースに反映しなければならない。
【０００８】
データベースの更新内容を外部記憶装置上のデータベースに反映するためには、ログを使用する。データベースの更新内容は、外部記憶装置のような不揮発性の記憶装置に格納されるログとして記録されている。障害発生時にはログを参照して更新処理を再実行し、更新結果を外部記憶装置上のデータベースに反映することでデータベースを回復する。
【０００９】
【特許文献１】特開２００１−２８２７６３号公報
【非特許文献１】Jim Gray and Andreas Reuter:"TRANSACTION PROCESSING:CONCEPTS AND TECHNIQUES"，Morgan Kaufmann Publishers, 1993
【非特許文献２】Aslam Nomani:"Implementing IBM DB2 Universal Database V8.1 Enterprise Server Edition with Microsoft Cluster Server", International Business Machines Corporation, 2003  Ｆｉｇ.１６（４０〜４１頁）[on line]、[2003年12月19日検索]、インターネット＜http://www-306.ibm.com/software/data/pubs/papers/esemcs/esemcs.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【００１０】
データベースの回復処理に要する時間は、データベースサーバが回復処理で参照するログの量の変化に応じて変動する。一方、複数のデータベースサーバを別々のマシンに切り替える場合は、各データベースサーバの切り替え処理は、切り替え元のマシン上で１サーバずつ順番に開始され、その後それぞれの切り替え先マシンに引き継がれて並列に実行される。そのため、複数のデータベースサーバを別々のマシンに切り替えるシステムでは、
障害発生から全データベースサーバの切り替えが完了するまでの時間がシステム全体の切り替え時間となる。
【００１１】
障害発生から各データベースサーバの切り替えが完了するまでの時間は、障害が発生してから当該データベースサーバの切り替えが開始されるまでの時間と、当該データベースサーバの切り替え処理に要する時間の和となる。従って、最後のサーバの切り替えが完了するまでの時間、すなわちシステム全体の切り替え時間を最短にするためには、サーバ単体の切り替え時間が長いサーバについて障害発生から切り替え開始までの時間を優先的に短くしなければならない。つまり、データベースサーバ単体の切り替え処理に要する時間の降順で切り替えを開始することが好ましい。
【００１２】
データベースサーバ単体の切り替え時間は、データベース回復処理で参照するログの量に依存するため、複数のデータベースサーバを別々のマシンに切り替えるシステムの切り替え時間を最短にするためには、データベースの回復処理で参照するログの量の変動に応じてデータベースサーバの切り替え順序を随時変更することが好ましい。
【００１３】
しかし、従来の技術では、データベースサーバの切り替え順序はシステム構築時に設定した順序に固定されているため、複数のデータベースサーバを別々のマシンに切り替えるシステムにおいて常に最短の系切り替え時間を保証することはできなかった。
【００１４】
本発明の目的は、同一マシン上で稼動する複数のデータベースサーバを別々のマシンに切り替えるデータベース管理システムにおいて、系の切り替え時間を短くすることにある。
本発明の他の目的は、データベースサーバが回復処理で参照するログの量の変化に応じてデータベースサーバの切り替え順序を変更して設定することにある。
【課題を解決するための手段】
【００１５】
本発明は、同一マシン上で稼動する複数のデータベースサーバを別々のマシンに切り替えるシステムにおいて、データベースサーバの切り替え順序を可変的に変更して設定するようにしたものである。
【００１６】
本発明に係る系切り替え制御方法に関する好ましい例では、それぞれデータベースサーバを有する実行系マシン及び待機系マシンがデータベースを共用するシステムにおける、実行系マシンのデータベースサーバから待機系マシンのデータベースサーバへ系の切り替えを行う系切り替え制御方法であって、実行系のデータベースサーバの系切り替えを行う順序を示す情報（順序情報）を記憶装置に登録するステップと、実行系マシンにある事象が発生したことを検知するステップと、この事象の検知により該順序情報を変更するステップと、
変更された順序情報に従って実行系のデータベースサーバから待機系のデータベースサーバへ系の切り替え処理を行うステップとを有して構成される。
上記事象の発生を検知するステップは、好ましくは、実行系のデータベースサーバにチェックポイントが発生したことを検知し、順序情報を変更するステップは、チェックポイントが発生したデータベースサーバの切り替えの順番を他のデータベースサーバよりも後になるように、順序情報を変更する。
好ましい例では、実行系のデータベースサーバにより発生したログを記憶するログファイルを共通の記憶装置に格納するステップを有し、前記事象が発生した場合、ログファイルのログの量に応じてデータベースサーバの切り替えの順序を設定するように前記順序情報を変更する。
【００１７】
また、実行系に障害が発生したことを検知するステップを有し、障害の発生が検知された時に、前記切り替え処理を行うステップを実行する。
また、前記切り替え処理を行うステップは、前記順序情報に従って指定されたデータベースサーバに関連するリソースを切り離すステップと、待機系の切り替え先となるデータベースサーバを特定するステップとを有する。
【００１８】
また、前記切り替え処理を行うステップとして、待機系では、受入れるデータベースサーバに対応するリソースを有効化するステップと、前記ログファイルを参照してデータベースの回復処理を行うステップとを有する。
このように本発明は、系の切り替え制御方法として把握されるだけでなく、データベースの回復処理方法としても把握される。
【００１９】
また、上記の方法を実行する機能を有するプログラムとして把握される。
更にコンピュータシステムに係る本発明の好ましい例では、ネットワークを介して接続される実行系マシンと、待機系マシンと、実行系マシン及び待機系マシンにより共用されるデータベースを有する外部記憶装置とを含むコンピュータシステムにおいて、外部記憶装置は、実行系のデータベースサーバにより発生したログを記憶するログファイルを格納し、
実行系マシンは、ユーザの情報処理装置からのＩ／Ｏ処理要求を受けて該データベースに対するＩ／Ｏの処理を行う複数のデータベースサーバと、データベースサーバを待機系のデータベースサーバに切り替える順序を示す情報（順序情報）を登録する記憶装置と、系の切り替え時間を短縮するように系の切り替えの順序を変更するものであって、その変更された順序は順序情報に反映される、切り替え順序決定部と、順序情報に従い、順次データベースサーバを切り離して、待機系マシンへ切り替え受入れ要求を発する切り替え制御部と、を有し、
待機系のマシンは、ユーザの情報処理装置からのＩ／Ｏ処理要求を受けて該データベースに対するＩ／Ｏの処理を行える少なくとも１つのデータベースサーバと、切り替え指示を受け入れるかを判断する切り替え制御部と、を有し、
切り替え制御部で切り替え指示を受入れた場合、待機系のデータベースサーバは、ログファイルを参照して該データベースの回復処理を行う。
【００２０】
ここで、上記実行系マシンは、実行系マシンの該データベースサーバにチェックポイントが発生したことを通知する手段を有し、切り替え順序決定部は、通知手段からの通知を受け、チェックポイントが発生したデータベースサーバの切り替え開始の順番が、他の少なくとも1つのデータベースサーバよりも後になるように、順序情報を変更する。
好ましい例では、上記切り替え順序決定部は、ログファイルのログの量に応じてデータベースサーバの切り替え開始の順番を変更する。
【００２１】
また、切り替え順序決定部は、チェックポイントが発生した該データベースサーバの切り替え開始の順番を最後に設定するように順序情報を変更する。
【発明の効果】
【００２２】
本発明によれば、複数のデータベースサーバを別々のマシンに切り替えるデータベース管理システムにおいてシステム全体の系切り替え時間を短縮することができる。
【発明を実施するための最良の形態】
【００２３】
以下、図面を参照して本発明の実施例について詳細に説明する。
図１は、一実施例によるデータベース管理システムの概念を示す図である。
このデータベース管理システムは、マシンＡ（１００）、マシンＢ（１０１）、マシンＣ（１０２）およびマシンＤ（１０３）の複数のマシンで構成されている。マシンＡ（１００）は、複数のデータベースサーバa（１１１）、データベースサーバｂ（１１２）、データベースサーバｃ（１１３）を有し、実行系としてこれら３つのサーバが稼動している。
マシンB，C，Dは実行系マシンＡに対する待機系のマシンとして定義され、それぞれ1台の待機系データベースサーバを有している。勿論、待機系のマシンＢ（１０１），Ｃ（１０２），Ｄ（１０３）は、実行系のマシンＡと同様にそれぞれ複数のデータベースサーバを有するものと考えてもよい。
【００２４】
マシンＡ（１００）で、ＯＳ（オペレーティングシステム）ダウンや通信障害などのハード的或いはソフト的な障害が発生すると、マシンＡ上で稼動するデータベースサーバａ、データベースサーバｂ、データベースサーバｃの処理はそれぞれマシンＢ、マシンＣ、マシンＤに切り替えられる。
【００２５】
図２は、データベース回復処理時に参照される複数のデータベースサーバのログ量の変化を表すグラフである。
このグラフの縦軸はデータベース回復時に参照するログの量を表し、横軸は時刻を表す。
線２１１は、データベースサーバａがデータベース回復時に参照するログの量の時間変化を示す。線２１２は、データベースサーバｂがデータベース回復時に参照するログの量の時間変化を示す。線２１３は、データベースサーバｃがデータベース回復時に参照するログの量の時間変化を示す。
このグラフの表す期間では、時刻Ｔ１にデータベースサーバａのチェックポイントが発生し、時刻Ｔ２にデータベースサーバｂのチェックポイントが発生し、時刻Ｔ３にデータベースサーバｃのチェックポイントが発生している。
【００２６】
ここで、チェックポイントとは、その時点までのデータベースの更新結果が外部記憶装置上のデータベースに完全に反映されていることが保証される時点である。チェックポイントが発生すると、データベースサーバは、主記憶上のバッファ（キャッシュメモリ）に格納された更新結果を外部記憶装置上のデータベースに格納し、外部記憶装置上のデータベースを最新の状態にする。障害発生時のデータベースの回復処理では、最新のチェックポイントから障害発生時点までの更新結果をデータベースに反映する。従って、データベースサーバがデータベースの回復処理で参照するログは最新のチェックポイントから障害発生時点までのログとなり、読み込むログの量が削減され、データベースの回復処理時間
の短縮が図れる。
【００２７】
さて、説明を図２のグラフに戻す。
このグラフに示すように、各データベースサーバが回復処理で参照するログの量は、時間経過とともに単調増加する。そしてチェックポイントが発生すると、その時点でそのログは更新されてデータベースに反映されるので、ログの量はゼロになる。例えば、データベースサーバａがデータベース回復時に参照するログの量は、時刻Ｔ０から時刻Ｔ１まで単調増加し、時刻Ｔ１でゼロになる。時刻Ｔ１以降、再び単調に増加する。
【００２８】
図１０は、図２のグラフに示す期間の切り替え順序情報を示す。
図１０において、（ａ）、（ｂ）、（ｃ）、（ｄ）は、それぞれ期間Ｔ０からＴ１、Ｔ１からＴ２、Ｔ２からＴ３、Ｔ３以降の切り替え順序情報を示している。例えば、期間Ｔ０からＴ１の切り替え順序は、図１０（ａ）に示すとおり、データベースサーバａ、データベースサーバｂ、データベースサーバｃの順である。
この切り替え順序とデータベースサーバの対を示すテーブルは、図１の切り替え順序情報１３０として外部記憶装置又は主記憶装置（図３）に記憶される。
【００２９】
本実施例では、マシンＡ（１００）上で障害が発生するまでは、切り替え順序決定部１０４がデータベースサーバの切り替え順序の決定処理を実行する。マシンＡ（１００）上で障害が発生すると、切り替え順序決定部１０４が決定した切り替え順序情報１３０に従って、切り替え制御部１０５がデータベースサーバの切り替えを実行する。
【００３０】
マシンＡ（１００）における切り替え順序の決定方法について説明する。
図１において、切り替え順序決定部１０４は、マシンＡ（１００）上のデータベースサーバの切り替え順序を決定する。切り替え順序決定部１０４は、データベースサーバ実行系１１１からチェックポイント発生通知１６１を受信すると、チェックポイントが発生したデータベースサーバ１１１の切り替えの順番を最後にして、切り替えの順番が当該データベースサーバ１１１以降であったデータベースサーバの切り替え順序を１つずつ繰り上げる。
【００３１】
例えば、図２のグラフの時刻Ｔ１でデータベースサーバaでチェックポイントが発生した場合の動作を説明する。
チェックポイントが発生する前の切り替え順序は、図１０（ａ）に示すとおりデータベースサーバａ、データベースサーバｂ、データベースサーバｃの順である。データベースサーバａのチェックポイントが発生すると、データベースサーバａ実行系１１１が、切り替え順序決定部１０４にチェックポイント発生通知１６１を送信する。切り替え順序決定部１０４は、データベースサーバａ実行系１１１からチェックポイント発生通知１６１を受信すると、データベースサーバａの切り替え順序を最後に設定して、データベースサーバｂの切り替え順序を２番目から１番目に変更し、データベースサーバｃの切り替え順序を３番目から２番目に変更する。その結果、切り替え順序情報１３０の切り替え順序は、図１０（ｂ）に示すとおり、データベースサーバｂ、データベースサーバｃ、データベース
サーバａの順となる。
【００３２】
このとき、図２のグラフの時刻Ｔ１における各データベースサーバが回復処理で参照するログの量に注目すると、データベースサーバｂとデータベースサーバｃに関しては回復処理で参照するログの量が単調増加を続けており、データベースサーバａに関しては回復処理で参照するログの量がゼロになっている。この後、データベースサーバｂでチェックポイントが発生する時刻（Ｔ２）までは、各データベースサーバが回復処理で参照するログの量は単調増加を続ける。従って、切り替え順序情報１３０の切り替え順序は、各データベースサーバが回復処理で参照するログの量の降順となる。
【００３３】
次に、マシンＡ（１００）で障害が発生した場合の切り替え処理について説明する。
この場合、切り替え制御部１０５が、マシンＡ（１００）の障害を検知してデータベースサーバの切り替えを制御する。切り替え制御部１０５は、切り替え順序決定部１０４が作成した切り替え順序情報１３０に示された順番でデータベースサーバの切り替えを開始する。
【００３４】
例えば、時刻Ｔ１からＴ２の間に障害が発生した場合、切り替え順序情報１３０の切り替え順序は、図１０（ｂ）に示すとおりデータベースサーバｂ、データベースサーバｃ、データベースサーバａの順である。従って、切り替え制御部１０５は、まず、データベースサーバｂ実行系１１２に切り替え開始指示１３１を発行し、マシンＣ（１０２）の切り替え制御部１０５に切り替え受入要求１４１を発行する。次に、データベースサーバｃ実行系１１３に切り替え開始指示１３２を発行し、マシンＤ（１０３）の切り替え制御部１０５に切り替え受入要求１４２を発行する。最後に、データベースサーバａ実行系１１１に切り替え開始指示１３３を発行し、マシンＤ（１０３）の切り替え制御部１０５に切り替え受入要求１４３を発行する。
【００３５】
切り替え受入要求を受けたマシンは、当該マシン上のデータベースサーバ待機系に切り替え受入指示を発行する。図１の例では、マシンＢ（１０１）おいて切り替え制御部１０５がデータベースサーバａ待機系１２１に切り替え受入指示１５１を発行し、マシンＣ（１０２）おいて切り替え制御部１０５がデータベースサーバｂ待機系１２２に切り替え受入指示１５２を発行し、マシンＤ（１０３）おいて切り替え制御部１０５がデータベースサーバｃ待機系１２３に切り替え受入指示１５３を発行する。
【００３６】
切り替え受入指示を受けた各データベースサーバ待機系１２１〜１２３は、対応するデータベースサーバの処理、例えばアプリケーションの処理要求を受けてその処理を実行することを実行系から引き受ける。図１の例では、データベースサーバａ待機系１２１はデータベースサーバａ実行系１１１からデータベースサーバａの処理を引き継ぐ。またデータベースサーバｂ待機系１２２はデータベースサーバｂ実行系１１２からデータベースサーバｂの処理を引き継ぎ、データベースサーバｃ待機系１２３はデータベースサーバｃ実行系１１３からデータベースサーバｃの処理を引き継ぐ。これらの処理は、各マシン上で並列に実行される。
【００３７】
このとき、図２のグラフの期間Ｔ１からＴ２を参照すると、各データベースサーバがデータベース回復処理で参照するログの量は、データベースサーバｂ、データベースサーバｃ、データベースサーバａの順で少ない。そのため、データベース回復処理に要する時間は、データベースサーバｂ、データベースサーバｃ、データベースサーバａの順で短い。
【００３８】
従って、切り替え順序決定部１０４が作成した切り替え順序情報１３０に示された順番で、切り替え制御部１０５はデータベースサーバの切り替えを開始する。このように、切り替え時間が長い（即ちログの量が多い）データベースサーバから優先的に系の切り替えを開始することができるので、システム全体の切り替え時間を最短にすることができる。
【００３９】
なお、上記の例では、実行系マシンＡの待機系として、それぞれ異なる３つのマシンＢ（１０１）、マシンＣ（１０２）およびマシンＤ（１０３）に、待機用のデータベースサーバ１２１〜１２３を配置しているが、実行系のデータベースサーバと待機系のデータベースサーバを１つのマシン、例えばマシンＡ内に配置することも可能である。
【００４０】
図３は、一実施例が適用されるコンピュータシステムの構成例を示す図である。
このコンピュータシステムは、情報処理装置３０００、３１００、３２００を含み、ネットワーク３００９を介して情報処理装置３０００は、情報処理装置３１００および３２００に接続される。ここで、情報処理装置３０００はクライアントであり、情報処理装置３１００及び３２００はサーバとして機能する。
【００４１】
情報処理装置３０００は、ＣＰＵ３００２、主記憶装置３００１、通信制御装置３００３、Ｉ／Ｏ制御装置３００４及び端末３００６を有して構成される。主記憶装置３００１には、アプリケーションプログラム３００８が格納され、このプログラム３００８はＣＰＵ３００２で実行される。アプリケーションプログラム３００８が情報処理装置３１００または３２００に問い合わせを行うと、情報処理装置３０００の通信制御装置３００３と情報処理装置３１００または３２００の通信制御装置３１０３または３２０３によって、ネットワーク３００９を経由してデータベース管理システムに問い合わせ要求が送られる。
【００４２】
情報処理装置３１００は、ＣＰＵ３１０２、主記憶装置３１０１、通信制御装置３１０３、Ｉ／Ｏ制御装置３１０４、磁気ディスク装置等の外部記憶装置３０１１、３０１２及び端末３００６を有して構成される。主記憶装置３１０１には、データベース管理システム実行系処理部３３００を持つプログラムが格納され、これはＣＰＵ３００２で実行される。また、データベースへのアクセスで使用するバッファ（即ちキャッシュメモリ）３１０５も主記憶装置３１０１に配置される。外部記憶装置３０１１上にはデータベース管理システムが管理するデータベース３５００とログファイル３６００が格納される。外部記憶装置３０１２上にはデータベース管理システム実行系処理部３３００を実現する処理プログラム３１１０及び切り替え順序情報１３０のテーブルが格納される。データベース管
理システム実行系処理部３３００は、Ｉ／Ｏ制御装置３１０４により外部記憶装置３０１１、３０１２からデータの読み出し／書き込みを行い、通信制御装置３１０３によりネットワーク３００９を介して他の情報処理装置とデータの送受信を行う。また、データベース管理システム実行系処理部３３００は、通信制御装置３１０３によりネットワーク３００９で接続された情報処理装置３００２に切り替え受入要求を送信する。
【００４３】
情報処理装置３２００は、ＣＰＵ３２０２、主記憶装置３２０１、通信制御装置３２０３、Ｉ／Ｏ制御装置３２０４、磁気ディスク装置等の外部記憶装置３０１１、３０１３及び端末３００６を有して構成される。主記憶装置３２０１には、データベース管理システム待機系処理部３４００のプログラムが格納され、ＣＰＵ３２０２で実行される。また、データベースへのアクセスで使用するバッファ３００５も主記憶装置３２０１に配置かれる。外部記憶装置３０１１上にはデータベース管理システムが管理するデータベース３５００とログファイル３６００が格納される。外部記憶装置３０１３上にはデータベース管理システム待機系処理部３４００を実現する処理プログラム３２１０が格納される。データベース管理システム待機系処理部３４００は、Ｉ／Ｏ制御装置３２０４により外部記憶
装置３０１１、３０１３からデータの読み出し／書き込みを行い、通信制御装置３２０３によりネットワーク３００９で接続された情報処理装置とデータの送受信を行う。また、データベース管理システム待機系処理部３４００は、通信制御装置３２０３によりネットワーク３００９で接続された情報処理装置３００１から切り替え受入要求を受信する。
【００４４】
ここで、外部記憶装置３０１１は共用ディスクであり、実行系の情報処理装置３２００と待機系の情報処理装置３１００の両方に関連付けられている。外部記憶装置３０１１には、情報処理装置３２００に配置されたデータベース管理システム待機系処理部３４００に対応するデータベースサーバが管理するデータベース３５００とログファイル３６００が格納されている。対応するデータベースサーバが切り替えられていない時には、データベース管理システム実行系処理部３３００がデータベース３５００とログファイル３６００を管理する。一方、データベースサーバが切り替えられた時には、データベース管理システム待機系処理部３４００がこれらを管理する。
データベース３５００は、このデータベース管理システムにおいてアクセス対象となるデータを永続的または一時的に格納する。また、ログファイル３６００は、データベース３５００の更新内容を記録するログを永続的または一時的に格納する。
尚、切り替えるリソースとしては、データベースを格納したディスク、ネットワークのアドレスなどである。
【００４５】
図４は、データベース管理システム実行系処理部３３００の機能構成を示す。
データベース管理システム実行系処理部３３００は、切り替え順序決定部４０１、実行系切り替え制御部４０２及びデータベースサーバ実行系処理部４０３を具備する。データベースサーバ実行系処理部４０３は、複数の実行系処理部から成り、マシン上で稼動するデータベースサーバの数だけ配置される。各処理部１〜ｎは、例えば入出力（Ｉ／Ｏ）を並列に処理できるソフトウェアの処理単位である。
【００４６】
切り替え順序決定部４０１は、データベースサーバ実行系処理部４０３から送信されるチェックポイント発生通知１６１を受信して、複数のデータベースサーバの切り替え順序を決定する。そして、決定した切り替え順序を切り替え順序情報１３０として記録する。
【００４７】
実行系切り替え制御部４０２は、データベースサーバの切り替えを制御する。データベース管理システムを構成するマシンで障害を検知すると、まず、マシン上で稼動しているデータベースサーバ実行系処理部４０３に切り替え開始指示を送信する。次に、各データベースサーバに対応するリソースを切り離し、データベースサーバ実行系処理部４０３に対応するデータベースサーバ待機系処理部が配置されているマシンの待機系切り替え制御部に切り替え受入要求を送信する。
【００４８】
データベースサーバ実行系処理部４０３は、対応するデータベースサーバが切り替えられていない場合に、アプリケーションプログラム３００８から投入される問い合わせを受け付け、外部記憶装置上に記憶されるデータベース３５００にアクセスし、必要に応じてアクセス結果をアプリケーションプログラム３００８に返す。データベースサーバにチェックポイントが発生すると、切り替え順序決定部４０１にチェックポイント発生通知１６１を送信する。また、実行系切り替え制御部４０２から切り替え開始指示を受信すると、切り替えを開始する。
【００４９】
図５は、データベース管理システム待機系処理部３４００の機能構成を示す。
データベース管理システム待機系処理部３４００は、待機系切り替え制御部５０１とデータベースサーバ待機系処理部５０２を具備する。データベースサーバ実行系処理部４０３は、障害発生時にマシン上で稼動するデータベースサーバの数だけ配置される。
【００５０】
待機系切り替え制御部５０１は、待機系においてデータベースサーバの切り替えを制御する。実行系切り替え制御部４０２から切り替え受入要求を受信すると、受け入れるデータベースサーバに対応するリソースを有効化する。次に、前記データベースサーバに対応するデータベースサーバ待機系処理部５０２に切り替え受入指示を送信する。
【００５１】
データベースサーバ待機系処理部５０２は、対応するデータベースサーバが切り替えられている場合に、対応するデータベースサーバ実行系処理部４０３の処理を代行する。すなわち、アプリケーションプログラム３００８から投入される問い合わせを受け付け、外部記憶装置上に記憶されるデータベース３５００にアクセスし、必要に応じてアクセス結果をアプリケーションプログラム３００８に返す。また、待機系切り替え制御部５０１から切り替え受入指示を受信すると、データベースサーバの切り替えを受け入れ、データベースの回復処理を実行する。
【００５２】
図６は、データベース管理システム実行系処理部３３００の系切り替えに関する処理手順を示すフローチャートである。
まず、切り替え順序決定部４０１により切り替え順序決定処理を実行する（６０１）。次に、データベース実行系処理部４０３で障害が発生しているか否か（障害の有無）を判定する（６０２）。障害が発生していない場合には処理を終了し（６０４）、障害が発生している場合には、実行系切り替え制御部４０２により、実行系切り替え制御処理を実行する（６０３）。この処理の実行が終わると、処理を終了する（６０４）。
尚、切り替え順序決定部４０１の処理については図７を参照し、また実行系切り替え制御部４０２の処理については図８を参照して、後述する。
【００５３】
図７は、切り替え順序決定部４０１の処理手順を示すフローチャートである。
まず、切り替え順序情報１３０を初期化する（７０１）。作成する切り替え順序情報１３０は、システム構築時にデータベースサーバを登録した順序等に基づいて、その初期値を決定している。
【００５４】
次に、データベースシステムが正常稼動中であるかどうかを判定し（７０２）、正常稼動中でない場合は処理を終了する（７０５）。一方、正常稼動中の場合は、データベースサーバにチェックポイントが発生しているかどうかを判定する（７０３）。この判定の結果、チェックポイントが発生していない場合はステップ７０２に戻り、チェックポイントが発生している場合は、切り替え順序情報の更新を行う（７０４）。
チェックポイント発生の有無は、データベースサーバ実行系処理部４０３からチェックポイント発生通知１６１が届いているかどうかで判定する。
【００５５】
切り替え順序情報１３０の更新処理（７０４）において、具体的には、チェックポイントが発生したデータベースサーバの切り替えの順番を最後に設定し、切り替えの順番が当該データベースサーバ以降であったデータベースサーバの切り替え順序を１つずつ繰り上げる。そして、この更新処理が完了した後は、ステップ７０２に戻る。
【００５６】
図８は、実行系切り替え制御部４０２の処理手順を示すフローチャートである。
まず、切り替え順序情報１３０を取得し（８０１）、最初に切り替える対象を特定して（８０２）、ステップ８０３に進む。
次に、切り替え対象データベースサーバのデータベースサーバ実行系処理部４０３に対して切り替え開始指示を発行し（８０３）、そのデータベースサーバに対応するリソースを切り離し（８０４）、切り替え先マシンの待機系切り替え制御部５０１に切り替え受入要求を送信する（８０５）。
【００５７】
そして、次の切り替え対象データベースサーバがあるかどうかを判定する（８０６）。
判定の結果、切り替え対象のデータベースサーバが在る場合には、次の切り替え対象を特定して（８０７）、その後ステップ８０３に戻る。一方、切り替え対象のデータベースサーバが無い場合には、処理を終了する（８０８）。
【００５８】
本実施例におけるデータベース管理システム待機系処理部３４００の系切り替えに関する処理手順は、次のとおりである。
まず、待機系切り替え制御部５０１において、待機系切り替え制御処理を実行する。そして次に、データベースサーバ待機系処理部５０２において、データベースサーバの切り替えを受け入れ、データベースの回復処理を実行して切り替え処理を完了する。
【００５９】
ここで、図９に示すフローチャートを参照して、待機系切り替え制御部５０１の処理手順について説明する。
まず、切り替え受入要求の有無を判定する（９０１）。切り替え受入要求の有無は、実行系切り替え制御部４０２から切り替え受入要求が届いているかどうかで判定する。
【００６０】
この判定の結果、切り替え受入要求が無い場合にはステップ９０１を繰り返す。一方、切り替え受入要求が有る場合には、受け入れるデータベースサーバに対応するリソースを有効化する（９０２）。即ち、待機系のデータベースサーバからデータベースを格納した外部記憶装置へのアクセスできるようにアドレスの設定等が行われる。次に、データベースサーバ待機系処理部５０２に切り替え受入指示を送信し（９０３）、処理を終了する（９０４）。
【００６１】
さて、次にデータベースサーバ待機系処理部５０２の系切り替えに関する処理手順について説明する。
その手順としては、まず、待機系切り替え制御部５０１より、切り替え受入指示を受信する。次に、受け入れるデータベースサーバのログファイル３６００を参照して、データベース３５００の回復処理を実行する。
【００６２】
次に、図２及び図１０を参照して、データベースサーバ待機系処理部５０２がデータベースの回復処理で参照するログの量と系切り替え順序の関係の移り変わりについて説明する。
【００６３】
例えば、期間Ｔ１からＴ２の間に障害が発生すると、切り替え制御部は図１０（ｂ）の切り替え順序でデータベースサーバの切り替えを開始する。すなわち、データベースサーバｂ、データベースサーバｃ、データベースサーバａの順で切り替えを開始する。このとき、各データベースサーバがデータベースの回復処理で参照するログの量は、図２に示すとおり、データベースサーバｂ、データベースサーバｃ、データベースサーバａの順で少なくなる。
【００６４】
図２のグラフの時刻Ｔ２で、チェックポイントが発生する前の切り替え順序は、図１０（ｂ）に示すとおりデータベースサーバｂ、データベースサーバｃ、データベースサーバａの順である。データベースサーバｂでチェックポイントが発生すると、データベースサーバｂの切り替え順序を最後に設定し、データベースサーバｃの切り替え順序を２番目から１番目に変更し、データベースサーバａの切り替え順序を３番目から２番目に変更する。その結果、切り替え順序情報１３０の切り替え順序は、図１０（ｃ）に示すとおりデータベースサーバｃ、データベースサーバａ、データベースサーバｂの順となる。
【００６５】
従って、期間Ｔ２からＴ３の間に障害が発生すると、切り替え制御部は図１０（ｃ）の切り替え順序でデータベースサーバの切り替えを開始する。すなわち、データベースサーバｃ、データベースサーバａ、データベースサーバｂの順で切り替えを開始する。このとき、各データベースサーバがデータベースの回復処理で参照するログの量は、図２に示すとおり、データベースサーバｃ、データベースサーバａ、データベースサーバｂの順で少なくなる。
【００６６】
図１１と図１２は、本実施例におけるシステム全体の系切り替え時間の内訳を示す図である。
システム全体の系切り替え時間は、障害発生時点から、データベースサーバａ、データベースサーバｂおよびデータベースサーバｃの切り替えが完了するまでの時間である。
障害発生から各データベースサーバの切り替えが完了するまでの時間は、障害が発生してから当該データベースサーバの切り替えが開始されるまでの時間と、当該データベースサーバに関するリソースの切り替えに要する時間と、待機系の初期化に要する時間と、ＤＢの回復に要する時間の和である。
障害が発生してからデータベースサーバの切り替えが開始されるまでの時間は、系切り替えの開始順序に依存する。
切り替え順序が１番目のデータベースサーバの場合は、システムの障害検知時間１秒に等しい。
切り替え順序が２番目のデータベースサーバの場合は、システムの障害検知時間１秒と１番目のサーバに関するリソース切り替え処理のうちマシンＡ（１００）での処理が完了すまでの時間１．５秒の和で、２．５秒となる。
切り替え順序が３番目のデータベースサーバの場合は、システムの障害検知時間１秒と１番目のサーバに関するリソース切り替え処理のうちマシンＡ（１００）での処理が完了するまでの時間１．５秒と、２番目のサーバに関するリソース切り替え処理のうちマシンＡ（１００）での処理が完了するまでの時間１．５秒の和で、４秒となる。
ＤＢの回復に要する時間は、回復に参照するログの量に比例する。
例えば、図２の期間Ｔ２からＴ３の間に障害が発生した場合には、データベースサーバｂ、データベースサーバａ、データベースサーバｃの順で長くなる。
【００６７】
次に、ブレードサーバブレードサーバのようなサーバ数の多い環境に本発明を適用した場合のシステム全体の系切り替え時間について説明する。
【００６８】
図１１は、ブレードサーバで構成するシステムにおける障害発生時の系切り替え動作の例を示す図である。
システムは、マシン１（１１０１）からマシン１４（１１０４）までの１４台で構成されており、ｉ番目のマシンであるマシンｉ（１１０３）には、データベースサーバ１（１１１１）からデータベースサーバ１３（１１１３）までの１３個のデータベースサーバが配置されている。
本システムにおいて、マシンｉ（１１０３）に障害が発生すると、マシンｉ（１１０３）上の１３個のデータベースサーバは、システム内のマシンｉ（１１０３）以外の１３台のマシンに切り替えられる。
このとき、切り替え後の各マシンの負荷を均等にするために、１つのマシンに切り替えるデータベースサーバの数は１つとするのが一般的である。すなわち、マシンｉ（１１０３）上のデータベースサーバと切り替え先マシンは１対１の対応関係になる。
【００６９】
図１２は、図１１に示した障害発生時の動作例における各データベースサーバの直近のチェックポイント発生時刻、ＤＢ回復時に参照するログの量及びＤＢ回復に要する時間を示す図である。
直近のチェックポイント発生時刻は、データベースサーバ１が１５時１２分２８秒で最も遅く、データベースサーバ１３が１５時１２分１６秒で最も早い。
ＤＢ回復時に参照するログの量は、データベースサーバ１が１００件で最も少なく、データベースサーバ１３が１３００件で最も多い。これは、ＤＢ回復時に参照するログ量は、直近のチェックポイントからの経過時間に比例するためである。
ＤＢ回復に要する時間は、データベースサーバ１が１秒で最も短く、データベースサーバ１３が１３秒で最も長い。これは、ＤＢ回復に要する時間は、ＤＢ回復時に参照するログ量に比例するためである。
【００７０】
図１３は、システム構築時に指定した切り替え順序を示す図である。
切り替え順序は、データベースサーバ１、データベースサーバ２、データベースサーバ３の順番で、データベースサーバ１３が最終である。
【００７１】
図１４は、図１１に示した障害発生時の動作例において本実施例による切り替え順序方法を適用した場合の切り替え順序を示す図である。
切り替え順序は直近のチェックポイント発生時刻の昇順となるため、データベースサーバ１３、データベースサーバ１２、データベースサーバ１１の順番で、データベースサーバ１が最終である。
【００７２】
さて、説明をシステム全体の系切り替え時間に戻す。
システム全体の系切り替え時間は、障害発生時点から、全データベースサーバ（データベースサーバ１からデータベースサーバ１３）の切り替えが完了するまでの時間である。
障害発生から各データベースサーバの切り替えが完了するまでの時間は、障害が発生してから当該データベースサーバの切り替えが開始されるまでの時間と、当該データベースサーバに関するリソースの切り替えに要する時間と、待機系の初期化に要する時間と、ＤＢの回復に要する時間の和である。
障害が発生してからデータベースサーバの切り替えが開始されるまでの時間は、系切り替えの開始順序に依存する。
切り替え順序が１番目のデータベースサーバの場合は、システムの障害検知時間１秒に等しい。
切り替え順序が２番目のデータベースサーバの場合は、システムの障害検知時間１秒と１番目のサーバに関するリソース切り替え処理のうちマシンｉ（１１０３）での処理が完了するまでの時間０．５秒の和で、１．５秒となる。
【００７３】
切り替え順序が１３番目のデータベースサーバの場合は、システムの障害検知時間１秒と１番目のサーバから１２番目のサーバについてマシンｉ（１１０３）でのリソース切り替え処理が完了するまでの時間６秒（０．５秒×１２）の和で、７秒となる。
ＤＢの回復に要する時間は、図１２に示したとおりである。
【００７４】
図１５は、図１１に示した障害発生時の動作例において、システム構築時の切り替え順序で系切り替えを実行した場合のシステム全体の系切り替え時間の内訳を示す図である。
データベースサーバの切り替え順序は、図１３に示したとおりである。
【００７５】
図１５は、図１１に示した障害発生時の動作例において、システム構築時の切り替え順序で系切り替えを実行した場合のシステム全体の系切り替え時間の内訳を示す図である。
データベースサーバの切り替え順序は、図１３に示したとおりである。
図１５に示すとおり、最初に系切り替えを開始するのはデータベースサーバ１であり、最後に系切り替えを開始するのはデータベースサーバ１３である。また、最初に系切り替えが完了するのはデータベースサーバ１であり、最後に系切り替えが完了するのはデータベースサーバ１３である。
このとき、障害発生からデータベースサーバ１の切り替え完了までの時間は４秒である。
内訳は、切り替え開始までの時間１秒、リソースの切り替え時間１秒、待機系の初期化時間１秒およびＤＢ回復時間１秒である。一方、障害発生からデータベースサーバ１３の切り替え完了までの時間は２２秒である。内訳は、切り替え開始までの時間７秒、リソースの切り替え時間１秒、待機系の初期化時間１秒およびＤＢ回復時間１３秒である。
従って、システム全体の系切り替え時間は、障害発生かららデータベースサーバ１３の切り替え完了までの時間となり、２２秒となる。
【００７６】
図１６は、図１１に示した障害発生時の動作例において、本実施例による方法で決定した切り替え順序で系切り替えを実行した場合のシステム全体の系切り替え時間の内訳を示す図である。
データベースサーバの切り替え順序は、図１３に示したとおりである。
図１６に示すとおり、最初に系切り替えを開始するのはデータベースサーバ１３であり、最後に系切り替えを開始するのはデータベースサーバ１である。また、最初に系切り替えが完了するのはデータベースサーバ１であり、最後に系切り替えが完了するのはデータベースサーバ１３である。
このとき、障害発生からデータベースサーバ１の切り替え完了までの時間は１０秒である。内訳は、切り替え開始までの時間７秒、リソースの切り替え時間１秒、待機系の初期化時間１秒およびＤＢ回復時間１秒である。一方、障害発生からデータベースサーバ１３の切り替え完了までの時間は１６秒である。内訳は、切り替え開始までの時間１秒、リソースの切り替え時間１秒、待機系の初期化時間１秒およびＤＢ回復時間１３秒である。
従って、システム全体の系切り替え時間は、障害発生かららデータベースサーバ１３の切り替え完了までの時間となり、１６秒となる。
【００７７】
図１５と図１６を比較すると、本実施例による方法で切り替え順序を決定することにより、システム全体の系切り替え時間は、システム構築時に設定した順序でデータベースサーバを切り替えた場合の系切り替え時間に比べて約７２％に短縮することが分かる。
【００７８】
このように、本実施例による方法で系切り替え順序を制御することにより、常にデータベースサーバの切り替え順序を、データベースサーバが回復処理で参照するログの量の降順に保ち、システム全体の切り替え時間を最短にすることができる。
【００７９】
なお、本実施形態で示したデータベース管理システム実行系処理部３３００の処理及びデータベース管理システム待機系処理部３４００の処理は、図３で例として示したコンピュータシステムにおけるプログラムとして実行される。しかし、そのプログラムは図３の例のようにコンピュータシステムに物理的に直接接続される外部記憶装置に格納されるものに限定されない。例えばハードディスク装置、フレキシブルディクス装置等のコンピュータで読み書きできる記録媒体にこれらのプログラムを格納することができる。また、ネットワークを介して図３のコンピュータシステムを構成する情報処理装置とは別の情報処理装置に接続される外部記憶装置に格納することもできる。
【００８０】
上記実施例において、チェックポイントが発生したデータベースサーバの切り替え順序をマシン内にあるサーバのうち最後に設定するように変更している。この変形例として、例えば複数あるデータベースサーバ１〜ｎのうち特定のサーバiの切り替えを常に最初に行うように設定してもよい。常に最初にデータの更新処理を行うこのサーバiは他のサーバよりもサービス上優先的に扱われる。この場合の切り替え順序は、特定のサーバiを除いた複数のサーバのうちで、前述した実施例のようにチェックポイントが発生したサーバの切り替え順序を最後に設定するように変更する。
【００８１】
また他の例として、上記変形例とは反対に、ある特定のサーバjの切り替えは常に最後に行うように設定してもよい。常に最後にデータの更新処理を行うこのサーバjは他のサーバよりもサービス上、最低の順位で扱われる。この場合の切り替え順序は、特定のサーバjを除いた複数のサーバのうちで、前述した実施例のようにチェックポイントが発生したサーバの切り替え順序を最後から２番目に設定するように変更する。この場合でも、チェックポイントが発生したサーバの切り替え順序は、遅い順位になるので、系の切り替え時間は従来に比べて短くなる。
【００８２】
上記のような、特定のサーバに関する系の切り替えを最初または最後に設定する例では、例えば図７のステップ７０１に、切り替え順序を固定するデータベースサーバの情報を登録する処理を追加し、ステップ７０４に上記のような切り替え順序を最初または最後に固定するデータベースサーバを切り替え順序変更対象から除外する処理を追加することにより実現できる。
【００８３】
また、上記実施例では、チェックポイント発生通知の受信を契機として、チェックポイントが発生したデータベースサーバの切り替え順序をマシン内にあるサーバのうち最後に設定するように変更している。この変形例として、切り替え順序決定部が各データベースサーバにチェックポイント発生時刻を問い合わせて、チェックポイント発生時刻の古い順になるように系切り替え順序を設定してもよい。
【００８４】
上記のような、各データベースサーバにチェックポイント発生時刻を問い合わせて系切り替え順序を変更する例では、例えば図７のステップ７０３を、データベースサーバ実行系処理部にチェックポイント発生時刻を問い合わせてチェックポイント発生時刻の変更の有無をチェックするステップに変更し、ステップ７０４に、切り替え開始がチェックポイント発生時刻の古い順になるように切り替え順序を変更する処理を追加することにより実現できる。
【００８５】
また、上記実施例によれば、システムに障害が発生した時に、系の切り替え制御を行うようにしている。しかしながら変形例によれば、システムに障害が発生した場合に限らず、例えばシステムの保守員により強制的に端末３００６を操作して系を切り替えることもできる。このような場合でもチェックポイントが発生したサーバの切り替え順序を遅らせるようにして系を切り替えれば、切り替え時間の短縮化を図ることができる。
【００８６】
この他にも、本発明の趣旨を逸脱しない範囲で種々変形、応用して実施し得るであろう。
【図面の簡単な説明】
【００８７】
【図１】本発明の一実施形態によるデータベース管理システムの概念図である。
【図２】データベース回復処理時に参照される複数のデータベースサーバのログ量の変化を示すグラフである。
【図３】一実施例が適用されるコンピュータシステムの構成例を示す図である。
【図４】一実施形態におけるデータベース管理システム実行系処理部3300の機能構成を示す図である。
【図５】一実施形態におけるデータベース管理システム待機系処理部3400の機能構成を示す図である。
【図６】一実施形態におけるデータベース管理システム実行系処理部3300の処理手順を示すフローチャートである。
【図７】一実施形態における切り替え順序決定処理の処理手順を示すフローチャートである。
【図８】一実施形態における実行系切り替え制御処理の処理手順を示すフローチャートである。
【図９】一実施形態における待機系切り替え制御処理の処理手順を示すフローチャートである。
【図１０】一実施形態における系の切り替え順序情報の一例を示す図である。
【図１１】一実施形態におけるブレードサーバで構成するシステムにおける障害発生時の動作の一例を示す図である。
【図１２】一実施形態におけるデータベースサーバの直近のチェックポイント発生時刻、ＤＢ回復時に参照するログの量及びＤＢ回復に要する時間を示す図である。
【図１３】一実施形態におけるシステム構築時の切り替え順序の一例を示す図である。
【図１４】一実施形態における本発明適用時の切り替え順序の一例を示す図である。
【図１５】一実施形態における本発明非適用時の系切り替え時間の内訳の一例を示す図である。
【図１６】一実施形態における系切り替え時間の内訳の一例を示す図である。
【符号の説明】
【００８８】
１０４…切り替え順序決定部、        １０５…切り替え制御部、
１３０…切り替え順序情報、          ４０１…切り替え順序決定部、
４０２…実行系切り替え制御部、
４０３…データベースサーバ実行系処理部、
５０１…待機系切り替え制御部、
５０２…データベースサーバ待機系処理部、
３３００…データベース管理システム実行系処理部、
３４００…データベース管理システム待機系処理部、
３５００…データベース、３６００…ログファイル
【図１】
2005209150.tif 000003
【図２】
2005209150.tif 000004
【図３】
2005209150.tif 000005
【図４】
2005209150.tif 000006
【図５】
2005209150.tif 000007
【図６】
2005209150.tif 000008
【図７】
2005209150.tif 000009
【図８】
2005209150.tif 000010
【図９】
2005209150.tif 000011
【図１０】
2005209150.tif 000012
【図１１】
2005209150.tif 000013
【図１２】
2005209150.tif 000014
【図１３】
2005209150.tif 000015
【図１４】
2005209150.tif 000016
【図１５】
2005209150.tif 000017
【図１６】
2005209150.tif 000018