(57)【要約】【課題】クライアントが任意の１台のサーバにデータのアクセスを行えば、その後のサーバ間での処理を意識することなく、データの２重化を行うことができるデータ２重化システムを提供すること。【解決手段】多重化されたデータベースの管理方法において、データの入出力を行うクライアント側にサーバアクセス切換え手段と、データベース側にモード操作手段と、複数の仮想テーブル手段を備え、各々の仮想テーブル手段内にテーブルアクセス切換え手段と、自サーバ実テーブルアクセス手段と、他サーバ実テーブルアクセス手段と、一時保管テーブルアクセス手段と、実テーブル手段と、一時保管テーブル手段と、保管データ復帰手段を備える。【選択図】図１
2006164126.tif 000002
【特許請求の範囲】
【請求項１】
多重化されたデータベースの管理方法において、
データの入出力を行うクライアント側にサーバアクセス切換え手段と、データベース側にモード操作手段と、複数の仮想テーブル手段を備え、各々の仮想テーブル手段内にテーブルアクセス切換え手段と、自サーバ実テーブルアクセス手段と、他サーバ実テーブルアクセス手段と、一時保管テーブルアクセス手段と、実テーブル手段と、一時保管テーブル手段と、保管データ復帰手段を備えたことを特徴とするデータ２重化システム。
【請求項２】
各サーバに同一の機能を持たせ、互いに自サーバへのデータアクセス内容を他サーバへ通知することを特徴とする請求項１記載のデータ２重化システム。
【請求項３】
自サーバへのデータアクセス内容を他サーバへ通知することができない場合、そのデータアクセス内容を一時保管し、他サーバ復帰時に時系列を保ちながら他サーバへ通知することを特徴とする請求項２記載のデータ２重化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２重化されたデータベースにおけるデータベースの管理方法に関するものである。
【背景技術】
【０００２】
従来の管理システム２重化方式としては以下の２つが挙げられる。
【０００３】
１．デュプレックス構成：
管理システムは現用系、予備系で構成され、通常は現用系のみを使用する。現用系でデータベースの更新が発生した場合はその情報をその都度、又は定期的に予備系に反映させる。現用系に障害が発生した場合は、予備系を現用系に切り替える。
【０００４】
２．デュアル構成：
管理システムは両系とも現用系として構成され、どちらの系も使用することが可能である。どちらかの系でデータベースの更新が発生した場合は、そのデータをリアルタイムに他系に反映させる。即ち、自系のデータベースに書き込んだ後に他系の管理システムに送信して他系のデータベースに書き込みを行っている。片系に障害が発生した場合は、正常な他系で業務を継続し、障害の発生した系が障害から回復したときは、他系のデータベースに基づき整合処理を行って両系のデータベースを一致させ、業務を再開する。
【０００５】
しかしながら、これらの方式には下記の問題が指摘されている。
【０００６】
上記従来のデュプレックス構成においては、現用系障害時に予備系を現用系に切り替える処理手順が必要であるため、障害発生から切り替え完了までの間はシステムが停止状態となってしまう問題があった。
【０００７】
又、デュアル構成においては、両系運用のため片系障害時においてもシステムが停止状態となることはないが、他系障害を認識した場合、他系への情報の反映は行わないで各系が独立して自系のデータベースを更新しながらシステムの稼働を続けるため、通信異常の復旧による整合処理を行う際に、両系の情報とも更新されている可能性があり、この場合、整合処理に完全に良計両系のデータベース更新を反映させるのは困難であった。
【０００８】
この問題を解決するために、特許文献１においては、管理対象装置にマスタデータベースを設け、自系の管理システムにおいてデータベースへの書き込みが発生した場合、書き込みデータを先ず管理対象装置に設けたマスタデータベースに書き込み、その後で自系のデータベースに書き込むとともに、管理対象装置から他系の管理システムに対して書き込みデータを含む変更通知を送信して他系のデータベースに書き込むようにし、データベースの整合が必要な場合には、管理対象装置のマスタデータベースに基づいてデータベースを復旧することで両系のデータベースを整合させる方法を用いている。
【０００９】
【特許文献１】特開２００３−２０３００４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１記載のシステムによれば、１つの管理対象に対し、２つの管理システムを接続することにより課題を解決しており、２重化を行うに当たりコストが掛かる上、機能の異なるシステムを追加するため、異常の発生する部位或は内容により、データの整合性を保つために異なった対応を行う必要があった。
【００１１】
本発明は上記問題に鑑みてなされたもので、その目的とする処は、クライアントが任意の１台のサーバにデータのアクセスを行えば、その後のサーバ間での処理を意識することなく、データの２重化を行うことができるデータ２重化システムを提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明は、多重化されたデータベースの管理方法において、データの入出力を行うクライアント側にサーバアクセス切換え手段と、データベース側にモード操作手段と、複数の仮想テーブル手段を備え、各々の仮想テーブル手段内にテーブルアクセス切換え手段と、自サーバ実テーブルアクセス手段と、他サーバ実テーブルアクセス手段と、一時保管テーブルアクセス手段と、実テーブル手段と、一時保管テーブル手段と、保管データ復帰手段を備えたことを特徴とする。
【００１３】
又、一方のサーバに異常があった場合、正常なサーバに対して行われたアクセス内容を時系列に一時保存しておくことにより、異常サーバが復旧した際、その内容を反映させることで、データベースを整合させる。
【発明の効果】
【００１４】
上記のように構成された本発明のサーバの２重化システムの構成を用いることにより、２台のデータベースサーバは、互いにデータの整合性を保つように動作を行い、データベースの復帰時においても、異常時に行われたデータのアクセス内容を時系列に保存し、自動的に反映させることができる。このため、クライアントは、任意の１台のサーバにデータのアクセスを行えば、その後のサーバ間での処理を意識することなく、データの２重化を行うことができる。
【発明を実施するための最良の形態】
【００１５】
以下に本発明の実施の形態を添付図面に基づいて説明する。
【００１６】
図１は本発明によるデータベースとクライアントの構成を示す。
【００１７】
クライアント（１００）内のアプリケーション（１１０）は、サーバアクセス切換部（１２０）を介しネットワーク（２００）を通して、データベースサーバ１（３００）内のデータベース１（３１０）の各仮想テーブル１Ａ〜１Ｄ（３３０〜３６０）或はデータベースサーバ２（４００）内のデータベース２（４１０）の各仮想テーブル２Ａ〜２Ｄ（４３０〜４６０) にアクセスする。
【００１８】
サーバアクセス切換部（１２０）は、予め定められている優先順位に従い、プライマリとして設定されているサーバにアクセスを行う。プライマリサーバへのアクセス中に異常が発生した場合、セカンダリサーバに接続を切替え、アクセスを継続する。
【００１９】
又、本図では、２台のサーバが記述されているが、互いに同様の構成であるため、片方のサーバ、即ち、データベースサーバ１（３００）について説明を行う。
【００２０】
データベースサーバ１（３００）は、データベース１（３１０）から構成され、データベース１（３１０）は、各実テーブル１Ａ〜１Ｄ（３３５〜３６５）を内包した各仮想テーブル１Ａ〜１Ｄ（３３０〜３６０）及びデータベースの制御モードを操作するモード操作部１（３２０）から構成されている。
【００２１】
尚、本実施の形態におけるクライアント、データベースサーバは、一般的な情報処理装置（ＲＯＭから読み出されたプログラムに基づいて各処理を実行するＣＰＵ、ＲＡＭ、ハードディスクドライブ等の記憶装置）のハードウエア構成から成る。即ち、本実施の形態において、クライアント、データベースサーバのそれぞれには本実施の形態の特徴とするプログラムが記憶装置にインストールされているものとする。
【００２２】
図２は本発明による仮想テーブルとモード操作部の構成を示す。
【００２３】
仮想テーブルは、仮想テーブル１Ａ（３３０）を例に取ると、データアクセス切換部（３３１）・実テーブル１Ａアクセス部（３３２）・実テーブル２Ａアクセス部（３３３）・一時保管テーブル１Ａアクセス部（３３４）・実テーブル１Ａ（３３５）・一時保管テーブル１Ａ（３３６）・保管データ復帰部１（３３７）から構成されている。
【００２４】
クライアントからは実テーブル１Ａ（３３５）を直接アクセスする要領で仮想テーブル１Ａ（３３０）をアクセスすることができ、逆に、実テーブル１Ａ（３３５）を直接アクセスすることはできない。
【００２５】
クライアントからのデータ参照要求に関しては、データアクセス切換部（３３１）・実テーブル１Ａアクセス部（３３２）を通して、実テーブル１Ａ（３３５）のデータが参照結果として戻される。
【００２６】
又、クライアントからのデータ登録・更新・削除要求に関しては、データアクセス切換部（３３１）・実テーブル１Ａアクセス部（３３２）を通して、実テーブル１Ａ（３３５）にデータが反映されると共に、実テーブル２Ａアクセス部（３３３）を通して、他方のデータベースサーバ２（４００）のデータベース２（４１０）内の実テーブル２Ａ（４３５）にデータが反映される。
【００２７】
このことにより、データベース１（３１０）とデータベース２（４１０）の各仮想テーブルのデータは同一に保たれる。
【００２８】
又、他方のデータベースサーバ２（４００）の異常時には、一時保管テーブル１Ａアクセス部（３３４）を通して一時保管テーブル１Ａ（３３６）にデータが反映される。
【００２９】
更に、他方のデータベースサーバ２（４００）の復旧時には、モード操作部２（４２０）の指示により、保管データ復帰部２（４３７）が、データベース１（３１０）内の一時保管テーブル１Ａ（３３６）のデータをデータベース２（４１０）に異常時に反映されなかったデータの反映を行う。
【００３０】
このことにより、データベース１（３１０）とデータベース２（４１０）の各仮想テーブルのデータは復旧時に自動的に同一に保たれる。
【００３１】
図３は本発明によるデータベースサーバ１（３００）・データベースサーバ２（４００）の両サーバが正常動作時におけるデータアクセスの状態を示している。
【００３２】
図４はデータベースサーバ２（４００）の異常時におけるデータアクセスの状態を示している。
【００３３】
図５はデータベースサーバ２（４００）の復帰時におけるデータアクセスの状態を示している。
【００３４】
図６はデータベースサーバ１（３００）異常時にデータアクセスの状態を示している。
【００３５】
図７〜図１２は各部位における動作のフローを示している。
【００３６】
以下に、図２の各部位の動作を、図３〜図６の状態について、図７〜図１２の各フローを用いて説明する。
【００３７】
本発明によるデータベースには２種類のモードが存在する。
【００３８】
１つ目のモードは、データベースが、データの登録・更新・削除要求を受け付けられるかを示すモードで、異常時或は異常からの復旧時は“復帰中”となり、データの登録・更新・削除要求は受け付けない。正常時或いは復旧完了後は“通常”となり、データの登録・更新・削除要求を受け付ける。
【００３９】
２つ目のモードは、他方のサーバにデータを反映させることができるかを示すモードで、他方のサーバにデータを反映できないときは“ローカル”となり、反映できるときは“同期”となる。先ず、図３に示すように、データベースサーバ１（３００）・データベースサーバ２（４００）の両サーバが正常動作時におけるデータアクセスの状態について説明する。
【００４０】
クライアント（１００）内のアプリケーション（１１０）は、サーバアクセス切換部（１２(1０）介し、プライマリサーバ（３００）内のデータベース１（３１０）の仮想テーブル１Ａ（３３０）にデータの登録・更新・削除要求を行う。
【００４１】
仮想テーブル１Ａ（３３０）への要求は、データアクセス切換部（３３１）へ伝えられる。
【００４２】
データアクセス切換部（３３１）では、Ｓ１０１でモード１を判断し、モード１＝“通常”であれば、Ｓ１０２で実テーブル１Ａアクセス部（３３２）にその要求を伝える。Ｓ１０３で実テーブル１Ａアクセス部（３３２）での処理が正常に終了すれば、Ｓ１０４でモード２を判断し、モード２＝“同期”であればＳ１０５で実テーブル２Ａアクセス部（３３３）にその要求を伝える。Ｓ１０６で実テーブル２Ａアクセス部（３３３）での処理が正常に終了すれば、データアクセス切換部（３３１）での処理を正常終了として仮想テーブル１Ａ（３３０）の戻り値とする。
【００４３】
次に、図４に示すように、データベースサーバ２（４００）の異常時におけるデータアクセスの状態について説明する。
【００４４】
Ｓ１０５までの動作は上記で説明した通りである。
【００４５】
Ｓ１０６で実テーブル２Ａアクセス部（３３３）での処理が正常に終了しなかった場合、Ｓ１０７で一時保管テーブル１Ａアクセス部（３３４）を通して一時保管テーブル１Ａ（３３６）にデータが反映される。又、Ｓ３０３でモード２を切換えるためにモード操作部１（３２０）に対し、エラー発生通知を行う。
【００４６】
この動作により、本来実テーブル２Ａ（４３５）に反映されるべき要求内容が、一時保管テーブル１Ａ（３３６）に格納される。又、データアクセス切換部（３３１）での処理を正常終了として仮想テーブル１Ａ（３３０）の戻り値とする。
【００４７】
次に、図５に示すように、データベースサーバ２（４００）の復帰時におけるデータアクセスの状態について説明する。
【００４８】
データベースサーバ２（４００）内のデータベース２（４１０）が再起動されると、データベースサーバ２（４００）内のデータベース２（４１０）のモード操作部２（４２０）は、Ｓ５１１で、データベースサーバ１（３００）内のデータベース１（３１０）の一時保管テーブル１Ａ（３３６）のデータの有無を確認する。一時保管テーブル１Ａ（３３６）にデータがある場合、Ｓ５１３で、前述のモード１をモード１＝“復帰”に変更する。
【００４９】
又、Ｓ５１４で、保管データ復帰部２（４３７）において、Ｓ６０１〜Ｓ６０６で、一時保管テーブル１Ａ（３３６）にあるデータを時系列を保ちながら、実テーブル２Ａ（４３５）に反映させる。この処理は、Ｓ６０７、Ｓ６０８で一時保管テーブル１Ａ（３３６）のデータが空になるまで繰り返される。
【００５０】
一方、この間に仮想テーブル１Ａ（３３０）にデータのアクセスがあった場合、図４に示す動作を継続することにより、データの時系列的な整合性を維持する。Ｓ５１５で、一時保管テーブル１Ａ（３３６）の全データが、実テーブル２Ａ（４３５）に反映されると、Ｓ５１６で、前述のモード１をモード１＝“通常”に変更する。又、Ｓ５１７で、データベースサーバ１（３００）内のデータベース１（３１０）のモード操作部１（３２０）に対し、モード２の切換えを要求する。モード操作部１（３２０）では、Ｓ１２１で、モード１＝“同期”とすることにより、図３に示した正常動作時におけるデータアクセスの状態で動作を行う。
【００５１】
次に、図６に示すように、データベースサーバ１（３００）内のデータベース１（３１０）の異常時におけるデータアクセスの状態について説明する。
【００５２】
クライアント（１００）内のアプリケーション（１１０）は、サーバアクセス切換部（１２０）を介し、データベースサーバ１（３００）内のデータベース１（３１０）の仮想テーブル１Ａ（３３０）にデータの登録・更新・削除要求を行う。このとき、仮想テーブル１Ａ（３３０）から異常終了が返されると、サーバアクセス切換部（１２０）は、データベースサーバ２（４００）内のデータベース２（４１０）の仮想テーブル２Ａ（４３０）に対してデータの登録・更新・削除要求を行う。データベースサーバ２（４００）内では、図４におけるデータベースサーバ１（３００）をデータベースサーバ２（４００）に置き換えた動作が行われる。
【００５３】
以上、説明したように２台のデータベースサーバは、互いにデータの整合性を保つように動作を行い、データベースの復帰時においても、異常時に行われたデータのアクセス内容を時系列に保存し、自動的に反映させることができる。
【００５４】
尚、上記ではサーバを２重化した場合を例にして説明したが、２重化以上の多重化が可能である。
【図面の簡単な説明】
【００５５】
【図１】本発明によるデータベースサーバとクライアントの構成例を示す図である。
【図２】本発明によるデータベース内の仮想テーブルの構成を示す図である。
【図３】クライアントからデータベースサーバにアクセスを行った時の通常書き込み時における各部の動作を示す図である。
【図４】クライアントからデータベースサーバにアクセスを行った時のセカンダリサーバ異常時における各部の動作を示す図である。
【図５】上記状態からセカンダリサーバ復帰時における各部の動作を示す図である。
【図６】クライアントからデータベースサーバにアクセスを行った時のプライマリサーバ異常時における各部の動作を示す図である。
【図７−１】データアクセス切換部のデータアクセス時における動作のフローを示す図である。
【図７−２】データアクセス切換部において、クライアントからのアクセスを許可する“通常”か他サーバとデータの整合を取っている“復帰中”のモードを切換るフローを示す図である。
【図７−３】データアクセス切換部において、クライアントから受取ったコマンドを他サーバに伝える“通常”か自サーバ内に一時保管する“ローカル”のモードを切換るフローを示す図である。
【図８】実テーブル１アクセス部のデータアクセス時における動作のフローを示す図である。
【図９】実テーブル２アクセス部のデータアクセス時における動作のフローを示す図である。
【図１０】一時保管テーブル１アクセス部のデータアクセス時における動作のフローを示す図である。
【図１１−１】モード操作部１のエラー発生通知時における動作のフローを示す図である。
【図１１−２】モード操作部１のＤＢ起動時における動作のフローを示す図である。
【図１２】保管データ復帰部のデータ復帰時における動作のフローを示す図である。
【図１３】従来のデータベースサーバとクライアントの構成を示す図である。
【符号の説明】
【００５６】
１００  データ入力参照端末
１１０  データ入力参照アプリ
１２０  サーバアクセス切換部
２００  ネットワーク
３００  データベースサーバ１
３１０  データベース１
３２０  モード操作部
３３０  仮想データテーブル１Ａ
３３１  テテーブルアクセス切換部１
３３２  実テーブル１Ａアクセス部
３３３  実テーブル２Ａアクセス部
３３４  一時保管テーブル１Ａアクセス部
３３５  実テーブル１Ａ
３３６  一時保管テーブル１Ａ
３３７  保管データ復帰部１
３４０  仮想データテーブル１Ｂ
３５０  仮想データテーブル１Ｃ
３６０  仮想データテーブル１Ｄ
４００  データベースサーバ２
４１０  データベース２
４２０  モード操作部
４３０  仮想データテーブル２Ａ
４３１  テーブルアクセス切換部２
４３２  実テーブル２Ａアクセス部
４３３  実テーブル１Ａアクセス部
４３４  一時保管テーブル２Ａアクセス部
４３５  実データテーブル２Ａ
４３６  一時保管テーブル２Ａ
４３７  保管データ復帰部２
４４０  仮想データテーブル２Ｂ
４５０  仮想データテーブル２Ｃ
４６０  仮想データテーブル２Ｄ
【図１】
2006164126.tif 000003
【図２】
2006164126.tif 000004
【図３】
2006164126.tif 000005
【図４】
2006164126.tif 000006
【図５】
2006164126.tif 000007
【図６】
2006164126.tif 000008
【図７−１】
2006164126.tif 000009
【図７−２】
2006164126.tif 000010
【図７−３】
2006164126.tif 000011
【図８】
2006164126.tif 000012
【図９】
2006164126.tif 000013
【図１０】
2006164126.tif 000014
【図１１−１】
2006164126.tif 000015
【図１１−２】
2006164126.tif 000016
【図１２】
2006164126.tif 000017
【図１３】
2006164126.tif 000018