(57)【要約】【課題】  バックアップの対象となるデータを必要最小限の情報で特定し、バックアップ処理の簡単化および高速化を可能にするデータ管理装置を得る。【解決手段】  データの追加が許可される更新領域およびデータの参照だけが許可される参照領域からなるデータ格納領域６と、データ格納領域６のデータの存在有無を管理する実体管理テーブル７に基づいて、データ格納領域６の更新領域に格納されたデータを参照領域に追加すると共に参照領域に追加したデータを更新領域から削除し、データ格納領域６内のデータの変更に応じて実体管理テーブル７を更新するデータ管理部３と、データ格納領域６の参照領域のバックアップ対象を特定するバックアップ開始レコード情報８に基づいて、データ格納領域６に格納された参照領域の特定されたデータ、更新領域の全てのデータ、および実体管理テーブル７を対象にバックアップ処理を行う運用処理部４とを備えた。【選択図】        図１
2005338944.tif 000002
【特許請求の範囲】
【請求項１】
データの追加が許可される更新領域およびデータの参照だけが許可される参照領域からなるデータ格納手段と、
上記データ格納手段のデータの存在有無を管理する実体管理情報およびそのデータ格納手段の参照領域のバックアップ対象を特定するバックアップ開始データ情報を記憶した情報記憶手段と、
上記実体管理情報に基づいて、上記データ格納手段の更新領域に格納されたデータを参照領域に追加すると共にその参照領域に追加したデータをその更新領域から削除し、そのデータ格納手段内のデータの変更に応じて実体管理情報を更新するデータ管理手段と、
上記バックアップ開始データ情報に基づいて、上記データ格納手段に格納された参照領域の特定されたデータおよび更新領域の全てのデータ、上記情報記憶手段に記憶された実体管理情報を対象にバックアップ処理を行う運用処理手段とを備えたデータ管理装置。
【請求項２】
バックアップ開始データ情報に差分バックアップ開始データ情報を持ち、
運用処理手段は、
上記差分バックアップ開始データ情報に基づいて、データ格納手段に格納された参照領域の特定されたデータおよび更新領域の全てのデータ、上記情報記憶手段に記憶された実体管理情報を対象に差分バックアップ処理を行うと共に、フルバックアップ処理に応じて差分バックアップ開始データ情報を更新することを特徴とする請求項１記載のデータ管理装置。
【請求項３】
バックアップ開始データ情報に増分バックアップ開始データ情報を持ち、
運用処理手段は、
上記増分バックアップ開始データ情報に基づいて、データ格納手段に格納された参照領域の特定されたデータおよび更新領域の全てのデータ、上記情報記憶手段に記憶された実体管理情報を対象に増分バックアップ処理を行うと共に、フルバックアップ処理、差分バックアップ処理、または増分バックアップ処理に応じて増分バックアップ開始データ情報を更新することを特徴とする請求項１記載のデータ管理装置。
【請求項４】
運用処理手段は、
バックアップ処理された参照領域のデータおよび最新のバックアップ処理による更新領域のデータをデータ格納手段にリストアすると共に、最新のバックアップ処理による実体管理情報を情報記憶手段にリストアすることを特徴とする請求項１から請求項３のうちのいずれか１項記載のデータ管理装置。
【請求項５】
運用処理手段は、
複数回に渡ってバックアップ処理された参照領域の各データ、最新のバックアップ処理による更新領域のデータおよび最新のバックアップ処理による実体管理情報を連結して１つのバックアップデータを作成することを特徴とする請求項１から請求項３のうちのいずれか１項記載のデータ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データベース等によって構成され、データのバックアップおよびリストアを行うデータ管理装置に関するものである。
【背景技術】
【０００２】
データベースにおけるデータの差分バックアップは、前回のフルバックアップ時から追加、更新、削除されたデータだけをバックアップ対象とすることで、バックアップを高速化する手法である。
従来のデータ管理装置における差分バックアップは、データベースに登録されたデータに対して、追加、更新、削除の履歴情報を管理し、変更のあったデータだけをデータベースのバックアップ対象とする手法（例えば、特許文献１参照）や、更新可能、更新不可の属性を持つ複数のファイルでデータベースを構成し、差分バックアップ時には更新可能の属性を持つファイルと、更新不可の属性に遷移してから最初のバックアップであるファイルをバックアップ対象とすることでバックアップ対象を限定する手法（例えば、特許文献２参照）を用いて、高速化を行っていた。
【０００３】
【特許文献１】特開２００２−１３２５６１号公報
【特許文献２】特開２００３−３１６６３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来のデータ管理装置は以上のように構成されているので、特許文献１に開示された手法は、データの登録、更新、削除時に履歴情報を更新しなければならず、処理が複雑化し、これらの処理に時間がかかるという課題があった。また、データベースの障害発生時に復旧を行う場合、履歴情報を基にデータ単位で復旧を行わなければならず、復旧に時間がかかるという課題があった。
また、特許文献２で開示された手法は、ファイル単位で複数のデータの管理を行うために更新や削除が行われていないデータも差分バックアップの対象となってしまうという課題があった。また、データの登録、更新、削除時に、ファイルの属性の変更や遷移状態の管理を行わなければならず、処理が複雑化し、これらの処理に時間がかかるという課題があった。
【０００５】
この発明は上記のような課題を解決するためになされたもので、バックアップの対象となるデータを必要最小限の情報で特定し、バックアップ処理の簡単化および高速化を可能にするデータ管理装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るデータ管理装置は、データ格納手段のデータの存在有無を管理する実体管理情報およびデータ格納手段の参照領域のバックアップ対象を特定するバックアップ開始データ情報を記憶した情報記憶手段と、実体管理情報に基づいて、データ格納手段の更新領域に格納されたデータを参照領域に追加すると共に参照領域に追加したデータを更新領域から削除し、データ格納手段内のデータの変更に応じて実体管理情報を更新するデータ管理手段と、バックアップ開始データ情報に基づいて、データ格納手段に格納された参照領域の特定されたデータおよび更新領域の全てのデータ、情報記憶手段に記憶された実体管理情報を対象にバックアップ処理を行う運用処理手段とを備えたものである。
【発明の効果】
【０００７】
この発明によれば、バックアップ開始データ情報を参照するだけで、バックアップの対象となるデータを特定することができるため、バックアップ時に各データの更新履歴情報の参照が不要となり、バックアップを高速に行うことができる効果がある。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１はこの発明の実施の形態１によるデータ管理装置１を示す構成図であり、図において、データ管理装置１は、データベース等により構成されたものである。アプリケーションプログラム２は、データ管理装置１を使用する上位プログラムである。データ管理部（データ管理手段）３は、アプリケーションプログラム２の要求を受け、データの登録処理、更新処理、削除処理を行うものである。運用処理部（運用処理手段）４は、アプリケーションプログラム２の要求を受け、データ管理装置１が保持するデータのバックアップ、バックアップデータを元に戻すリストア、およびバックアップファイルの連結を行うものである。データアクセス部５は、データ管理装置１が保持する情報であるデータ格納領域（データ格納手段）６、実体管理テーブル７、バックアップ開始レコード情報８へのアクセスを行うものである。データ格納領域６は、登録されたデータの実体を管理するものである。実体管理テーブル７は、登録されたデータが論理的に存在するか否かの管理を行うものである。バックアップ開始レコード情報８は、バックアップ時にバックアップ対象とするレコードを特定するための情報を管理するものである。バックアップ媒体９は、バックアップファイルを退避する媒体である。なお、実体管理テーブル７およびバックアップ開始レコード情報８は、情報記憶装置（図示せず）に記憶されるものであるが、この情報記憶装置は、データ格納領域６内に含まれるものとしても良い。
【０００９】
次に動作について説明する。
先ず、データ管理装置１のデータ管理方法について説明する。図２はデータ格納領域６におけるデータの格納形式を示す説明図である。データ格納領域６は、参照領域６１と更新領域６２とレコードアクセス情報６３とで構成される。参照領域６１および更新領域６２は、それぞれを１つのファイルとしても良いし、それぞれを物理的に連続した領域として確保しても良い。参照領域６１および更新領域６２の１つのレコードは、アプリケーションプログラム２によって登録された１つのデータに対応する。各レコードは、参照領域６１および更新領域６２内で一意のレコード番号を持つ。図２において、レコード１は、レコード番号が１のレコード、レコード２は、レコード番号が２のレコード、・・・、レコードＮは、レコード番号がＮのレコードとなる。参照領域６１および更新領域６２において、レコードは各領域の先頭から連続して配置される。レコードは、各レコードのサイズが同一の固定長レコードでも、各レコードのサイズが異なる可変長レコードでも構わない。更新領域６２は、アプリケーションプログラム２の登録処理、更新処理時にレコードの追加が行われる領域である。データ管理装置１は、更新領域６２のレコードを定期的に参照領域６１に追加する最適化処理を行う。参照領域６１は、最適化処理によって更新領域６２のレコードが追加されることを除き、レコードの状態が変化しない領域である。レコードアクセス情報６３は、参照領域６１および更新領域６２に格納されたレコードにアクセスを行うための情報であり、レコード番号６５、オフセット６６およびサイズ６７で構成される。参照領域６１および更新領域６２がそれぞれ１つのファイルとして構成される場合、オフセットは、各ファイルの先頭を起点としたオフセットとすれば良い。参照領域６１および更新領域６２が物理的に連続した領域として確保される場合、オフセットは、各物理領域の先頭を起点としたオフセットとすれば良い。レコードが固定長レコードで、各レコードへのオフセットが計算により求まる場合、レコードアクセス情報６３は、必須ではない。
【００１０】
図３は実体管理テーブル７のデータの格納形式を示す説明図である。実体管理テーブル７は、データ格納領域６の全レコード数の情報である総レコード数７１、参照領域６１の全レコード数の情報である参照領域レコード数７２、および各レコードに対応する、レコード番号７３、論理ＩＤ７４、削除フラグ７５の情報を管理する。論理ＩＤ７４は、アプリケーションプログラム２が付与する情報であり、論理ＩＤ７４を基に参照領域６１または更新領域６２に格納されたレコードを一意に特定することが可能である。削除フラグ７５は、データ格納領域６において、レコードが論理的に削除されているか否かを示す情報である。データ格納領域６でレコードが論理的に削除されている場合、該当レコードの削除フラグ７５には１が付与される。削除フラグ７５が１であるレコードはアプリケーションプログラム２に対しては削除されたレコードとして扱われる。実体管理テーブル７は、レコードの論理的な矛盾が生じないように管理を行う。つまり、実体管理テーブル７内で同一の論理ＩＤ７４を持つレコードは複数存在しても良いが、その中で削除フラグ７５が０であるレコードは０個もしくは１個しか存在しない。
【００１１】
次に、データ管理装置１のデータ登録処理について説明する。図４はデータ管理装置１のデータ登録処理を示すフローチャートである。先ず、ステップＳＴ１１において、データ管理部３がアプリケーションプログラム２の登録要求を受け付ける。アプリケーションプログラム２は、登録を行うデータと論理ＩＤとを指定してデータ管理部３に登録要求を行う。次に、ステップＳＴ１２において、データ管理部３は、ステップＳＴ１１で受け取ったデータをデータ格納領域６が管理するレコードの形式に変換する。次に、ステップＳＴ１３において、データ管理部３は、ステップＳＴ１２で作成したレコードとステップＳＴ１１で受け取った論理ＩＤを指定してデータアクセス部５にレコードの追加要求を行う。次に、ステップＳＴ１４において、データアクセス部５は、ステップＳＴ１３で指定された論理ＩＤの重複チェックを行う。重複チェックは、実体管理テーブル７を参照して、ステップＳＴ１３で指定された論理ＩＤと同一の論理ＩＤ７４を持ち、削除フラグ７５が０であるレコードが存在する場合にエラーとする。重複チェックにおいてエラーが発生した場合、ステップＳＴ１４：ＹＥＳに進み、ステップＳＴ１５において、データアクセス部５は、ステップＳＴ１３で指定された論理ＩＤを持つレコードが既に登録されていることをデータ管理部３に伝える。重複チェックにおいてエラーが発生しなかった場合、ステップＳＴ１４：ＮＯに進み、ステップＳＴ１６において、データアクセス部５は、実体管理テーブル７の総レコード数７１の値Ｎを参照し、更新領域６２のレコードＮの後にステップＳＴ１３で指定されたレコードを追加する。この時に、データ格納領域６がレコードアクセス情報６３を持つ場合、レコードＮ＋１のオフセット６６、サイズ６７の情報を追加する。次に、ステップＳＴ１７において、データアクセス部５は、実体管理テーブル７にレコードＮ＋１の情報を追加する。この時、論理ＩＤ７４はステップＳＴ１３で指定された論理ＩＤ、削除フラグ７５は０を設定する。また、実体管理テーブル７の総レコード数７１の値をＮ＋１に更新する。
【００１２】
次に、データ管理装置１のデータ削除処理について説明する。図５はデータ管理装置１のデータ削除処理を示すフローチャートである。先ず、ステップＳＴ２１において、データ管理部３がアプリケーションプログラム２の削除要求を受け付ける。この時に、アプリケーションプログラム２は削除を行うデータの論理ＩＤを指定する。次に、ステップＳＴ２２において、データ管理部３は、ステップＳＴ２１で受け取った論理ＩＤを指定してデータアクセス部５にレコードの削除要求を行う。次に、ステップＳＴ２３において、データアクセス部５は、ステップＳＴ２２で指定された論理ＩＤの存在チェックを行う。存在チェックでは実体管理テーブル７を参照し、ステップＳＴ２２で指定された論理ＩＤと同一の論理ＩＤ７４を持ち、削除フラグ７５が０であるレコードが存在しない場合にエラーとする。存在チェックでエラーが発生した場合、ステップＳＴ２３：ＮＯに進み、ステップＳＴ２４において、データアクセス部５は、データ管理部３にステップＳＴ２２で指定された論理ＩＤを持つレコードが存在しないことを伝える。存在チェックでエラーが発生しなかった場合、ステップＳＴ２３：ＹＥＳに進み、ステップＳＴ２５において、データアクセス部５は、ステップＳＴ２３で見つかったレコードの削除フラグ７５の値を１に変更する。
【００１３】
次に、データ管理装置１のデータ更新処理について説明する。図６はデータ管理装置１のデータ更新処理を示すフローチャートである。先ず、ステップＳＴ３１において、データ管理部３がアプリケーションプログラム２の更新要求を受け付ける。アプリケーションプログラム２は、更新を行うデータの論理ＩＤと更新データとを指定してデータ管理部３に更新要求を行う。次に、ステップＳＴ３２において、データ管理部３は、ステップＳＴ３１で受け取った更新データをデータ格納領域６が管理するレコードの形式に変換する。次に、ステップＳＴ３３において、データ管理部３は、ステップＳＴ３２で作成したレコードとステップＳＴ３１で受け取った論理ＩＤを指定してデータアクセス部５にレコードの更新要求を行う。次に、ステップＳＴ３４において、データアクセス部５は、ステップＳＴ３３で指定された論理ＩＤの存在チェックを行う。存在チェックでは実体管理テーブル７を参照し、ステップＳＴ３３で指定された論理ＩＤと同一の論理ＩＤ７４を持ち、削除フラグ７５が０であるレコードが存在しない場合にエラーとする。存在チェックにおいてエラーが発生した場合、ステップＳＴ３４：ＮＯに進み、ステップＳＴ３５において、データアクセス部５は、ステップＳＴ３３で指定された論理ＩＤを持つレコードが存在しないことをデータ管理部３に伝える。存在チェックにおいてエラーが発生しなかった場合、ステップＳＴ３４：ＹＥＳに進み、データアクセス部５は、ステップＳＴ３４で見つかったレコードの削除フラグ７５の値を１に変更する。次に、ステップＳＴ３７において、データアクセス部５は、実体管理テーブル７の総レコード数７１の値Ｎを参照する。データアクセス部５は、更新領域６２のレコードＮの後にステップＳＴ３３で指定されたレコードを追加する。また、データ格納領域６がレコードアクセス情報６３を持つ場合、レコードＮ＋１のオフセット６６およびサイズ６７の情報を追加する。次に、ステップＳＴ３８において、データアクセス部５は、実体管理テーブル７にレコードＮ＋１の情報を追加する。この時、論理ＩＤ７４はステップＳＴ３３で指定された論理ＩＤ、削除フラグ７５は０を設定する。また、実体管理テーブル７の総レコード数７１の情報をＮ＋１に更新する。
【００１４】
次に、データ管理装置１の最適化処理について説明する。図７はデータ管理装置１の最適化処理を示すフローチャートである。最適化処理とは、更新領域６２のレコードを参照領域６１に追加する処理であり、データ管理部３により定期的に実行される。先ず、ステップＳＴ４１において、データ管理部３は、データアクセス部５にレコードの最適化要求を行う。次に、ステップＳＴ４２において、データアクセス部５は、実体管理テーブル７を参照し、参照領域レコード数７２の値Ｍ、総レコード数７１の値Ｎを取得する（Ｍ≦Ｎ）。さらに、ステップＳＴ４３において、データアクセス部５は、更新領域６２のレコードを参照領域６１に全て追加したか否かの判定を行う。判定で、ＭとＮの値がＭ＜Ｎを満たす場合はステップＳＴ４３：ＹＥＳに進み、ステップＳＴ４４を実行する。また、Ｍ＜Ｎを満たさない場合はステップＳＴ４３：ＮＯに進みステップＳＴ４６を実行する。ステップＳＴ４４において、データアクセス部５は、更新領域６２のレコードＭ＋１を参照領域６１のレコードＭの後に追加する。また、データ格納領域６がレコードアクセス情報６３を持つ場合は、レコードＭ＋１のオフセット６６、サイズ６７の情報を追加する。ステップＳＴ４５では、データアクセス部５はＭの値を１増加させてステップＳＴ４３の処理を実行する。さらに、ステップＳＴ４６においては、データアクセス部５は、更新領域６２の全てのレコードを削除する。参照領域６１および更新領域６２をそれぞれを１つのファイルとして管理する場合、データアクセス部５は、更新領域６２のファイルを空にすれば良い。参照領域６１および更新領域６２を物理的に連続した領域として確保する場合、データアクセス部５は、更新領域６２の初期化を行えば良い。最後に、ステップＳＴ４７において、データアクセス部５は、実体管理テーブル７の参照領域レコード数７２の値をＮに更新する。
【００１５】
次に、データ管理装置１が保持するデータのバックアップ処理について説明する。データ管理装置１において、バックアップの対象となるデータはデータ格納領域６および実体管理テーブル７である。バックアップは、フルバックアップ、差分バックアップ、増分バックアップの３種類の処理がある。フルバックアップは、データ管理装置１が保持する全てのデータを対象にバックアップを行う処理である。差分バックアップは、最後にフルバックアップを行った時点から更新されたデータを対象にバックアップを行う処理である。増分バックアップは、最後にフルバックアップ、差分バックアップ、または増分バックアップのいずれかを行った時点から更新されたデータを対象にバックアップを行う処理である。
【００１６】
ここで、データ管理装置１のバックアップ処理について説明する。図８はバックアップ開始レコード情報８を示す説明図であり、このバックアップ開始レコード情報８は、差分バックアップまたは増分バックアップ時に、バックアップ対象のレコードを特定するための情報を記録したものである。図９はデータ管理装置１のバックアップ処理を示すフローチャートである。図１０はデータ管理装置１がバックアップ時に作成するバックアップファイル１０の構造を示す説明図である。
【００１７】
先ず、ステップＳＴ５１において、運用処理部４は、アプリケーションプログラム２のバックアップ要求を受け付け、バックアップファイル１０を生成し、作成日時１０１の書き込みを行う。この時に、アプリケーションプログラム２は、バックアップ種別として、フルバックアップ、差分バックアップ、増分バックアップのいずれかを指定する。次に、ステップＳＴ５２において、運用処理部４は、実体管理テーブル７を参照し、総レコード数７１の値Ｎ、参照領域レコード数７２の値Ｍを取得する。次に、ステップＳＴ５３において、運用処理部４は、参照領域６１のバックアップを行う。
【００１８】
ここで、参照領域６１のバックアップ処理について詳細に説明する。先ず、ステップＳＴ６４において、運用処理部４は、参照領域６１の中でバックアップの対象となるレコードの集合を求める。レコードの集合において、先頭のレコードのレコード番号をＳ１、終端のレコードのレコード番号をＴ１とする。ここで、ステップＳＴ５１において指定されたバックアップ種別がフルバックアップの場合はＳ１の値を１とする。差分バックアップの場合はバックアップ開始レコード情報８を参照し、バックアップ種別８１が差分バックアップのレコード番号８２の値をＳ１の値とする。増分バックアップの場合はバックアップ開始レコード情報８を参照し、バックアップ種別８１が増分バックアップのレコード番号８２の値をＳ１の値とする。Ｔ１の値は実体管理テーブル７の参照領域レコード数７２の値Ｍとする。次に、ステップＳＴ６５において、運用処理部４は、レコードＳ１からレコードＴ１までの参照領域６１における格納位置を特定する情報として、格納開始位置Ｕ１および格納サイズＶ１を求める。この時、データ格納領域６がレコードアクセス情報６３を持つ場合、格納開始位置Ｕ１は「レコードＳ１のオフセット」、格納サイズＶ１は「レコードＴ１のオフセット＋レコードＴ１のサイズ」で求めることができる。また、データ格納領域６がレコードアクセス情報６３を持たず、レコード長がＬの固定長レコードの場合、格納開始位置Ｕ１は「（Ｓ１−１）×Ｌ」、格納サイズＶ１は「（Ｔ１−Ｓ１＋１）×Ｌ」で求めることができる。次に、ステップＳＴ６６において、運用処理部４は、ステップＳＴ６５で求めた格納開始位置Ｕ１および格納サイズＶ１を基にデータアクセス部５を介し、参照領域６１のデータを取得する。次に、ステップＳＴ６７において、運用処理部４は、レコードＳ１のレコード番号をバックアップファイル１０の参照領域先頭レコード番号１０２に書き込み、レコードＴ１のレコード番号をバックアップファイルの参照領域終端レコード番号１０３に書き込む。また、ステップＳＴ６６で取得した参照領域６１のデータをバックアップファイル１０の参照領域データ１１２に書き込む。また、バックアップファイル１０において参照領域データ１１２へアクセスするための情報として参照領域データオフセット１０４を書込み、ステップＳＴ６５で求めた格納サイズＶ１を参照領域データサイズ１０５に書き込む。
【００１９】
次に、運用処理部４は、更新領域６２のバックアップ処理を行う。更新領域６２は、全てのレコードがバックアップの対象となるため、ステップＳＴ５４において、運用処理部４は、更新領域６２に格納された全てのレコードのデータをデータアクセス部５を介し取得する。ステップＳＴ５５において、運用処理部４は、ステップＳＴ５４で取得した更新領域６２のレコードのデータをバックアップファイル１０の更新領域データ１１３に書き込む。また、バックアップファイル１０において更新領域データ１１３にアクセスするための情報として、更新領域データオフセット１０６および更新領域データサイズ１０７を書き込む。
【００２０】
次に、運用処理部４は、レコードアクセス情報６３のバックアップ処理を行う。ステップＳＴ５６において、データ格納領域６がレコードアクセス情報６３を持つ場合はステップＳＴ５６：ＹＥＳに進み、そうでない場合はステップＳＴ５６：ＮＯに進む。ステップＳＴ５７において、運用処理部４は、データアクセス部５を介してレコードアクセス情報６３のデータを取得し、ステップＳＴ５８において、バックアップファイル１０のレコードアクセス情報データ１１４に書き込む。この時に、バックアップファイル１０においてレコードアクセス情報データ１１４にアクセスするための情報として、レコードアクセス情報データオフセット１０８およびレコードアクセス情報データサイズ１０９を書き込む。
【００２１】
次に、運用処理部４は、実体管理テーブル７のバックアップ処理を行う。先ず、ステップＳＴ５９において、運用処理部４は、データアクセス部５を介し実体管理テーブル７のデータを取得する。次に、ステップＳＴ６０において、運用処理部４は、ステップＳＴ５９で取得した実体管理テーブル７のデータをバックアップファイル１０の実体管理テーブルデータ１１５に書き込む。この時に、バックアップファイル１０において実体管理テーブルデータ１１５にアクセスするための情報として、実体管理テーブルデータオフセット１１０および実体管理テーブルデータサイズ１１１を書き込む。
【００２２】
最後に、運用処理部４は、バックアップ開始レコード情報８を更新する。ステップＳＴ６１において、運用処理部４は、データアクセス部５を介し、バックアップ種別８１が増分バックアップであるレコード番号８２の値をＭ＋１に更新する。また、ステップＳＴ５１で指定されたバックアップ種別がフルバックアップの場合に限り、バックアップ種別８１が差分バックアップであるレコード番号８２の値をＭ＋１に更新する。
【００２３】
次に、データ管理装置１のデータのリストア処理について説明する。図１１はデータ管理装置１のリストア処理を示すフローチャート、図１２はバックアップファイルおよびデータ格納領域１３８におけるデータの格納形式を示す説明図であり、図１０のバックアップファイル１０と共に用いて説明する。先ず、運用処理部４は、アプリケーションプログラム２からリストア要求を受け付ける。この時、アプリケーションプログラム２は、データ管理装置１をリストアするために必要なバックアップファイル１０をＮ個（１≦Ｎ）指定する。図１２では、バックアップファイルＡ１２０、バックアップファイルＢ１２５、バックアップファイルＣ１３０が指定され、Ｎ＝３となり、これらのバックアップファイルを用いてデータ格納領域１３８および実体管理テーブル１４５のリストアを行う。次に、ステップＳＴ７２において、運用処理部４は、ステップＳＴ７１で指定されたＮ個のバックアップファイル１０を用いてデータ管理装置１をリストア可能か調べる。運用処理部４は、Ｎ個のバックアップファイル１０の保持しているレコード番号が１のレコードから重複や抜けがなく保持している場合にリストア可能と判定する。図１２では、バックアップファイルＡ１２０がレコード１〜ｋ、バックアップファイルＢ１２５がレコードｋ＋１〜Ｌ、バックアップファイルＣ１３０がレコードＬ＋１〜Ｍの情報を保持しており、レコード１〜Ｍの情報を重複や抜けがなく保持しているため、リストア可能と判断する。ステップＳＴ７２においてリストア可能と判定した場合は、ステップＳＴ７２：ＹＥＳに進み、ステップＳＴ７４において参照領域６１のリストア処理を行う。ステップＳＴ７２においてリストア不可能と判断した場合は、ステップＳＴ７２：ＮＯに進み、ステップＳＴ７３でアプリケーションプログラム２にエラー情報を返す。
【００２４】
ここで、参照領域６１のリストア処理について詳細に説明する。参照領域６１のリストアは、運用処理部４がステップＳＴ７１において指定されたＮ個のバックアップファイル１０が保持する全ての参照領域データ１１２を、参照領域６１に書き込むことで行う。図１２では、バックアップファイルＡ１２０が保持する参照領域データ１２４、バックアップファイルＢ１２５が保持する参照領域データ１２９、バックアップファイルＣが保持する参照領域データ１３４を参照領域１３９に書き込むことでリストアを行う。
【００２５】
先ず、ステップＳＴ８２において、運用処理部４は、書き込み位置ＷＰの値を０にセットする。書き込み位置ＷＰは、参照領域６１において参照領域データ１１２を書き込む位置を特定する情報であり、参照領域６１の先頭を基点としたオフセットである。図１２では、書き込み位置ＷＰの値を０にセットすることで参照領域１３９の先頭を指す。次に、ステップＳＴ８３において、運用処理部４は、未処理のバックアップファイル１０の中で作成日時１０１が最も古いバックアップファイル１０を選択する。図１２ではバックアップファイルＡ１２０が選択される。次に、ステップＳＴ８４において、運用処理部４は、ステップＳＴ８３で選択したバックアップファイル１０の参照領域データオフセット１０４と参照領域データサイズ１０５を基に参照領域データ１１２を取得し、データアクセス部５を介して参照領域６１の書き込み位置ＷＰの位置から書き込む。図１２では参照領域データ１２４が参照領域１３９の先頭から書き込まれ、参照領域１４０の部分に書き込まれる。次に、ステップＳＴ８５において、運用処理部４は、書き込み位置ＷＰにステップＳＴ８３で選択したバックアップファイル１０の参照領域データサイズ１０５の値を加算する。図１２では書き込み位置ＷＰの値に、参照領域データ１２４のサイズを加算する。次に、ステップＳＴ８６において、参照領域６１のリストアが完了したか否かの判定を行う。Ｎ個のバックアップファイル１０を全てを処理した場合はステップＳＴ８６：ＹＥＳに進み、参照領域６１のリストアを完了する。未処理のバックアップファイル１０がある場合はステップＳ８３に進む。図１２では、バックアップファイルＢ１２５、バックアップファイルＣ１３０に対して、ステップＳＴ８３からステップＳＴ８５の処理が行われる。その結果、参照領域データ１２９が参照領域１４１の部分に、参照領域データ１３４が参照領域１４２の部分に書き込まれる。
【００２６】
次に、運用処理部４は、ステップＳＴ７５において、ステップＳＴ７１で指定されたＮ個のバックアップファイル１０の中で、作成日付１０１が最も新しいバックアップファイル１０を選択する。図１２では、バックアップファイルＣ１３０が選択される。ステップＳＴ７６において、運用処理部４は、ステップＳＴ７５で選択したバックアップファイル１０の更新領域データオフセット１０６と更新領域データサイズ１０７を基に更新領域データ１１３を取得し、データアクセス部５を介して更新領域６２の先頭から書き込む。図１２では、更新領域データ１３５が更新領域１４３に書き込まれる。次に、ステップＳＴ７７において、運用処理部４は、ステップＳＴ７５で選択したバックアップファイル１０の実体管理テーブルデータオフセット１１０と実体管理テーブルデータサイズ１１１を基に実体管理テーブルデータ１１５を取得し、データアクセス部５を介して実体管理テーブル７の先頭から書き込む。図１２では、実体管理テーブルデータ１３７が実体管理テーブル１４５に書き込まれる。次に、ステップＳＴ７８において、データ格納領域６がレコードアクセス情報６３を持つ場合はステップＳＴ７８：ＹＥＳに進み、ステップＳＴ７９の処理を行い、そうでなければステップＳＴ７８：ＮＯに進む。ステップＳＴ７９において、運用処理部４は、ステップＳＴ７５で選択したバックアップファイル１０のレコードアクセス情報データオフセット１０８とレコードアクセス情報データサイズ１０９を基にレコードアクセス情報データ１１４を取得し、データアクセス部５を介しレコードアクセス情報６３の先頭から書き込む。図１２では、レコードアクセス情報データ１３６がレコードアクセス情報１４４に書き込まれる。
【００２７】
次に、データ管理装置１の、複数のバックアップファイル１０を連結して１つのバックアップファイル１０を作成する時の処理について説明する。図１３はデータ管理装置１のバックアップファイル連結処理を示すフローチャート、図１４はバックアップファイル１５０，１５６、１６２、１８０を示す説明図であり、図１０のバックアップファイル１０と共に用いて説明する。先ず、ステップＳＴ９１において、運用処理部４は、アプリケーションプログラム２から連結要求を受け付け、連結後のバックアップファイル１０を作成し、作成日時１０１の書込みを行う。この時、アプリケーションプログラム２は連結するバックアップファイル１０をＮ個（１＜Ｎ）指定する。図１４では、バックアップＡ１５０、バックアップＢ１５６、バックアップＣ１６２の３つが指定されてＮ＝３となり、連結後のバックアップファイルＤ１８０を作成し、作成日時１８１の書込みを行う。次に、ステップＳＴ９２において、運用処理部４は、ステップＳＴ９１で指定されたＮ個のバックアップファイル１０を連結可能か調べる。運用処理部４は、Ｎ個のバックアップファイル１０が参照領域６１のレコードを重複や抜けなく保持している場合に連結可能と判定する。図１４では、バックアップファイルＡ１５０がレコードＪ〜Ｋ、バックアップファイルＢ１５６がレコードＫ＋１〜Ｌ、バックアップファイルＣ１６２がレコードＬ＋１〜Ｍの情報を保持しており、レコードＪ＋Ｍの情報を重複や抜けが無く保持しているため、連結可能と判定する。ステップＳＴ９２において、連結可能と判定した場合はステップＳＴ９２：ＹＥＳに進み、ステップＳＴ９４において、参照領域データ１１２の連結処理を行う。ステップＳＴ９２において、連結不可能と判定した場合はステップＳＴ９２：ＮＯに進み、ステップＳＴ９３でアプリケーションプログラム２にエラー情報を返す。
【００２８】
ここで、参照領域データ１１２の連結処理について詳細に説明する。参照領域データ１１２の連結は、運用処理部４がステップＳＴ９１において指定されたＮ個のバックアップファイル１０が保持する全ての参照領域データ１１２を結合後のバックアップファイル１０に書き込むことで行う。図１４では、参照領域データ１５５、参照領域データ１６１、参照領域データ１７０をバックアップファイルＤ１８０に書き込むことで参照領域データの連結を行う。
【００２９】
先ず、ステップＳＴ１０２において、運用処理部４は、書き込み位置ＦＰの値を０にセットする。書き込み位置ＦＰは、連結後のバックアップファイル１０において、連結に使用するＮ個のバックアップファイル１０の参照領域データ１１２を書き込む位置を特定する情報であり、連結後のバックアップファイル１０の参照領域データ１１２の先頭を起点としたオフセットである。図１４では書き込み位置ＦＰは、参照領域データ１９２の先頭を起点としたオフセットであり、ＦＰを０にセットすることで参照領域データ１９２の先頭を指す。次に、ステップＳＴ１０３において、運用処理部４は、未処理のバックアップファイル１０の中で、作成日時１０１が最も古いバックアップファイル１０を選択する。図１４ではバックアップファイルＡ１５０を選択する。次に、ステップＳＴ１０４において、運用処理部４は、ステップＳＴ１０３で選択したバックアップファイル１０の参照領域データオフセット１０４と参照領域データサイズ１０５を基に参照領域データ１１２を取得し、連結後のバックアップファイル１０の書き込み位置ＦＰの位置から書き込む。図１４では、参照領域データ１５５が参照領域データ１９２の先頭から書き込まれ、参照領域データ１９３の部分に書き込まれる。次に、ステップＳＴ１０５において、運用処理部４は、書き込み位置ＦＰにステップＳＴ１０３で選択したバックアップファイル１０の参照領域データサイズ１０５の値を加算する。図１４では書き込み位置ＦＰの値に、参照領域データサイズ１５４を加算する。次に、ステップＳＴ１０６において、参照領域データ１１２の連結が完了したか否かの判定を行う。ステップＳＴ９１において指定されたＮ個のバックアップファイル１０を全て処理した場合はステップＳＴ１０６：ＹＥＳに進み、ステップＳＴ１０７の処理を行う。未処理のバックアップファイル１０がある場合はステップＳＴ１０６：ＮＯに進み、ステップＳＴ１０３を実行する。図１４では、バックアップファイルＢ１５６、バックアップファイルＣ１６２に対して、ステップＳＴ１０３からステップＳＴ１０５の処理が行われる。その結果、参照領域データ１６１が参照領域データ１９４の部分に、参照領域データ１７０が参照領域データ１９５の部分に書き込まれる。次に、ステップＳＴ１０７において、運用処理部４は、ステップＳＴ９１において指定されたＮ個のバックアップファイル１０の中で作成日時１０１が最も古いバックアップファイル１０の参照領域先頭レコード番号１０２の値を、連結後のバックアップファイル１０の参照領域先頭レコード番号１０２に書き込む。また、ステップＳＴ９１において指定されたＮ個のバックアップファイル１０の中で作成日時１０１が最も新しいバックアップファイル１０の参照領域終端レコード番号１０３の値を、連結後のバックアップファイル１０の参照領域終端レコード番号１０３に書き込む。また、連結後のバックアップファイル１０において参照領域データ１１２にアクセスするための情報を連結後のバックアップファイル１０の参照領域データオフセット１０４に書込み、ステップＳＴ９１において指定されたＮ個のバックアップファイル１０の参照領域データサイズ１０５の総和を、連結後のバックアップファイル１０における参照領域データサイズ１０５に書き込む。図１４では、参照領域先頭レコード番号１５２の値を参照領域先頭レコード番号１８２に書込み、参照領域終端レコード番号１６５の値を参照領域終端レコード番号１８３に書込む。また、バックアップファイルＤ１８０において参照領域データへアクセスするための情報を参照領域データオフセット１８４に書込み、参照領域データサイズ１５４、参照領域データサイズ１６０、および参照領域データサイズ１６６の総和を参照領域データサイズ１８５に書き込む。
【００３０】
次に、運用処理部４は、更新領域データ１１３の連結処理を行う。運用処理部４は、ステップＳＴ９５において、ステップＳＴ９１において指定されたＮ個のバックアップファイル１０の中で、作成日付１０１が最も新しいバックアップファイル１０を選択する。図１４ではバックアップファイルＣ１６２が選択される。次に、ステップＳＴ９６において、運用処理部４は、ステップＳＴ９５で選択したバックアップファイル１０の更新領域データオフセット１０６および更新領域データサイズ１０７を基に更新領域データ１１３を取得し、連結後のバックアップファイル１０の更新領域データ１１３に書き込む。この時に、連結後のバックアップファイル１０において更新領域データ１１３にアクセスするための情報を、連結後のバックアップファイル１０の更新領域データオフセット１０６に書き込み、ステップＳＴ９５で選択したバックアップファイル１０の更新領域データサイズ１０７を、連結後のバックアップファイル１０の更新領域データサイズ１０７に書き込む。図１４では、更新領域データ１７１を更新領域データ１９６に書き込む。この時に、バックアップファイルＤ１８０において更新領域データ１９６にアクセスするための情報を更新領域データオフセット１８６に書き込み、更新領域データサイズ１６７を更新領域データサイズ１８７に書き込む。
【００３１】
次に、運用処理部４は、実体管理テーブルデータ１１５の連結処理を行う。ステップＳＴ９７において、運用処理部４は、ステップＳＴ９５で選択したバックアップファイル１０の実体管理テーブルデータオフセット１１０および実体管理テーブルデータサイズ１１１を基に実体管理テーブルデータ１１５を取得し、連結後のバックアップファイル１０の実体管理テーブルデータ１１５に書き込む。この時に、連結後のバックアップファイル１０において、実体管理テーブルデータ１１５にアクセスするための情報を、連結後のバックアップファイル１０の実体管理テーブルデータオフセット１１０に書き込む。また、ステップＳＴ９５で選択したバックアップファイル１０の実体管理テーブルデータサイズ１１１を連結後のバックアップファイル１０の実体管理テーブルデータサイズ１１１に書き込む。図１４では、実体管理テーブルデータ１７３を実体管理テーブルデータ１９８に書き込む。この時に、バックアップファイルＤ１８０において実体管理テーブルデータ１９８にアクセスするための情報を実体管理テーブルデータオフセット１９０に書き込み、実体管理テーブルデータサイズ１６９を実体管理テーブルデータサイズ１９１に書き込む。
【００３２】
次に、運用処理部４は、レコードアクセス情報データ１１４の連結処理を行う。ステップＳＴ９８において、ステップＳＴ９５で選択したバックアップファイル１０がレコードアクセス情報データ１１４を持つ場合はステップＳ９８：ＹＥＳに進み、ステップＳＴ９９を実行する。そうでない場合はステップＳＴ９８：ＮＯに進み、連結処理を終了する。ステップＳＴ９９において、運用処理部４は、ステップＳＴ９５で選択したバックアップファイル１０のレコードアクセス情報データオフセット１０８およびレコードアクセス情報データサイズ１０９を基にレコードアクセス情報データ１１４を取得し、連結後のバックアップファイル１０のレコードアクセス情報データ１１４に書き込む。この時に、連結後のバックアップファイル１０において、レコードアクセス情報データ１１４にアクセスするための情報を、連結後のバックアップファイル１０のレコードアクセス情報データオフセット１０８に書き込む。また、ステップＳＴ９５で選択したバックアップファイル１０のレコードアクセス情報データサイズ１０９を連結後のバックアップファイル１０のレコードアクセス情報データサイズ１０９に書き込む。図１４では、レコードアクセス情報データ１７２をレコードアクセス情報データ１９７に書き込む。また、バックアップファイルＤ１８０においてレコードアクセス情報データ１９７にアクセスするための情報をレコードアクセス情報データオフセット１８８に書き込み、レコードアクセス情報データサイズ１６８をレコードアクセス情報データサイズ１８９に書き込む。
【００３３】
以上のように、この実施の形態１によれば、バックアップ処理時には、バックアップ開始レコード情報８の対象となる先頭のレコード番号８２を参照するだけで、差分バックアップおよび増分バックアップの対象となるレコードを特定することができるため、バックアップ時に各レコードの更新履歴情報の参照が不要となり、バックアップ処理を簡単および高速に行うことができる。
また、差分バックアップ処理時には、バックアップ開始レコード情報８のレコード番号８２をフルバックアップ処理時だけ更新すれば良く、増分バックアップ処理時には、バックアップ開始レコード情報８のレコード番号８２をバックアップ時だけ更新すれば良いため、バックアップのためにレコードの登録、更新、削除の履歴情報を管理することが不要となり、バックアップを簡単および高速に行うことができる。
さらに、データのリストア時は、レコード単位でリストアを行うのではなく、参照領域６１および更新領域６２の単位でリストアを行うため、レコードの履歴情報を参照することが不要となるため、簡単および高速にリストアを行うことができる。
さらに、データの連結時は、リストア時に使用しない更新領域データ１３３、レコードアクセス情報データ１３４、実体管理テーブルデータ１３５を取り除くことができるため、バックアップファイル１０を格納するディスク領域を節約することができる。
【図面の簡単な説明】
【００３４】
【図１】この発明の実施の形態１によるデータ管理装置を示す構成図である。
【図２】データ格納領域におけるデータの格納形式を示す説明図である。
【図３】実体管理テーブルのデータの格納形式を示す説明図である。
【図４】データ管理装置のデータ登録処理を示すフローチャートである。
【図５】データ管理装置のデータ削除処理を示すフローチャートである。
【図６】データ管理装置のデータ更新処理を示すフローチャートである。
【図７】データ管理装置の最適化処理を示すフローチャートである。
【図８】バックアップ開始レコード情報を示す説明図である。
【図９】データ管理装置のバックアップ処理を示すフローチャートである。
【図１０】データ管理装置がバックアップ時に作成するバックアップファイルの構造を示す説明図である。
【図１１】データ管理装置のリストア処理を示すフローチャートである。
【図１２】バックアップファイルおよびデータ格納領域におけるデータの格納形式を示す説明図である。
【図１３】データ管理装置のバックアップファイル連結処理を示すフローチャートである。
【図１４】バックアップファイルを示す説明図である。
【符号の説明】
【００３５】
１  データ管理装置、２  アプリケーションプログラム、３  データ管理部（データ管理手段）、４  運用処理部（運用処理手段）、５  データアクセス部、６，１３８  データ格納領域（データ格納手段）、７，１４５  実体管理テーブル、８  バックアップ開始レコード情報、９  バックアップ媒体、６１，１３９  参照領域、６２，１４３  更新領域、６３，１４４  レコードアクセス情報、６４，１４０〜１４２，１９３〜１９５  レコード、６５，７３，８２  レコード番号、６６  オフセット、６７  サイズ、７１  総レコード数、７２  参照領域レコード数、７４  論理ＩＤ、７５  削除フラグ、８１  バックアップ種別、１０１，１２１，１２６，１３１，１５１，１５７，１６３，１８１  作成日時、１０２，１２２，１２７，１３２，１５２，１５８，１６４，１８２  参照領域先頭レコード番号、１０３，１２３，１２８，１３３，１５３，１５９，１６５，１８３  参照領域終端レコード番号、１０４，１８４  参照領域データオフセット、１０５，１５４，１６０，１６６，１８５  参照領域データサイズ、１０６，１８６  更新領域データオフセット、１０７，１６７，１８７  更新領域データサイズ、１０８，１８８  レコードアクセス情報データオフセット、１０９，１６８，１８９  レコードアクセス情報データサイズ、１１０，１９０  実体管理テーブルデータオフセット、１１１，１６９，１９１  実体管理テーブルデータサイズ、１１２，１２４，１２９，１３４，１５５，１６１，１７０，１９２  参照領域データ、１１３，１３５，１７１，１９６  更新領域データ、１１４，１３６，１７２，１９７  レコードアクセス情報データ、１１５，１３７，１７３，１９８  実体管理テーブルデータ、１２０，１５０  バックアップファイルＡ、１２５，１５６  バックアップファイルＢ、１３０，１６２  バックアップファイルＣ、１８０  バックアップファイルＤ。
【図１】
2005338944.tif 000003
【図２】
2005338944.tif 000004
【図３】
2005338944.tif 000005
【図４】
2005338944.tif 000006
【図５】
2005338944.tif 000007
【図６】
2005338944.tif 000008
【図７】
2005338944.tif 000009
【図８】
2005338944.tif 000010
【図９】
2005338944.tif 000011
【図１０】
2005338944.tif 000012
【図１１】
2005338944.tif 000013
【図１２】
2005338944.tif 000014
【図１３】
2005338944.tif 000015
【図１４】
2005338944.tif 000016