JP6070040B2 - データベースシステム、データベース装置、データベースの障害回復方法およびプログラム - Google Patents

データベースシステム、データベース装置、データベースの障害回復方法およびプログラム Download PDF

Info

Publication number
JP6070040B2
JP6070040B2 JP2012224147A JP2012224147A JP6070040B2 JP 6070040 B2 JP6070040 B2 JP 6070040B2 JP 2012224147 A JP2012224147 A JP 2012224147A JP 2012224147 A JP2012224147 A JP 2012224147A JP 6070040 B2 JP6070040 B2 JP 6070040B2
Authority
JP
Japan
Prior art keywords
server
database
failure
command
learning data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012224147A
Other languages
English (en)
Other versions
JP2014078067A (ja
Inventor
政宣 松田
政宣 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2012224147A priority Critical patent/JP6070040B2/ja
Publication of JP2014078067A publication Critical patent/JP2014078067A/ja
Application granted granted Critical
Publication of JP6070040B2 publication Critical patent/JP6070040B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Description

本発明はデータベースシステム、データベース装置、データベースの障害回復方法およびプログラムに関し、特に障害回復処理を学習して自動化するデータベースシステム等に関する。
企業などで利用されるコンピュータシステムにおいては、短時間の停止であっても、その間に発生した業務の停止によって巨額の損失が発生しうる。特に、大量のデータを記憶して取り扱うデータベースと、それらのデータを利用して企業活動そのものに関わる処理を行うアプリケーションソフトを動作させる企業システムは、絶対に停止してはならず、またデータの損失などもあってはならない。
そのため、それらのコンピュータシステムで何か不具合が発生した場合には、可及的速やかな復旧が望まれる。しかしながら、システム自体の規模、あるいは取り扱うデータの分量は膨大になっていく一方であり、そのためその復旧にかかる時間や作業量も膨大になっていく一方である。
特に、平成23年3月11日に発生したいわゆる東日本大震災以後、そのようなコンピュータシステムが地震や風水害などのような大規模災害に遭った場合にもデータの損失を防いで処理を継続可能とする、いわゆるディザスタリカバリ(Disaster Recovery、災害復旧)の重要性が声高に叫ばれるようになっている。
そこで近年は、保守作業員にかかる負荷を削減する技術、特に保守作業員の手をかけずに自動的に障害を復旧させる技術の開発が活発に進められている。これに関連する文献として、次の各々の技術資料がある。その中でも特許文献1には、コンピュータシステムに対して行った復旧手順を、次に同一の障害が発生した時に備えて登録しておくという障害復旧装置が記載されている。
特許文献2には、ジョブネットワークで障害が発生した場合に、障害回復プログラムを自動的に実行するという管理システムが記載されている。特許文献3には、複数のサーバで提供される処理サービスを1台の監視装置によって監視して復旧するという自動監視復旧システムが記載されている。
特開平10−091475号公報 特開2004−318763号公報 特開2002−342180号公報
図13は、既存技術に係るデータベースシステム901の全体的な構成について示す説明図である。データベースシステム901は、プライマリサイト902(現用系)とセカンダリサイト903(待機系)とがネットワーク904を介して接続されて構成されている。
プライマリサイト902は、アプリケーションサーバ911と、データベースサーバ912と、ストレージ装置913とを含む。セカンダリサイト903も同様に、アプリケーションサーバ921と、データベースサーバ922と、ストレージ装置923とを含む。また、アプリケーションサーバ911および921は相互にサーバクラスタを構成し、同様にデータベースサーバ912および922も相互にサーバクラスタを構成する。
アプリケーションサーバ911および921は、相互に動作を監視しあい、そのうちの一方が異常停止した場合には残る一方のみで動作を継続することができる。また、データベースサーバ912および922も、相互に動作を監視しあい、そのうちの一方が異常停止した場合には残る一方のみで動作を継続することができる。
近年は特に、eコマース(電子商取引)の普及により、ウェブサーバなどのようなアプリケーションソフトを動作させるアプリケーションサーバと、そこで取引される商品やサービスなどについてのデータを大量に扱うデータベースサーバとを組み合わせた構造のウェブシステムが多く動作するようになっている。そのような場合には、図13に示したデータベースシステム901のように、アプリケーションサーバおよびデータベースサーバを各々二重化して相互に監視し合い、現用系で異常が発生した時にはいつでも待機系が処理を引き継げる構造のシステムが利用されるようになっている。
しかしながら、これらのようなシステムでは、現用系から待機系への切り替えにはやはり保守作業員の手による操作が必要である。この操作はどうしても煩雑なものとなり、またヒューマンエラーによるミスも生じやすい。
特に、ハードウェアおよびソフトウェアの構成の都合上、そのシステムにおいて特に頻繁に発生しやすい特定の障害がどうしても存在するが、その特定の障害に対する対応は経験上ある程度パターン化できるものであるにもかかわらず、その対応のパターン化を行って自動的に実行しうる形にするという従来技術は存在しない。
前述の特許文献1〜3には「障害回復の操作を学習して、同じ障害に対する回復操作を自動的に行う」ということは記載されているが、図13に示したデータベースシステム901の構成に適用可能なものは記載されていない。特に、アプリケーションサーバおよびデータベースサーバの両方で1台以上の障害が発生した場合に、これを検出して自動的に回復させることが可能なものは、特許文献1〜3のいずれにも記載されていない。
本願発明の目的は、相互に監視し合うアプリケーションサーバおよびデータベースサーバの両方が1台以上で障害が発生した場合にも、学習された障害回復処理を実行することを可能とするデータベースシステム、データベース装置、データベースの障害回復方法およびプログラムを提供することにある。
上記目的を達成するため、本発明に係るデータベースシステムは、現用系アプリケーションサーバおよび現用系データベースサーバを含むプライマリサイトと、待機系アプリケーションサーバおよび待機系データベースサーバを含むセカンダリサイトとがネットワークを介して接続されて構成されるデータベースシステムであって、現用系アプリケーションサーバ、現用系データベースサーバ、待機系アプリケーションサーバおよび待機系データベースサーバがいずれも、相互に他装置と監視し合うサーバ状態監視部を各々備え、各サーバ状態監視部が、データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドをログとして記録し、このログの中から特定のパターンを抽出して前記保守者に提示し、該保守者が選択した前記パターンを学習データとして、発生した障害の症状を示すエラーコードと対応づけて予め備えられた記憶手段に記憶させ、かつ他の各サーバにもこの学習データを送付して記憶させるコマンド学習機能と、いずれかのサーバに障害が発生したことを検出する障害検出機能と、検出された障害と同一のエラーコードが学習データに記憶されているか否かを検索するエラーパターン検索機能と、検出された障害と同一のエラーコードが学習データに記憶されている場合に、そのエラーコードに対応するパターンのコマンドを現用系アプリケーションサーバに実行させる学習済コマンド実行機能とを有することを特徴とする。
上記目的を達成するため、本発明に係るデータベース装置は、現用系アプリケーションサーバおよび現用系データベースサーバを含むプライマリサイトと、待機系アプリケーションサーバおよび待機系データベースサーバを含むセカンダリサイトとがネットワークを介して接続されて構成されるデータベースシステムで、現用系データベースサーバもしくは待機系データベースサーバとして機能しうるデータベース装置であって、相互に他装置と監視し合うサーバ状態監視部を備えると共に、このサーバ状態監視部が、データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドをログとして記録し、このログの中から特定のパターンを抽出して前記保守者に提示し、該保守者が選択した前記パターンを学習データとして、発生した障害の症状を示すエラーコードと対応づけて予め備えられた記憶手段に記憶させ、かつ他の各サーバにもこの学習データを送付して記憶させるコマンド学習機能と、いずれかのサーバに障害が発生したことを検出する障害検出機能と、検出された障害と同一のエラーコードが学習データに記憶されているか否かを検索するエラーパターン検索機能と、検出された障害と同一のエラーコードが学習データに記憶されている場合に、そのエラーコードに対応するパターンのコマンドを現用系アプリケーションサーバに実行させる学習済コマンド実行機能とを有することを特徴とする。
上記目的を達成するため、本発明に係る障害回復方法は、現用系アプリケーションサーバおよび現用系データベースサーバを含むプライマリサイトと、待機系アプリケーションサーバおよび待機系データベースサーバを含むセカンダリサイトとがネットワークを介して接続されて構成されるデータベースシステムにあって、データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドをデータベースシステムを構成する各サーバのコマンド学習機能がログとして記録し、記録されたログの中から特定のパターンを抽出して前記保守者に提示し、該保守者が選択した前記パターンを学習データとして、発生した障害の症状を示すエラーコードと対応づけて各サーバのコマンド学習機能が予め備えられた記憶手段に記憶させると共に、他の各サーバにもこの学習データを送付して記憶させ、いずれかのサーバに障害が発生したことを各サーバの障害検出機能が検出し、検出された障害と同一のエラーコードが学習データに記憶されているか否かを各サーバのエラーパターン検索機能が検索し、検出された障害と同一のエラーコードが学習データに記憶されている場合に、そのエラーコードに対応するパターンのコマンドを各サーバの学習済コマンド実行機能が現用系アプリケーションサーバに実行させることを特徴とする。
上記目的を達成するため、本発明に係る障害回復プログラムは、現用系アプリケーションサーバおよび現用系データベースサーバを含むプライマリサイトと、待機系アプリケーションサーバおよび待機系データベースサーバを含むセカンダリサイトとがネットワークを介して接続されて構成されるデータベースシステムにあって、データベースシステムを構成する各サーバが備えるプロセッサに、データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドをログとして記録する手順、記録されたログの中から特定のパターンを抽出して前記保守者に提示し、該保守者が選択した前記パターンを学習データとして、発生した障害の症状を示すエラーコードと対応づけて予め備えられた記憶手段に記憶させると共に、他の各サーバにもこの学習データを送付して記憶させる手順、いずれかのサーバに障害が発生したことを検出する手順、検出された障害と同一のエラーコードが学習データに記憶されているか否かを検索する手順、および検出された障害と同一のエラーコードが学習データに記憶されている場合に、そのエラーコードに対応するパターンのコマンドを現用系アプリケーションサーバに実行させる手順を実行させることを特徴とする。
本発明は、上記したように、現用系および待機系のアプリケーションサーバおよびデータベースサーバがいずれも、相互に障害の発生を監視し合うサーバ状態監視部を備える構成としたので、障害が発生した場合にどの装置からでも学習済の障害回復の操作を実行することができる。このことにより、アプリケーションサーバおよびデータベースサーバの両方が1台以上で障害が発生した場合にも、学習された障害回復処理を実行することが可能であるという、優れた特徴を持つデータベースシステム、データベース装置、データベースの障害回復方法およびプログラムを提供することができる。
本発明の実施形態に係るデータベースシステムの全体的な構成について示す説明図である。 図1に示したプライマリサイトのより詳しい構成について示す説明図である。 図1に示したセカンダリサイトのより詳しい構成について示す説明図である。 図1に示したデータベースシステムで、全ての構成要素が正常に動作している時に、各サーバの行う処理を学習する処理の流れについて示すシーケンス図である。 図4のステップS110〜114の処理で保守者に提示されるエラーパターン、および記憶される学習データの一例について示す説明図である。 図1に示したデータベースシステムで、全てのサーバ状態監視部が正常に動作しているが、データベースサーバで障害が発生した場合の動作の流れについて示すシーケンス図である。 図1に示したデータベースシステムで、データベースサーバで障害が発生し、かつアプリケーションサーバも正常に動作していない場合の動作の流れについて示すシーケンス図である。 図1に示したデータベースシステムで、現用系データベースサーバのサーバ状態監視部が停止した場合の動作の流れについて示すシーケンス図である。 図1に示したデータベースシステムで、待機系データベースサーバのサーバ状態監視部が停止した場合の動作の流れについて示すシーケンス図である。 図1に示したデータベースシステムで、現用系データベースサーバのサーバ状態監視部が停止した場合に行う操作を学習する処理の流れについて示すシーケンス図である。 図1に示したデータベースシステムで、待機系データベースサーバのサーバ状態監視部が停止した場合に行う操作を学習する処理の流れについて示すシーケンス図である。 図1に示したデータベースシステムで、コマンド学習機能がシステム立ち上げの初期段階で行う処理について示す説明図である。 既存技術に係るデータベースシステムの全体的な構成について示す説明図である。
(実施形態)
以下、本発明の実施形態の構成について添付図1〜3に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るデータベースシステム1は、現用系アプリケーションサーバ11および現用系データベースサーバ12を含むプライマリサイト2と、待機系アプリケーションサーバ21および待機系データベースサーバ22を含むセカンダリサイト3とがネットワーク4を介して接続されて構成されるデータベースシステムである。現用系アプリケーションサーバ11、現用系データベースサーバ12、待機系アプリケーションサーバ21および待機系データベースサーバ22がいずれも、相互に他装置と監視し合うサーバ状態監視部102,112,202,212を各々備え、各サーバ状態監視部が、データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドをログとして記録し、このログの中から特定のパターンを抽出した学習データを発生した障害の症状を示すエラーコードと対応づけて予め備えられた記憶手段に記憶させ、かつ他の各サーバにもこの学習データを送付して記憶させるコマンド学習機能102aと、いずれかのサーバに障害が発生したことを検出する障害検出機能102bと、検出された障害と同一のエラーコードが学習データに記憶されているか否かを検索するエラーパターン検索機能102cと、検出された障害と同一のエラーコードが学習データに記憶されている場合に、そのエラーコードに対応するパターンのコマンドを現用系アプリケーションサーバに実行させる学習済コマンド実行機能102dとを有する。
ここで、コマンド学習機能102aは、ログから抽出されたパターンをユーザに提示し、該ユーザが選択したパターンを学習データとして記憶する。また、障害検出機能102bが各サーバのうちのいずれかに障害が発生したことを検出した場合に、その障害が発生したサーバが復旧したことを検出してからコマンド学習機能102aに学習データを送付させる。
さらに、学習済コマンド実行機能102dが、現用系アプリケーションサーバ11がコマンドを実行できない場合に、待機系アプリケーションサーバ21にそのコマンドを実行させる。
以上の構成を備えることにより、データベースシステム1は、アプリケーションサーバおよびデータベースサーバの両方が1台以上で障害が発生した場合にも、学習された障害回復処理を実行することが可能となる。
以下、これをより詳細に説明する。
図1は、本発明の実施形態に係るデータベースシステム1の全体的な構成について示す説明図である。データベースシステム1は、プライマリサイト2(現用系)とセカンダリサイト3(待機系)とがネットワーク4を介して接続されて構成されている。ネットワーク4は、同一のサブネットマスクを有するネットワークである。
プライマリサイト2は、アプリケーションサーバ11と、データベースサーバ12と、ストレージ装置13とを含む。セカンダリサイト3も同様に、アプリケーションサーバ21と、データベースサーバ22と、ストレージ装置23とを含む。また、アプリケーションサーバ11および21は相互にサーバクラスタを構成し、同様にデータベースサーバ12および22も相互にサーバクラスタを構成する。
プライマリサイト2とセカンダリサイト3はそれぞれ、多数のクライアント装置14a,b,c,…と24a,b,c,…を含む。また、アプリケーションサーバ11および21には各々、多くの周辺装置15a,b,c,…と25a,b,c,…が接続されている。これらについては、本実施形態を説明する上で特に必要ではないので、それらの詳しい構成についての説明はここでは省略する。
図2は、図1に示したプライマリサイト2のより詳しい構成について示す説明図である。アプリケーションサーバ11およびデータベースサーバ12は、いずれも一般的なコンピュータ装置(サーバマシン)である。図2では物理的に別々のコンピュータであるものとしたが、アプリケーションサーバ11およびデータベースサーバ12を同一のコンピュータで構成してもよいし、またアプリケーションサーバ11もしくはデータベースサーバ12を複数台のコンピュータの組み合わせによって仮想的に構成してもよい。
アプリケーションサーバ11は、コンピュータプログラムの実施主体であるプロセッサ11aと、コンピュータプログラムと動作データを記憶する記憶手段11bと、ネットワーク4と接続して他のコンピュータとの間でデータ通信を行う通信手段11cとを備える。データベースサーバ12も同様に、コンピュータプログラムの実施主体であるプロセッサ12aと、コンピュータプログラムと動作データを記憶する記憶手段12bと、ネットワーク4と接続して他のコンピュータとの間でデータ通信を行う通信手段12cとを備える。
アプリケーションサーバ11のプロセッサ11aでは、各クライアント装置からの処理依頼に基づいてアプリケーション(具体的にはウェブサーバ、業務システムなど)を動作させるアプリケーション動作部101が機能する。データベースサーバ12のプロセッサ12aでは、アプリケーション動作部101で動作するアプリケーションで処理されるデータをストレージ装置13に記憶させるデータベース動作部111が機能する。
ストレージ装置13には、通常の磁気ディスクや半導体ディスクによる主ストレージ部13aと、テープ(QIC,DDS,DLT他)や光ディスクなどによるバックアップストレージ部13bとが含まれる。
さらに、アプリケーションサーバ11のプロセッサ11aとデータベースサーバ12のプロセッサ12aでは、互いに互いの動作を監視すると同時に、セカンダリサイト3のアプリケーションサーバ21およびデータベースサーバ22の動作を監視し、異常を検出した際にその異常から当該サーバを復旧させるサーバ状態監視部102および112がサーバプロセスとして同時に動作する。
そして、アプリケーションサーバ11の記憶手段11bとデータベースサーバ12の記憶手段12bには、サーバ状態監視部102および112が各々記憶させる学習データ103および113が記憶される。
図3は、図1に示したセカンダリサイト3のより詳しい構成について示す説明図である。セカンダリサイト3のアプリケーションサーバ21およびデータベースサーバ22は、いずれも一般的なコンピュータ装置(サーバマシン)である。
アプリケーションサーバ21、データベースサーバ22、およびストレージ装置23は、いずれもプライマリサイト2のアプリケーションサーバ11、データベースサーバ12、およびストレージ装置13と同一の構成を備え、ただハードウェア的には各要素の参照番号を+10、ソフトウェア的には各要素の参照番号を+100したのみである。各要素の呼称は全て同一である。従って、それらの詳しい構成についての説明はここでは省略する。
アプリケーションサーバ11のサーバ状態監視部102には、コマンド学習機能102a、障害検出機能102b、エラーパターン検索機能102c、学習済コマンド実行機能102d、といった各機能を備えている。データベースサーバ12、アプリケーションサーバ21、データベースサーバ22が各々備えるサーバ状態監視部112,202,212も、これらの各機能をそれぞれ備えているので、以後本明細書では、たとえばデータベースサーバ12のサーバ状態監視部112が備えるコマンド学習機能は「コマンド学習機能112a」などのように呼ぶことにする。
図4は、図1に示したデータベースシステム1で、全ての構成要素が正常に動作している時に、各サーバの行う処理を学習する処理の流れについて示すシーケンス図である。図4では、保守者がプライマリサイト2のアプリケーションサーバ11に対して開始要求を発する例について示すが、この開始要求はアプリケーションサーバ11を直接操作して入力してもよいし、またプライマリサイト2側のクライアント装置14のいずれかからアプリケーションサーバ11にリモートアクセスして入力してもよい。さらにセカンダリサイト3のアプリケーションサーバ21に対しても、同様の開始要求によって図4と同様の動作をさせることも可能である。
開始要求を受けたサーバ状態監視部102のコマンド学習機能102aは(ステップS101)、動作ログの記録を開始しつつも他の各サーバのサーバ状態監視部、即ちプライマリサイト2側ではデータベースサーバ12のサーバ状態監視部112、セカンダリサイト3ではアプリケーションサーバ21のサーバ状態監視部202、およびデータベースサーバ22のサーバ状態監視部212の各々に対して開始要求を送信する(ステップS102a〜c)。
開始要求を受けたサーバ状態監視部112,202,212は、各々のコマンド学習機能112a,202a,212aによって各々動作ログの記録を開始して、開始要求に対する正常応答をサーバ状態監視部102に返す(ステップS103a〜c)。そしてサーバ状態監視部102のコマンド学習機能102aは保守者に対して正常応答を返す(ステップS104)。
これで、アプリケーションサーバ11にユーザが入力し、そこから他のサーバに対して適宜転送される全てのコマンドに対して、そのコマンドと当該コマンドに対して行われた操作と返される応答について、各々のサーバ状態監視部102,112,202,212はログを記録する(ステップS105〜106)。図4では、アプリケーションサーバ11から他のサーバに転送されるコマンドとそれに対する他のサーバからの応答についての詳細な記載は省略している。
開始要求と同様にして、保守者が終了処理要求を入力すると(ステップS107)、サーバ状態監視部102が動作ログの記録を終了し、同時に他のサーバ状態監視部112,202,212の各々に対して終了処理要求を送信する(ステップS108a〜c)。終了処理要求を受けた他のサーバ状態監視部112,202,212は、各々動作ログの記録を終了して、記録した動作ログをサーバ状態監視部102に送信する(ステップS109a〜c)。
サーバ状態監視部102は、自らが記録した動作ログと他から受信した動作ログとから、エラーパターンを抽出して保守者に提示する(ステップS110)。この動作の詳細については後述する。
そして保守者は、その中から学習すべきエラーパターンを選択して入力する(ステップS111)。サーバ状態監視部102は、そこで選択されたエラーパターンを学習データ103として記憶すると共に、他のサーバ状態監視部112,202,212の各々に対してそのエラーパターンを送付する(ステップS112a〜c)。各々のサーバ状態監視部102,112,202,212は、そのエラーパターンを受信して、各々学習データ113,203,213として記憶し、(ステップS113a〜c)、正常応答を返す(ステップS114)。
図5は、図4のステップS110〜114の処理で保守者に提示されるエラーパターン、および記憶される学習データ103,113,203,213の一例について示す説明図である。ステップS110に示した処理では、発生したエラーの対象装置120aとエラーコード120b、そしてこれに対して各装置に実際に入力されたコマンド120cが保守者に提示される。
これに対して保守者は、ステップS111に示した処理で、そのコマンド120cの中で実際に入力すべきものを選択し、またたとえば「ホスト名」や「プロセス名」などのような要素を「対象装置」「対象プロセス」などを示す変数に置き換えて入力する。これで入力されたデータが学習パターン120dとなり、エラーコード120bに対応づけられて、ステップS112〜114の処理で各装置の学習データ103,113,203,213として記憶される。
ここで、実際に作成される学習データは、各装置ごとに異なるものである。アプリケーションサーバとデータベースサーバとで異なるコマンドが実行されるべきであり、同様にプライマリサイトとセカンダリサイトとでも異なるコマンドが実行されるべきだからである。しかしながら、この装置ごとに実行されるべきコマンドの相違点は当業者にはよく知られているので、細かい解説はここでは割愛する。
図6は、図1に示したデータベースシステム1で、全てのサーバ状態監視部102,112,202,212が正常に動作しているが、データベースサーバ12で障害が発生した場合の動作の流れについて示すシーケンス図である。データベースサーバ12ではサーバ状態監視部112がサーバプロセスとして動作しているので、この障害発生を障害検出機能112bが検出する(ステップS201)。
障害検出機能112bがこの障害発生を検出したら、これに反応したエラーパターン検索機能112cが、学習データ113の中に同一のエラーコード120bのものが登録されているか否かについて検索する(ステップS202)。登録されていなければ、そこでアプリケーションサーバ11に処理を停止するよう指示して、その障害発生を保守者に通知する(ステップS203)。その場合、保守者は図4に示した操作を行って、各サーバに対して障害対応を行うと共に、その障害対応の操作について学習させる。
学習データ113の中に同一のエラーコード120bのものが登録されていれば、エラーパターン検索機能112cはアプリケーションサーバ11の学習済コマンド実行機能102dに、このエラーコード120bに対応する学習パターン120dのコマンドを実行するよう指示し、これに応じて学習済コマンド実行機能102dはその学習パターン120dを学習データ113から読み出して、各サーバの学習済コマンド実行機能102d,112d,202d,212dにその学習パターン120dによるコマンドを実行させる(ステップS204〜205)。
ここで、学習済コマンドの実行を開始する主体はデータベースサーバ12でもよいが、このデータベースサーバ12の動作が停止している場合を想定して、ここではアプリケーションサーバ11をその主体としている。基本的に、この実行開始の主体はどのサーバでもよい。
その実行中も、コマンド学習機能102a,112a,202a,212aが図4のステップS105〜106と同様にログを記録しているので、学習済のコマンドの実行が一通り終了したら学習済コマンド実行機能102dは他のコマンド学習機能102a,112a,202a,212aに対して終了指示を行い(ステップS206a〜c)、これに応じて各々のコマンド学習機能102a,112a,202a,212aは記録したログを返送する(ステップS207a〜c)。そして学習済コマンド実行機能102dは処理結果をユーザに通知する(ステップS208)。
図7は、図1に示したデータベースシステム1で、データベースサーバ12で障害が発生し、かつアプリケーションサーバ11も正常に動作していない場合の動作の流れについて示すシーケンス図である。この場合は、ステップS202までは図6と同一の動作となるが、ステップS203でエラーパターン検索機能112cがアプリケーションサーバ11に処理を停止するよう指示、またはステップS204で学習済コマンド実行機能102dにエラーコード120bに対応する学習パターン120dのコマンドを実行するよう指示したが、これに対する正常応答が返送されない。
そこでエラーパターン検索機能112cは、セカンダリサイト3のアプリケーションサーバ21に、学習データ113の中にエラーコード120bに対応する学習パターン120dが登録されていない場合はステップS203と同一の処理停止指示を送信して、その障害発生を保守者に通知する(ステップS251)。学習データ113の中にエラーコード120bに対応する学習パターン120dが登録されている場合は、ステップS204と同一のコマンド実行指示を送信して、学習済コマンド実行機能202dにその学習パターン120dのコマンドを実行させる(ステップS252〜3)。
以後は図6のステップS205以降と同一の動作を、アプリケーションサーバ21の学習済コマンド実行機能202dが行うこととなる。ただし、アプリケーションサーバ11は正常に動作していないので、ステップS207aのログが正常に送信されずタイムアウトとなる可能性がある。その場合も、その旨をログに記録し、保守者に通知する。
図8は、図1に示したデータベースシステム1で、現用系データベースサーバ12のサーバ状態監視部112が停止した場合の動作の流れについて示すシーケンス図である。アプリケーションサーバ11の障害検出機能102bは、周期的にデータベースサーバ12および22のサーバ状態監視部112および212に対して状態監視用の信号を送信しているので、この状態監視用信号に対する応答が無いことによってサーバ状態監視部112の停止を検出する(ステップS301)。
障害検出機能102bがこの障害発生を検出したら、これに反応したエラーパターン検索機能102cが、学習データ103の中にこのエラーと同一のエラーコード120bが登録されているか否かについて検索する(ステップS302)。登録されていなければ、図6のステップS203と同様に、自らの処理を停止して、その障害発生を保守者に通知する(ステップS303)。
学習データ113の中に同一のエラーコード120bが登録されていれば、アプリケーションサーバ11の学習済コマンド実行機能102dがそのエラーコード120bに対応する学習パターン120dのコマンドを実行すると共に、図6のステップS204以後と同様にして他の学習済コマンド実行機能112d,202d,212dにもその学習パターン120dのコマンドを実行させる。以後は図6の動作と同一である。
図9は、図1に示したデータベースシステム1で、待機系データベースサーバ22のサーバ状態監視部212が停止した場合の動作の流れについて示すシーケンス図である。これは、アプリケーションサーバ11の障害検出機能102bが停止を検出する対象がサーバ状態監視部212に変わる(ステップS351)だけで、あとは図8と同一の動作となる。
図10は、図1に示したデータベースシステム1で、現用系データベースサーバ12のサーバ状態監視部112が停止した場合に行う操作を学習する処理の流れについて示すシーケンス図である。より具体的には、図8のステップS303で、そのエラーコード120bが登録されていないことが保守者に通知された場合に、この状態に対して行う処理を学習することが必要となる。
その場合も、図4と同一の動作によって各サーバに対して行った操作を学習する。そして、その学習の操作が終了した後、アプリケーションサーバ11の障害検出機能102bにサーバ状態監視部112が復旧したか否かを監視する動作、より具体的には状態監視用の信号を周期的に送信する動作を開始する(ステップS401)。
この信号に対する正常な応答が返ってきたら、サーバ状態監視部112が復旧したものと判断して(ステップS402)、コマンド学習機能102aはステップS112で送信できなかったエラーパターンをアプリケーションサーバ11に送付する(ステップS403)。これを受信したコマンド学習機能112aは、受信したエラーパターンを学習データ113として記憶して、正常応答を返す(ステップS404)。
図11は、図1に示したデータベースシステム1で、待機系データベースサーバ22のサーバ状態監視部212が停止した場合に行う操作を学習する処理の流れについて示すシーケンス図である。これは、アプリケーションサーバ11の障害検出機能102bが復旧したか否かを検出する対象がサーバ状態監視部212に変わる(ステップS451〜454)だけで、あとは図10と同一の動作となる。
図12は、図1に示したデータベースシステム1で、コマンド学習機能102aがシステム立ち上げの初期段階で行う処理について示す説明図である。まず、アプリケーションサーバ11のコマンド学習機能102aが、他のコマンド学習機能112a,202a,212aに対して、各サーバ固有の構成情報を要求する(ステップS501a〜c)。コマンド学習機能112a,202a,212aは各々、この要求に対してこの構成情報を送信する(ステップS502a〜c)。
これを受けたコマンド学習機能102aは、受信した各々の構成情報を取りまとめてデータベースシステム1全体としての構成情報を作成して自ら学習データ103として記憶すると共に、これをコマンド学習機能112a,202a,212aに送信する(ステップS503a〜c)。コマンド学習機能112a,202a,212aは各々、これを学習データ113,203,213として記憶して正常応答を返す(ステップS504a〜c)。前述のように、実際に作成される学習データは各装置ごとに異なるものであるが、この実行されるべきコマンドの相違点は当業者にはよく知られているので、細かい解説はここでは割愛する。
(実施形態の全体的な動作)
次に、上記の実施形態の全体的な動作について説明する。
本実施形態に係る障害回復方法は、現用系アプリケーションサーバ11および現用系データベースサーバ12を含むプライマリサイト2と、待機系アプリケーションサーバ21および待機系データベースサーバ22を含むセカンダリサイト3とがネットワーク4を介して接続されて構成されるデータベースシステム4にあって、データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドをデータベースシステムを構成する各サーバのコマンド学習機能がログとして記録し(図4・ステップS101〜109)、記録されたログの中から特定のパターンを抽出した学習データを発生した障害の症状を示すエラーコードと対応づけて各サーバのコマンド学習機能が予め備えられた記憶手段に記憶させると共に、他の各サーバにもこの学習データを送付して記憶させ(図4・ステップS110〜114)、いずれかのサーバに障害が発生したことを各サーバの障害検出機能が検出し(図6・ステップS201)、検出された障害と同一のエラーコードが学習データに記憶されているか否かを各サーバのエラーパターン検索機能が検索し(図6・ステップS202)、検出された障害と同一のエラーコードが学習データに記憶されている場合に、そのエラーコードに対応するパターンのコマンドを各サーバの学習済コマンド実行機能が現用系アプリケーションサーバに実行させる(図6・ステップS204〜205)。
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行する各サーバのプロセッサに実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、DVD、CD、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
本実施形態によれば、発生した障害のエラーコードに対応するパターンが登録されていれば、そのパターンを自動的に実行して、復旧にかかる手間を軽減することが可能となる。かつ、そのパターンによる復旧は現用系と待機系のアプリケーションサーバおよび現用系データベースサーバのいずれからでも実行可能であるので、2つ以上のサーバで同時に障害が発生した場合でもそのパターンを実行できる。
従って、既存技術ではたとえば数十程度のコマンドの実行と数時間程度の時間を要していた復旧作業を、本実施形態では多くても数コマンド程度の実行で、数分程度で終わらせることができる。さらに、特に頻繁に発生する症状についてはすぐに学習して自動化して、保守者による操作自体を必要とせず、自動的に復旧させることができる。即ち、ヒューマンエラーの発生要因となる繁雑な作業を大幅に軽減して、発生した障害への対応を円滑に行うことが、本実施形態によって可能となる。
(実施形態の拡張)
上記実施形態は、以上で説明した本発明の趣旨を改変しない範囲で、様々な拡張が可能である。以下、これについて説明する。
まず、上記実施形態ではプライマリサイト(現用系)とセカンダリサイト(待機系)が各々アプリケーションサーバおよびデータベースサーバを含むという構成について説明したが、実際の装置の区分は必ずしもこの例の通りである必要はない。たとえばアプリケーションサーバとデータベースサーバとが同一のコンピュータによって構成されてもよいし、逆に複数の物理的コンピュータによって仮想的に構成されるものであってもよい。さらに、セカンダリサイトが複数備えられていてもよい。
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
本発明は、アプリケーションサーバとデータベースサーバとを組み合わせた構造のウェブシステムに適用できる。たとえば電子商取引システムや業務システム等において、可用性を向上させる用途に特に適している。
1 データベースシステム
2 プライマリサイト
3 セカンダリサイト
4 ネットワーク
11、21 アプリケーションサーバ
11a、12a、21a、22a プロセッサ
11b、12b、21b、22b 記憶手段
11c、12c、21c、22c 通信手段
12、22 データベースサーバ
13、23 ストレージ装置
13a、23a 主ストレージ部
13b、23b バックアップストレージ部
14a、24a クライアント装置
15a、25a 周辺装置
101、201 アプリケーション動作部
102、112、202、212 サーバ状態監視部
102a、112a、202a、212a コマンド学習機能
102b、112b、202b、212b 障害検出機能
102c、112c、202c、212c エラーパターン検索機能
102d、112d、202d、212d 学習済コマンド実行機能
111、211 データベース動作部
103、113、203、213 学習データ
120a 対象装置
120b エラーコード
120c コマンド
120d 学習パターン

Claims (6)

  1. 現用系アプリケーションサーバおよび現用系データベースサーバを含むプライマリサイトと、待機系アプリケーションサーバおよび待機系データベースサーバを含むセカンダリサイトとがネットワークを介して接続されて構成されるデータベースシステムであって、
    前記現用系アプリケーションサーバ、前記現用系データベースサーバ、前記待機系アプリケーションサーバおよび前記待機系データベースサーバがいずれも、相互に他装置と監視し合うサーバ状態監視部を各々備え、
    前記各サーバ状態監視部が、
    前記データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドをログとして記録し、このログの中から特定のパターンを抽出して前記保守者に提示し、該保守者が選択した前記パターンを学習データとして、発生した前記障害の症状を示すエラーコードと対応づけて予め備えられた記憶手段に記憶させ、かつ他の各サーバにもこの学習データを送付して記憶させるコマンド学習機能と、
    前記いずれかのサーバに障害が発生したことを検出する障害検出機能と、
    検出された前記障害と同一の前記エラーコードが前記学習データに記憶されているか否かを検索するエラーパターン検索機能と、
    検出された前記障害と同一の前記エラーコードが前記学習データに記憶されている場合に、そのエラーコードに対応する前記パターンのコマンドを前記現用系アプリケーションサーバに実行させる学習済コマンド実行機能と
    を有することを特徴とするデータベースシステム。
  2. 前記障害検出機能が前記各サーバのうちのいずれかに障害が発生したことを検出した場合に、その障害が発生したサーバが復旧したことを検出してから前記コマンド学習機能に前記学習データを送付させることを特徴とする、請求項1に記載のデータベースシステム。
  3. 前記学習済コマンド実行機能が、
    前記現用系アプリケーションサーバが前記コマンドを実行できない場合に、前記待機系アプリケーションサーバに前記コマンドを実行させることを特徴とする、請求項1に記載のデータベースシステム。
  4. 現用系アプリケーションサーバおよび現用系データベースサーバを含むプライマリサイトと、待機系アプリケーションサーバおよび待機系データベースサーバを含むセカンダリサイトとがネットワークを介して接続されて構成されるデータベースシステムで、前記現用系データベースサーバもしくは前記待機系データベースサーバとして機能しうるデータベース装置であって、
    相互に他装置と監視し合うサーバ状態監視部を備えると共に、
    このサーバ状態監視部が、
    前記データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドをログとして記録し、このログの中から特定のパターンを抽出して前記保守者に提示し、該保守者が選択した前記パターンを学習データとして、発生した前記障害の症状を示すエラーコードと対応づけて予め備えられた記憶手段に記憶させ、かつ他の各サーバにもこの学習データを送付して記憶させるコマンド学習機能と、
    前記いずれかのサーバに障害が発生したことを検出する障害検出機能と、
    検出された前記障害と同一の前記エラーコードが前記学習データに記憶されているか否かを検索するエラーパターン検索機能と、
    検出された前記障害と同一の前記エラーコードが前記学習データに記憶されている場合に、そのエラーコードに対応する前記パターンのコマンドを前記現用系アプリケーションサーバに実行させる学習済コマンド実行機能とを有することを特徴とするデータベース装置。
  5. 現用系アプリケーションサーバおよび現用系データベースサーバを含むプライマリサイトと、待機系アプリケーションサーバおよび待機系データベースサーバを含むセカンダリサイトとがネットワークを介して接続されて構成されるデータベースシステムにあって、
    前記データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドを前記データベースシステムを構成する各サーバのコマンド学習機能がログとして記録し、
    記録された前記ログの中から特定のパターンを抽出して前記保守者に提示し、該保守者が選択した前記パターンを学習データとして、発生した前記障害の症状を示すエラーコードと対応づけて前記各サーバのコマンド学習機能が予め備えられた記憶手段に記憶させると共に、他の各サーバにもこの学習データを送付して記憶させ、
    前記いずれかのサーバに障害が発生したことを前記各サーバの障害検出機能が検出し、
    検出された前記障害と同一の前記エラーコードが前記学習データに記憶されているか否かを各サーバのエラーパターン検索機能が検索し、
    検出された前記障害と同一の前記エラーコードが前記学習データに記憶されている場合に、そのエラーコードに対応する前記パターンのコマンドを前記各サーバの学習済コマンド実行機能が前記現用系アプリケーションサーバに実行させる
    ことを特徴とする障害回復方法。
  6. 現用系アプリケーションサーバおよび現用系データベースサーバを含むプライマリサイトと、待機系アプリケーションサーバおよび待機系データベースサーバを含むセカンダリサイトとがネットワークを介して接続されて構成されるデータベースシステムにあって、
    前記データベースシステムを構成する各サーバが備えるプロセッサに、
    前記データベースシステムを構成するいずれかのサーバに障害が発生した時に保守者が入力したコマンドをログとして記録する手順、
    記録された前記ログの中から特定のパターンを抽出して前記保守者に提示し、該保守者が選択した前記パターンを学習データとして、発生した前記障害の症状を示すエラーコードと対応づけて予め備えられた記憶手段に記憶させると共に、他の各サーバにもこの学習データを送付して記憶させる手順、
    前記いずれかのサーバに障害が発生したことを検出する手順、
    検出された前記障害と同一の前記エラーコードが前記学習データに記憶されているか否かを検索する手順、
    および検出された前記障害と同一の前記エラーコードが前記学習データに記憶されている場合に、そのエラーコードに対応する前記パターンのコマンドを前記現用系アプリケーションサーバに実行させる手順
    を実行させることを特徴とする障害回復プログラム。
JP2012224147A 2012-10-09 2012-10-09 データベースシステム、データベース装置、データベースの障害回復方法およびプログラム Active JP6070040B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012224147A JP6070040B2 (ja) 2012-10-09 2012-10-09 データベースシステム、データベース装置、データベースの障害回復方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012224147A JP6070040B2 (ja) 2012-10-09 2012-10-09 データベースシステム、データベース装置、データベースの障害回復方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2014078067A JP2014078067A (ja) 2014-05-01
JP6070040B2 true JP6070040B2 (ja) 2017-02-01

Family

ID=50783343

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012224147A Active JP6070040B2 (ja) 2012-10-09 2012-10-09 データベースシステム、データベース装置、データベースの障害回復方法およびプログラム

Country Status (1)

Country Link
JP (1) JP6070040B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10909115B2 (en) * 2017-12-04 2021-02-02 Nec Corporation System event search based on heterogeneous logs
JP7031527B2 (ja) * 2018-08-07 2022-03-08 日本電信電話株式会社 操作列生成装置、操作列生成方法及びプログラム
JP7472628B2 (ja) 2020-04-28 2024-04-23 日本電信電話株式会社 障害復旧装置、障害復旧方法及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6742141B1 (en) * 1999-05-10 2004-05-25 Handsfree Networks, Inc. System for automated problem detection, diagnosis, and resolution in a software driven system
JP4689963B2 (ja) * 2004-02-12 2011-06-01 Necフィールディング株式会社 コンピュータ遠隔診断修復システム、サーバ、プログラム、及び方法
JP2007272328A (ja) * 2006-03-30 2007-10-18 Bank Of Tokyo-Mitsubishi Ufj Ltd コンピュータ・システム
JP2012168907A (ja) * 2011-02-17 2012-09-06 Nec Corp 相互監視システム

Also Published As

Publication number Publication date
JP2014078067A (ja) 2014-05-01

Similar Documents

Publication Publication Date Title
US8910172B2 (en) Application resource switchover systems and methods
Lou et al. Software analytics for incident management of online services: An experience report
US10489232B1 (en) Data center diagnostic information
US9189348B2 (en) High availability database management system and database management method using same
JP4598065B2 (ja) 監視シミュレーション装置,方法およびそのプログラム
WO2013140608A1 (ja) イベントの根本原因の解析を支援する方法及びシステム
JP6095140B2 (ja) 遠隔監視システム、遠隔監視方法、及びプログラム
JP2008186296A (ja) ストレージシステム、ストレージ装置、ファームウェアの活***換方法、ファームウェアの活***換プログラム
TWI691852B (zh) 用於偵測階層式系統故障之偵錯裝置及偵錯方法、電腦可讀取之記錄媒體及電腦程式產品
US9256489B2 (en) Synchronized debug information generation
Veeraraghavan et al. Maelstrom: Mitigating datacenter-level disasters by draining interdependent traffic safely and efficiently
JP5058582B2 (ja) ストレージデバイスのマルチパスシステム、その障害箇所特定方法及びプログラム
JP5425720B2 (ja) 仮想化環境監視装置とその監視方法およびプログラム
JP6070040B2 (ja) データベースシステム、データベース装置、データベースの障害回復方法およびプログラム
JP6558037B2 (ja) 運用管理プログラム、運用管理方法、および運用管理装置
JP2007299213A (ja) Raid制御装置および障害監視方法
WO2011051999A1 (ja) 情報処理装置及び情報処理装置の制御方法
JP2005258501A (ja) 障害影響範囲解析システム及び障害影響範囲解析方法及びプログラム
US7437445B1 (en) System and methods for host naming in a managed information environment
JP2011076344A (ja) 情報処理装置,情報処理装置の制御方法および制御プログラム
JP2006053728A (ja) 障害対処ルール伝播方法、障害復旧装置およびプログラム
EP3852424B1 (en) Application resilience for applications deployed on a cloud platform
US10645163B2 (en) Site-aware cluster management
Chan et al. Debugging incidents in Google's distributed systems
JP2018169920A (ja) 管理装置、管理方法及び管理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160726

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160902

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161219

R150 Certificate of patent or registration of utility model

Ref document number: 6070040

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150