(57)【要約】【課題】障害発生時に希望する時点への迅速なデータ回復を行うとともに、不正データ混入時には容易にデータ修正を行う方法を提供する事にある。【解決手段】コンピュータシステムにおいて、データ更新時に更新履歴を出力しておく事で障害発生時のデータ回復を実現するだけでなく、業務処理からの更新要求内容を更新履歴として出力することで、特に在庫データベースのような数値の加減算による更新処理が主となるデータベースについて、不正データ混入時には、直接データベースにデータパッチを実施するよりも容易にデータ修正を行うことを可能とする。【選択図】図１
2008146118.tif 000002
【特許請求の範囲】
【請求項１】
各業務処理からの更新要求を処理するデータ更新処理と、定期的に該当データベースのデータを退避するデータ退避処理と、障害発生時や不正データ混入時に回復を行うデータ回復処理を持ち、
常時にはデータ更新処理が各業務処理の要求を受けてデータベースの更新を行うと同時に各業務処理からの更新要求内容を更新履歴として出力し、データ退避処理が任意のタイミングで該当データベースのデータを退避しておく事で、
障害時には利用者が希望する時点のデータにデータベースを回復し、また不正データ混入時には利用者が更新履歴を修正することでデータ回復と同時にデータ修正を実現することを特徴とするデータベースの更新と回復の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータシステムにおけるデータベースの更新と回復の方法に関し、特に、在庫データベース等の数値の加減算による更新処理が主となるデータベースに対して、データ回復とともに不正データ混入時のデータ修正を容易にするデータベースの更新と回復の方法に関する。
【背景技術】
【０００２】
近年コンピュータシステムにおいて、データベースの障害に備えて更新履歴を取得し、障害時のデータ回復に備える技術が実用化されている。
【０００３】
例えば特開平01-166232号公報記載のようにデータベース更新時、更新履歴情報として更新前情報と更新日時を蓄積していくことで、希望する時点のデータ回復を実現する。
【０００４】
【特許文献１】特開平01-166232号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の技術では、不正データが混入した事が判明した場合、不正データ混入以前の時点までデータを戻すかその影響を調査して個別にデータパッチを実施する必要がある。特に在庫データベースのような数値の加減算による更新処理が主となるデータベースについては、不正データから正しい数値（例えば、現在の在庫数量等）を計算してデータバッチを行わなければならないため、一度に複数の不正データが出力されてしまった場合等は作業が煩雑になる。
【０００６】
本発明の目的は、障害発生時に希望する時点への迅速なデータ回復を行うとともに、不正データ混入時には容易にデータ修正を行う方法を提供する事にある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明では各業務処理からの更新要求を受け付けてデータベース更新を行うデータ更新処理と、定期的に該当データベースのデータの退避を行うデータ退避処理と、障害発生時のデータ回復を行うデータ回復処理を設ける。
【０００８】
データ更新処理では、各業務処理から更新要求があった場合、更新内容を元に該当データベースの更新を行うと同時に、更新履歴を出力する。この時、更新履歴に出力する内容は、該当データベースの更新前または後のレコードそのもの（例えば、現在の在庫数量）ではなく、各業務処理から受け取った更新要求内容（例えば、在庫の加減数量）と更新日時を出力し、蓄積する。
【０００９】
データ退避処理では、定期的に該当データベースのレコード全てを退避する。
データ回復処理では、障害発生時に、まずデータ退避処理で退避しておいたデータを回復し、次にデータ退避を行った時点と回復を希望する時点の差分を更新履歴から回復する。不正データ混入時は、データ回復処理前に更新履歴を利用者が修正する事で、データ回復と同時に不正データの回復を可能とする。この時、更新履歴が業務処理からの更新要求内容に準じており、利用者に理解しやすい形で出力されているため、データベースに直接データパッチを実施するよりも容易にデータを修正する事が可能になる。
【発明の効果】
【００１０】
以上説明したように、本発明によれば、コンピュータシステムにおいて、データ更新時に更新履歴を出力しておく事で障害発生時のデータ回復を実現するだけでなく、業務処理からの更新要求内容を更新履歴として出力することで、特に在庫データベースのような数値の加減算による更新処理が主となるデータベースについて、不正データ混入時には、直接データベースにデータパッチを実施するよりも容易にデータ修正を行うことが可能になる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態について図面により詳細に説明する。
【００１２】
図１は本発明を適用してデータベースの更新と回復を行う形態を示したものである。図１において、各業務処理111〜113、業務処理からのデータ更新要求を受け付けるデータ更新処理120、定期的にデータの退避を行うデータ退避部130、障害発生時や不正データ混入時にデータの回復を行うデータ回復処理140が、CPU100上で動作する。図１では業務処理は111〜113の３つであるが、コンピュータシステムによってこれらの数は当然変わってくる。また、150はデータ更新処理120によって出力される更新履歴ファイル、160は更新と回復の対象となるデータベース、170はデータ退避処理140により定期的に対象データベースを退避する先である退避データベースである。ここで、対象データベース160は、在庫データベースのような数値の加減算による更新処理が主となるデータベースを想定しており、データは品目、現在の数量、その他情報で構成される。
【００１３】
まず、データ更新処理について図２に例を示し説明する。ある業務処理201より、品目Bの在庫数量を20増加するという更新要求202がデータ更新処理203に渡されたとする。この時渡される更新要求202のデータは、品目、加減数量、その他情報で構成されている。データ更新処理203では渡された更新要求202を元に対象データベースの該当品目Bのレコードに更新処理（数量20増加）を実施するとともに、更新要求内容202に更新日時を加えたレコードを更新履歴ファイル204に出力する。即ち、更新履歴のデータは、更新日時、品目、加減数量、その他情報で構成される。以上の処理を業務処理から更新要求を受ける度に繰り返していく事で、対象データ更新と共に更新履歴が蓄積されていく。
【００１４】
次に、データ退避処理について図３に例を示して説明する。データ退避処理302では、ある時点の対象データベース301のデータを全て退避データベースに複写する処理を定期的に行う。従って、退避データベース303のデータは、対象データベース301と全く同じく、品目、現在の数量、その他情報で構成される。
【００１５】
最後に、データ回復処理について説明する。データ回復処理では、まずデータ退避処理で退避しておいたデータを回復し、次にデータ退避を行った時点と回復を希望する時点の差分をデータ更新処理で出力しておいた更新履歴から回復する。データ回復処理を実施するべき状況は、障害発生時にデータを復旧させたい場合と、過去に混入した不正データを修正したい場合の２通りに分けられる。
【００１６】
障害発生時にデータを復旧させたい場合については、蓄積した更新履歴と退避データをそのまま利用してデータ回復を行う処理であり、不正データの混入は無い。この場合のデータ回復処理を、図４のフローチャート及び図５の例に従い説明する。まず、データ回復処理501は利用者に回復指定日時の入力を求める。回復指定日時とは、対象データベース505のどの時点のデータを回復させるかであり、利用者は希望の回復指定日時を入力する（ステップ401）。502はこの時の画面例であり、利用者は画面の指示に従い回復指定日時を入力する。次に、データ回復処理501は、データ退避処理で退避しておいたデータ503を、対象データベース505に回復する（ステップ402）。この時点で対象データベース505は、最後にデータ退避処理が実行された時点（退避日時）の状態に回復する。次に、退避日時と回復指定日時を比較し、その結果によって以降の処理を分岐させる（ステップ403）。退避日時より回復指定日時が新しい場合、更新履歴ファイル504内の、更新日付が退避日時から回復指定日時までの範囲のレコードを順に処理する（ステップ404）事によって、対象データベース505を利用者が指定した回復指定日時の状態まで回復させる事ができる。図５ではこの場合について示しており、更新日時T1からT3の3件が退避日時と回復指定日時の差分であるとすれば、この３件を処理する事で回復指定日時の状態に対象データベース505を回復させる事ができる。逆に退避日時より回復指定日時が古い場合、ステップ404と同様の処理を、時間を遡って順に処理する（ステップ405）事で、対象データベース505を回復指定日時の状態まで回復させる事ができる。
【００１７】
過去に混入した不正データを修正したい場合については、更新履歴を利用者が修正してから回復させる事で、対象データベースを正しい状態に回復することができる。通常、不正データが混入した場合はデータベースに直接データパッチを実施する手法が考えられるが、在庫データベースのような数値の加減算による更新処理が主となるデータベースの場合、不正データから正しい数値（例えば、現在の在庫数量等）を計算してデータバッチを行わなければならないため、一度に複数の不正データが出力されてしまった場合等は作業が煩雑になる。本発明では、更新履歴が業務処理からの更新要求内容に準じており、利用者に理解しやすい形で出力されているため、データベースに直接データパッチを実施するよりも容易にデータを修正する事が可能になる。また、障害発生時かつ不正データが混入した状態も、この方法で対象データベースを正しい状態に回復する事が可能である。このように、不正データが混入した場合のデータ回復処理を、図６のフローチャート及び図７の例に従い説明する。まず、データ回復処理701は、更新履歴ファイル702をコピーし、利用者による修正がなされる前の状態で修正前更新履歴ファイル703を作成する（ステップ601）。次に、更新履歴ファイル702を、利用者が修正できる形でオープンし、利用者に修正を求める（ステップ602）。利用者は画面上で、不正データレコードの修正や削除などを適切に修正を行う（ステップ603）。704はこの時の画面例であり、更新日時T2のレコードの加減数量が本来20であるべき所が50として更新してしまった場合であり、利用者は画面の指示に従い20に修正する。これにより、修正後更新履歴ファイル705が作成される。次に、データ回復処理701は、ステップ601で作成した修正前更新履歴ファイル703とステップ603で作成した修正後更新履歴ファイル705を比較して差分を検出し、差分が検出されたレコードのうち、最も更新日時の古いレコードの更新日付を、修正開始日時として取得する（ステップ604）。データ回復処理701は利用者に回復指定日時の入力を求め、利用者は希望する回復指定日時を入力する。（ステップ605）。この時の画面例を706に示す。次に、データ回復処理701は、データ退避処理で退避しておいたデータ707を、対象データベース708に回復する（ステップ606）。次に、退避日時と回復指定日時、さらに退避日時と修正開始日時を比較し、その結果によって以降の処理を分岐させる（ステップ607、608）。退避日時より回復指定日時も修正開始日時も新しい場合、修正後更新履歴ファイル内の、更新日付が退避日時から回復指定日時までの範囲のレコードを順に処理する（ステップ609）。図７はこの場合について示しており、更新日時T1からT3の3件が退避日時と回復指定日時の差分であるとすれば、この３件を処理する事で、利用者による更新履歴の修正（更新時刻T2のレコード）を反映させた形で、対象データベース708を回復指定日時の状態まで回復させる事ができる。逆に、退避日時より回復指定日時または修正開始日時が古い場合は、退避日時から回復指定日時までの更新履歴を順に処理しても、利用者による修正が反映されない可能性がある。そのため一旦、修正後更新履歴ファイル内の、更新日付が退避日時から修正開始日時までの範囲のレコードを時間を遡って処理（ステップ610）した後、修正開始日時から回復指定日時までの範囲のレコードを順に処理する（ステップ611）事により、対象データベース708を、利用者による更新履歴の修正を反映させた形で、回復指定日時の状態まで回復させる事ができる。
【００１８】
以上、本発明の実施の形態について説明したが、本発明は在庫データベースのような数値の加減算による更新処理が主となるデータベースに対して特に有効であるが、それ以外の特性を持つデータベースについても適用可能である。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態を示すシステム構成ブロック図。
【図２】データ更新処理の実施例。
【図３】データ退避処理の実施例。
【図４】データ回復処理の、不正データ混入が無い場合のフローチャート。
【図５】データ回復処理の、不正データ混入が無い場合の実施例。
【図６】データ回復処理の、不正データ混入がある場合のフローチャート。
【図７】データ回復処理の、不正データ混入がある場合の実施例。
【符号の説明】
【００２０】
100…CPU、111、112、113、201…業務処理、120、203…データ更新処理、130、302…データ退避処理、140、501、701…データ回復処理、150、204、504、702…更新履歴ファイル、160、205、301、505、708…更新、回復対象データベース、170、303、503、707…退避データベース、502、706…回復指定時刻入力時の画面例、703…修正前更新履歴ファイル、704…更新履歴修正時の画面例、705…修正後更新履歴ファイル。
【図１】
2008146118.tif 000003
【図２】
2008146118.tif 000004
【図３】
2008146118.tif 000005
【図４】
2008146118.tif 000006
【図５】
2008146118.tif 000007
【図６】
2008146118.tif 000008
【図７】
2008146118.tif 000009