(57)【要約】【課題】  障害発生による記憶内容の食い違いのない複合データベースを提供する。【解決手段】  複数のデータベースの各々に共通の情報が記憶されるようにした複合データベースにおいて、書き込むべき情報が到着した時点で、その到着した書き込むべき情報を全てのデータベース１２０，１３０，１４０に書き込むようにした。【選択図】  図１
2005234678.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータベースの各々に共通の情報が記憶されるようにした複合データベースにおいて、書き込むべき情報が到着した時点で、その到着した書き込むべき情報を全てのデータベースに書き込むようにしたことを特徴とする複合データベース。
【請求項２】
いずれかのデータベースに障害が発生しているとき、その障害が発生しているデータベースには前記書き込むべき情報を書き込まないことを特徴とする請求項１記載の複合データベース。
【請求項３】
読み出すべき情報は、全てのデータベースから読み出すことを特徴とする請求項１又は２記載の複合データベース。
【請求項４】
いずれかのデータベースに障害が発生しているとき、その障害が発生しているデータベースからは前記読み出すべき情報を読み出さないことを特徴とする請求項１〜３いずれか記載の複合データベース。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータベースに共通の情報を記憶させて信頼性を高めた複合データベースに係り、特に、障害発生による記憶内容の食い違いのない複合データベースに関するものである。
【背景技術】
【０００２】
複数のデータベースに共通の情報を記憶させて信頼性を高めた複合データベースが知られている。これら複数のデータベースの全体を単にデータベース或いはデータベースシステムと呼ぶこともあるが、以下では、用語の混乱を避けるために、単体のデータベースのみをデータベースと呼び、複数のデータベースの全体は複合データベースと呼ぶことにする。
【０００３】
複数のデータベースの間で相互に同じ内容が記憶された状態を保つ機能をリプリケーション機能と言う。データベース自体にリプリケーション機能が無い場合、各々のデータベースに同じ内容が記憶されない状態を回避するフォールトトレーラント機能がデータベースとは別途に必要になる。
【０００４】
フォールトトレーラント機能を実現している従来の複合データベースを図３に示す。この複合データベースは、主として使用されるプライマリーデータベース２２０と、バックアップに使用される複数のセカンダリーデータベース２３０，２４０と、外部から書き込み・読み出しの要求を受け取っていずれか一つのデータベースに対して書き込み・読み出しを実行するインタフェース２１０とからなる。
【０００５】
インタフェース２１０は、各データベース２２０，２３０，２４０と優先度とを対応付けて記憶する図４のような優先度表を有し、複合データベースに対する外部からの書き込み・読み出しの要求を受け取ると、この優先度表を参照して最も優先度の高いデータベースに対して書き込み・読み出しを実行する。図４の優先度表において、値が小さいものほど優先度が高いとする。また、インタフェース２１０は、個々のデータベース２２０，２３０，２４０が正常か異常かをリアルタイムで認識しており、正常なデータベースに対してのみ書き込み・読み出しを実行する。よって、現在正常なデータベースのうち最も優先度の高いデータベースに対して書き込み・読み出しが実行される。図３では、全てのデータベース２２０，２３０，２４０が正常とする。従って、書き込み・読み出しは、プライマリーデータベース２２０に対してのみ実行される。図中、矢印はアクセスがあることを示す。
【０００６】
図５により、優先度表の中で最も優先度の高いプライマリーデータベース２２０に異常がある場合の複合データベースの動作を説明する。インタフェース２１０は、優先度表の中で最も優先度の高いプライマリーデータベース２２０に異常があることを認識すると、それ以降は、優先度表の中で２番目に優先度の高いセカンダリーデータベース２３０に対して書き込み・読み出しを実行するようになる。それは、優先度表の中で２番目に優先度の高いカンダリーデータベース２３０が現在正常なデータベース２３０，２４０のうち最も優先度が高いからである。
【０００７】
このように、外部からの書き込み・読み出しの要求に対し、一つのデータベースにしか書き込み・読み出しが実行されないので、このままでは、各々のデータベース２２０，２３０，２４０に同じ内容が記憶されない状態となる。
【０００８】
そこで、従来の複合データベースでは、インタフェース２１０が定期的にプライマリーデータベース２２０の内容を複数のセカンダリーデータベース２３０，２４０にコピーしている。この定期的なコピーにより、フォールトトレーラント機能が実現されている。その結果、データベース自体にリプリケーション機能が無くとも、全てのデータベース２２０，２３０，２４０に同じ内容が記憶された状態を保つことができる。
【０００９】
【特許文献１】特開平０１−０７０８４０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
前述のように、従来の複合データベースでは、インタフェース２１０が優先度表の中で最も優先度の高いプライマリーデータベース２２０に異常があることを認識すると、その次に優先度の高いセカンダリーデータベース２３０に書き込み・読み出しを実行する。
【００１１】
このとき、プライマリーデータベース２２０の内容を複数のセカンダリーデータベース２３０，２４０にコピーした時点からプライマリーデータベース２２０の異常を認識した時点までの間にプライマリーデータベース２２０に対して実行された書き込み・読み出しは、セカンダリーデータベース２３０に対して実行されていない。即ち、異常を認識した時点から後は、コピーした時点から異常を認識した時点までの間にプライマリーデータベース２２０に対して実行された書き込み・読み出しが反映されていないセカンダリーデータベース２３０に対して書き込み・読み出しが実行されることになる。
【００１２】
このように、従来の複合データベースは、障害発生に対するフォールトトレーラント機能が十分ではない。
【００１３】
そこで、本発明の目的は、上記課題を解決し、障害発生による記憶内容の食い違いのない複合データベースを提供することにある。
【課題を解決するための手段】
【００１４】
上記目的を達成するために本発明は、複数のデータベースの各々に共通の情報が記憶されるようにした複合データベースにおいて、書き込むべき情報が到着した時点で、その到着した書き込むべき情報を全てのデータベースに書き込むようにしたものである。
【００１５】
いずれかのデータベースに障害が発生しているとき、その障害が発生しているデータベースには前記書き込むべき情報を書き込まなくてもよい。
【００１６】
読み出すべき情報は、全てのデータベースから読み出してもよい。
【００１７】
いずれかのデータベースに障害が発生しているとき、その障害が発生しているデータベースからは前記読み出すべき情報を読み出さなくてもよい。
【発明の効果】
【００１８】
本発明は次の如き優れた効果を発揮する。
【００１９】
（１）障害発生による記憶内容の食い違いがなくなるので、従来よりも信頼性の高い高信頼化複合データベースが実現される。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の一実施形態を添付図面に基づいて詳述する。
【００２１】
図１に示されるように、本発明に係る複合データベースは、複数の対等なデータベース１２０，１３０，１４０と、外部から書き込み・読み出しの要求を受け取ると、その受け取りの時点で全てのデータベース１２０，１３０，１４０に対してその書き込み・読み出しを同時に実行するインタフェース１１０とからなる。
【００２２】
インタフェース１１０は、各データベース１２０，１３０，１４０に対して従来のような書き込み・読み出しの優先度を持たず、基本的に全てのデータベース１２０，１３０，１４０に対して同じ書き込み・読み出しを同時に行うようになっている。また、インタフェース１１０は、個々のデータベース１２０，１３０，１４０が正常か異常かをリアルタイムで認識しており、正常なデータベース１２０，１３０，１４０に対してのみ書き込み・読み出しを実行するようになっている。よって、現在正常な全てのデータベース１２０，１３０，１４０に対して書き込み・読み出しが実行されることになる。
【００２３】
さて、図１の場合、外部から書き込み・読み出しの要求があった時点で全てのデータベース１２０，１３０，１４０が正常であるため、全てのデータベース１２０，１３０，１４０に対して書き込み・読み出しが同時に実行される。図中、矢印はアクセスがあることを示す。
【００２４】
書き込みの場合、インタフェース１１０に外部から書き込みの要求が受け付けられ、書き込むべき情報が到着すると、その時点で、直ちに全てのデータベース１２０，１３０，１４０に対してその書き込むべき情報の書き込みが同時に実行される。よって、同じ情報が同時に全てのデータベース１２０，１３０，１４０に書き込まれ、各々のデータベース１２０，１３０，１４０に同じ内容が記憶されない状態は瞬時といえども発生しない。
【００２５】
読み出しの場合、インタフェース１１０に外部から読み出しの要求が受け付けられると、その時点で、直ちに全てのデータベース１２０，１３０，１４０に対して読み出すべき情報の読み出しが同時に実行される。その結果、各々のデータベース１２０，１３０，１４０からインタフェース１１０へ複数の読み出した情報が集まる。インタフェース１１０は、これら複数の読み出した情報の中から一つを選んで外部に応答する。択一の方法は、多数決をとるか、択一のための優先度を予め設定しておき、その優先度に従うなどがある。
【００２６】
データベース１２０，１３０，１４０の正常・異常は、例えば、書き込み・読み出しを実行したときに、データベース１２０，１３０，１４０から実行結果の応答が有るか無いかでインタフェース１１０が判定するとよい。或いは、データベース１２０，１３０，１４０がそれぞれ常に自己診断することによって正常・異常を判定し、逐次その診断結果をインタフェース１１０に通知するようにしてもよい。
【００２７】
図２により、ある一つのデータベース１２０に異常がある場合の複合データベースの動作を説明する。インタフェース１１０は、いずれかのデータベース１２０に異常があることを認識すると、それ以降は、その異常があるデータベース１２０には書き込み・読み出しを実行せず、全ての正常なデータベース１３０，１４０のみに同時に書き込み・読み出しを実行するようになる。
【００２８】
書き込みの場合、インタフェース１１０に外部から書き込みの要求が受け付けられ、書き込むべき情報が到着すると、その時点で、直ちに全ての正常なデータベース１３０，１４０に対してその書き込むべき情報の書き込みが同時に実行される。よって、同じ情報が同時に全ての正常なデータベース１３０，１４０に書き込まれ、少なくとも正常なデータベース１３０，１４０には同じ内容が記憶されない状態は瞬時といえども発生しない。
【００２９】
読み出しの場合、インタフェース１１０に外部から読み出しの要求が受け付けられると、その時点で、直ちに全ての正常なデータベース１３０，１４０に対して読み出すべき情報の読み出しが同時に実行される。その結果、各々の正常なデータベース１３０，１４０からインタフェース１１０へ複数の読み出した情報が集まる。インタフェース１１０は、これら複数の読み出した情報の中から一つを選んで外部に応答する。
【００３０】
その後、データベース１２０の異常が解消され正常に復帰した場合、インタフェース１１０は、データベース１２０が正常に復帰したことを認識する。しかし、このままでは、正常に復帰したデータベース１２０に異常が認識された時点から正常復帰が認識された時点までの間に他の正常なデータベース１３０，１４０に対して実行された書き込み・読み出しは、今正常に復帰したばかりのデータベース１２０に対して実行されていない。そこで、インタフェース１１０は、異常であったデータベース１２０が正常に復帰したことを認識したら直ちに他の正常なデータベース１３０，１４０の内容を当該正常に復帰したデータベース１２０にコピーする。これにより、データベース１２０に異常が認識された時点から正常復帰が認識された時点までの間に他の正常なデータベース１３０，１４０に対して実行された書き込み・読み出しが当該正常に復帰したデータベース１２０にも反映される。
【００３１】
なお、本実施形態ではデータベース１２０，１３０，１４０を３台使用したが、２台以上であれば何台でもよいことは言うまでもない。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施形態を示す複合データベースにおいて全てのデータベースが正常なときの構成図である。
【図２】図１の複合データベースにおいてデータベースに異常があるときの構成図である。
【図３】従来の複合データベースにおいて全てのデータベースが正常なときの構成図である。
【図４】従来の複合データベースに設けられる優先度表の概念図である。
【図５】図３の複合データベースにおいてプライマリーデータベースに異常があるときの構成図である。
【符号の説明】
【００３３】
１１０  インタフェース
１２０，１３０，１４０  データベース
【図１】
2005234678.tif 000003
【図２】
2005234678.tif 000004
【図３】
2005234678.tif 000005
【図４】
2005234678.tif 000006
【図５】
2005234678.tif 000007