(57)【要約】【課題】複数のサーバで障害が発生した場合にも、学習された障害回復処理を実行することが可能であるデータベースシステム等を提供する。【解決手段】いずれもアプリケーションサーバとデータベースサーバとを含むプライマリサイトとセカンダリサイトで、各サーバがいずれもサーバ状態監視部を備え、このサーバ状態監視部が、障害が発生した時に保守者が入力したコマンドから特定のパターンを抽出した学習データをエラーコードと対応づけて記憶するコマンド学習機能と、いずれかのサーバに障害が発生したことを検出する障害検出機能と、検出された障害と同一のエラーコードが学習データに記憶されているか否かを検索するエラーパターン検索機能と、そのエラーコードに対応するパターンのコマンドを実行させる学習済コマンド実行機能とを有する。【選択図】図１
2014078067.tif 000002
【特許請求の範囲】
【請求項１】
現用系アプリケーションサーバおよび現用系データベースサーバを含むプライマリサイトと、待機系アプリケーションサーバおよび待機系データベースサーバを含むセカンダリサイトとがネットワークを介して接続されて構成されるデータベースシステムであって、
前記現用系アプリケーションサーバ、前記現用系データベースサーバ、前記待機系アプリケーションサーバおよび前記待機系データベースサーバがいずれも、相互に他装置と監視し合うサーバ状態監視部を各々備え、
前記各サーバ状態監視部が、
前記データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドをログとして記録し、このログの中から特定のパターンを抽出した学習データを発生した前記障害の症状を示すエラーコードと対応づけて予め備えられた記憶手段に記憶させ、かつ他の各サーバにもこの学習データを送付して記憶させるコマンド学習機能と、
前記いずれかのサーバに障害が発生したことを検出する障害検出機能と、
検出された前記障害と同一の前記エラーコードが前記学習データに記憶されているか否かを検索するエラーパターン検索機能と、
検出された前記障害と同一の前記エラーコードが前記学習データに記憶されている場合に、そのエラーコードに対応する前記パターンのコマンドを前記現用系アプリケーションサーバに実行させる学習済コマンド実行機能と
を有することを特徴とするデータベースシステム。
【請求項２】
前記コマンド学習機能が、
前記ログから抽出された前記パターンをユーザに提示し、該ユーザが選択したパターンを前記学習データとして記憶することを特徴とする、請求項１に記載のデータベースシステム。
【請求項３】
前記障害検出機能が前記各サーバのうちのいずれかに障害が発生したことを検出した場合に、その障害が発生したサーバが復旧したことを検出してから前記コマンド学習機能に前記学習データを送付させることを特徴とする、請求項１に記載のデータベースシステム。
【請求項４】
前記学習済コマンド実行機能が、
前記現用系アプリケーションサーバが前記コマンドを実行できない場合に、前記待機系アプリケーションサーバに前記コマンドを実行させることを特徴とする、請求項１に記載のデータベースシステム。
【請求項５】
現用系アプリケーションサーバおよび現用系データベースサーバを含むプライマリサイトと、待機系アプリケーションサーバおよび待機系データベースサーバを含むセカンダリサイトとがネットワークを介して接続されて構成されるデータベースシステムで、前記現用系データベースサーバもしくは前記待機系データベースサーバとして機能しうるデータベース装置であって、
相互に他装置と監視し合うサーバ状態監視部を備えると共に、
このサーバ状態監視部が、
前記データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドをログとして記録し、このログの中から特定のパターンを抽出した学習データを発生した前記障害の症状を示すエラーコードと対応づけて予め備えられた記憶手段に記憶させ、かつ他の各サーバにもこの学習データを送付して記憶させるコマンド学習機能と、
前記いずれかのサーバに障害が発生したことを検出する障害検出機能と、
検出された前記障害と同一の前記エラーコードが前記学習データに記憶されているか否かを検索するエラーパターン検索機能と、
検出された前記障害と同一の前記エラーコードが前記学習データに記憶されている場合に、そのエラーコードに対応する前記パターンのコマンドを前記現用系アプリケーションサーバに実行させる学習済コマンド実行機能とを有することを特徴とするデータベース装置。
【請求項６】
現用系アプリケーションサーバおよび現用系データベースサーバを含むプライマリサイトと、待機系アプリケーションサーバおよび待機系データベースサーバを含むセカンダリサイトとがネットワークを介して接続されて構成されるデータベースシステムにあって、
前記データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドを前記データベースシステムを構成する各サーバのコマンド学習機能がログとして記録し、
記録された前記ログの中から特定のパターンを抽出した学習データを発生した前記障害の症状を示すエラーコードと対応づけて前記各サーバのコマンド学習機能が予め備えられた記憶手段に記憶させると共に、他の各サーバにもこの学習データを送付して記憶させ、
前記いずれかのサーバに障害が発生したことを前記各サーバの障害検出機能が検出し、
検出された前記障害と同一の前記エラーコードが前記学習データに記憶されているか否かを各サーバのエラーパターン検索機能が検索し、
検出された前記障害と同一の前記エラーコードが前記学習データに記憶されている場合に、そのエラーコードに対応する前記パターンのコマンドを前記各サーバの学習済コマンド実行機能が前記現用系アプリケーションサーバに実行させる
ことを特徴とする障害回復方法。
【請求項７】
現用系アプリケーションサーバおよび現用系データベースサーバを含むプライマリサイトと、待機系アプリケーションサーバおよび待機系データベースサーバを含むセカンダリサイトとがネットワークを介して接続されて構成されるデータベースシステムにあって、
前記データベースシステムを構成する各サーバが備えるプロセッサに、
前記データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドをログとして記録する手順、
記録された前記ログの中から特定のパターンを抽出した学習データを発生した前記障害の症状を示すエラーコードと対応づけて予め備えられた記憶手段に記憶させると共に、他の各サーバにもこの学習データを送付して記憶させる手順、
前記いずれかのサーバに障害が発生したことを検出する手順、
検出された前記障害と同一の前記エラーコードが前記学習データに記憶されているか否かを検索する手順、
および検出された前記障害と同一の前記エラーコードが前記学習データに記憶されている場合に、そのエラーコードに対応する前記パターンのコマンドを前記現用系アプリケーションサーバに実行させる手順
を実行させることを特徴とする障害回復プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータベースシステム、データベース装置、データベースの障害回復方法およびプログラムに関し、特に障害回復処理を学習して自動化するデータベースシステム等に関する。
【背景技術】
【０００２】
企業などで利用されるコンピュータシステムにおいては、短時間の停止であっても、その間に発生した業務の停止によって巨額の損失が発生しうる。特に、大量のデータを記憶して取り扱うデータベースと、それらのデータを利用して企業活動そのものに関わる処理を行うアプリケーションソフトを動作させる企業システムは、絶対に停止してはならず、またデータの損失などもあってはならない。
【０００３】
そのため、それらのコンピュータシステムで何か不具合が発生した場合には、可及的速やかな復旧が望まれる。しかしながら、システム自体の規模、あるいは取り扱うデータの分量は膨大になっていく一方であり、そのためその復旧にかかる時間や作業量も膨大になっていく一方である。
【０００４】
特に、平成２３年３月１１日に発生したいわゆる東日本大震災以後、そのようなコンピュータシステムが地震や風水害などのような大規模災害に遭った場合にもデータの損失を防いで処理を継続可能とする、いわゆるディザスタリカバリ（Disaster Recovery、災害復旧）の重要性が声高に叫ばれるようになっている。
【０００５】
そこで近年は、保守作業員にかかる負荷を削減する技術、特に保守作業員の手をかけずに自動的に障害を復旧させる技術の開発が活発に進められている。これに関連する文献として、次の各々の技術資料がある。その中でも特許文献１には、コンピュータシステムに対して行った復旧手順を、次に同一の障害が発生した時に備えて登録しておくという障害復旧装置が記載されている。
【０００６】
特許文献２には、ジョブネットワークで障害が発生した場合に、障害回復プログラムを自動的に実行するという管理システムが記載されている。特許文献３には、複数のサーバで提供される処理サービスを１台の監視装置によって監視して復旧するという自動監視復旧システムが記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−０９１４７５号公報
【特許文献２】特開２００４−３１８７６３号公報
【特許文献３】特開２００２−３４２１８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
図１３は、既存技術に係るデータベースシステム９０１の全体的な構成について示す説明図である。データベースシステム９０１は、プライマリサイト９０２（現用系）とセカンダリサイト９０３（待機系）とがネットワーク９０４を介して接続されて構成されている。
【０００９】
プライマリサイト９０２は、アプリケーションサーバ９１１と、データベースサーバ９１２と、ストレージ装置９１３とを含む。セカンダリサイト９０３も同様に、アプリケーションサーバ９２１と、データベースサーバ９２２と、ストレージ装置９２３とを含む。また、アプリケーションサーバ９１１および９２１は相互にサーバクラスタを構成し、同様にデータベースサーバ９１２および９２２も相互にサーバクラスタを構成する。
【００１０】
アプリケーションサーバ９１１および９２１は、相互に動作を監視しあい、そのうちの一方が異常停止した場合には残る一方のみで動作を継続することができる。また、データベースサーバ９１２および９２２も、相互に動作を監視しあい、そのうちの一方が異常停止した場合には残る一方のみで動作を継続することができる。
【００１１】
近年は特に、ｅコマース（電子商取引）の普及により、ウェブサーバなどのようなアプリケーションソフトを動作させるアプリケーションサーバと、そこで取引される商品やサービスなどについてのデータを大量に扱うデータベースサーバとを組み合わせた構造のウェブシステムが多く動作するようになっている。そのような場合には、図１３に示したデータベースシステム９０１のように、アプリケーションサーバおよびデータベースサーバを各々二重化して相互に監視し合い、現用系で異常が発生した時にはいつでも待機系が処理を引き継げる構造のシステムが利用されるようになっている。
【００１２】
しかしながら、これらのようなシステムでは、現用系から待機系への切り替えにはやはり保守作業員の手による操作が必要である。この操作はどうしても煩雑なものとなり、またヒューマンエラーによるミスも生じやすい。
【００１３】
特に、ハードウェアおよびソフトウェアの構成の都合上、そのシステムにおいて特に頻繁に発生しやすい特定の障害がどうしても存在するが、その特定の障害に対する対応は経験上ある程度パターン化できるものであるにもかかわらず、その対応のパターン化を行って自動的に実行しうる形にするという従来技術は存在しない。
【００１４】
前述の特許文献１〜３には「障害回復の操作を学習して、同じ障害に対する回復操作を自動的に行う」ということは記載されているが、図１３に示したデータベースシステム９０１の構成に適用可能なものは記載されていない。特に、アプリケーションサーバおよびデータベースサーバの両方で１台以上の障害が発生した場合に、これを検出して自動的に回復させることが可能なものは、特許文献１〜３のいずれにも記載されていない。
【００１５】
本願発明の目的は、相互に監視し合うアプリケーションサーバおよびデータベースサーバの両方が１台以上で障害が発生した場合にも、学習された障害回復処理を実行することを可能とするデータベースシステム、データベース装置、データベースの障害回復方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１６】
上記目的を達成するため、本発明に係るデータベースシステムは、現用系アプリケーションサーバおよび現用系データベースサーバを含むプライマリサイトと、待機系アプリケーションサーバおよび待機系データベースサーバを含むセカンダリサイトとがネットワークを介して接続されて構成されるデータベースシステムであって、現用系アプリケーションサーバ、現用系データベースサーバ、待機系アプリケーションサーバおよび待機系データベースサーバがいずれも、相互に他装置と監視し合うサーバ状態監視部を各々備え、各サーバ状態監視部が、データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドをログとして記録し、このログの中から特定のパターンを抽出した学習データを発生した障害の症状を示すエラーコードと対応づけて予め備えられた記憶手段に記憶させ、かつ他の各サーバにもこの学習データを送付して記憶させるコマンド学習機能と、いずれかのサーバに障害が発生したことを検出する障害検出機能と、検出された障害と同一のエラーコードが学習データに記憶されているか否かを検索するエラーパターン検索機能と、検出された障害と同一のエラーコードが学習データに記憶されている場合に、そのエラーコードに対応するパターンのコマンドを現用系アプリケーションサーバに実行させる学習済コマンド実行機能とを有することを特徴とする。
【００１７】
上記目的を達成するため、本発明に係るデータベース装置は、現用系アプリケーションサーバおよび現用系データベースサーバを含むプライマリサイトと、待機系アプリケーションサーバおよび待機系データベースサーバを含むセカンダリサイトとがネットワークを介して接続されて構成されるデータベースシステムで、現用系データベースサーバもしくは待機系データベースサーバとして機能しうるデータベース装置であって、相互に他装置と監視し合うサーバ状態監視部を備えると共に、このサーバ状態監視部が、データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドをログとして記録し、このログの中から特定のパターンを抽出した学習データを発生した障害の症状を示すエラーコードと対応づけて予め備えられた記憶手段に記憶させ、かつ他の各サーバにもこの学習データを送付して記憶させるコマンド学習機能と、いずれかのサーバに障害が発生したことを検出する障害検出機能と、検出された障害と同一のエラーコードが学習データに記憶されているか否かを検索するエラーパターン検索機能と、検出された障害と同一のエラーコードが学習データに記憶されている場合に、そのエラーコードに対応するパターンのコマンドを現用系アプリケーションサーバに実行させる学習済コマンド実行機能とを有することを特徴とする。
【００１８】
上記目的を達成するため、本発明に係る障害回復方法は、現用系アプリケーションサーバおよび現用系データベースサーバを含むプライマリサイトと、待機系アプリケーションサーバおよび待機系データベースサーバを含むセカンダリサイトとがネットワークを介して接続されて構成されるデータベースシステムにあって、データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドをデータベースシステムを構成する各サーバのコマンド学習機能がログとして記録し、記録されたログの中から特定のパターンを抽出した学習データを発生した障害の症状を示すエラーコードと対応づけて各サーバのコマンド学習機能が予め備えられた記憶手段に記憶させると共に、他の各サーバにもこの学習データを送付して記憶させ、いずれかのサーバに障害が発生したことを各サーバの障害検出機能が検出し、検出された障害と同一のエラーコードが学習データに記憶されているか否かを各サーバのエラーパターン検索機能が検索し、検出された障害と同一のエラーコードが学習データに記憶されている場合に、そのエラーコードに対応するパターンのコマンドを各サーバの学習済コマンド実行機能が現用系アプリケーションサーバに実行させることを特徴とする。
【００１９】
上記目的を達成するため、本発明に係る障害回復プログラムは、現用系アプリケーションサーバおよび現用系データベースサーバを含むプライマリサイトと、待機系アプリケーションサーバおよび待機系データベースサーバを含むセカンダリサイトとがネットワークを介して接続されて構成されるデータベースシステムにあって、データベースシステムを構成する各サーバが備えるプロセッサに、データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドをログとして記録する手順、記録されたログの中から特定のパターンを抽出した学習データを発生した障害の症状を示すエラーコードと対応づけて予め備えられた記憶手段に記憶させると共に、他の各サーバにもこの学習データを送付して記憶させる手順、いずれかのサーバに障害が発生したことを検出する手順、検出された障害と同一のエラーコードが学習データに記憶されているか否かを検索する手順、および検出された障害と同一のエラーコードが学習データに記憶されている場合に、そのエラーコードに対応するパターンのコマンドを現用系アプリケーションサーバに実行させる手順を実行させることを特徴とする。
【発明の効果】
【００２０】
本発明は、上記したように、現用系および待機系のアプリケーションサーバおよびデータベースサーバがいずれも、相互に障害の発生を監視し合うサーバ状態監視部を備える構成としたので、障害が発生した場合にどの装置からでも学習済の障害回復の操作を実行することができる。このことにより、アプリケーションサーバおよびデータベースサーバの両方が１台以上で障害が発生した場合にも、学習された障害回復処理を実行することが可能であるという、優れた特徴を持つデータベースシステム、データベース装置、データベースの障害回復方法およびプログラムを提供することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態に係るデータベースシステムの全体的な構成について示す説明図である。
【図２】図１に示したプライマリサイトのより詳しい構成について示す説明図である。
【図３】図１に示したセカンダリサイトのより詳しい構成について示す説明図である。
【図４】図１に示したデータベースシステムで、全ての構成要素が正常に動作している時に、各サーバの行う処理を学習する処理の流れについて示すシーケンス図である。
【図５】図４のステップＳ１１０〜１１４の処理で保守者に提示されるエラーパターン、および記憶される学習データの一例について示す説明図である。
【図６】図１に示したデータベースシステムで、全てのサーバ状態監視部が正常に動作しているが、データベースサーバで障害が発生した場合の動作の流れについて示すシーケンス図である。
【図７】図１に示したデータベースシステムで、データベースサーバで障害が発生し、かつアプリケーションサーバも正常に動作していない場合の動作の流れについて示すシーケンス図である。
【図８】図１に示したデータベースシステムで、現用系データベースサーバのサーバ状態監視部が停止した場合の動作の流れについて示すシーケンス図である。
【図９】図１に示したデータベースシステムで、待機系データベースサーバのサーバ状態監視部が停止した場合の動作の流れについて示すシーケンス図である。
【図１０】図１に示したデータベースシステムで、現用系データベースサーバのサーバ状態監視部が停止した場合に行う操作を学習する処理の流れについて示すシーケンス図である。
【図１１】図１に示したデータベースシステムで、待機系データベースサーバのサーバ状態監視部が停止した場合に行う操作を学習する処理の流れについて示すシーケンス図である。
【図１２】図１に示したデータベースシステムで、コマンド学習機能がシステム立ち上げの初期段階で行う処理について示す説明図である。
【図１３】既存技術に係るデータベースシステムの全体的な構成について示す説明図である。
【発明を実施するための形態】
【００２２】
（実施形態）
以下、本発明の実施形態の構成について添付図１〜３に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るデータベースシステム１は、現用系アプリケーションサーバ１１および現用系データベースサーバ１２を含むプライマリサイト２と、待機系アプリケーションサーバ２１および待機系データベースサーバ２２を含むセカンダリサイト３とがネットワーク４を介して接続されて構成されるデータベースシステムである。現用系アプリケーションサーバ１１、現用系データベースサーバ１２、待機系アプリケーションサーバ２１および待機系データベースサーバ２２がいずれも、相互に他装置と監視し合うサーバ状態監視部１０２，１１２，２０２，２１２を各々備え、各サーバ状態監視部が、データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドをログとして記録し、このログの中から特定のパターンを抽出した学習データを発生した障害の症状を示すエラーコードと対応づけて予め備えられた記憶手段に記憶させ、かつ他の各サーバにもこの学習データを送付して記憶させるコマンド学習機能１０２ａと、いずれかのサーバに障害が発生したことを検出する障害検出機能１０２ｂと、検出された障害と同一のエラーコードが学習データに記憶されているか否かを検索するエラーパターン検索機能１０２ｃと、検出された障害と同一のエラーコードが学習データに記憶されている場合に、そのエラーコードに対応するパターンのコマンドを現用系アプリケーションサーバに実行させる学習済コマンド実行機能１０２ｄとを有する。
【００２３】
ここで、コマンド学習機能１０２ａは、ログから抽出されたパターンをユーザに提示し、該ユーザが選択したパターンを学習データとして記憶する。また、障害検出機能１０２ｂが各サーバのうちのいずれかに障害が発生したことを検出した場合に、その障害が発生したサーバが復旧したことを検出してからコマンド学習機能１０２ａに学習データを送付させる。
【００２４】
さらに、学習済コマンド実行機能１０２ｄが、現用系アプリケーションサーバ１１がコマンドを実行できない場合に、待機系アプリケーションサーバ２１にそのコマンドを実行させる。
【００２５】
以上の構成を備えることにより、データベースシステム１は、アプリケーションサーバおよびデータベースサーバの両方が１台以上で障害が発生した場合にも、学習された障害回復処理を実行することが可能となる。
以下、これをより詳細に説明する。
【００２６】
図１は、本発明の実施形態に係るデータベースシステム１の全体的な構成について示す説明図である。データベースシステム１は、プライマリサイト２（現用系）とセカンダリサイト３（待機系）とがネットワーク４を介して接続されて構成されている。ネットワーク４は、同一のサブネットマスクを有するネットワークである。
【００２７】
プライマリサイト２は、アプリケーションサーバ１１と、データベースサーバ１２と、ストレージ装置１３とを含む。セカンダリサイト３も同様に、アプリケーションサーバ２１と、データベースサーバ２２と、ストレージ装置２３とを含む。また、アプリケーションサーバ１１および２１は相互にサーバクラスタを構成し、同様にデータベースサーバ１２および２２も相互にサーバクラスタを構成する。
【００２８】
プライマリサイト２とセカンダリサイト３はそれぞれ、多数のクライアント装置１４ａ，ｂ，ｃ，…と２４ａ，ｂ，ｃ，…を含む。また、アプリケーションサーバ１１および２１には各々、多くの周辺装置１５ａ，ｂ，ｃ，…と２５ａ，ｂ，ｃ，…が接続されている。これらについては、本実施形態を説明する上で特に必要ではないので、それらの詳しい構成についての説明はここでは省略する。
【００２９】
図２は、図１に示したプライマリサイト２のより詳しい構成について示す説明図である。アプリケーションサーバ１１およびデータベースサーバ１２は、いずれも一般的なコンピュータ装置（サーバマシン）である。図２では物理的に別々のコンピュータであるものとしたが、アプリケーションサーバ１１およびデータベースサーバ１２を同一のコンピュータで構成してもよいし、またアプリケーションサーバ１１もしくはデータベースサーバ１２を複数台のコンピュータの組み合わせによって仮想的に構成してもよい。
【００３０】
アプリケーションサーバ１１は、コンピュータプログラムの実施主体であるプロセッサ１１ａと、コンピュータプログラムと動作データを記憶する記憶手段１１ｂと、ネットワーク４と接続して他のコンピュータとの間でデータ通信を行う通信手段１１ｃとを備える。データベースサーバ１２も同様に、コンピュータプログラムの実施主体であるプロセッサ１２ａと、コンピュータプログラムと動作データを記憶する記憶手段１２ｂと、ネットワーク４と接続して他のコンピュータとの間でデータ通信を行う通信手段１２ｃとを備える。
【００３１】
アプリケーションサーバ１１のプロセッサ１１ａでは、各クライアント装置からの処理依頼に基づいてアプリケーション（具体的にはウェブサーバ、業務システムなど）を動作させるアプリケーション動作部１０１が機能する。データベースサーバ１２のプロセッサ１２ａでは、アプリケーション動作部１０１で動作するアプリケーションで処理されるデータをストレージ装置１３に記憶させるデータベース動作部１１１が機能する。
【００３２】
ストレージ装置１３には、通常の磁気ディスクや半導体ディスクによる主ストレージ部１３ａと、テープ（ＱＩＣ，ＤＤＳ，ＤＬＴ他）や光ディスクなどによるバックアップストレージ部１３ｂとが含まれる。
【００３３】
さらに、アプリケーションサーバ１１のプロセッサ１１ａとデータベースサーバ１２のプロセッサ１２ａでは、互いに互いの動作を監視すると同時に、セカンダリサイト３のアプリケーションサーバ２１およびデータベースサーバ２２の動作を監視し、異常を検出した際にその異常から当該サーバを復旧させるサーバ状態監視部１０２および１１２がサーバプロセスとして同時に動作する。
【００３４】
そして、アプリケーションサーバ１１の記憶手段１１ｂとデータベースサーバ１２の記憶手段１２ｂには、サーバ状態監視部１０２および１１２が各々記憶させる学習データ１０３および１１３が記憶される。
【００３５】
図３は、図１に示したセカンダリサイト３のより詳しい構成について示す説明図である。セカンダリサイト３のアプリケーションサーバ２１およびデータベースサーバ２２は、いずれも一般的なコンピュータ装置（サーバマシン）である。
【００３６】
アプリケーションサーバ２１、データベースサーバ２２、およびストレージ装置２３は、いずれもプライマリサイト２のアプリケーションサーバ１１、データベースサーバ１２、およびストレージ装置１３と同一の構成を備え、ただハードウェア的には各要素の参照番号を＋１０、ソフトウェア的には各要素の参照番号を＋１００したのみである。各要素の呼称は全て同一である。従って、それらの詳しい構成についての説明はここでは省略する。
【００３７】
アプリケーションサーバ１１のサーバ状態監視部１０２には、コマンド学習機能１０２ａ、障害検出機能１０２ｂ、エラーパターン検索機能１０２ｃ、学習済コマンド実行機能１０２ｄ、といった各機能を備えている。データベースサーバ１２、アプリケーションサーバ２１、データベースサーバ２２が各々備えるサーバ状態監視部１１２，２０２，２１２も、これらの各機能をそれぞれ備えているので、以後本明細書では、たとえばデータベースサーバ１２のサーバ状態監視部１１２が備えるコマンド学習機能は「コマンド学習機能１１２ａ」などのように呼ぶことにする。
【００３８】
図４は、図１に示したデータベースシステム１で、全ての構成要素が正常に動作している時に、各サーバの行う処理を学習する処理の流れについて示すシーケンス図である。図４では、保守者がプライマリサイト２のアプリケーションサーバ１１に対して開始要求を発する例について示すが、この開始要求はアプリケーションサーバ１１を直接操作して入力してもよいし、またプライマリサイト２側のクライアント装置１４のいずれかからアプリケーションサーバ１１にリモートアクセスして入力してもよい。さらにセカンダリサイト３のアプリケーションサーバ２１に対しても、同様の開始要求によって図４と同様の動作をさせることも可能である。
【００３９】
開始要求を受けたサーバ状態監視部１０２のコマンド学習機能１０２ａは（ステップＳ１０１）、動作ログの記録を開始しつつも他の各サーバのサーバ状態監視部、即ちプライマリサイト２側ではデータベースサーバ１２のサーバ状態監視部１１２、セカンダリサイト３ではアプリケーションサーバ２１のサーバ状態監視部２０２、およびデータベースサーバ２２のサーバ状態監視部２１２の各々に対して開始要求を送信する（ステップＳ１０２ａ〜ｃ）。
【００４０】
開始要求を受けたサーバ状態監視部１１２，２０２，２１２は、各々のコマンド学習機能１１２ａ，２０２ａ，２１２ａによって各々動作ログの記録を開始して、開始要求に対する正常応答をサーバ状態監視部１０２に返す（ステップＳ１０３ａ〜ｃ）。そしてサーバ状態監視部１０２のコマンド学習機能１０２ａは保守者に対して正常応答を返す（ステップＳ１０４）。
【００４１】
これで、アプリケーションサーバ１１にユーザが入力し、そこから他のサーバに対して適宜転送される全てのコマンドに対して、そのコマンドと当該コマンドに対して行われた操作と返される応答について、各々のサーバ状態監視部１０２，１１２，２０２，２１２はログを記録する（ステップＳ１０５〜１０６）。図４では、アプリケーションサーバ１１から他のサーバに転送されるコマンドとそれに対する他のサーバからの応答についての詳細な記載は省略している。
【００４２】
開始要求と同様にして、保守者が終了処理要求を入力すると（ステップＳ１０７）、サーバ状態監視部１０２が動作ログの記録を終了し、同時に他のサーバ状態監視部１１２，２０２，２１２の各々に対して終了処理要求を送信する（ステップＳ１０８ａ〜ｃ）。終了処理要求を受けた他のサーバ状態監視部１１２，２０２，２１２は、各々動作ログの記録を終了して、記録した動作ログをサーバ状態監視部１０２に送信する（ステップＳ１０９ａ〜ｃ）。
【００４３】
サーバ状態監視部１０２は、自らが記録した動作ログと他から受信した動作ログとから、エラーパターンを抽出して保守者に提示する（ステップＳ１１０）。この動作の詳細については後述する。
【００４４】
そして保守者は、その中から学習すべきエラーパターンを選択して入力する（ステップＳ１１１）。サーバ状態監視部１０２は、そこで選択されたエラーパターンを学習データ１０３として記憶すると共に、他のサーバ状態監視部１１２，２０２，２１２の各々に対してそのエラーパターンを送付する（ステップＳ１１２ａ〜ｃ）。各々のサーバ状態監視部１０２，１１２，２０２，２１２は、そのエラーパターンを受信して、各々学習データ１１３，２０３，２１３として記憶し、（ステップＳ１１３ａ〜ｃ）、正常応答を返す（ステップＳ１１４）。
【００４５】
図５は、図４のステップＳ１１０〜１１４の処理で保守者に提示されるエラーパターン、および記憶される学習データ１０３，１１３，２０３，２１３の一例について示す説明図である。ステップＳ１１０に示した処理では、発生したエラーの対象装置１２０ａとエラーコード１２０ｂ、そしてこれに対して各装置に実際に入力されたコマンド１２０ｃが保守者に提示される。
【００４６】
これに対して保守者は、ステップＳ１１１に示した処理で、そのコマンド１２０ｃの中で実際に入力すべきものを選択し、またたとえば「ホスト名」や「プロセス名」などのような要素を「対象装置」「対象プロセス」などを示す変数に置き換えて入力する。これで入力されたデータが学習パターン１２０ｄとなり、エラーコード１２０ｂに対応づけられて、ステップＳ１１２〜１１４の処理で各装置の学習データ１０３，１１３，２０３，２１３として記憶される。
【００４７】
ここで、実際に作成される学習データは、各装置ごとに異なるものである。アプリケーションサーバとデータベースサーバとで異なるコマンドが実行されるべきであり、同様にプライマリサイトとセカンダリサイトとでも異なるコマンドが実行されるべきだからである。しかしながら、この装置ごとに実行されるべきコマンドの相違点は当業者にはよく知られているので、細かい解説はここでは割愛する。
【００４８】
図６は、図１に示したデータベースシステム１で、全てのサーバ状態監視部１０２，１１２，２０２，２１２が正常に動作しているが、データベースサーバ１２で障害が発生した場合の動作の流れについて示すシーケンス図である。データベースサーバ１２ではサーバ状態監視部１１２がサーバプロセスとして動作しているので、この障害発生を障害検出機能１１２ｂが検出する（ステップＳ２０１）。
【００４９】
障害検出機能１１２ｂがこの障害発生を検出したら、これに反応したエラーパターン検索機能１１２ｃが、学習データ１１３の中に同一のエラーコード１２０ｂのものが登録されているか否かについて検索する（ステップＳ２０２）。登録されていなければ、そこでアプリケーションサーバ１１に処理を停止するよう指示して、その障害発生を保守者に通知する（ステップＳ２０３）。その場合、保守者は図４に示した操作を行って、各サーバに対して障害対応を行うと共に、その障害対応の操作について学習させる。
【００５０】
学習データ１１３の中に同一のエラーコード１２０ｂのものが登録されていれば、エラーパターン検索機能１１２ｃはアプリケーションサーバ１１の学習済コマンド実行機能１０２ｄに、このエラーコード１２０ｂに対応する学習パターン１２０ｄのコマンドを実行するよう指示し、これに応じて学習済コマンド実行機能１０２ｄはその学習パターン１２０ｄを学習データ１１３から読み出して、各サーバの学習済コマンド実行機能１０２ｄ，１１２ｄ，２０２ｄ，２１２ｄにその学習パターン１２０ｄによるコマンドを実行させる（ステップＳ２０４〜２０５）。
【００５１】
ここで、学習済コマンドの実行を開始する主体はデータベースサーバ１２でもよいが、このデータベースサーバ１２の動作が停止している場合を想定して、ここではアプリケーションサーバ１１をその主体としている。基本的に、この実行開始の主体はどのサーバでもよい。
【００５２】
その実行中も、コマンド学習機能１０２ａ，１１２ａ，２０２ａ，２１２ａが図４のステップＳ１０５〜１０６と同様にログを記録しているので、学習済のコマンドの実行が一通り終了したら学習済コマンド実行機能１０２ｄは他のコマンド学習機能１０２ａ，１１２ａ，２０２ａ，２１２ａに対して終了指示を行い（ステップＳ２０６ａ〜ｃ）、これに応じて各々のコマンド学習機能１０２ａ，１１２ａ，２０２ａ，２１２ａは記録したログを返送する（ステップＳ２０７ａ〜ｃ）。そして学習済コマンド実行機能１０２ｄは処理結果をユーザに通知する（ステップＳ２０８）。
【００５３】
図７は、図１に示したデータベースシステム１で、データベースサーバ１２で障害が発生し、かつアプリケーションサーバ１１も正常に動作していない場合の動作の流れについて示すシーケンス図である。この場合は、ステップＳ２０２までは図６と同一の動作となるが、ステップＳ２０３でエラーパターン検索機能１１２ｃがアプリケーションサーバ１１に処理を停止するよう指示、またはステップＳ２０４で学習済コマンド実行機能１０２ｄにエラーコード１２０ｂに対応する学習パターン１２０ｄのコマンドを実行するよう指示したが、これに対する正常応答が返送されない。
【００５４】
そこでエラーパターン検索機能１１２ｃは、セカンダリサイト３のアプリケーションサーバ２１に、学習データ１１３の中にエラーコード１２０ｂに対応する学習パターン１２０ｄが登録されていない場合はステップＳ２０３と同一の処理停止指示を送信して、その障害発生を保守者に通知する（ステップＳ２５１）。学習データ１１３の中にエラーコード１２０ｂに対応する学習パターン１２０ｄが登録されている場合は、ステップＳ２０４と同一のコマンド実行指示を送信して、学習済コマンド実行機能２０２ｄにその学習パターン１２０ｄのコマンドを実行させる（ステップＳ２５２〜３）。
【００５５】
以後は図６のステップＳ２０５以降と同一の動作を、アプリケーションサーバ２１の学習済コマンド実行機能２０２ｄが行うこととなる。ただし、アプリケーションサーバ１１は正常に動作していないので、ステップＳ２０７ａのログが正常に送信されずタイムアウトとなる可能性がある。その場合も、その旨をログに記録し、保守者に通知する。
【００５６】
図８は、図１に示したデータベースシステム１で、現用系データベースサーバ１２のサーバ状態監視部１１２が停止した場合の動作の流れについて示すシーケンス図である。アプリケーションサーバ１１の障害検出機能１０２ｂは、周期的にデータベースサーバ１２および２２のサーバ状態監視部１１２および２１２に対して状態監視用の信号を送信しているので、この状態監視用信号に対する応答が無いことによってサーバ状態監視部１１２の停止を検出する（ステップＳ３０１）。
【００５７】
障害検出機能１０２ｂがこの障害発生を検出したら、これに反応したエラーパターン検索機能１０２ｃが、学習データ１０３の中にこのエラーと同一のエラーコード１２０ｂが登録されているか否かについて検索する（ステップＳ３０２）。登録されていなければ、図６のステップＳ２０３と同様に、自らの処理を停止して、その障害発生を保守者に通知する（ステップＳ３０３）。
【００５８】
学習データ１１３の中に同一のエラーコード１２０ｂが登録されていれば、アプリケーションサーバ１１の学習済コマンド実行機能１０２ｄがそのエラーコード１２０ｂに対応する学習パターン１２０ｄのコマンドを実行すると共に、図６のステップＳ２０４以後と同様にして他の学習済コマンド実行機能１１２ｄ，２０２ｄ，２１２ｄにもその学習パターン１２０ｄのコマンドを実行させる。以後は図６の動作と同一である。
【００５９】
図９は、図１に示したデータベースシステム１で、待機系データベースサーバ２２のサーバ状態監視部２１２が停止した場合の動作の流れについて示すシーケンス図である。これは、アプリケーションサーバ１１の障害検出機能１０２ｂが停止を検出する対象がサーバ状態監視部２１２に変わる（ステップＳ３５１）だけで、あとは図８と同一の動作となる。
【００６０】
図１０は、図１に示したデータベースシステム１で、現用系データベースサーバ１２のサーバ状態監視部１１２が停止した場合に行う操作を学習する処理の流れについて示すシーケンス図である。より具体的には、図８のステップＳ３０３で、そのエラーコード１２０ｂが登録されていないことが保守者に通知された場合に、この状態に対して行う処理を学習することが必要となる。
【００６１】
その場合も、図４と同一の動作によって各サーバに対して行った操作を学習する。そして、その学習の操作が終了した後、アプリケーションサーバ１１の障害検出機能１０２ｂにサーバ状態監視部１１２が復旧したか否かを監視する動作、より具体的には状態監視用の信号を周期的に送信する動作を開始する（ステップＳ４０１）。
【００６２】
この信号に対する正常な応答が返ってきたら、サーバ状態監視部１１２が復旧したものと判断して（ステップＳ４０２）、コマンド学習機能１０２ａはステップＳ１１２で送信できなかったエラーパターンをアプリケーションサーバ１１に送付する（ステップＳ４０３）。これを受信したコマンド学習機能１１２ａは、受信したエラーパターンを学習データ１１３として記憶して、正常応答を返す（ステップＳ４０４）。
【００６３】
図１１は、図１に示したデータベースシステム１で、待機系データベースサーバ２２のサーバ状態監視部２１２が停止した場合に行う操作を学習する処理の流れについて示すシーケンス図である。これは、アプリケーションサーバ１１の障害検出機能１０２ｂが復旧したか否かを検出する対象がサーバ状態監視部２１２に変わる（ステップＳ４５１〜４５４）だけで、あとは図１０と同一の動作となる。
【００６４】
図１２は、図１に示したデータベースシステム１で、コマンド学習機能１０２ａがシステム立ち上げの初期段階で行う処理について示す説明図である。まず、アプリケーションサーバ１１のコマンド学習機能１０２ａが、他のコマンド学習機能１１２ａ，２０２ａ，２１２ａに対して、各サーバ固有の構成情報を要求する（ステップＳ５０１ａ〜ｃ）。コマンド学習機能１１２ａ，２０２ａ，２１２ａは各々、この要求に対してこの構成情報を送信する（ステップＳ５０２ａ〜ｃ）。
【００６５】
これを受けたコマンド学習機能１０２ａは、受信した各々の構成情報を取りまとめてデータベースシステム１全体としての構成情報を作成して自ら学習データ１０３として記憶すると共に、これをコマンド学習機能１１２ａ，２０２ａ，２１２ａに送信する（ステップＳ５０３ａ〜ｃ）。コマンド学習機能１１２ａ，２０２ａ，２１２ａは各々、これを学習データ１１３，２０３，２１３として記憶して正常応答を返す（ステップＳ５０４ａ〜ｃ）。前述のように、実際に作成される学習データは各装置ごとに異なるものであるが、この実行されるべきコマンドの相違点は当業者にはよく知られているので、細かい解説はここでは割愛する。
【００６６】
（実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。
本実施形態に係る障害回復方法は、現用系アプリケーションサーバ１１および現用系データベースサーバ１２を含むプライマリサイト２と、待機系アプリケーションサーバ２１および待機系データベースサーバ２２を含むセカンダリサイト３とがネットワーク４を介して接続されて構成されるデータベースシステム４にあって、データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドをデータベースシステムを構成する各サーバのコマンド学習機能がログとして記録し（図４・ステップＳ１０１〜１０９）、記録されたログの中から特定のパターンを抽出した学習データを発生した障害の症状を示すエラーコードと対応づけて各サーバのコマンド学習機能が予め備えられた記憶手段に記憶させると共に、他の各サーバにもこの学習データを送付して記憶させ（図４・ステップＳ１１０〜１１４）、いずれかのサーバに障害が発生したことを各サーバの障害検出機能が検出し（図６・ステップＳ２０１）、検出された障害と同一のエラーコードが学習データに記憶されているか否かを各サーバのエラーパターン検索機能が検索し（図６・ステップＳ２０２）、検出された障害と同一のエラーコードが学習データに記憶されている場合に、そのエラーコードに対応するパターンのコマンドを各サーバの学習済コマンド実行機能が現用系アプリケーションサーバに実行させる（図６・ステップＳ２０４〜２０５）。
【００６７】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行する各サーバのプロセッサに実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、ＤＶＤ、ＣＤ、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
【００６８】
本実施形態によれば、発生した障害のエラーコードに対応するパターンが登録されていれば、そのパターンを自動的に実行して、復旧にかかる手間を軽減することが可能となる。かつ、そのパターンによる復旧は現用系と待機系のアプリケーションサーバおよび現用系データベースサーバのいずれからでも実行可能であるので、２つ以上のサーバで同時に障害が発生した場合でもそのパターンを実行できる。
【００６９】
従って、既存技術ではたとえば数十程度のコマンドの実行と数時間程度の時間を要していた復旧作業を、本実施形態では多くても数コマンド程度の実行で、数分程度で終わらせることができる。さらに、特に頻繁に発生する症状についてはすぐに学習して自動化して、保守者による操作自体を必要とせず、自動的に復旧させることができる。即ち、ヒューマンエラーの発生要因となる繁雑な作業を大幅に軽減して、発生した障害への対応を円滑に行うことが、本実施形態によって可能となる。
【００７０】
（実施形態の拡張）
上記実施形態は、以上で説明した本発明の趣旨を改変しない範囲で、様々な拡張が可能である。以下、これについて説明する。
まず、上記実施形態ではプライマリサイト（現用系）とセカンダリサイト（待機系）が各々アプリケーションサーバおよびデータベースサーバを含むという構成について説明したが、実際の装置の区分は必ずしもこの例の通りである必要はない。たとえばアプリケーションサーバとデータベースサーバとが同一のコンピュータによって構成されてもよいし、逆に複数の物理的コンピュータによって仮想的に構成されるものであってもよい。さらに、セカンダリサイトが複数備えられていてもよい。
【００７１】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【産業上の利用可能性】
【００７２】
本発明は、アプリケーションサーバとデータベースサーバとを組み合わせた構造のウェブシステムに適用できる。たとえば電子商取引システムや業務システム等において、可用性を向上させる用途に特に適している。
【符号の説明】
【００７３】
１  データベースシステム
２  プライマリサイト
３  セカンダリサイト
４  ネットワーク
１１、２１  アプリケーションサーバ
１１ａ、１２ａ、２１ａ、２２ａ  プロセッサ
１１ｂ、１２ｂ、２１ｂ、２２ｂ  記憶手段
１１ｃ、１２ｃ、２１ｃ、２２ｃ  通信手段
１２、２２  データベースサーバ
１３、２３  ストレージ装置
１３ａ、２３ａ  主ストレージ部
１３ｂ、２３ｂ  バックアップストレージ部
１４ａ、２４ａ  クライアント装置
１５ａ、２５ａ  周辺装置
１０１、２０１  アプリケーション動作部
１０２、１１２、２０２、２１２  サーバ状態監視部
１０２ａ、１１２ａ、２０２ａ、２１２ａ  コマンド学習機能
１０２ｂ、１１２ｂ、２０２ｂ、２１２ｂ  障害検出機能
１０２ｃ、１１２ｃ、２０２ｃ、２１２ｃ  エラーパターン検索機能
１０２ｄ、１１２ｄ、２０２ｄ、２１２ｄ  学習済コマンド実行機能
１１１、２１１  データベース動作部
１０３、１１３、２０３、２１３  学習データ
１２０ａ  対象装置
１２０ｂ  エラーコード
１２０ｃ  コマンド
１２０ｄ  学習パターン
【図１】
2014078067.tif 000003
【図２】
2014078067.tif 000004
【図３】
2014078067.tif 000005
【図４】
2014078067.tif 000006
【図５】
2014078067.tif 000007
【図６】
2014078067.tif 000008
【図７】
2014078067.tif 000009
【図８】
2014078067.tif 000010
【図９】
2014078067.tif 000011
【図１０】
2014078067.tif 000012
【図１１】
2014078067.tif 000013
【図１２】
2014078067.tif 000014
【図１３】
2014078067.tif 000015