(57)【要約】【課題】データベース処理をできるだけ継続させたまま所定処理を実行することが可能な技術を提供する。【解決手段】運用対象のデータベースを前記主データベースから複製データベースへ切り替えるステップと、前記切り替えにより運用対象ではなくなった主データベースに対して所定処理を実行するステップと、前記切り替えにより運用対象となった複製データベースへデータベースアクセス要求を振り分けてデータベース処理を行うステップと、前記複製データベースに対して行われた更新処理の内容を示す更新情報を出力するステップと、前記出力された更新情報を前記所定処理の実行された主データベースへ反映させるステップと、運用対象のデータベースを前記複製データベースから主データベースへ切り替えるステップとを有するものである。【選択図】        図１
2004318288.tif 000002
【特許請求の範囲】
【請求項１】
プログラムからのアクセスを許可している第１のデータベースの複製である第２のデータベースを生成し、該生成が終了した後に前記プログラムのアクセス許可を前記第１のデータベースから前記第２のデータベースに切り替えることを特徴とするデータ処理方法。
【請求項２】
前記プログラムのアクセス許可を切り替えた後、第２のデータベースヘの当該プログラムの処理の履歴を処理履歴として記憶し、前記第１のデータベースについては所定の処理を実行することを特徴とする請求項１記載のデータ処理方法。
【請求項３】
前記第１のデータベースヘの所定の処理が終了した後、前記記憶した処理履歴に基づく処理を第１のデータベースに行うことを特徴とする請求項２記載のデータ処理方法。
【請求項４】
前記記憶した処理履歴に基づく前記第１のデータベースへの処理が終了したとき、前記プログラムのアクセス許可を前記第２のデータベースから前記第１のデータベースに切り替えることを特徴とする請求項３記載のデータ処理方法。
【請求項５】
所定条件を満たしたとき前記記憶した処理履歴に基づく前記第１のデータベースへの処理を終了して第２のデータベースを静止化状態とし、前記記憶した処理履歴で第１のデータベースに処理されていないものがある場合は、前記処理されていない処理履歴に基づく処理を第１のデータベースに行うことを特徴とする請求項３記載のデータ処理方法。
【請求項６】
前記静止化状態は、前記プログラムにおける前記第１のデータベースまたは前記第２のデータベースへのアクセス処理時に一時記憶し、前記第１のデータベースまた前記第２のデータベースへの格納を停止している状態であることを特徴とする請求項５記載のデータ処理方法。
【請求項７】
前記第２のデータベースへの当該プログラムの処理と、前記第１のデータベースヘの所定の処理は並行処理または並列処理することを請求項２または３記載の記載のデータ処理方法。
【請求項８】
前記記憶した処理履歴に基づく処理を第１のデータベースに行うとき、前記処理履歴に含まれるキー値もしくはキーレンジに対応して割り付けた複数のプログラムにより並行処理もしくは並列処理することを特徴とする請求項２または３記載のデータ処理方法。
【請求項９】
実行されているプログラムからのアクセスを許可している第１のデータベースの複製である第２のデータベースを生成する手段と、該生成が終了した後に前記プログラムのアクセス許可を前記第１のデータベースから前記第２のデータベースに切り替える手段とを有することを特徴とするデータ処理装置。
【請求項１０】
実行されているプログラムからのアクセスを許可している第１のデータベースの複製である第２のデータベースを生成するステップと、該生成が終了した後に前記プログラムのアクセス許可を前記第１のデータベースから前記第２のデータベースに切り替えるステップとを有することを特徴とするデータ処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データベースの運用で利用されるデータベース処理技術に関するものである。
【０００２】
【従来の技術】
従来の大量のトランザクション処理を行うオンライン業務においては、大量データの集計や一括登録等の日次、週次、月次処理、或いはデータベースのバックアップや再編成など定期的なバッチ処理が必要となる。これらの処理は、オンラインサービスで使用するデータベースへの一括アクセスを伴う為、オンライン業務処理への影響が大きく、２４時間連続でサービス（プログラムやオブジェクトの実行により実現される機能）を提供する際の妨げとなっている。
【０００３】
近年、磁気ディスク装置など複数のストレージ装置を専用の高速ネットワークで有機的に結合したＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）構成が普及し始めている。この構成では任意の論理ボリュームを複数の論理ボリュームに高速コピーする機能、任意の論理ボリュームを正ボリュームとし、他の複数の論理ボリュームを副ボリュームとしてデータの多重書き込みを行う機能、多重書き込み状態の論理ボリュームを任意の時点で切り離し、正・副独立したボリュームとしてアクセスできる機能、任意の論理ボリュームを正ボリューム、別の論理ボリュームを副ボリュームとし、多重書き込みを再開して双方のデータの差分だけを正ボリュームから副ボリュームに反映する差分反映機能などをストレージ装置が提供している。
【０００４】
また、外部記憶装置上で多重書き又は複製されたデータベース領域の一方を切り離し、物理的な複製データベースを作成する場合に、トランザクション処理を継続したまま、複製データベースの一貫性を維持できる様にしたり、また、複製元のデータベースをアクセスしていたアプリケーションプログラムを変更せずに、物理的な複製データベースをアクセス可能とする複製データベースアクセス装置が提案されている（例えば特許文献１参照）。
【０００５】
【特許文献１】
特開２００３−００６０２０号公報
【０００６】
【発明が解決しようとする課題】
前記従来の技術において、データベースの複写を複製データベースとして作成しておき、そのデータベースに対して再編成やフラグメンテーション解消等の所定処理を行う必要が生じた際に、運用対象を複製データベースに切り替えて、データベースの再編成時にも複製データベースによりデータベース処理を継続した場合、複製データベースに対して行われた更新処理を、再編成後のデータベースに対しても実行する必要があるが、それを実現するためには、複製データベースに対する更新処理を、時系列にデータベースに対して反映する必要があり、複数実行していた業務プログラム、アプリケーションプログラム等のプログラムが行った更新処理を時系列に再実行することを前記プログラムで実現することは複雑で、データベースを管理する側以外で実現するのは困難であった。
【０００７】
本発明の目的は上記問題を解決し、データベースに対して所定処理を行う必要がある場合に、データベース処理と所定処理とを並行若しくは並列実行することが可能な技術を提供することにある。
【０００８】
【課題を解決するための手段】
本発明は、運用対象を複製データベースへ切り替えてデータベース処理を継続すると共に主データベースに対して所定処理を実行し、複製データベースに対して行われた更新処理を前記所定処理の実行された主データベースへ反映させた後、運用対象を主データベースへ戻すものである。
【０００９】
本発明のデータベース処理装置（計算機や情報処理装置、またはその様な処理を実施するプログラムやオブジェクトでも良い）では、主データベースの再編成等の特定処理の実行が運用操作命令として指示されると、運用対象となっている主データベースに対するデータベース処理の実行を停止して、主データベースとその複製データベースとを静止化状態とする。そして、ＤＢ定義情報中のステータスを変更することにより、運用対象のデータベースを前記主データベースから複製データベースへ切り替えた後、前記主データベース及び複製データベースの静止化状態を解除する。
【００１０】
次に、前記ステータスの変更により運用対象ではなくなった主データベースに対して再編成等の所定処理を実行すると共に、前記ステータスの変更により運用対象となった複製データベースへデータベースアクセス要求を振り分けてデータベース処理を継続し、その複製データベースに対して行われた更新処理の内容を示す更新情報を更新情報ファイルへ出力する。
【００１１】
そして主データベースに対する所定処理が終了すると、前記出力された更新情報に従って主データベースの内容を更新することにより、その更新情報を主データベースへ反映させる処理を行う。この間の業務処理は複製データベースで継続して実行しており、反映が必要となる更新処理の量も増え続けるが、更新反映処理は更新情報に基づく更新処理を並行に実行するため、業務による更新より高速に実行することで、業務処理に追付くことを利用している。
【００１２】
前記更新情報の反映が終了すると、運用対象となっている複製データベースに対するデータベース処理の実行を停止して、前記更新情報が反映された主データベースと運用対象となっている複製データベースとを静止化状態とする。そして、ＤＢ定義情報中のステータスを変更することにより、運用対象のデータベースを前記複製データベースから主データベースへ切り替えた後、前記主データベース及び複製データベースの静止化状態を解除して、主データベースによるデータベース処理を再開する。
【００１３】
以上の様に本発明のデータベース処理装置によれば、主データベースに対して所定処理を行う必要がある場合に、データベース処理をできるだけ継続させたまま所定処理を実行することが可能である。
【００１４】
【発明の実施の形態】
以下に本発明の一実施形態のデータベース処理システムについて説明する。
【００１５】
図１は本実施形態のデータベース処理システムの概略構成を示す図である。図１に示す様に本実施形態のデータベース処理装置１０１は、データベース管理処理部１０２と、運用操作命令部１０４と、データベース運用操作処理部１１０と、データベースアクセス制御部１１１と、データ静止化部１１３と、データ静止化解除部１１４と、動的複写部１１５と、動的登録部１１６と、世代管理部１１７と、カレントアクセス世代設定部１１８と、アクセス対象設定部１２２と、アクセス対象振り分け部１２３と、更新情報出力部１２４と、更新内容反映部１２５とを有している。これら１０２、１０４、１１０〜１２５の処理部は、それぞれの処理が実施されるハードウェアやプログラムやオブジェクトでも良い。
【００１６】
データベース管理処理部１０２は、データベースをアクセスするプログラム（業務プログラムやアプリケーションプログラム）や運用操作命令部１０４からのデータベースへのアクセス要求を受け取って、各処理部の動作を制御し、データベースの検索及び更新や再編成等を実行する処理部である。
【００１７】
運用操作命令部１０４は、データベースの再編成等の特定処理の実行指示をシステム管理者から受け付け、その特定処理の実行をデータベース管理処理部１０２へ指示する処理部である。データベース運用操作処理部１１０は、動的複写部１１５、動的登録部１１６、世代管理部１１７及びカレントアクセス世代設定部１１８の動作を制御する処理部である。
【００１８】
データベースアクセス制御部１１１は、データ静止化部１１３、データ静止化解除部１１４、アクセス対象設定部１２２、アクセス対象振り分け部１２３、更新情報出力部１２４、更新内容反映部１２５の動作を制御し、主データベース及び複製データベースの切り替えや、運用対象となっていない主データベースでの所定処理の実行と複製データベースでのデータベース処理の継続、主データベースへの更新情報ファイル１０９の反映を行う処理部である。
【００１９】
データ静止化部１１３は、運用対象となっている主データベースとその複写を保持している複製データベースとを静止化状態とする処理や、更新情報が反映された主データベースと運用対象となっている複製データベースとを静止化状態とする処理を行う処理部である。
【００２０】
データ静止化解除部１１４は、主データベース及び複製データベースの静止化状態を解除する処理部である。動的複写部１１５は、主データベースの内容を複製データベースへ複写する処理部である。動的登録部１１６は、データベースに対して、主データベースとその複写を保持する複製データベースが定義された場合に、その定義内容を定義情報ファイル１０６中へ登録する処理部である。
【００２１】
世代管理部１１７は、世代番号「０」で表される主データベースと、「０」以外の世代番号で表される複製データベースの運用状態を管理する処理部である。カレントアクセス世代設定部１１８は、「カレント」で表される運用対象のデータベースを主データベースから複製データベースまたは複製データベースから主データベースへ切り替える処理部である。
カレントデータベースとは前記プログラムからのアクセスが許可されているデータベースをいう。
【００２２】
アクセス対象設定部１２２は、業務ＡＰ１０３（業務サービスを提供するプログラムもしくは、データベースをアクセスするプログラムやオブジェクト）、運用操作命令部１０４または更新内容反映部１２５からのデータベースへのアクセス要求を受け付け、そのアクセス要求の内容に応じてアクセス対象を主データベースまたは複製データベースに設定する処理部である。
【００２３】
アクセス対象振り分け部１２３は、アクセス対象設定部１２２によって設定されたデータベースへアクセス要求を振り分けることにより、業務ＡＰ１０３からのデータベースアクセス要求、運用操作命令部１０４からの再編成等の実行指示、更新内容反映部１２５からの更新情報反映要求を、主データベースまたは複製データベースへ振り分ける処理部である。
【００２４】
更新情報出力部１２４は、運用対象となっている複製データベースに対して行われた更新処理の内容を示す更新情報を更新情報ファイル１０９へ出力する処理部である。
【００２５】
ここで主データベースとは前記複製データベースの複製元データベースをいう。更新情報とはデータベースに対するレコードの追加、削除および更新処理の少なくともいずれかの処理を含む履歴情報をいう。更新内容反映部１２５は、更新情報ファイル１０９へ出力された更新情報を、その更新情報中のキー値に対応する複数の実行プロセスの並行処理により、前記所定処理の実行された主データベースへ反映させる処理部である。
【００２６】
データベース処理装置１０１を、データベース管理処理部１０２、運用操作命令部１０４、データベース運用操作処理部１１０、データベースアクセス制御部１１１、データ静止化部１１３、データ静止化解除部１１４、動的複写部１１５、動的登録部１１６、世代管理部１１７、カレントアクセス世代設定部１１８、アクセス対象設定部１２２、アクセス対象振り分け部１２３、更新情報出力部１２４及び更新内容反映部１２５として機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【００２７】
またディスクシステム１０５は、定義情報ファイル１０６、主データベース１０７、複製データベース１０８および更新情報ファイル１０９を格納する磁気ディスク装置と動的複写部１１５からの指示により、主データベース１０７を複写して複製データベース１０８を作成したり、主データベース１０７の更新内容を複製データベース１０８に反映する（ミラーリング処理ともいう）、或いは反映を行わないようにする多重書き制御部１２６からなる。
複製データベースの生成処理はディスク装置におけるボリュームコピー機能であるＭＲＣＦやシャドウイメージ等の処理を利用する。
【００２８】
図２は本実施形態の通常運用状態からレプリカ運用状態に切り替えてデータベース処理実行中に再編成する状態遷移の概要を示す図である。図２に示す様に本実施形態のデータベース処理装置１０１では、通常運用状態の際には業務ＡＰ１０３によるアクセス要求を主データベースで処理し、多重書き制御部１２６により主データベースの内容を複製データベースへ複写している。このような多重書き処理は、データベース処理部１０２で実現してもよい。
【００２９】
ここで運用操作命令部１０４から主データベースの再編成等の特定処理の実行指示が入力されると、データ静止化部１１３により、データベースに対するアクセス処理の実行を抑止するロック中にして、ＤＢキャッシュ１０００上のデータを主データベース１０７に出力した状態（静止化状態）にし、世代管理部１１７とカレントアクセス世代設定部１１８により、ＤＢ定義情報１１０４の状態とステータスの内容を変更して、データ静止化解除部１１４により静止化を解除し、運用対象を主データベースから複製データベースへ切り替えるレプリカ運用を開始して、主データベースに対して再編成を行う。複製データベースにより業務ＡＰ１０３からのアクセス要求の処理により、複製データベースに対して行われた更新処理の内容を示す更新情報を出力する。ここでの前記再編成処理と前記アクセス要求処理は並列実行もしくは並行実行可能である。このように静止化状態を利用することにより、運用対象と主データベースから複製データベースに切り替えることができる。
【００３０】
この様に本実施形態のデータベース処理装置１０１では、主データベースの再編成処理と、複製データベースによるデータベース処理の継続とを並行して行うので、主データベースに対して再編成等の所定処理を行う必要がある場合に、データベース処理は所定処理中でも実行することが可能である。
【００３１】
図３は本実施形態の再編成終了後にレプリカ運用状態から通常運用状態に戻すまでの状態遷移の概要を示す図である。図３に示す様に本実施形態のデータベース処理装置１０１では、主データベースに対する再編成が終了すると、前記出力された更新情報を主データベースへ反映させた後、運用対象を複製データベースから主データベースへ切り替えてレプリカ運用を終了し、主データベースによる通常運用を再開する。
【００３２】
前記の更新情報を主データベースに反映する処理において、反映処理時点で出力済の更新情報を主データベースへ反映させた後、その主データベースと運用対象となっている複製データベースとを静止化状態とし、反映後から静止化までに出力された更新情報を主データベースへ反映させることにより、複製データベースに対して行われた全更新処理の内容を主データベースへ反映させる。前記更新情報の処理数や残処理数に達したとき静止化状態とし、更新情報を主データベースに反映することも可能である。その後、主データベースによる通常運用状態に戻す。このような処理により、複製データベースへの更新処理の処理履歴を更新情報として設けることにより、主データベースへ反映する範囲を明確化できるという効果がある。
【００３３】
この様に本実施形態のデータベース処理装置１０１では、主データベースへの更新情報の反映処理と、複製データベースによるデータベース処理の継続とを並行して行い、更新情報の反映が一旦終了した後に静止化を行うので、アクセス処理のロック解除待ち時間を短くすることが可能である。
【００３４】
図４は本実施形態のプログラム実行管理情報、表インデクス格納情報及びＤＢ定義情報の例を示す図である。図４に示す様に本実施形態の表インデクス格納情報１１０１は、業務ＡＰ１０３、運用操作命令部１０４または更新内容反映部１２５からのアクセス要求で処理される表やインデクスの名称を示す表・インデクス名と、それらの表やインデクスが格納されているデータベースの領域名を格納している。
【００３５】
またＤＢ定義情報１１０４は、そのデータベースの実体である領域の名称を示す領域名、その領域の主データベースでの名称を示す元領域名、そのデータベースが主データベースまたは複製データベースのいずれであるかを示す世代、そのデータベースが運用対象であるかどうかを示すステータス、そのデータベースの運用状態を示す状態、そのデータベースへのアクセスパスの名称を示すアクセスパス名を格納している。
【００３６】
プログラム実行管理情報１３０１は、アクセス要求を行ったプログラムの名称を示すプログラム名、そのプログラムが更新反映処理要求を行うものであるかどうかを示す更新反映フラグ、レプリカ運用状態でのアクセスが許可されているかどうかを示すアクセス許可フラグ、世代番号が指定されているかどうかを示す世代設定フラグ、指定された世代番号を格納している。
【００３７】
本実施形態のデータベース処理装置１０１において、運用操作命令部１０４は、データベースの再編成等の特定処理の実行指示がシステム管理者から入力されると、運用操作命令部１０４は、その入力された実行指示を受け付けた後、その特定処理の対象となるテーブルの名称、そのテーブルを格納しているデータベースの世代識別子、レプリカ運用状態での当該データベースへのアクセス許可を要求することを示すレプリカ運用状態アクセス許可要求と共に、当該特定処理の実行を指示する運用操作命令を、データベースアクセス制御部１１１へ渡す。
【００３８】
データベースアクセス制御部１１１は、運用操作命令部１０４から特定処理の実行を指示されると、その対象となっているデータベースに対して、複製データベースを運用対象とするレプリカ運用を開始する。
【００３９】
図５は本実施形態のレプリカ運用開始処理の処理手順を示すフローチャートである。ステップ５０１でデータベースアクセス制御部１１１は、運用操作命令部１０４から受け取ったテーブル名称を用いて表インデクス格納情報１１０１の表・インデクス名を検索し、対応する領域名を取り出した後、その元領域名が前記取り出した領域名と一致すると共にその世代が「０」であるレコードをＤＢ定義情報１１０４から検索して、そのレコード中の状態を読み出し、処理対象のデータベースが通常運用状態であるかどうかを判定する。前記判定の結果、通常運用状態ではない場合にはステップ５０２へ進み、エラーとして処理を終了する。また通常運用状態である場合にはステップ５０３へ進む。
【００４０】
ステップ５０３でデータ静止化部１１３は、前記処理対象の主データベース及びその複製データベースが静止化状態であることを示す情報をメモリ内に格納することにより、運用対象となっている主データベースに対するデータベース処理の実行を停止して、主データベースとその複製データベースとを静止化状態とする。
【００４１】
ステップ５０４で世代管理部１１７は、前記検索されたＤＢ定義情報１１０４のレコードの状態の項目中にレプリカ運用状態であることを示す情報を設定し、当該主データベースをレプリカ運用状態とする。
【００４２】
ステップ５０５で世代管理部１１７は、その元領域名が前記取り出した領域名と一致すると共にその世代が「０」以外であるレコードをＤＢ定義情報１１０４から検索し、その検索されたレコードの状態の項目中にレプリカ運用状態であることを示す情報を設定して、その複製データベースをレプリカ運用状態とする。
【００４３】
ステップ５０６でデータベースアクセス制御部１１１は、前記主データベースの内容を複製データベースへ複写する状態である多重書き状態の解除をディスクシステム１０５の多重書き制御部１２６へ指示する。
【００４４】
ステップ５０７でカレントアクセス世代設定部１１８は、ＤＢ定義情報１１０４から検索された主データベースのレコード中のステータスの項目に、運用対象のデータベースではないことを示す「サブ」を設定すると共に、複製データベースのレコード中のステータスの項目に、運用対象のデータベースであることを示す「カレント」を設定し、運用対象のデータベースを主データベースから複製データベースへ切り替える。
【００４５】
ステップ５０８でデータ静止化解除部１１４は、前記メモリ内に格納した静止化状態であることを示す情報を削除し、主データベース及び複製データベースの静止化状態を解除する。
【００４６】
前記の様にしてレプリカ運用が開始されるとデータベースアクセス制御部１１１は、運用対象ではなくなった主データベースに対して、運用操作命令部１０４から指示された再編成等の特定の処理を実行し、これと並行して複製データベースでデータベース処理を継続する。また更新情報出力部１２４は、運用対象となっている複製データベースに対して更新処理が行われた場合に、その更新処理の内容を示す更新情報を更新情報ファイル１０９へ出力する。そして主データベースに対する特定処理が終了するとデータベースアクセス制御部１１１は、レプリカ運用を終了して通常運用状態へ戻す処理を行う。
【００４７】
図６は本実施形態のレプリカ運用終了処理の処理手順を示すフローチャートである。ステップ６０１でデータベースアクセス制御部１１１は、ＤＢ定義情報１１０４の先頭エントリよりレコードを読み出してステップ６０２へ進む。
【００４８】
ステップ６０２では、前記読み出したレコード中の世代が「０」であり、そのステータスが「サブ」であり、その状態が「レプリカ」である場合、すなわち、そのレコードが、レプリカ運用状態で特定処理の行われた主データベースのレコードである場合にはステップ６０３へ進む。
【００４９】
ステップ６０３で更新内容反映部１２５は、更新情報ファイル１０９へ出力された更新情報を、その更新情報中のキー値に対応する複数の実行プロセスの並行処理により、前記所定処理の実行された主データベースへ反映させる処理を行う。
【００５０】
ステップ６０４でデータベースアクセス制御部１１１は、ＤＢ定義情報１１０４中の全エントリに対する処理を完了したかどうかを調べ、まだ全エントリの処理を完了していない場合には次のエントリのレコードを読み出してステップ６０２へ戻り、全エントリの処理を完了した場合にはこのレプリカ運用終了処理を終了する。
【００５１】
図７は本実施形態のステップ６０３のＤＢ更新反映処理の処理手順を示すフローチャートである。ステップ７０１で更新内容反映部１２５は、システム定義等により予め指定された数の更新処理実行プロセスを生成する。
【００５２】
ステップ７０２では、更新情報ファイル１０９の先頭からレコードを読み出してステップ７０３へ進む。ステップ７０３では、前記レコードの読み出し結果を調べることにより、更新情報ファイル１０９中に更新情報があるかどうかを判定し、更新情報がある場合にはステップ７０４へ進み、更新情報がない場合にはステップ７０５へ進む。
【００５３】
ステップ７０４では、更新処理実行プロセスを制御して処理対象領域の更新情報により更新内容を主データベースへ反映する。
【００５４】
ステップ７０５でデータ静止化部１１３は、前記主データベース及びその複製データベースが静止化状態であることを示す情報をメモリ内に格納することにより、運用対象となっている複製データベースに対するデータベース処理の実行を停止して、主データベースとその複製データベースとを静止化状態とする。
【００５５】
ステップ７０６では、更新情報ファイル１０９からのレコードの読み出しを行ってその結果を調べることにより、更新情報ファイル１０９中に更新情報があるかどうかを判定し、更新情報がある場合にはステップ７０７へ進む。ステップ７０７では、更新処理実行プロセスを制御して処理対象領域の更新情報より更新内容を反映する。
【００５６】
ステップ７０８では、更新情報ファイル１０９からのレコードの読み出しを行ってその結果を調べることにより、全更新情報を処理したかどうかを判定し、また全更新情報を処理していない場合にはステップ７０７へ戻り、全更新情報を処理した場合にはステップ７０９へ進む。ステップ７０９では、ステップ７０１で生成した全実行プロセスに終了を指示する。
【００５７】
ステップ７１０でカレントアクセス世代設定部１１８は、ＤＢ定義情報１１０４を検索し、前記主データベースのレコード中のステータスの項目に、運用対象のデータベースであることを示す「カレント」を設定すると共に、その複製データベースのレコード中のステータスの項目に、運用対象のデータベースでないことを示す「サブ」を設定し、運用対象のデータベースを複製データベースから主データベースへ切り替える。
【００５８】
ステップ７１１で世代管理部１１７は、前記検索された主データベースのレコードの状態の項目中に通常運用状態であることを示す情報を設定し、当該主データベースを通常運用状態とする。
【００５９】
ステップ７１２で世代管理部１１７は、前記検索された複製データベースのレコードの状態の項目中に非運用状態であることを示す情報を設定して、その複製データベースを非運用状態とする。
【００６０】
ステップ７１３でデータ静止化解除部１１４は、前記メモリ内に格納した静止化状態であることを示す情報を削除し、主データベース及び複製データベースの静止化状態を解除する。
【００６１】
図８は本実施形態のステップ７０４の反映制御処理及び更新処理実行プロセスの反映実行処理の処理手順を示すフローチャートである。ステップ８０１で更新内容反映部１２５は、前記読み出したレコード中の更新情報から、更新処理の行われたデータベースレコードのキー値を読込む。
【００６２】
ステップ８０２では、前記読み込んだキー値をステップ７０１の更新処理実行プロセス数で割った結果の剰余に「１」を加えた値により、実行プロセス管理テーブルのエントリを決定する。
【００６３】
ステップ８０３では、前記決定されたエントリの実行プロセスの状態を実行プロセス管理テーブルから読み出し、その状態がｒｅａｄｙでない場合にはステップ８０４へ進んで、その状態がｒｅａｄｙになるのを待つ。
【００６４】
ステップ８０５では、前記決定されたエントリの更新情報中に、前記読み出したレコード中の更新情報を設定する。ステップ８０６では、前記決定されたエントリの状態をｂｕｓｙに変更する。ステップ８０７では、前記決定されたエントリのプロセス番号で識別される実行プロセスに対して反映処理の実行を指示する。
【００６５】
ステップ８０８で更新処理実行プロセスは、処理の指示を更新内容反映部１２５から受け取っているかどうかを調べ、処理の指示を受け取っていない場合にはステップ８０９で指示を待つ。
【００６６】
ステップ８１０では、更新内容反映部１２５から受け取った指示内容を調べ、その指示が処理終了の指示ではない場合にはステップ８１１へ進み、処理終了の指示である場合にはステップ８１３へ進む。
【００６７】
ステップ８１１では、実行プロセス管理テーブルを参照し、その更新処理実行プロセスのエントリ中に格納されている更新情報に基づいて更新反映処理を行う。ステップ８１２では、そのエントリ中の状態をｒｅａｄｙに戻す。一方、ステップ８１３では、その更新処理実行プロセスの処理を終了させる。
【００６８】
前記の様にして更新処理実行プロセスにより更新反映処理が開始されると、そのアクセス対象に応じてアクセス処理の振り分けが行われる。
【００６９】
図９は本実施形態のアクセス対象振り分けとアクセス処理の処理手順を示すフローチャートである。ステップ９０４では、前記アクセス要求中のテーブル名称を用いて表インデクス格納情報１１０１の表・インデクス名を検索し、対応する領域名を取り出す。ステップ９０１でアクセス対象設定部１２２は、業務ＡＰ１０３、運用操作命令部１０４または更新内容反映部１２５からデータベースへのアクセス要求を受け付けると、そのアクセス要求でアクセス対象となっているデータベースが静止化状態であることを示す情報がメモリ内に格納されているかどうかを調べて、そのデータベースがロック中（静止化状態）であるかどうかを判定し、ロック中である場合にはステップ９０２へ進む。
【００７０】
ステップ９０２では、アクセス要求を行ったプログラムの名称に対応する更新反映フラグをプログラム実行管理情報１３０１から読み出して、当該アクセス要求が更新反映処理要求（更新反映フラグがＯＮ）であるかどうかを判定し、そのアクセス要求が更新反映処理要求ではない場合にはステップ９０３でロックの解除を待つ。
【００７１】
ステップ９０５では、前記アクセス要求中に世代識別子の指定があるかどうかを調べ、世代識別子の指定がない場合にはステップ９０６へ進み、世代識別子の指定がある場合にはステップ９０７へ進む。
【００７２】
ステップ９０６では、ＤＢ定義情報１１０４を検索し、前記取り出した領域名が元領域名と一致すると共にステータスが「カレント」であるエントリを得る。またステップ９０７では、ＤＢ定義情報１１０４を検索し、前記取り出した領域名が元領域名と一致すると共に、指定されている世代識別子が世代と一致するエントリを得る。
【００７３】
ステップ９０８でアクセス対象振り分け部１２３は、前記の様にして得たエントリ中の状態を参照し、そのデータベースの状態が、通常運用状態である場合にはステップ９０９へ進み、レプリカ運用状態である場合にはステップ９１０へ進み、非運用状態である場合にはステップ９１３へ進む。
【００７４】
ステップ９０９では、前記エントリ中のアクセスパス名を読み出し、そのアクセスパスに従ってデータベースへのアクセス処理を実行する。
【００７５】
ステップ９１０では、前記エントリ中のステータスが「カレント」であるかどうかを調べ、「カレント」である場合にはステップ９０９へ進み、そうでない場合にはステップ９１１へ進む。
【００７６】
ステップ９１１では、そのアクセス要求を行ったプログラムの名称に対応するアクセス許可フラグをプログラム実行管理情報１３０１から読み出して、当該アクセス要求がレプリカ運用状態でのアクセスが許可されているもの（アクセス許可フラグがＯＮ）であるかどうかを判定し、レプリカ運用状態でのアクセスが許可されている場合にはステップ９０９へ進み、そうでない場合にはステップ９１２へ進む。
【００７７】
ステップ９１２では、アクセス不可のエラーとする。またステップ９１３でも、同様にアクセス不可のエラーとする。
【００７８】
図１０は本実施形態の更新情報のレコード形式の例を示す図である。図１０に示す様に本実施形態の更新情報は、その更新処理が行われた複製データベースの領域名、更新された表名、更新処理の行われたデータベースレコードを識別する為のキー値、その更新処理の種別を示す処理種別、その更新処理で用いられた更新データを格納している。
【００７９】
図１１は本実施形態の更新反映処理の実行プロセス管理テーブル形式の例を示す図である。図１１に示す様に本実施形態の実行プロセス管理テーブルは、更新処理実行プロセス（プログラムやオブジェクト）を識別する為の情報であるプロセス番号、そのプロセスの状態を示す処理状態、そのプロセスによる反映処理で用いられる更新情報を格納している。
【００８０】
以上説明した様に本実施形態のデータベース処理装置によれば、運用対象を複製データベースへ切り替えてデータベース処理を継続すると共に主データベースに対して所定処理を実行し、複製データベースに対して行われた更新処理を前記所定処理の実行された主データベースへ反映させた後、運用対象を主データベースへ戻すので、主データベースに対して所定処理を行う必要がある場合に、データベース処理をできるだけ継続させたまま所定処理を実行することが可能である。
【００８１】
【発明の効果】
本発明によれば、データベースに対して所定処理を行う必要がある場合に、データベース処理と所定処理とを並行若しくは並列実行することが可能である。
【図面の簡単な説明】
【図１】本実施形態のデータベース処理装置の概略構成を示す図である。
【図２】本実施形態の通常運用状態からレプリカ運用状態に切り替えてデータベース処理実行中に再編成する状態遷移の概要を示す図である。
【図３】本実施形態の再編成終了後にレプリカ運用状態から通常運用状態に戻すまでの状態遷移の概要を示す図である。
【図４】本実施形態のプログラム実行管理情報、表インデクス格納情報及びＤＢ定義情報の例を示す図である。
【図５】本実施形態のレプリカ運用開始処理の処理手順を示すフローチャートである。
【図６】本実施形態のレプリカ運用終了処理の処理手順を示すフローチャートである。
【図７】本実施形態のステップ６０３のＤＢ更新反映処理の処理手順を示すフローチャートである。
【図８】本実施形態のステップ７０４の反映制御処理及び更新処理実行プロセスの反映実行処理の処理手順を示すフローチャートである。
【図９】本実施形態のアクセス対象振り分けとアクセス処理の処理手順を示すフローチャートである。
【図１０】本実施形態の更新情報のレコード形式の例を示す図である。
【図１１】本実施形態の更新反映処理の実行プロセス管理テーブル形式の例を示す図である。
【符号の説明】
１０１…データベース処理装置、１０３…業務ＡＰ、１０５…ディスクシステム、１０６…定義情報ファイル、１０７…データベース（主）、１０８…データベース（複製）、１０９…更新情報ファイル、１０００…ＤＢキャッシュ、１１９…ＤＢアクセス要求、１２０…クライアント定義ファイル、１２１…クライアントアクセス対象設定部、１０２…データベース管理処理部、１０４…運用操作命令部、１１０…データベース運用操作処理部、１１１…データベースアクセス制御部、１１３…データ静止化部、１１４…データ静止化解除部、１１５…動的複写部、１１６…動的登録部、１１７…世代管理部、１１８…カレントアクセス世代設定部、１２２…アクセス対象設定部、１２３…アクセス対象振り分け部、１２４…更新情報出力部、１２５…更新内容反映部、１２６…多重書き制御部、１１０１…表インデクス格納情報、１１０２…表インデクス格納情報レコード、１１０４…ＤＢ定義情報、１１０７〜１１０９…ＤＢ定義情報レコード、１３０１…プログラム実行管理情報、１４０１〜１４０３…プログラム実行管理情報レコード。
【図１】
2004318288.tif 000003
【図２】
2004318288.tif 000004
【図３】
2004318288.tif 000005
【図４】
2004318288.tif 000006
【図５】
2004318288.tif 000007
【図６】
2004318288.tif 000008
【図７】
2004318288.tif 000009
【図８】
2004318288.tif 000010
【図９】
2004318288.tif 000011
【図１０】
2004318288.tif 000012
【図１１】
2004318288.tif 000013