(57)【要約】【課題】  コンピュータ障害が発生した場合でもレプリケーション処理を継続することができるシステムの提供。【解決手段】運用系コンピュータ１のデータベースシステム１１と待機系コンピュータ２のデータベースシステム２１とが、レプリケーション先コンピュータ３，４，……のデータベースシステム３１，４１，……に対するデータ更新処理の状態を管理するデータ更新管理手段と、上記レプリケーション先コンピュータ３，４，……のデータベースシステム３１，４１，……に対するデータ送信を管理するデータ送信管理手段とを有し、両者のデータ更新管理手段同士及び両者のデータ送信管理手段同士が同期されるようになっているデータレプリケーションシステム。また、このシステムによるデータレプリケーション方法。【選択図】  図１
2008009814.tif 000002
【特許請求の範囲】
【請求項１】
運用系コンピュータと、これと同じデータベースシステムを備えた待機系コンピュータと、これらとは異なるデータベースシステムを備えたレプリケーション先コンピュータからなり、上記待機系コンピュータのデータベースシステムは、上記運用系コンピュータのデータベースシステムと同じ状態に同期され、該運用系コンピュータに障害が発生したときにその処理を引き継ぎ、上記レプリケーション先コンピュータのデータベースシステムに対してレプリケーションを行うホットスタンバイ構成となっているレプリケーションシステムにおいて、上記運用系コンピュータのデータベースシステムと上記待機系コンピュータのデータベースシステムとが、上記レプリケーション先コンピュータのデータベースシステムに対するデータ更新処理の状態を管理するデータ更新管理手段と、上記レプリケーション先コンピュータのデータベースシステムに対するデータ送信を管理するデータ送信管理手段とを有し、両者のデータ更新管理手段同士及び両者のデータ送信管理手段同士が同期されるようになっていることを特徴とするデータレプリケーションシステム。
【請求項２】
上記運用系コンピュータのデータベースシステム及び上記待機系コンピュータのデータベースシステムが、データベースのテーブル名と上記レプリケーション先のコンピュータのアドレスとを対照して管理するデータ送信先管理テーブルを有することを特徴とする請求項１記載のデータレプリケーションシステム。
【請求項３】
上記運用系コンピュータのデータベースシステム及び待機系コンピュータのデータベースシステムが、データベースの更新種別をシーケンス番号と対照して管理するデータ更新管理テーブルを有することを特徴とする請求項１または２記載のデータレプリケーションシステム。
【請求項４】
上記運用系コンピュータのデータベースシステム及び待機系コンピュータのデータベースシステムが、上記シーケンス番号とレプリケーション先コンピュータのアドレスとを対照して管理するデータ送信管理テーブルを有することを特徴とする請求項３記載のデータレプリケーションシステム。
【請求項５】
上記データ更新管理手段は、上記データ送信先管理テーブルを参照して上記データ更新管理テーブル及びデータ送信管理テーブルを更新し、上記データ送信管理手段は、上記レプリケーション先コンピュータのデータベースシステムに接続し、上記データ更新管理テーブル及びデータ送信管理テーブルを参照してそのデータベースシステムを更新することを特徴とする請求項４記載のデータレプリケーションシステム。
【請求項６】
上記データ更新管理テーブルの更新種別がＳＱＬ文で記述されていることを特徴とする請求項３ないし５のいずれかに記載のデータレプリケーションシステム。
【請求項７】
運用系コンピュータと、これと同じデータベースシステムを備えた待機系コンピュータと、これらとは異なるデータベースシステムを備えたレプリケーション先コンピュータとからなり、上記待機系コンピュータのデータベースシステムが、上記運用系コンピュータのデータベースシステムと同じ状態に同期されるホットスタンバイ構成となっているデータレプリケーションシステムにおけるデータレプリケーション方法であって、上記運用系コンピュータと上記待機系コンピュータとが、上記レプリケーション先コンピュータのデータベースシステムに対するデータ更新を管理するデータ更新管理と、同データベースシステムに対するデータ送信を管理するデータ送信管理とを、互いのデータ更新管理データ及びデータ送信管理データを同じにしながら同期して行い、上記運用系コンピュータに障害が発生したときに、上記待機系コンピュータが、上記レプリケーション先コンピュータのデータベースシステムに対するデータ更新処理を、上記データ更新管理データ及びデータ送信管理データを参照して運用系コンピュータに引き継いで実行することを特徴とするデータレプリケーション方法。
【請求項８】
データ更新管理データが、データベースのテーブル名と上記レプリケーション先コンピュータのアドレスとを対照して管理するテーブル名／アドレス対照データを含むことを特徴とする請求項７記載のデータレプリケーション方法。
【請求項９】
データ更新管理データが、データベースの更新種別をシーケンス番号と対照して管理するシーケンス番号／更新種別対照データを含むことを特徴とする請求項７または８記載のデータレプリケーション方法。
【請求項１０】
データ送信管理データが、上記シーケンス番号とレプリケーション先コンピュータのアドレスとを対照して管理するシーケンス番号／アドレス対照データを含むことを特徴とする請求項９記載のデータレプリケーション方法。
【請求項１１】
上記データ更新管理及び上記データ送信管理では、上記テーブル名／アドレス対照データを参照して上記シーケンス番号／更新種別対照データ及びシーケンス番号／アドレス対照データを更新し、上記データ更新処理では、上記シーケンス番号／更新種別対照データ及びシーケンス番号／アドレス対照データを参照して上記レプリケーション先コンピュータのデータベースシステムを更新することを特徴とする請求項１０記載のデータレプリケーション方法。
【請求項１２】
データベースの更新種別がＳＱＬ文で記述されていることを特徴とする請求項７ないし１１のいずれかに記載のデータレプリケーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異種データベースシステム間で、データベースのレプリケーション（複製）を行うレプリケーションシステム及びその方法に関する。
【背景技術】
【０００２】
互いに異なるデータベースシステム（Relational Databese Manegement System; ＲＤＢＭＳ）をもつコンピュータ間においてデータベースのデータを複製し整合させるレプリケーション装置・レプリケーション方法として各種のものが知られているが（たとえば特許文献１〜４）、データレプリケーションの処理中にコンピュータ障害が発生した場合、その障害復旧までの一定時間、処理を継続できず、両コンピュータ間でのデータ整合性を保つことができない。
【０００３】
たとえば、特許文献１に開示されているデータ整合装置は、異種データベース間のデータの整合性を保つため、データ整合用のファイルを転送するといった実時間性を伴わない処理が行われているので、その転送処理中にコンピュータ障害が発生した場合、その障害回復までの間、データの整合性を保つことができない。
【０００４】
特許文献２のデータ整合処理装置は、一方のコンピュータのＲＤＢＭＳのユーザ定義テーブルと他方のコンピュータの異種ＤＢＭＳのユーザ定義テーブルから最終結果の差のみを抽出することによりデータの加工時間及びＳＱＬ文のローディングの処理時間を短くして、データ整合処理時間の短縮しているものであるが、その処理中に障害が発生した場合、データレプリケーションを継続できず、その障害回復まではデータの整合性が保てない。
【０００５】
特許文献３の二重化データベースのデータ連携装置は、稼働系と待機系とにより二重化されたデータベースにおいて、稼働系の送信元データベースのコーード体系を待機系のデータベースのコード体系に変換するなどした後に待機系のデータベースへデータを書き込み、また、稼働系の異常が発見された場合その処理を待機系が継承するようにしているが、上記待機系のデータベースへの書き込みの処理が完了する前に障害が発生した場合には、データレプリケーションを継続できず、その障害回復までデータの整合性が保てない。
【０００６】
特許文献４のデータベースレプリケーション方法は、プライマリ・サイト側サーバとレプリケート・サイト側サーバのデータベーススキーマ構造の差異を、それらの間に設けた中間サイトサーバにおいて吸収することで、データベースレプリケーションを実現するものであるが、上記プライマリ・サイト側サーバまたは中間サイトサーバに障害が発生すると、データレプリケーションを継続できず、その障害回復までの間、データの整合性が保てない場合が生ずる。
【特許文献１】特開平０９−１４６８０４号公報
【特許文献２】特開２０００−１３２４３５号公報
【特許文献３】特開２００１−１４２７６２号公報
【特許文献４】特開２００２−３１８７１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
そこで本発明は、コンピュータ障害が発生した場合でもレプリケーション処理を継続することができるシステムの提供を課題とする。
【課題を解決するための手段】
【０００８】
請求項１記載の本発明は、運用系コンピュータ１と、これと同じデータベースシステム２１を備えた待機系コンピュータ２と、これらとは異なるデータベースシステムを備えたレプリケーション先コンピュータ３，４，……からなり、上記待機系コンピュータ２のデータベースシステム２１は、上記運用系コンピュータ１のデータベースシステム１１と同じ状態に同期され、該運用系コンピュータ１に障害が発生したときにその処理を引き継ぎ、上記レプリケーション先コンピュータ３，４のデータベースシステム３１，４１，……に対してレプリケーションを行うホットスタンバイ構成となっているレプリケーションシステムにおいて、上記運用系コンピュータ１のデータベースシステム１１と上記待機系コンピュータ２のデータベースシステム２１とが、上記レプリケーション先コンピュータ３，４，……のデータベースシステム３１，４１，……に対するデータ更新処理の状態を管理するデータ更新管理手段と、上記レプリケーション先コンピュータ３，４，……のデータベースシステム３１，４１，……に対するデータ送信を管理するデータ送信管理手段とを有し、両者のデータ更新管理手段同士及び両者のデータ送信管理手段同士が同期されるようになっているデータレプリケーションシステムである。
【０００９】
請求項２記載の本発明は、上記運用系コンピュータ１のデータベースシステム１１及び上記待機系コンピュータ２のデータベースシステム２１が、データベースのテーブル名と上記レプリケーション先のコンピュータ３，４，……のアドレスとを対照して管理するデータ送信先管理テーブル１１ｂ，２１ｂを有する請求項１記載のデータレプリケーションシステムである。
【００１０】
請求項３記載の本発明は、上記運用系コンピュータ１のデータベースシステム１１及び待機系コンピュータ２のデータベースシステム２１が、データベースの更新種別をシーケンス番号と対照して管理するデータ更新管理テーブル１１ｃ，２１ｃを有する請求項１または２記載のデータレプリケーションシステムである。
【００１１】
請求項４記載の本発明は、上記運用系コンピュータ１のデータベースシステム１１及び待機系コンピュータ２のデータベースシステム２１が、上記シーケンス番号とレプリケーション先コンピュータ３，４，……のアドレスとを対照して管理するデータ送信管理テーブル１１ｄ，２１ｄを有する請求項３記載のデータレプリケーションシステムである。
【００１２】
請求項５記載の本発明は、上記データ更新管理手段は、上記データ送信先管理テーブル１１ｂ，２１ｂを参照して上記データ更新管理テーブル１１ｃ，２１ｃ及びデータ送信管理テーブル１１ｄ，２１ｄを更新し、上記データ送信管理手段は、上記レプリケーション先コンピュータ３，４，……のデータベースシステム３１，４１，……に接続し、上記データ更新管理テーブル１１ｃ，２１ｃ及びデータ送信管理テーブル１１ｄ，２１ｄを参照してそのデータベースシステム３１，４１，……を更新する請求項４記載のデータレプリケーションシステムである。
【００１３】
請求項６記載の本発明は、上記データ更新管理テーブル１１ｃ，２１ｃの更新種別がＳＱＬ文で記述されている請求項３ないし５のいずれかに記載のデータレプリケーションシステムである。
【００１４】
請求項７記載の本発明は、運用系コンピュータ１と、これと同じデータベースシステム２１を備えた待機系コンピュータ２と、これらとは異なるデータベースシステム３１，４１，……を備えたレプリケーション先コンピュータ３，４，……とからなり、上記待機系コンピュータ２のデータベースシステム２１が、上記運用系コンピュータ１のデータベースシステム１１と同じ状態に同期されるホットスタンバイ構成となっているデータレプリケーションシステムにおけるデータレプリケーション方法であって、上記運用系コンピュータ１と上記待機系コンピュータ２とが、上記レプリケーション先コンピュータ３，４，……のデータベースシステム３１，４１，……に対するデータ更新を管理するデータ更新管理と、同データベースシステム３１，４１，……に対するデータ送信を管理するデータ送信管理とを、互いのデータ更新管理データ及びデータ送信管理データを同じにしながら同期して行い、上記運用系コンピュータ１に障害が発生したときに、上記待機系コンピュータ２が、上記レプリケーション先コンピュータ３，４，……のデータベースシステム３１，４１，……に対するデータ更新処理を、上記データ更新管理データ及びデータ送信管理データを参照して運用系コンピュータ１に引き継いで実行するデータレプリケーション方法である。
【００１５】
請求項８記載の本発明は、データ更新管理データが、データベースのテーブル名と上記レプリケーション先コンピュータ３，４，……のアドレスとを対照して管理するテーブル名／アドレス対照データを含む請求項７記載のデータレプリケーション方法である。
【００１６】
請求項９記載の本発明は、データ更新管理データが、データベースの更新種別をシーケンス番号と対照して管理するシーケンス番号／更新種別対照データを含む請求項７または８記載のデータレプリケーション方法である。
【００１７】
請求項１０記載の本発明は、データ送信管理データが、上記シーケンス番号とレプリケーション先コンピュータ３，４，……のアドレスとを対照して管理するシーケンス番号／アドレス対照データを含む請求項９記載のデータレプリケーション方法である。
【００１８】
請求項１１記載の本発明は、上記データ更新管理及び上記データ送信管理では、上記テーブル名／アドレス対照データを参照して上記シーケンス番号／更新種別対照データ及びシーケンス番号／アドレス対照データを更新し、上記データ更新処理では、上記シーケンス番号／更新種別対照データ及びシーケンス番号／アドレス対照データを参照して上記レプリケーション先コンピュータのデータベースシステムを更新する請求項１０記載のデータレプリケーション方法である。
【００１９】
請求項１２記載の本発明は、データベースの更新種別がＳＱＬ文で記述されている請求項７ないし１１のいずれかに記載のデータレプリケーション方法である。
【発明の効果】
【００２０】
本発明によれば、運用系コンピュータと待機系コンピュータとが、レプリケーション先コンピュータに対するデータ更新とデータ送信とを同期をとって管理するので、データレプリケーションの処理中に、運用系のコンピュータ１に障害が発生した場合には、直ちに待機系のコンピュータ２へフェイルオーバーし、データレプリケーションの処理を中断することなく継続することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明を実施例により説明するが、本発明はこれに限られるものではない。
【実施例１】
【００２２】
まず本発明の実施例１について詳しく説明する。
【００２３】
図１に示した本実施例のデータレプリケーションシステムは、レプリケーション元の運用系コンピュータ１と、待機系コンピュータ２と、レプリケーション先の複数のコンピュータ３，４，……とからなる。
【００２４】
上記待機系コンピュータ２は、上記運用系コンピュータ１と同種類のコンピュータであって、該運用系コンピュータ１のデータを複製しこれと常に同じ状態に同期され、運用系コンピュータ１に障害が発生すると即座に処理を引き継ぐ、ホットスタンバイ構成のものである。
なお、レプリケーション先となるコンピュータ３，４，……の台数は１台であっても構わない。
【００２５】
上記運用系コンピュータ１は、データベースシステム１１と、データ更新管理部１２と、データ送信管理部１３を有し、これらは、上記レプリケーション先コンピュータ３，４，……のデータベースシステム３１，４１，……に対するデータ更新処理の状態を管理するデータ更新管理手段及び上記レプリケーション先コンピュータ３，４，……のデータベースシステム３１，４１，……に対するデータ送信を管理するデータ送信管理手段を構成している。
【００２６】
上記データベースシステム１１は、レプリケーション元の複数のテーブル（各々はＡＡＡ，ＢＢＢ，……等のテーブル名を有する）を含むユーザテーブル１１ａを有する。
【００２７】
データベースシステム１１は、さらに、レプリケーション処理状態（データ更新処理状態）の情報を、データ送信先管理テーブル１１ｂ，データ更新管理テーブル１１ｃ，データ送信管理テーブル１１ｄに格納している。
【００２８】
上記データ送信先管理テーブル１１ｂは、ユーザテーブル１１ａのうちレプリケーションを要するテーブルについて、そのデータをいずれのコンピュータに送信すべきかを示すレコードを保持する。
このデータ送信先管理テーブル１１ｂは、データ送信元テーブルの上記テーブル名を格納するテーブル名列１１ｂ−１と、そのテーブルのデータの送信先となるコンピュータ３，４，……のIPアドレスを格納する送信先ＩＰアドレス列１１ｂ−２から構成され、データベースのテーブル名とそのレプリケーション先のアドレスを対照して管理する。
図示した例では、テーブルＡＡＡに関し２つのレコード（テーブル名／アドレス対照データ（データ更新管理データ））が保持されており、このテーブルＡＡＡは192.168.1.100及び192.168.1.101のＩＰアドレスを付された上記２つのコンピュータ３及び４にレプリケーションすべきものとされ、また、テーブルＢＢＢは192.168.1.100のＩＰアドレスを付された上記コンピュータ３にレプリケーションすべきものとされている。
【００２９】
上記データ更新管理テーブル１１ｃは、データ更新管理データとして、コンピュータ３，４，……のデータ更新の種別、具体的には、データ更新処理のためのＳＱＬ（Structured Query Language）文を保持するものであり、データ送信・更新の順序を制御するために使用するプライマリキーである、互いに重複しないシーケンス番号（ＳＥＱ番号）を格納するＳＥＱ列１１ｃ−１と、上記送信先コンピュータ３，４，……のデータベースのテーブル構成にカスタマイズしてデータを更新処理するＳＱＬ文（ＩＮＳＥＲＴ，ＤＥＬＥＴＥ，または，ＵＰＤＡＴＥ）を格納するためのＳＱＬ列１ｃ−２とから構成され、そのＳＱＬ文とＳＥＱ番号（シーケンス番号／更新種別対照データ）を対照して管理する。
図示した例では、ＳＥＱ番号０として、送信先データベースのテーブルＡＡＡにデータを挿入するＳＱＬ命令が、また、ＳＥＱ番号１として、送信先データベースのテーブルＢＢＢからデータを削除するＳＱＬ命令が保持されている。
【００３０】
上記データ送信管理テーブル１１ｄは、個々のコンピュータ３，４，……へのデータ送信を管理するためのもので、外部キーとして上記のＳＥＱ番号を格納するＳＥＱ列１１ｄ−１と、レプリケーション先のコンピュータ３，４，……のＩＰアドレスを格納する送信先ＩＰアドレス列（送信先アドレス列）１１ｄ−２とから構成され、上記ＳＥＱ番号と上記レプリケーション先コンピュータのアドレス（シーケンス番号／アドレス対照データ）を対照してデータ送信管理データとして管理する。
上記送信先ＩＰアドレス列１１ｄ−２は、データ送信先管理テーブル１１ｂのデータ等を基に設定することができる。
図示した例では、ＳＥＱ番号０をとした、上記コンピュータ３（ＩＰアドレス192.168.1.100）及びコンピュータ４（ＩＰアドレス192.168.1.101）を示す２つのレコードが、また、ＳＥＱ番号を１とした、上記コンピュータ３を示すレコードが保持されている。
【００３１】
上記待機系コンピュータ２は、上記運用系コンピュータ１と同種のデータベースシステム２１とデータ更新管理部２２とデータ送信管理部２３とを備え、そのデータベースシステム２１は、上記データベースシステム１１と同じテーブル構成のユーザテーブル２１ａとデータ送信先管理テーブル２１ｂとデータ更新管理テーブル２１ｃとデータ送信管理テーブル２１ｄを有する（図１，２）。
上記運用系と待機系の両データベースシステム１１，２１は、データ更新管理部１２，２２間、データ送信管理部１３，２３間、ユーザテーブル１１ａ，２１ａ間、データ送信先管理テーブル１１ｂ，２１ｂ間、上記データ更新管理テーブル１１ｃ，２１ｃ間、データ送信管理テーブル１１ｄ，２１ｄ間等において常にデータの整合性を保って同期されている。
さらに両データベースシステム１１，２１はデータベース上のユーザテーブル１１ａが更新された場合、ユーザに更新が行なわれたことを通知する機能を有する。
【００３２】
上記コンピュータ３，４，……は、それぞれ異なるＩＰアドレスを割り振られ、運用系と待機系の両コンピュータ１，２とは異なる種類のデータベースシステム（レプリカデータベースシステム）３１，４１を有している。
そのレプリカデータベースシステム３１，４１はそれぞれ、上記運用系コンピュータ１のユーザテーブル１１ａ（上記待機系コンピュータ２のユーザテーブル２１ａ）の全部または一部のデータの複製を保持するレプリカユーザテーブル３１ａ，４１ａを有する。
コンピュータ１，２の上記データ送信管理部１３，２３は、このレプリカデータベースシステム３１，４１をサーバとしてクライアント接続が行えるようになっている。
【００３３】
上記構成からなるデータレプリケーションシステムによる、データレプリケーション方法は、以下のように行われる。
【００３４】
レプリカデータベースシステム３１，４１，……へのデータ送信は、コンピュータ１，２のうち運用状態にあるものからのみ行なうので、以下、まず、運用系コンピュータ１が正常に稼働している場合の処理について説明する。
【００３５】
（ａ）運用系コンピュータ１が正常に稼働している場合
【００３６】
このレプリケーション方法は、上記レプリケーション先コンピュータ３，４，……のデータベースシステム３１，４１，……に対するデータ更新の管理を行なうデータ更新管理部１２の処理（データ更新管理）と、その更新に関する情報を参照しながらコンピュータ３，４，……のレプリカデータベースシステム３１，４１，……へのデータ送信（更新）をするデータ送信管理部１３の処理（データ送信管理・データ更新処理）に分けられる。
【００３７】
これらの処理を行っているあいだ、データベースシステム１１及び２１の機能により、コンピュータ１，２間では、上記ユーザテーブル１１ａ，２１ａ、上記データ送信先管理テーブル１１
ｂ，２１ｂ、上記データ更新管理テーブル１１ｃ，２１ｃ、データ送信管理テーブル１１ｄ，２１ｄについて、常に同じ状態になるようデータの同期が行われている。
【００３８】
まず、上記データ更新管理部１２の処理について、図３により説明する。
【００３９】
＜ステップＳ１＞
運用系コンピュータ１のアプリケーションプログラムから、ユーザテーブル１１ａに対してデータ更新が行われる。
このデータ更新イベントをトリガとして、データ更新管理部１２は、更新されたユーザテーブル１１ａのデータ内容及びテーブル名（以下、「更新データ」という。）を読み出す。
【００４０】
＜ステップＳ２＞
自コンピュータに障害が発生しているか否かの状態確認を行なう。自コンピュータに障害が発生していれば（Ｓ２：ＮＯ）、コンピュータ１は処理をイベント待ち状態とする。
【００４１】
＜ステップＳ３＞
ステップＳ１にて読み出した更新データ中のテーブル名を検索キーとして、データ送信先管理テーブル１１ｂを検索する。該当レコードが検索されなければ（Ｓ３：ＮＯ）、レプリケーションを要しない送信対象外のテーブルとみなし、イベント待ち状態とする。
【００４２】
＜ステップＳ４＞
ステップＳ３にて、該当するレコードが検索された場合（Ｓ３：ＹＥＳ）、当該レコードの送信先ＩＰアドレス列１１ｂ−２の値を読み出す。
【００４３】
＜ステップＳ５＞
ステップＳ１にて読み出しておいた更新データのデータ内容を、レプリカデータベースシステム３１，４１のテーブル構成にカスタマイズし、そのレプリカユーザテーブル３１ａ，４１ａの更新処理をするためのＳＱＬ文に変換する。
変換されたＳＱＬ文は、ＩＮＳＥＲＴ文，ＤＥＬＥＴＥ文、ＵＰＤＡＴＥ文のいずれかとなる。
【００４４】
＜ステップＳ６＞
データ更新管理テーブル１１ｃのＳＥＱ列１１ｃ−１に対して最大値検索を行なう。
【００４５】
＜ステップＳ７＞
未送信データが存在する場合、ステップＳ６にて、データ更新管理テーブル１１ｃに残存しているレコードが検索されるので（Ｓ７：ＹＥＳ）、（検索されたＳＥＱ番号＋１）の値をＳＥＱ列１１ｃ−１に設定し、ＳＱＬ列１１ｃ−２にステップでＳ５で変換したＳＱＬ文を設定しレコードを登録する（Ｓ８）。
また、データ送信管理テーブル１１ｄのＳＥＱ列１１ｄ−１にも同一のＳＥＱ番号を設定し、サーバＩＰアドレス列１１ｄ−２には、ステップＳ４にて検索されたサーバＩＰアドレス列１１ｂ−２と同値を設定し、レコードの登録を行なう。 
ステップＳ３で、データ送信先管理テーブル１１ｂに、複数のレコードが検索された場合、複数のコンピュータ３，４，……に同一のデータ内容のレプリケーションを行うため、複数のレコードの登録を行う。
【００４６】
データ検索が行なえなかった場合、（Ｓ７：ＮＯ）、０値をＳＥＱ列に設定し、ＳＱＬ列１１ｃ−２には、ステップＳ５で変換したＳＱＬ文を設定しレコードの登録をする（Ｓ９）。
また、データ送信管理テーブル１１ｄのＳＥＱ列１１ｄ−１にも同様のＳＥＱ列を設定し、サーバＩＰアドレス列１１ｄ−２には、Ｓ４にて検索された送信先ＩＰアドレス列１１ｂ−２と同値を設定し、レコードの登録を行なう。 
ステップＳ３で、データ送信先管理テーブル１１ｂに、複数のレコードが検索された場合、複数のレコードの登録を行う。
【００４７】
次に、上記データ送信管理部１３の処理について図４により説明する。
【００４８】
＜ステップＳ１１＞
データ送信管理部１３が、コンピュータ３上のレプリカデータベースシステム３１（及び／またはコンピュータ４上のレプリカデータベースシステム４１）に対してデータ更新を行なうためには、当該レプリカデータベースシステム３１，４１をデータベースサーバとしたクライアント接続を行なう必要がある。
そこで、データ送信管理部１３は、データ送信先管理テーブル１１ｂを検索し、データ送信を行なうべきレプリカデータベースシステム３１及び／または４１に対して、クライアント接続を行なう。
【００４９】
＜ステップＳ１２＞
レプリカデータベースシステム３１，４１へ送信するべきデータが存在するか、データ更新管理テーブル１１ｃを検索し、ＳＱＬ列１１ｃ−２のＳＱＬ文を読み出す。この検索は、検索順序を考慮し、ＳＥＱ列１１ｃ−１に対して、最小値検索を行なう（Ｓ１２）。
レコードの検索が行なえなかった場合（Ｓ１２：レコードなし）、一時休止状態となり（Ｓ１９）、以降周期的にデータ更新管理テーブル１１ｃの監視を行なう。
【００５０】
＜ステップＳ１３＞
ステップＳ１２の処理にて、データ検索が行なわれた場合（Ｓ１２：データあり）、自コンピュータに障害が発生していないかを確認する（Ｓ１３）。
自コンピュータに障害が発生していれば（Ｓ１３：ＹＥＳ）、一時休止状態にする（ステップＳ１９）。
【００５１】
＜ステップＳ１４＞
ステップＳ１３において、自コンピュータに障害が発生することなく正常な運用状態にある場合（ステップＳ１３；ＮＯ）、ステップＳ１２の処理で検索されたレコードのＳＥＱ番号で、データ送信管理テーブル１１ｄのレコードを検索して、更新データの送信を行なうべきコンピュータ３，４，……のＩＰアドレスを読み出す。
【００５２】
＜ステップＳ１５＞
ステップＳ１４にて検索されたレコードのＩＰアドレスを付されたコンピュータ３，４……に対して、ステップＳ１２で読み出したデータ更新管理テーブル１１ｃのＳＱＬ列１１ｃ−２のＳＱＬ文でデータ送信・更新を行なう。
＜ステップＳ１６＞
データ送信・更新の処理が正常終了したら、該当するレコードをデータ送信管理テーブル１１ｄから削除する。
データ送信管理部１３は、データ送信管理テーブル１１ｄのレコードの有無でレプリケーション処理の完了如何の管理を行なう。
つまり、データ送信管理テーブル１１ｄにレコードが存在しているＩＰアドレスのコンピュータに対してのレプリケーション処理は、未完了状態にあることになる。
【００５３】
＜ステップＳ１７＞
データ送信管理テーブル１１ｄ上に、ステップＳ１２で検索されたのと同じＳＥＱ値をもつ他のレコードが存在するか検索を行ない、他のレコードが存在すれば（Ｓ１７：ＮＯ）、該当するコンピュータ３（または４）に対してステップＳ１４からの処理を行う。
【００５４】
＜ステップＳ１８＞
データ送信管理テーブル１１ｄ上に同じＳＥＱ値のレコードが無い場合（Ｓ１７：ＹＥＳ）、全てのレプリケーション先コンピュータ３，４，……へのデータ更新が完了したことになるので、データ更新管理テーブル１１ｃから、ステップＳ１２で検索された該当するレコードを削除する。
【００５５】
＜ステップＳ１９＞
一時休止状態となる。データを周期的に監視するため、休止状態解除後は、再度ステップＳ１２のデータ更新管理テーブルの検索を行なう。
【００５６】
（ｂ）運用系コンピュータ１に障害が発生した場合（フェイルオーバー処理）
【００５７】
上記のレプリケーション処理中に、運用系コンピュータ１に障害が発生した場合、ただちにフェイルオーバーが行なわれ、待機系コンピュータ２が運用状態となる。
運用系コンピュータ１に代わり運用状態となった待機系コンピュータ２は、そのデータ更新管理テーブル２１ｃ及びデータ送信管理テーブル２１ｄ等を含め、上記運用系コンピュータ１と常に同じ状態に同期されて、運用系コンピュータ１が途中まで処理していたレプリケーション処理状態の情報を有しているので、運用系コンピュータ１の処理を、これに代わって、無中断で継続する。
【００５８】
上記のように、本実施例では、ホットスタンバイ構成のコンピュータ１とコンピュータ２とが、常に同じ状態に保たれており、しかも、データレプリケーションの処理を行なっている運用系コンピュータ１に障害が発生した場合には、データ更新管理テーブル１１ｃ及びデータ送信管理テーブル１１ｄと同内容のデータ更新管理テーブル２１ｃ及びデータ送信管理テーブル２１ｄを保持する待機系コンピュータ２がただちにフェイルオーバーするので、レプリケーション処理を中断することなく継続することができる。
【００５９】
また、更新先コンピュータ３，４，……に障害が発生しても、データ送信管理テーブル１１ｄ，２１ｄによって、データの更新完了を管理しているため、障害から復旧後、即座にデータ整合性を保つことができる。
【実施例２】
【００６０】
次に、本発明の実施例２について説明する。
図５に示した本実施例のデータレプリケーションシステムは、運用系コンピュータ１と待機系コンピュータ２が、それぞれ特定の単一のレプリカデータベースシステム３１，４１にクライアント接続されるデータ送信管理部１３，１４、２３，２４を２つずつ備えている点、実施例１と相違する。
その他の点は実施例１と同一ゆえ、説明を省略する。
【産業上の利用可能性】
【００６１】
本発明は、金融機関などの、既に異種データベースシステムが混在し、データの高速送信及び高信頼性が必要とされるシステムに適用される。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施例１のデータレプリケーションシステムの構成図である。
【図２】（ａ）は、運用系コンピュータ１（及び待機系コンピュータ２）のデータ送信先管理テーブルの、（ｂ）はデータ更新管理テーブルの、同図（ｃ）はデータ送信管理テーブルのテーブル構成をそれぞれ示した図である。
【図３】データ更新管理部の処理手順を示すフローチャートである。
【図４】データ送信管理部の処理手順を示すフローチャートである。
【図５】本発明の実施例２のデータレプリケーションシステムの構成図である。
【符号の説明】
【００６３】
１   運用系コンピュータ
２   待機系コンピュータ
３，４，…… （レプリケーション先の）コンピュータ
１１，２１，３１，４１  データベースシステム
１１ａ，２１ａ，３１ａ，４１ａ ユーザテーブル
１１ｂ，２１ｂ データ送信先管理テーブル
１１ｃ，２１ｃ データ更新管理テーブル
１１ｄ，２１ｄ データ送信管理テーブル
１２，２２  データ更新管理部
１３，２３  データ送信管理部
【図１】
2008009814.tif 000003
【図２】
2008009814.tif 000004
【図３】
2008009814.tif 000005
【図４】
2008009814.tif 000006
【図５】
2008009814.tif 000007