(57)【要約】【課題】  データベース二重化システムにおいて、伝送路の復旧後、迅速にセンタ側、リモート側のデータベースの内容を一致できるようにする。【解決手段】  DBMS12は、更新要求が発生すると、それに従ってデータベース(DB)11を更新すると共に、センタ側の最新時刻記憶部および更新対象レコードに更新時刻を設定する。また、上記更新要求および更新時刻は、二重化デーモン手段15によりリモート用更新要求としてリモートサーバ２に送信され、DBMS22がそれに従ってDB21を更新すると共に、リモート側の最新更新時刻記憶部に上記要求中の更新時刻を設定する。伝送路４の障害復旧後、差分コピー手段16が、センタ側、リモート側の最新更新時刻記憶部に設定されている更新時刻が異なる場合のみ、データベース11から、復旧用レコードを取り出し、リモートサーバ２へ送信する。【選択図】      図２
2007086987.tif 000002
【特許請求の範囲】
【請求項１】
センタサーバがセンタ側データベースを備え、前記センタサーバと伝送路を介して接続されたリモートサーバが、前記センタ側データベースのコピーであるリモート側データベースを備えたデータベース二重化システムにおいて、
前記センタサーバが、
センタ側最新更新時刻記憶部と、
データベースに対する更新要求が発生したとき、前記更新要求に従って前記センタ側データベースのレコードを更新すると共に、更新対象レコードおよび前記センタ側最新更新時刻記憶部に更新時刻を設定するセンタ側データベース管理手段と、
前記更新要求と前記更新時刻とを含むリモート用更新要求を前記リモートサーバへ送信する二重化デーモン手段と、
前記伝送路の障害が復旧したとき、前記センタ側最新更新時刻記憶部に設定されている更新時刻と前記リモート側最新更新時刻記憶部に設定されている更新時刻とが不一致の場合、前記センタ側データベースに格納されているレコードの内の、付加されている更新時刻が前記リモート側最新更新時刻記憶部に設定されている更新時刻よりも後の時刻になっているレコードを復旧用レコードとして前記リモートサーバへ送信する差分コピー手段とを備え、
前記リモートサーバが、
リモート側最新更新時刻記憶部と、
前記センタサーバからリモート用更新要求が送られてきたとき、該リモート用更新要求に従って前記リモート側データベースを更新すると共に、前記リモート用更新要求に含まれている更新時刻を前記リモート側最新更新時刻記憶部に設定し、前記センタサーバから復旧用レコードが送られてきたとき、該復旧用レコードに従って前記リモート側データベースを復旧するリモート側データベース管理手段とを備えたことを特徴とするデータベース二重化システム。
【請求項２】
請求項１記載のデータベース二重化システムにおいて、
前記差分コピー手段が、前記リモート側データベース管理手段に対して最新更新時刻取得要求を送信する構成を有し、
前記リモート側データベース管理手段が、前記差分コピー手段から前記最新更新時刻取得要求が送られてきたとき、前記リモート側最新更新時刻記憶部に設定されている更新時刻を前記差分コピー手段に返却する構成を有することを特徴とするデータベース二重化システム。
【請求項３】
請求項２記載のデータベース二重化システムにおいて、
前記リモート側データベース管理手段が、前記センタサーバから復旧用レコードが送られてきたとき、該復旧用レコードとキー項目の内容が一致するレコードが前記リモート側データベースに存在する場合は、前記レコードを前記復旧用レコードで置き換え、存在しない場合は前記復旧用レコードを前記リモート側データベースに追加する構成を有することを特徴とするデータベース二重化システム。
【請求項４】
請求項３記載のデータベース二重化システムにおいて、
前記センタ側最新更新時刻記憶部が前記センタ側データベース上に設けられ、
前記リモート側最新更新時刻記憶部が前記リモート側データベース上に設けられていることを特徴とするデータベース二重化システム。
【請求項５】
センタ側データベースを備え、且つ伝送路を介して前記センタ側データベースのコピーであるリモート側データベースを備えたリモートサーバと接続されるセンタサーバであって、
センタ側最新更新時刻記憶部と、
データベースに対する更新要求が発生したとき、前記更新要求に従って前記センタ側データベースのレコードを更新すると共に、更新対象レコードおよび前記センタ側最新更新時刻記憶部に更新時刻を設定するセンタ側データベース管理手段と、
前記更新要求と前記更新時刻とを含むリモート用更新要求を前記リモートサーバへ送信する二重化デーモン手段と、
前記伝送路の障害が復旧したとき、前記センタ側最新更新時刻記憶部に設定されている更新時刻と前記リモートサーバが備えているリモート側最新更新時刻記憶部に設定されている更新時刻とが不一致の場合、前記センタ側データベースに格納されているレコードの内の、付加されている更新時刻が前記リモート側最新更新時刻記憶部に設定されている更新時刻よりも後の時刻になっているレコードを復旧用レコードとして前記リモートサーバへ送信する差分コピー手段とを備えたことを特徴とするセンタサーバ。
【請求項６】
センタ側データベースを備えたセンタサーバと伝送路を介して接続され、且つ、前記センタ側データベースのコピーであるリモート側データベースを備えたリモートサーバであって、
リモート側最新更新時刻記憶部と、
前記センタサーバからリモート用更新要求が送られてきたとき、該リモート用更新要求に従って前記リモート側データベースを更新すると共に、前記リモート用更新要求に含まれている更新時刻を前記リモート側最新更新時刻記憶部に設定し、前記センタサーバから復旧用レコードが送られてきたとき、該復旧用レコードに従って前記リモート側データベースを復旧するリモート側データベース管理手段とを備えたことを特徴とするリモートサーバ。
【請求項７】
センタサーバがセンタ側データベースを備え、前記センタサーバと伝送路を介して接続されたリモートサーバが、前記センタ側データベースのコピーであるリモート側データベースを備えたデータベース二重化システムにおいて、
前記センタサーバが、
データベースに対する更新要求が発生したとき、前記更新要求に従って前記センタ側データベースのレコードを更新すると共に、更新対象レコードおよびセンタ側最新更新時刻記憶部に更新時刻を設定するステップと、
前記更新要求と前記更新時刻とを含むリモート用更新要求を前記リモートサーバへ送信するステップと、
前記伝送路の障害が復旧したとき、前記センタ側最新更新時刻記憶部に設定されている更新時刻と前記リモート側最新更新時刻記憶部に設定されている更新時刻とが不一致の場合、前記センタ側データベースに格納されているレコードの内の、付加されている更新時刻が前記リモート側最新更新時刻記憶部に設定されている更新時刻よりも後の時刻になっているレコードを復旧用レコードとして前記リモートサーバへ送信するステップとを実行し、
前記リモートサーバが、
前記センタサーバからリモート用更新要求が送られてきたとき、該リモート用更新要求に従って前記リモート側データベースを更新すると共に、前記リモート用更新要求に含まれている更新時刻をリモート側最新更新時刻記憶部に設定するステップと、
前記センタサーバから復旧用レコードが送られてきたとき、該復旧用レコードに従って前記リモート側データベースを復旧するステップとを実行することを特徴とするデータベース二重化方法。
【請求項８】
センタ側データベース及びセンタ側最新更新時刻記憶部を備え、且つ伝送路を介して前記センタ側データベースのコピーであるリモート側データベースを備えたリモートサーバと接続されるコンピュータを、センタサーバとして機能させるためのプログラムであって、
前記コンピュータを、
データベースに対する更新要求が発生したとき、前記更新要求に従って前記センタ側データベースのレコードを更新すると共に、更新対象レコードおよび前記センタ側最新更新時刻記憶部に更新時刻を設定するセンタ側データベース管理手段、
前記更新要求と前記更新時刻とを含むリモート用更新要求を前記リモートサーバへ送信する二重化デーモン手段、
前記伝送路の障害が復旧したとき、前記センタ側最新更新時刻記憶部に設定されている更新時刻と前記リモートサーバが備えているリモート側最新更新時刻記憶部に設定されている更新時刻とが不一致の場合、前記センタ側データベースに格納されているレコードの内の、付加されている更新時刻が前記リモート側最新更新時刻記憶部に設定されている更新時刻よりも後の時刻になっているレコードを復旧用レコードとして前記リモートサーバへ送信する差分コピー手段として機能させるためのプログラム。
【請求項９】
センタ側データベースを備えたセンタサーバと伝送路を介して接続され、且つ、リモート側最新更新時刻記憶部および前記センタ側データベースのコピーであるリモート側データベースを備えたコンピュータをリモートサーバとして機能させるプログラムであって、
前記コンピュータを、
前記センタサーバからリモート用更新要求が送られてきたとき、該リモート用更新要求に従って前記リモート側データベースを更新すると共に、前記リモート用更新要求に含まれている更新時刻を前記リモート側最新更新時刻記憶部に設定し、前記センタサーバから復旧用レコードが送られてきたとき、該復旧用レコードに従って前記リモート側データベースを復旧するリモート側データベース管理手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センタサーバが備えているセンタ側データベースと、センタサーバと伝送路を介して接続されるリモートサーバが備えているリモート側データベースとの内容を一致させることにより、データベースの二重化を実現するデータベース二重化技術に関する。
【背景技術】
【０００２】
従来のこの種の技術としては、次のような技術が知られている（例えば、特許文献１、２参照）。
【０００３】
特許文献１に記載されている従来の技術では、センタサーバにおいて、データベースに対する更新要求が発生した場合、上記更新要求に従ってセンタ側データベースを更新すると共に、上記更新要求をリモートサーバへ送信する。リモートサーバは、センタサーバから更新要求が送られてくると、それに従ってリモート側データベースを更新する。センタサーバとリモートサーバとの間の伝送路が正常な場合は、上述したようにすることにより、センタ側データベースの内容とリモート側データベースの内容とを一致させることができる。しかし、伝送路に障害が発生し、センタサーバからの更新要求がリモートサーバへ到達しなくなると、両サーバの内容が異なるものとなってしまう。そこで、特許文献１に記載されている従来の技術では、伝送路に障害が発生している間は、その間に発生した更新要求をセンタサーバ内に設けられている差分ファイルに保存しておき、伝送路が復旧した後、上記差分ファイルに保存しておいた更新要求をリモートサーバへ送信するようにしている。この更新要求に従って、リモート側データベースを更新することにより、両サーバの内容を一致させることができる。
【０００４】
また、特許文献２に記載されている従来の技術では、次のようにしてセンタ側データベースとリモート側データベースとの内容を一致させるようにしている。
【０００５】
センタサーバにおいて、データベースに対する更新要求が発生すると、更新要求に従ってセンタ側データベースのレコードを更新すると共に、更新対象レコードにタイムスタンプを付加する。更に、タイムスタンプを付加したレコードを含む更新要求をリモートサーバへ送信する。リモートサーバでは、上記更新要求に従ってリモート側データベースを更新する。センタサーバとリモートサーバとの間の伝送路が正常な場合は、上述したようにすることにより、センタ側データベースの内容とリモート側データベースの内容とを一致させることができる。しかし、センタサーバとリモートサーバとを接続する伝送路に障害が発生すると、両サーバに内容が一致しなくなってしまう。そこで、特許文献２に記載されている技術では、伝送路が復旧した場合、リモートサーバが、センタサーバに対してリモート側データベース内の最新のタイムスタンプ情報を含むデータベース更新情報要求を送信し、センタサーバが、上記データベース更新情報要求中のタイムスタンプ情報よりも新しいタイムスタンプを持つレコードをセンタ側データベースから読み出し圧縮して更新情報ファイルに格納し、リモートサーバへ送信する。リモートサーバでは、更新情報ファイルのデータを伸長してリモート側データベースに展開する。
【０００６】
【特許文献１】特開２００２−２０２９０６号公報
【特許文献２】特開平５−２０４７３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述した特許文献１に記載されている従来の技術は、センタサーバとリモートサーバを接続する伝送路が復旧した際、センタサーバの差分ファイルに保持されている更新要求をリモートサーバに送信するだけでリモート側データベースの内容をセンタ側データベースの内容と一致させることができるので、伝送路の復旧後、短時間でリモート側データベースの内容をセンタ側データベースの内容と一致させることができる。
【０００８】
しかし、この特許文献１に記載されている従来の技術は、差分ファイルが必要になるため、必要とするメモリ量が多くなってしまうという問題がある。すなわち、特許文献１に記載されている従来の技術では、伝送路が復旧するまでに多くの時間がかかり、且つ、その間の更新要求の発生頻度が高い場合であっても、発生した全ての更新要求を差分ファイルに保存しておく必要があるため、多くのメモリ量が必要となってしまう。
【０００９】
一方、特許文献２に記載されている従来の技術は、差分ファイルを必要としないので、特許文献１に記載されている技術に比較して、必要とするメモリ量を少なくすることができる。
【００１０】
しかし、特許文献２に記載されている従来の技術は、リモート側データベース中の全レコードを検索し、最新のタイムスタンプ情報を取得することが必要になるため、伝送路の復旧後、短時間でセンタ側データベースとリモート側データベースの内容を一致させることが難しいという問題がある。
【００１１】
また、特許文献２に記載されている従来の技術では、センタサーバは、伝送路の復旧時にリモートサーバから最新のタイムスタンプ情報を含むデータベース更新情報要求が送られてくると、常に、上記最新のタイムスタンプ情報よりも新しいタイムスタンプを持つレコードをセンタ側データベースから検索するという処理を行う。伝送路に障害が発生している間に、更新要求が発生した場合は、上記処理は両データベースの内容を一致させるために必要な処理であるが、伝送路に障害が発生している間に、更新要求が全く発生しなかった場合は、両サーバの内容は一致しているので、実行することが必要ではない処理である。つまり、特許文献２に記載されている従来の技術では、伝送路の復旧時に不必要な処理が行われ、この不必要な処理によってセンタサーバの通常業務が妨げられてしまう場合があるという問題がある。
【００１２】
〔発明の目的〕
そこで、本発明の目的は、多くのメモリを使用せずとも、伝送路の復旧後、迅速にセンタ側データベースとリモート側データベースとの内容を一致させることができ、且つ、伝送路の復旧時に無駄な処理が行われないようにすることができるデータベース二重化技術を提供することにある。
【課題を解決するための手段】
【００１３】
本発明にかかる第１のデータベース二重化システムは、
センタサーバがセンタ側データベースを備え、前記センタサーバと伝送路を介して接続されたリモートサーバが、前記センタ側データベースのコピーであるリモート側データベースを備えたデータベース二重化システムにおいて、
前記センタサーバが、
センタ側最新更新時刻記憶部と、
データベースに対する更新要求が発生したとき、前記更新要求に従って前記センタ側データベースのレコードを更新すると共に、更新対象レコードおよび前記センタ側最新更新時刻記憶部に更新時刻を設定するセンタ側データベース管理手段と、
前記更新要求と前記更新時刻とを含むリモート用更新要求を前記リモートサーバへ送信する二重化デーモン手段と、
前記伝送路の障害が復旧したとき、前記センタ側最新更新時刻記憶部に設定されている更新時刻と前記リモート側最新更新時刻記憶部に設定されている更新時刻とが不一致の場合、前記センタ側データベースに格納されているレコードの内の、付加されている更新時刻が前記リモート側最新更新時刻記憶部に設定されている更新時刻よりも後の時刻になっているレコードを復旧用レコードとして前記リモートサーバへ送信する差分コピー手段とを備え、
前記リモートサーバが、
リモート側最新更新時刻記憶部と、
前記センタサーバからリモート用更新要求が送られてきたとき、該リモート用更新要求に従って前記リモート側データベースを更新すると共に、前記リモート用更新要求に含まれている更新時刻を前記リモート側最新更新時刻記憶部に設定し、前記センタサーバから復旧用レコードが送られてきたとき、該復旧用レコードに従って前記リモート側データベースを復旧するリモート側データベース管理手段とを備えたことを特徴とする。
【００１４】
本発明にかかる第２のデータベース二重化システムは、第１のデータベース二重化システムにおいて、
前記差分コピー手段が、前記リモート側データベース管理手段に対して最新更新時刻取得要求を送信する構成を有し、
前記リモート側データベース管理手段が、前記差分コピー手段から前記最新更新時刻取得要求が送られてきたとき、前記リモート側最新更新時刻記憶部に設定されている更新時刻を前記差分コピー手段に返却する構成を有することを特徴とする。
【００１５】
本発明にかかる第３のデータベース二重化システムは、第２のデータベース二重化システムにおいて、
前記リモート側データベース管理手段が、前記センタサーバから復旧用レコードが送られてきたとき、該復旧用レコードとキー項目の内容が一致するレコードが前記リモート側データベースに存在する場合は、前記レコードを前記復旧用レコードで置き換え、存在しない場合は前記復旧用レコードを前記リモート側データベースに追加する構成を有することを特徴とする。
【００１６】
本発明にかかる第４のデータベース二重化システムは、第３のデータベース二重化システムにおいて、
前記センタ側最新更新時刻記憶部が前記センタ側データベース上に設けられ、
前記リモート側最新更新時刻記憶部が前記リモート側データベース上に設けられていることを特徴とする。
【００１７】
本発明にかかるセンタサーバは、
センタ側データベースを備え、且つ伝送路を介して前記センタ側データベースのコピーであるリモート側データベースを備えたリモートサーバと接続されるセンタサーバであって、
センタ側最新更新時刻記憶部と、
データベースに対する更新要求が発生したとき、前記更新要求に従って前記センタ側データベースのレコードを更新すると共に、更新対象レコードおよび前記センタ側最新更新時刻記憶部に更新時刻を設定するセンタ側データベース管理手段と、
前記更新要求と前記更新時刻とを含むリモート用更新要求を前記リモートサーバへ送信する二重化デーモン手段と、
前記伝送路の障害が復旧したとき、前記センタ側最新更新時刻記憶部に設定されている更新時刻と前記リモートサーバが備えているリモート側最新更新時刻記憶部に設定されている更新時刻とが不一致の場合、前記センタ側データベースに格納されているレコードの内の、付加されている更新時刻が前記リモート側最新更新時刻記憶部に設定されている更新時刻よりも後の時刻になっているレコードを復旧用レコードとして前記リモートサーバへ送信する差分コピー手段とを備えたことを特徴とする。
【００１８】
本発明にかかるリモートサーバは、
センタ側データベースを備えたセンタサーバと伝送路を介して接続され、且つ、前記センタ側データベースのコピーであるリモート側データベースを備えたリモートサーバであって、
リモート側最新更新時刻記憶部と、
前記センタサーバからリモート用更新要求が送られてきたとき、該リモート用更新要求に従って前記リモート側データベースを更新すると共に、前記リモート用更新要求に含まれている更新時刻を前記リモート側最新更新時刻記憶部に設定し、前記センタサーバから復旧用レコードが送られてきたとき、該復旧用レコードに従って前記リモート側データベースを復旧するリモート側データベース管理手段とを備えたことを特徴とする。
【００１９】
本発明にかかるデータベース二重化方法は、
センタサーバがセンタ側データベースを備え、前記センタサーバと伝送路を介して接続されたリモートサーバが、前記センタ側データベースのコピーであるリモート側データベースを備えたデータベース二重化システムにおいて、
前記センタサーバが、
データベースに対する更新要求が発生したとき、前記更新要求に従って前記センタ側データベースのレコードを更新すると共に、更新対象レコードおよびセンタ側最新更新時刻記憶部に更新時刻を設定するステップと、
前記更新要求と前記更新時刻とを含むリモート用更新要求を前記リモートサーバへ送信するステップと、
前記伝送路の障害が復旧したとき、前記センタ側最新更新時刻記憶部に設定されている更新時刻と前記リモート側最新更新時刻記憶部に設定されている更新時刻とが不一致の場合、前記センタ側データベースに格納されているレコードの内の、付加されている更新時刻が前記リモート側最新更新時刻記憶部に設定されている更新時刻よりも後の時刻になっているレコードを復旧用レコードとして前記リモートサーバへ送信するステップとを実行し、
前記リモートサーバが、
前記センタサーバからリモート用更新要求が送られてきたとき、該リモート用更新要求に従って前記リモート側データベースを更新すると共に、前記リモート用更新要求に含まれている更新時刻をリモート側最新更新時刻記憶部に設定するステップと、
前記センタサーバから復旧用レコードが送られてきたとき、該復旧用レコードに従って前記リモート側データベースを復旧するステップとを実行することを特徴とする。
【００２０】
本発明にかかる第１のプログラムは、
センタ側データベース及びセンタ側最新更新時刻記憶部を備え、且つ伝送路を介して前記センタ側データベースのコピーであるリモート側データベースを備えたリモートサーバと接続されるコンピュータを、センタサーバとして機能させるためのプログラムであって、
前記コンピュータを、
データベースに対する更新要求が発生したとき、前記更新要求に従って前記センタ側データベースのレコードを更新すると共に、更新対象レコードおよび前記センタ側最新更新時刻記憶部に更新時刻を設定するセンタ側データベース管理手段、
前記更新要求と前記更新時刻とを含むリモート用更新要求を前記リモートサーバへ送信する二重化デーモン手段、
前記伝送路の障害が復旧したとき、前記センタ側最新更新時刻記憶部に設定されている更新時刻と前記リモートサーバが備えているリモート側最新更新時刻記憶部に設定されている更新時刻とが不一致の場合、前記センタ側データベースに格納されているレコードの内の、付加されている更新時刻が前記リモート側最新更新時刻記憶部に設定されている更新時刻よりも後の時刻になっているレコードを復旧用レコードとして前記リモートサーバへ送信する差分コピー手段として機能させる。
【００２１】
本発明にかかる第２のプログラムは、
センタ側データベースを備えたセンタサーバと伝送路を介して接続され、且つ、リモート側最新更新時刻記憶部および前記センタ側データベースのコピーであるリモート側データベースを備えたコンピュータをリモートサーバとして機能させるプログラムであって、
前記コンピュータを、
前記センタサーバからリモート用更新要求が送られてきたとき、該リモート用更新要求に従って前記リモート側データベースを更新すると共に、前記リモート用更新要求に含まれている更新時刻を前記リモート側最新更新時刻記憶部に設定し、前記センタサーバから復旧用レコードが送られてきたとき、該復旧用レコードに従って前記リモート側データベースを復旧するリモート側データベース管理手段として機能させる。
【００２２】
〔作用〕
センタサーバにおいて、データベースに対する更新要求が発生すると、センタ側データベース管理手段が、上記更新要求に従ってセンタ側データベースのレコードを更新すると共に、更新対象レコードおよびセンタ側最新更新時刻記憶部に更新時刻を設定し、二重化デーモン手段が、上記更新要求と上記更新時刻とを含むリモート用更新要求をリモートサーバへ送信する。
【００２３】
リモートサーバでは、リモート側データベース管理手段が、センタサーバからリモート用更新要求が送られてくると、その要求に従ってリモート側データベースを更新すると共に、リモート用更新要求に含まれている更新時刻を前記リモート側最新更新時刻記憶部に設定する。もし、センタサーバとリモートサーバとを接続する伝送路に障害が発生し、その間に、センタサーバにおいてセンタ側データベースが更新されると、リモート用更新要求がリモートサーバに届かなくなるので、センタ側データベースとリモート側データベースの内容が異なるものになってしまう。また、センタ側最新更新時刻記憶部とリモート側最新更新時刻記憶部の内容も異なるものになってしまう。
【００２４】
その後、伝送路が復旧すると、センタサーバ内の差分コピー手段が、センタ側最新更新時刻記憶部に設定されている更新時刻とリモート側最新更新時刻記憶部に設定されている更新時刻とを比較し、両者が不一致の場合、センタ側データベースに格納されているレコードの内の、付加されている更新時刻がリモート側最新更新時刻記憶部に設定されている更新時刻よりも後の時刻になっているレコードを復旧用レコードとしてリモートサーバへ送信する。
【００２５】
リモートサーバ内のリモート側データベース管理手段は、センタサーバから復旧用レコードが送られてくると、それに従ってリモート側データベースを更新し、リモート側データベースの内容をセンタ側データベースの内容と一致させる。
【発明の効果】
【００２６】
本発明によれば、多くのメモリを使用せずとも、伝送路の復旧後、迅速にセンタ側データベースとリモート側データベースとの内容を一致させることができ、且つ、伝送路の復旧時に無駄な処理が行われないようにすることが可能になる。その理由は、次の通りである。
【００２７】
多くのメモリを使用しなくても良い理由は、差分コピー手段が、リモート側データベースの内容とセンタ側データベースの内容とを一致させるために必要になる復旧用レコードをセンタ側データベースから取り出すようにしており、特許文献１のように、差分ファイルを設ける必要がないからである。また、伝送路の復旧後、迅速にセンタ側データベースとリモート側データベースの内容を一致させることができる理由は、センタ側最新更新時刻記憶部およびリモート側最新更新時刻記憶部を備えているからである。即ち、特許文献２のように、データベースを検索せずとも、データベースの最新更新時刻を取得することができるので、伝送路の復旧後、迅速に両データベースの内容を一致させることが可能になる。また、伝送路の復旧時に無駄な処理が行われないようにすることができる理由は、差分コピー手段が、センタ側、リモート側データベースの最新更新時刻が異なる場合のみ、データベースの内容を一致させるための処理を行っているからである。
【発明を実施するための最良の形態】
【００２８】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００２９】
〔実施の形態の構成の説明〕
図１は、本発明にかかるデータベース二重化システムの実施の形態の構成例を示すブロック図であり、センタサーバ１と、リモートサーバ２と、クライアント３と、それらを相互の接続する伝送路４とから構成されている。
【００３０】
センタサーバ１及びリモートサーバ２は、例えば、UNIX（登録商標）マシンによって構成されるネットワーク管理システム用のサーバ等である。クライアント３は、データベース二重化システムの管理者などが使用するコンピュータによって実現されるものであり、センタサーバ１へデータベースのアクセス要求を送信する機能などを有する。また、伝送路４はTCP/IP等のプロトコルが用いられる伝送路である。
【００３１】
図２は、センタサーバ１及びリモートサーバ２の構成例を示すブロック図である。
【００３２】
同図を参照すると、センタサーバ１は、データベース１１と、DBMS(database management system；データベース管理システム)１２と、サーバアプリケーションプログラム（サーバAPと称す）１３と、データベース二重化デーモンプロセス（二重化デーモン手段と称す）１５と、差分コピープロセス（差分コピー手段と称す）１６とを備えている。また、リモートサーバ２は、データベース２１と、DBMS２２とを備えている。
【００３３】
データベース１１は、図３（Ａ）に示すように、レコードが格納されるデータ記憶部１１１と、データベース１１における最新更新時刻（最後の更新が行われた時刻）が格納される最新更新時刻記憶部１１２とを備えている。また、データベース２１は、図３（Ｂ）に示すように、レコードが格納されるデータ記憶部２１１と、データベース２１における最新更新時刻が格納される最新更新時刻記憶部２１２とを備えている。
【００３４】
サーバAP１３は、DBMS１２から提供されているDBMS API(application programming interface)１７と、タイムスタンプAPI１４とを備えている。なお、図２の例では、サーバAP１３を１個しか図示していないが、サーバAP１３の個数はこれに限られるものではなく、複数個存在する場合もある。
【００３５】
サーバAP１３は、データベース１１をアクセスするための各種要求をタイムスタンプAPI１４及びDBMS API１７を介してDBMS１２に供給する機能を有する。本実施の形態では、サーバAP１３は、データベース１１の内容を更新するための更新要求およびデータベース１１の内容を参照するための参照要求をタイムスタンプAPI１４及びDBMS API１７を介してDBMS１２に供給する。なお、更新要求には、データベース１１に新規レコードを追加するための要求と、データベース１１に既に格納されているレコードの内容を変更するための要求との２種類の要求が存在する。新規レコードを追加するための更新要求には、その種別「追加」と、追加するレコードとが含まれ、既に格納されているレコードの内容を変更するための更新要求には。その種別「変更」と、レコードの変更内容とが含まれている。
【００３６】
タイムスタンプAPI１４は、サーバAP１３から更新要求が渡されると、それに更新時刻として現在時刻を付加（スタンプ）し、DBMS API１７を介してDBMS１２に供給する機能を有する。なお、タイムスタンプAPI１４は、サーバAP１３から参照要求が渡された場合は、その要求をそのまま、DBMS API１７を介してDBMS１２に供給する。
【００３７】
DBMS１２は、サーバAP１３から参照要求が供給された場合には、上記参照要求によって要求されているレコードをデータベース１１から読み出し、サーバAP１３に返却する。また、サーバAP１３から更新時刻が付加された更新要求が供給された場合には、上記更新要求に従ってデータベース１１を更新（新規レコードの追加あるいは既存レコードの内容変更）すると共に、上記更新要求に付加されている更新時刻を最新更新時刻記憶部１１２及び更新対象レコードに設定する機能を有する。更に、DBMS１２は、サーバAP１３から更新時刻が付加された更新要求が供給された場合は、二重化デーモン手段１５に対して更新イベントを発生し、上記更新時刻の付加された更新要求を渡す機能を有する。
【００３８】
二重化デーモン手段１５は、DBMS１２から渡された更新時刻の付加された更新要求をリモート用更新要求として伝送路４を介してリモートサーバ２へ送信する機能や、伝送路４に異常が発生し、データベース１１、２１の内容が不一致になった場合、そのことをクライアント３に通知する機能を有する。
【００３９】
差分コピー手段１６は、伝送路４が復旧した後、最新更新時刻記憶部１１２、２１２に設定されている最新更新時刻が一致しているか否かを調べ、不一致の場合、データベース１１に格納されているレコードの内の、付加（スタンプ）されている時刻がリモート側の最新更新時刻よりも後の時刻になっているレコードを、復旧用レコードとしてリモートサーバ２に送信する機能を有する。
【００４０】
リモートサーバ２側に設けられているDBMS２２は、センタサーバ１からリモート用更新要求が送られてきた場合、それに従ってデータベース２１を更新すると共に、データベース２１の最新更新時刻記憶部２１２に上記リモート用更新要求に付加されている更新時刻を設定する機能を有する。更に、センタサーバ１から復旧用レコードが送られてきた場合、それに従ってデータベース２１を復旧する機能を有する。
【００４１】
なお、上記した機能を有するセンタサーバ１及びリモートサーバ２は、コンピュータによって実現可能である。コンピュータによってセンタサーバ１を実現する場合は、コンピュータをセンタサーバ１として機能させるためのプログラムを記録したディスク、半導体メモリ、その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に、DBMS１２、二重化デーモン手段１５、差分コピー手段１６を実現する。また、リモートサーバ２をコンピュータによって実現する場合は、コンピュータをリモートサーバ２として機能させるためのプログラムを記録したディスク、半導体メモリ、その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に、DBMS２２を実現する。
【００４２】
〔実施の形態の動作の説明〕
次に、本実施の形態の動作について詳細に説明する。
【００４３】
サーバAP１３において、データベース１１に対する更新要求が発生すると、図４のフローチャートに示すように、タイムスタンプAPI１４が上記更新要求に更新時刻として現在時刻を付加し（ステップＳ４１）、DBMS API１７が更新時刻が付加された更新要求をDBMS１２に供給する。
【００４４】
DBMS１２は、更新要求を受け付けると、図５のフローチャートに示すように、上記更新要求に従ってデータベース１１を更新する（ステップＳ５１）。より具体的には、更新要求の種別が「追加」である場合には、図６に示すようなレコードをデータ記憶部１１１に追加する。その際、レコードの項目「更新時刻」には、更新要求に付加されている更新時刻を設定する。また、更新要求の種別が「変更」である場合には、データ記憶部１１１に格納されている変更対象となるレコードの内容を変更すると共に、項目「更新時刻」に更新要求に付加されている更新時刻を設定する。
【００４５】
その後、DBMS１２は、上記更新要求に付加されている更新時刻を、最新更新時刻記憶部１１２に設定（ステップＳ５２）、二重化デーモン手段１５に対して更新イベントを発生し、上記更新要求を渡す（ステップＳ５３）。
【００４６】
二重化デーモン手段１５は、DBMS１２から更新時刻の付加されている更新要求が渡されると、図７のフローチャートに示すように、上記更新要求をリモート用更新要求としてリモートサーバ２へ送信し、応答待ち状態となる（ステップＳ７１）。
【００４７】
リモートサーバ２内のDBMS２２は、リモート用更新要求を受信すると、図８のフローチャートに示すように、リモート用更新要求に従ってデータベース２１を更新し（ステップＳ８１）、その後、上記リモート用更新要求に付加されている更新時刻を最新更新時刻記憶部２１２に設定する（ステップＳ８２）。そして、ステップＳ８１、Ｓ８２の処理が正常終了した場合は、二重化デーモン手段１５に正常応答を返し（ステップＳ８３がＹＥＳ、Ｓ８４）、異常終了した場合は、異常応答を返す（ステップＳ８３がＮＯ、Ｓ８５）。
【００４８】
応答待ち状態にある二重化デーモン手段１５は、正常応答が返却された場合（ステップＳ７３がＹＥＳ）は、その処理を終了し、異常応答が返却された場合（ステップＳ７２がＹＥＳ）は、リモート用更新要求の再送処理を行う（ステップＳ７６）。また、リモート用更新要求を送信した後、所定時間が経過しても、DBMS２２から正常応答も異常応答も返却されなかった場合（ステップＳ７４がＹＥＳ）は、伝送路４の障害により、データベース２１の内容をデータベース１１の内容と一致させることができなくなったと判断し、クライアント３にそのことを通知する（ステップＳ７５）。
【００４９】
伝送路４の障害が復旧すると、差分コピー手段１６は、図９のフローチャートに示すように、最新更新時刻記憶部１１２に格納されている、データベース１１の最新更新時刻（Ｔｃとする）を取得後、リモートサーバ２に対して最新時刻取得要求を送信する（ステップＳ９１、Ｓ９２）。これにより、リモートサーバ２内のDBMS２２は、最新更新時刻記憶部２１２に格納されている、データベース２１の最新更新時刻（Ｔｒとする）をセンタサーバ１へ送信する。差分コピー手段１６は、データベース２１の最新更新時刻Ｔｒを受信すると、ステップＳ９１で取得したデータベース１１の最新更新時刻Ｔｃと比較する（ステップＳ９４）。
【００５０】
そして、最新更新時刻Ｔｃ、Ｔｒが等しい場合（ステップＳ９４がＹＥＳ）は、データベース１１、２１に差分がないと判断し、クライアント３に対してデータベース１１、２１の内容が一致したことを通知し（ステップＳ９６）、その後、処理を終了する。
【００５１】
これに対して、最新更新時刻Ｔｃ、Ｔｒが異なる場合（ステップＳ９４がＮＯ）は、差分情報送信処理を行う（ステップＳ９５）。差分情報送信処理では、データベース１１から、項目「更新時刻」に設定されている更新時刻が、データベース２１の最新更新時刻Ｔｒよりも後のレコードを検索し、検索したレコードを復旧用レコードとしてリモートサーバ２へ送信する処理を行う。その後、差分コピー手段１６は、クライアント３に対してデータベース１１、２１の内容が一致したことを通知し（ステップＳ９６）、処理を終了する。
【００５２】
一方、リモートサーバ２内のDBMS２２は、センタサーバ１からの復旧用レコードを受信する毎に、図１０のフローチャートに示す処理を行う。図１０を参照すると、DBMS２２は、復旧用レコードを受信すると、復旧用レコードとキー項目の内容が一致するレコードが、データベース２１内に存在するか否かを調べる（ステップＳ１０１）。そして、そのようなレコードが存在する場合（ステップＳ１０１がＹＥＳ）は、上記レコードを復旧用レコードで置き換える（ステップＳ１０２）。これに対して、そのようなレコードが存在しない場合は、復旧用レコードをデータベース２１に追加する。
【００５３】
図１１は、センタサーバ１及びリモートサーバ２で行われる動作の一例を示すタイムチャートである。
【００５４】
センタサーバ１内のサーバAP１３において、更新要求が発生すると、タイムスタンプAPI１４が、上記更新要求に現在時刻（更新時刻）を付加してDBMS１２に渡す（図１１のステップＳ１１１、図４のステップＳ４１、Ｓ４２）。
【００５５】
これにより、DBMS１２がデータベース１１を更新すると共に最新更新時刻記憶部１１２に上記更新要求に付加されている更新時刻を設定し、更に、二重化デーモン手段１５に対して更新イベントを発生する（図１１のステップＳ１１２、図５のステップＳ５１〜Ｓ５３）。
【００５６】
これにより、二重化デーモン手段１５は、リモート用更新要求をリモートサーバ２へ送信する（図１１のステップＳ１１３、図７のステップＳ７１）。
【００５７】
リモートサーバ２内のDBMS２２は、リモート用更新要求に従ってデータベース２１を更新すると共に、上記リモート用更新要求に付加されている更新時刻を最新更新時刻記憶部２１２に設定する（図１１のステップＳ１１４、図８のステップＳ８１、Ｓ８２）。
【００５８】
図１１の例では、その後、再びサーバAP１３で更新要求が発生し（ステップＳ１１５）、データベース１１の更新とリモート用更新要求の送出とが行われているが（ステップＳ１１６、Ｓ１１７）、伝送路４の障害により、リモート用更新要求はリモートサーバ２に到達せず、その目的を達成していない。即ち、データベース２１の内容がデータベース１１の内容と異なるものになってしまう。また、このような事態が発生すると、センタサーバ１内の差分コピー手段１６は、そのことをクライアント３に通知する（図１１のステップＳ１１８、図７のステップＳ７５）。
【００５９】
その後、伝送路４が復旧すると（図１１のステップＳ１１９）、差分コピー手段１６が、最新更新時刻記憶部１１２、２１２からデータベース１１、２１それぞれの最新更新時刻Ｔｃ、Ｔｒを取得し、両者が一致するか否かを調べることにより、データベース１１、２１の内容が一致しているか否かを判断する（図１１のステップＳ１２０〜Ｓ１２３、図９のステップＳ９１〜９４）。
【００６０】
そして、両データベース１１、２１の内容が等しいと判断した場合は、クライアント３にデータベースベース不一致復旧を通知する（図１１のステップＳ１２３がＮＯ、Ｓ１２６、図９のステップＳ９４がＹＥＳ、Ｓ９６）。これに対して、両データベース１１、２１の内容が一致していないと判断した場合は、差分コピー手段１６が差分情報送信処理を行い（図１１のステップＳ１２３がＹＥＳ、Ｓ１２４、図９のステップＳ９４がＹＥＳ、Ｓ９５）、リモートサーバ２内のDBMS２２が復旧処理を行う（図１１のステップＳ１２５、図１０のステップＳ１０１〜Ｓ１０３）。
【００６１】
〔実施の形態の効果〕
本実施の形態によれば、多くのメモリを使用せずとも、伝送路の復旧後、迅速にセンタ側データベースとリモート側データベースとの内容を一致させることができ、且つ、伝送路の復旧時に無駄な処理が行われないようにすることが可能になる。その理由は、次の通りである。
【００６２】
多くのメモリを使用しなくても良い理由は、差分コピー手段１６が、リモート側のデータベース２１の内容をセンタ側のデータベース１１の内容と一致させるために必要になる復旧用レコードをセンタ側のデータベース１１から取り出すようにしており、特許文献１のように、差分ファイルを設ける必要がないからである。また、伝送路４の復旧後、迅速にセンタ側、リモート側のデータベース１１、２１の内容を一致させることができる理由は、センタ側、リモート側の最新更新時刻記憶部１１２、２１２を備えているからである。即ち、特許文献２のように、データベースを検索せずとも、データベース１１、２１の最新更新時刻を取得することができるので、伝送路４の復旧後、迅速に両データベース１１、２１の内容を一致させることが可能になる。また、伝送路の復旧時に無駄な処理が行われないようにすることができる理由は、差分コピー手段１６が、センタ側、リモート側のデータベース１１、２１の最新更新時刻が異なる場合のみ、データベースの内容を一致させるための処理を行っているからである。
【図面の簡単な説明】
【００６３】
【図１】本発明にかかるデータベース二重化システムの実施の形態の構成例を示すブロック図である。
【図２】センタサーバ１及びリモートサーバ２の構成例を示すブロック図である。
【図３】データベース１１、２１の構成例を示す図である。
【図４】サーバAP１３の処理例を示すフローチャートである。
【図５】DBMS１２の処理例を示すフローチャートである。
【図６】レコードの構成例を示す図である。
【図７】二重化デーモン手段１５の処理例を示すフローチャートである。
【図８】DBMS２２の処理例を示すフローチャートである。
【図９】差分コピー手段１６の処理例を示すフローチャートである。
【図１０】DBMS２２の処理例を示すフローチャートである。
【図１１】センタサーバ１及びリモートサーバ２の動作例を示すタイムチャートである。
【符号の説明】
【００６４】
１…センタサーバ
１１…データベース
１２…DBMS
１３…サーバAP
１４…タイムスタンプAPI
１５…二重化デーモン手段
１６…差分コピー手段
１７…DBMS API
２…リモートサーバ
２１…データベース
２２…DBMS
３…クライアント
４…伝送路
【図１】
2007086987.tif 000003
【図２】
2007086987.tif 000004
【図３】
2007086987.tif 000005
【図４】
2007086987.tif 000006
【図５】
2007086987.tif 000007
【図６】
2007086987.tif 000008
【図７】
2007086987.tif 000009
【図８】
2007086987.tif 000010
【図９】
2007086987.tif 000011
【図１０】
2007086987.tif 000012
【図１１】
2007086987.tif 000013