(57)【要約】【課題】静的レプリケーションでは、データベースをコピーする間、データベースの更新処理を停止する必要があり、クレジットカードやデビットカード、あるいは、ＡＴＭなどの利用者に２４時間稼動のサービスを提供することができない。【解決手段】切替プログラム１３は、データベースの更新ログ１４に、指定時刻を示す切替制御レコードを記録する。差分抽出プログラム１５は、更新ログ１４から更新差分データを抽出するが、切替制御レコードを検出すると、更新差分データに切替情報を含め、更新差分データの抽出を停止する。差分反映プログラム３１は、データベース３２に更新差分データを反映するが、切替情報を検出すると、更新差分データの反映を停止して、静的データベース保存プログラム３３を起動する。【選択図】　図１
2004078464.tif 000002
【特許請求の範囲】
【請求項１】
リアルタイム更新差分抽出によってデータベースを作成する情報処理装置であって、
データベースを更新して、その更新ログを生成する更新手段と、
静的データベースの生成タイミングを示すタイミング情報を、前記更新ログに記録する記録手段と、
前記更新ログから前記データベースの更新情報を抽出する抽出手段と、
前記更新情報を前記データベースの複製データベースに反映する反映手段とを有し、
前記抽出手段は、前記更新ログから前記タイミング情報を検出すると、前記タイミング情報を前記更新情報として抽出して、前記更新情報の抽出を停止し、
前記反映手段は、前記更新情報が前記タイミング情報を示す場合、前記更新情報の反映を停止して、前記複製データベースから前記静的データベースを作成することを特徴とする情報処理装置。
【請求項２】
前記静的データベースの作成が終了した後、前記反映手段は前記更新情報の反映を再開し、前記抽出手段は前記更新情報の抽出を再開することを特徴とする請求項１に記載された情報処理装置。
【請求項３】
前記更新手段は、前記静的データベースの作成とは無関係に、前記データベースの更新および前記更新ログの生成を継続することを特徴とする請求項１に記載された情報処理装置。
【請求項４】
前記反映手段は、前記更新情報が前記タイミング情報を示す場合、前記複製データベースに対する日次処理および／または月次処理を実行することを特徴とする請求項１に記載された情報処理装置。
【請求項５】
リアルタイム更新差分抽出によるデータベースの作成方法であって、
データベースを更新して、その更新ログを生成し、
静的データベースの生成タイミングを示すタイミング情報を、前記更新ログに記録し、
前記更新ログから前記データベースの更新情報を抽出し、
前記更新情報を前記データベースの複製データベースに反映し、
前記更新ログから前記タイミング情報を検出すると、前記タイミング情報を前記更新情報として抽出して、前記更新情報の抽出を停止し、
前記更新情報が前記タイミング情報を示す場合、前記更新情報の反映を停止して、前記複製データベースから前記静的データベースを作成することを特徴とする作成方法。
【請求項６】
情報処理装置を制御して、請求項５に記載されたデータベースの作成を実行することを特徴とするプログラム。
【請求項７】
請求項６に記載されたプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータベースの作成方法およびその情報処理装置に関し、例えば、リアルタイム更新差分抽出によるデータベース作成に関する。
【０００２】
【従来の技術】
コンピュータによって作成、更新される企業の基幹業務のデータベースを、異なるコンピュータのデータベースへ抽出するレプリケーション（複製）技術に対する需要が、データウェアハウスの構築、あるいは、データマイニングやウェブ対応を行うオープン系資源へデータを供給する基盤技術の一つとして高まっている。
【０００３】
データベースを複製する際は、オリジナルの基幹システムを変更することなく、コピー先のデータベースを常に最新の状態に保つことが望まれる。オリジナルのデータベースの更新を停止した状態でオリジナルのデータベースを複製する静的レプリケーションでは、オリジナルのデータベースの更新がリアルタイムにコピー先のデータベースに反映されることはない。従って、コピー先のデータベースの鮮度を維持するには、コピープログラムを定期的に実行する必要がある。しかし、基幹業務のデータベースは大容量で、コピーには時間を要し、何度も繰り返しコピーを実行することはできない。
【０００４】
【発明が解決しようとする課題】
金融業などの２４時間稼動するシステムにおいては、日付切替時などのデータを、整合性がとれた状態のデータベースとして保存する必要がある。オリジナルのデータベースの更新を行いながら、複製を作成する動的レプリケーションの手法が、例えば特開２０００−１３２４３５公報に開示されているが、データベースの更新が継続されるため、ある特定時点のデータを保持することはできず、例えば日付切替時のデータベースといった静的なデータベースを保証することができない。
【０００５】
さらに、静的レプリケーションでは、データベースをコピーする間、データベースの更新処理を停止する必要があり、例えばクレジットカードやデビットカード、あるいは、ＡＴＭなどの利用者に２４時間稼動のサービスを提供することはできない。
【０００６】
また、特開平１０−２０７７５４号公報は、更新中のデータベースから、任意の時点におけるデータベースを複製する手段を開示する。しかし、同公報に開示されたレプリケーションは、同一機種における、同一種類のデータベースのレプリケーションに限定される。さらに、更新中のデータベースの複写を第一のプロセスとして行い、更新データジャーナルの選別を第二のプロセスとして行うので、第一のプロセスから第二のプロセスへデータ抽出範囲などを通知する必要がある。その通知の後、第一のプロセスで複写作成した複写データベースの内容を、第二のプロセスで選別された更新データジャーナルの内容により更新する。
【０００７】
言い換えれば、特開平１０−２０７７５４号公報に開示されたレプリケーションは、一旦、データベースを複写した後、更新情報を上書きするもので、複写を行う第一のプロセス、および、第一のプロセスから第二のプロセスへの通知が必要で、処理が複雑になり、基幹業務であるデータベース更新処理への影響が大きい。
【０００８】
本発明は、上述の問題を個々にまたはまとめて解決するためのもので、更新中のデータベースから、任意の時点における静的データベースを作成することを目的とする。
【０００９】
【課題を解決するための手段】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１０】
本発明にかかる情報処理装置は、リアルタイム更新差分抽出によってデータベースを作成する情報処理装置であって、データベースを更新して、その更新ログを生成する更新手段と、静的データベースの生成タイミングを示すタイミング情報を、前記更新ログに記録する記録手段と、前記更新ログから前記データベースの更新情報を抽出する抽出手段と、前記更新情報を前記データベースの複製データベースに反映する反映手段とを有し、前記抽出手段は、前記更新ログから前記タイミング情報を検出すると、前記タイミング情報を前記更新情報として抽出して、前記更新情報の抽出を停止し、前記反映手段は、前記更新情報が前記タイミング情報を示す場合、前記更新情報の反映を停止して、前記複製データベースから前記静的データベースを作成することを特徴とする。
【００１１】
本発明にかかるデータベースの作成方法は、リアルタイム更新差分抽出によるデータベースの作成方法であって、データベースを更新して、その更新ログを生成し、静的データベースの生成タイミングを示すタイミング情報を、前記更新ログに記録し、前記更新ログから前記データベースの更新情報を抽出し、前記更新情報を前記データベースの複製データベースに反映し、前記更新ログから前記タイミング情報を検出すると、前記タイミング情報を前記更新情報として抽出して、前記更新情報の抽出を停止し、前記更新情報が前記タイミング情報を示す場合、前記更新情報の反映を停止して、前記複製データベースから前記静的データベースを作成することを特徴とする。
【００１２】
【発明の実施の形態】
本発明にかかる一実施形態の情報処理を図面を参照して詳細に説明する。
【００１３】
［概要］
本実施形態は、異機種間の、異なる種類のデータベース間で動的レプリケーションを実施する際、指定のタイミング（例えば日付切替時刻）に基づき、データベースの更新情報を更新差分データに反映する処理を停止して、複製のデータベースの静的な状態を確保する。なお、異なる種類のデータベースとしては、例えばネットワーク型データベース、リレーショナルデータベースなどがある。
【００１４】
［構成］
図１は実施形態のデータベースのレプリケーションを行う情報処理システムの構成例を示すブロック図である。
【００１５】
オリジナルのデータベース１１が稼動する装置（以下「オリジナル機」と呼ぶ）１のデータベース更新プログラム１２は、データベース１１の更新情報を更新ログ１４に記録する。オリジナル機１の差分抽出プログラム１５は、読み込んだ更新ログ１４を編集して、更新差分データを抽出し、共有ディスク２に格納する。
【００１６】
複製のデータベース３２が稼動する装置（以下「コピー先機」と呼ぶ）３の差分反映プログラム３１は、共有ディスク２から更新差分データを読み込み、更新差分データが示す更新情報（差分）をデータベース３２に反映する。
【００１７】
日付切替など、静的データベース３４の作成時刻（指定時刻）になると、オリジナル機１では、タイマ指定によって切替プログラム１３が自動的に起動し、切替制御レコードを更新ログ１４に記録する。差分抽出プログラム１５は、更新ログ１４に記録された切替制御レコードを検出すると、差分抽出の終了処理を行い、切替制御レコードを検出したことを示す切替情報を含む更新差分データを共有ディスク２に格納した後、自己（差分抽出プログラム１５）を停止する。なお、この後も、オリジナル機１のデータベース更新プログラム１２は停止することなく動作して、更新ログ１４に更新情報が記録される。
【００１８】
差分反映プログラム３１は、切替情報を含む更新差分データを検出すると、未処理の更新差分データをデータベース３２に反映し、更新差分データの反映を終了する。反映終了時点のデータベース３２は、指定時刻における静的データベースになる。そして、差分反映プログラム３１は、静的データベース保存プログラム３３や、日時処理、月次処理などの処理を起動する。
【００１９】
詳細は後述するが、静的データベース３４の保存、必要に応じて起動された日時処理、月次処理などの処理がすべて終了すると、差分抽出プログラム１５は、自己（差分抽出プログラム１５）の停止を解除して、前回自己を停止した以降の、動的レプリケーションを、遅延処理で再開する。
【００２０】
従って、異機種であるオリジナル機１とコピー先機３との間の、種類が異なるデータベース１１とデータベース３２との間の動的レプリケーションにおける、特定時刻の静的データベース３４の作成が、オリジナル機１のデータベース１１の更新処理を継続したままで容易に実現される。勿論、異機種間の、同一種類のデータベース間、または、同一機種間の、同一種類のデータベース間であっても、同様に、特定時刻の静的データベース作成が実現される。
【００２１】
データベース１１を二重化しておき、指定時刻に二重化した一方を切り離して、静的データベース３４を作成する方法もあるが、指定時刻前に更新されたが未だコミットされていないデータがある場合は、後処理により、このようなデータを更新前の状態に戻す必要がある。この場合、処理が確定しているか否かを判別して、確定していなければ更新前の状態へ戻す、というような複雑な処理を行わなければならない。
【００２２】
実施形態の静的データベースの作成方法によれば、このような複雑な処理を必要としない。すなわち、コミットレコードを検出したところで、トランザクション単位に編集して、共有ディスク２に更新差分データとして書き出すので、切替制御レコードを検出したときは、更新されたが未だコミットされていないデータは、更新差分データとして書き出されていないためである。言い換えれば、実施形態の静的データベースの作成方法は、指定時刻にデータベース１１を切り離して、静的データベース３４を作成する方法に比べて、指定時刻前後のコミット前データに関する整合を取る、という複雑な処理を必要としない。
【００２３】
また、差分抽出プログラム１５を停止して静的データベース３４を作成するので、コピー先機３における静的データベース３４の保存、日時処理、月次処理などの時間的な制約が緩和される。また、差分抽出プログラム１５、および、差分反映プログラム３１の処理を再開するだけで、容易にレプリケーションが再開される。
【００２４】
なお、図１には示さないが、オリジナル機１とコピー先機３とは所定のインタフェイス、ネットワーク、専用線を介して接続されていてもよい。また、共有ディスク２は、オリジナル機１またはコピー先機３に接続されたハードディスクでもよいし、ネットワークを介して接続されるサーバのリソースでもよい。
【００２５】
なお、コミットとは、トランザクション処理が成功したときに、その結果を確定させる操作である。トランザクション処理の結果は「すべて成功」か「すべて失敗」のどちらかに限られるため、一連の処理がすべて終了するまで成功か失敗かを判断することができない。例えば、資金移動システムをコンピュータで処理する場合、出金処理と入金処理は「どちらも成功」か「どちらも失敗」のどちらかであることが要求される。従って、出金処理が終了しても、入金処理が終るまでは、その処理が「成功」か「失敗」かは不明なままである。出金・入金双方の処理がどちらも成功して始めて、資金を本当に移動させることが決定される。この資金移動を確定させる操作がコミットである（ｅ−Ｗｏｒｄｓ情報・通信事典より）。
【００２６】
また、ロールバックとは、トランザクションの処理中に何か異常が起こり、正常に処理を完了できなかった場合、関連する処理を中止し、関連する情報を処理前の状態に戻す操作である（日経ＢＰ社Ｆｉｎｄ’Ｘより）。
【００２７】
［差分抽出処理］
図２は差分抽出プログラム１５の処理を説明するフローチャートである。
【００２８】
差分抽出プログラム１５は、まず、更新ログ１４からログデータをレコード単位に読み込み（Ｓ１１）、読み込んだログデータを記憶する（Ｓ１２）。そして、ログデータの後述する更新種別に基づき、記憶したログデータが切替制御レコードか否か（Ｓ１３）、コミットまたはロールバックレコードか否か（Ｓ１４）を判定する。
【００２９】
図５はログデータの形式を説明する図である。「トランザクション識別名」はトランザクションの単位を表す記号、「更新種別」は更新、追加、削除、コミット、ロールバック、日付切替などの処理を表すコード、「コミット順序」はオリジナル機１が複数あり、同一のデータベースをシェアしている場合に、異なるオリジナル機間におけるコミットの順序を確定する順序数、「更新前（または後）レコード」はデータベースの更新前（または後）のレコードの内容である。
【００３０】
ログデータがコミットの場合は、ログデータをトランザクション（処理）単位に編集して、コミット済みのデータを抽出し、共有ディスク２に更新差分データとして書き出す（Ｓ１５）。具体的には、不要項目の削除、更新順にソート、コピー先機３の文字コードへの変換、バイナリ数値の数字文字列への変換などを行い、その結果を更新差分データとして書き出す。そして、書き出した更新差分データに対応する、記憶したログデータを削除する（Ｓ１６）。また、ログデータがロールバックの場合は更新差分データを出力せずに、記憶したログデータを削除する（Ｓ１６）。その後、処理はステップＳ１１へ戻り、ステップＳ１１からＳ１６の処理を繰り返す。
【００３１】
前述したように、指定時刻になると、オリジナル機１において、タイマ指定によって切替プログラム１３が自動的に起動して、更新ログ１４に切替制御レコードを記録する。差分抽出プログラム１５は、切替制御レコードを検出すると（Ｓ１３）、更新ログ１４の未処理部分の位置、つまり処理再開時のログデータの読み込みを開始する位置を共有ディスク２などにファイルとして書き出す（Ｓ１７）。
【００３２】
図３に一例を示す更新ログ１４における、処理再開時のログデータの読み込み開始位置は、図３にＡおよびＣで示す、切替制御レコード検出時に仕掛かり中のトランザクションのうちの最初のレコード、つまりＡで示す「更新１」になる。なお、図３にＢで示す更新１および更新２は、切替制御レコードの前でコミットされているので、処理再開時の更新対象にはならない。
【００３３】
次に、差分抽出プログラム１５は、記憶したログデータを消去し（Ｓ１８）、日付切替などを示す切替情報を更新差分データとして共有ディスク２へ書き出す（Ｓ１９）。
【００３４】
この後、差分抽出プログラム１５は、自己（差分抽出プログラム１５）の処理を停止するが、差分抽出プログラム１５の停止後も、オリジナル機１のデータベース更新プログラム１２は停止することなく動作して、データベース１１の更新情報は更新ログ１４に記録され続ける。
【００３５】
［差分反映処理］
図４は差分反映プログラム３１の処理を説明するフローチャートである。
【００３６】
差分反映プログラム３１は、共有ディスク２に新たに書き込まれた更新差分データがあるか否かを所定の時間間隔で調べ（Ｓ２１）、該当するデータがある場合は、その更新差分データを読み込み（Ｓ２２）、更新差分データが切替情報か否かを判定する（Ｓ２３）。
【００３７】
切替情報ではない場合、差分反映プログラム３１は、更新差分データが示す更新情報をデータベース３２に反映し（Ｓ２４）、処理をステップＳ２１へ戻し、ステップＳ２１からＳ２３を繰り返す。
【００３８】
また、切替情報の場合、データベース３２はオリジナル機１の指定時刻における静的データベースのレプリケーションになっているので、差分反映プログラム３１は、静的データベース保存プログラム３３や、必要に応じて日時処理、月次処理などの処理を起動し（Ｓ２５）、その後、自己（差分反映プログラム３１）の処理を停止するとともに、プロセス間通信によりオリジナル機１の運用管理機能に、差分抽出プログラム１５の処理の再開指示を通知する。この通知を受けたオリジナル機１の運用管理機能は、差分抽出プログラム１５の処理を再開させる。
【００３９】
コピー先機３の運用管理機能は、差分反映プログラム３１の処理が停止した後、静的データベース３４の保存や、必要に応じて起動された日時処理、月次処理などの処理がすべて終了したことを検出すると、差分反映プログラム３１の処理を再開させる。
【００４０】
これ以降、差分抽出プログラム１５の処理が前回停止した以降の、動的レプリケーションが遅延処理で再開される。
【００４１】
［変形例］
上記では、オリジナル機１およびコピー先機３が、共有ディスク２を使用して更新差分データの受渡しをする例を説明した。しかし、共有ディスク２を使用しない受渡しも考えられる。例えば、ネットワークを使用して、オリジナル機１からコピー先機３へ更新差分データをファイル転送してもよい。この場合、転送するファイルに次に送信予定のファイル名を含める。コピー先機３の差分反映プログラム３１は、所定の時間間隔で、次のファイルを受信したか否かを判定し、該当するファイルがある場合、その更新差分データを読み込み、データベース３２に更新を反映する。なお、コピー先機３の差分反映プログラム３１が、受信したファイルから切替情報を読み込んだ以降の処理は、共有ディスク２を使用する場合と同様である。
【００４２】
このように、本実施形態は、切替制御レコードを記録し、切替制御レコードを検出することでレプリケーションを行うため、更新中のデータベースの複写を行う必要がなく、遅延処理によって更新情報の反映だけを行えばよい。従って、特開平１０−２０７７５４号公報のレプリケーションに比べて、処理負荷が軽くし、基幹業務であるデータベース更新処理への影響を小さくする効果がある。
【００４３】
【発明の効果】
以上説明したように、本発明によれば、更新中のデータベースから、任意の時点における静的データベースを作成することができる。
【図面の簡単な説明】
【図１】データベースのレプリケーションを行う情報処理システムの構成例を示すブロック図、
【図２】差分抽出プログラムの処理を説明するフローチャート、
【図３】更新ログの一例を示す図、
【図４】差分反映プログラムの処理を説明するフローチャート、
【図５】ログデータの形式を説明する図である。
【図１】
2004078464.tif 000003
【図２】
2004078464.tif 000004
【図３】
2004078464.tif 000005
【図４】
2004078464.tif 000006
【図５】
2004078464.tif 000007