(57)【特許請求の範囲】
【請求項１】
データベースの単位記憶領域毎のデータ割当の有無を使用管理簿で管理するデータベース管理プログラムにおいて、
コンピュータに、
前記使用管理簿とは別に、前記データベースに対して行った初期化の回数を示す初期化カウンタと、前記データベース内の前記単位記憶領域に対応付けて設けられた割当時カウンタ値とを設け、
前記データベースを初期化する際に、前記使用管理簿内に設けられた前記単位記憶領域毎のデータ割当の有無を示す全ての割当フラグを未割当に設定するとともに、前記初期化カウンタの値を更新し、
前記データベース内の前記単位記憶領域にデータが割り当てられる毎に、当該データが割り当てられた単位記憶領域に対応する前記使用管理簿内の割当フラグを割当済みに設定するとともに、当該単位記憶領域に対応する前記割当時カウンタ値に前記初期化カウンタの値を設定する、
処理を実行させることを特徴とするデータベース管理プログラム。
【請求項２】
前記使用管理簿の内容が壊れた場合、前記データベース内の前記単位記憶領域毎に設定された前記割当時カウンタ値と、前記初期化カウンタの値とを比較し、
比較の結果、値が一致した単位記憶領域に対応する割当フラグを割当済みに設定し、値が一致しなかった単位記憶領域に対応する割当フラグを未割当に設定して、前記使用管理簿を復旧する、
処理をさらに実行させることを特徴とする請求項１記載のデータベース管理プログラム。
【請求項３】
前記データベースを初期化する際に、前記データベースの物理初期化前か否かを判断し、物理初期化前の場合にのみ、前記データベースの物理初期化を行うことを特徴とする請求項１記載のデータベース管理プログラム。
【請求項４】
データ格納対象を切り換えながら複数の前記データベースに対して順次データを格納しており、データ格納が終了したデータベースに関して、他のデータベースにデータを格納している間に、データのバックアップおよび初期化処理を行うことを特徴とする請求項１記載のデータベース管理プログラム。
【請求項５】
データベースの単位記憶領域毎の使用の有無を使用管理簿で管理するデータベース管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
前記使用管理簿とは別に、前記データベースに対して行った初期化の回数を示す初期化カウンタと、前記データベース内の前記単位記憶領域に対応付けて設けられた割当時カウンタ値とを設け、
前記データベースを初期化する際に、前記使用管理簿内に設けられた前記単位記憶領域毎のデータ割当の有無を示す全ての割当フラグを未割当に設定するとともに、前記初期化カウンタの値を更新し、
前記データベース内の前記単位記憶領域にデータが割り当てられる毎に、当該データが割り当てられた単位記憶領域に対応する前記使用管理簿内の割当フラグを割当済みに設定するとともに、当該単位記憶領域に対応する前記割当時カウンタ値に前記初期化カウンタの値を設定する、
処理を実行させることを特徴とするデータベース管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータベース管理プログラムおよびデータベース管理プログラムを記録したコンピュータ読み取り可能な記録媒体に関し、特にデータベースの単位記憶領域毎の使用の有無を使用管理簿で管理するデータベース管理プログラムおよびそのようなデータベース管理プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
データベース用のサーバコンピュータ（データベースサーバ）では、データに効率的にアクセスするための技術が求められている。データベースの高速アクセスを可能とする技術の１つに、ページ管理簿を用いて、データベース内の単位記憶領域であるページ毎の使用状況を管理する方法がある。
【０００３】
図１７は、従来のデータベースサーバ内のデータ構造を概略的に示す図である。データベースサーバ９００は、データベース９１０、ディクショナリ９２０、およびページ管理簿９３０で構成されている。
【０００４】
データベース９１０は、入出力のための単位記憶領域である複数のページ９１１〜９１８で構成される。個々のページ９１１〜９１８には、複数のレコードが格納される。ディクショナリ９２０は、データベース９１０の定義情報（レコードやカラム情報など）や状態（データ蓄積中やバックアップ中）を管理する。ページ管理簿９３０は、データベース９１０内の各々のページ９１１〜９１８の使用状況（割当の有無）を管理する。すなわち、ページ管理簿９３０には、各ページ９１１〜９１８にデータが割り当てられているか否かを示すフラグが、各ページ９１１〜９１８のページ番号に対応づけて設定されている。図１７の例では、割当済みのフラグを黒丸（●）で示し、空き（未割当）のフラグを白丸（○）で示している。
【０００５】
このようなデータベースサーバ９００によれば、ページ管理簿９３０を参照することで、データベース９１０内のどのページが使用されていて、どのページが空いているのかを、迅速に判断することができる。その結果、データベース９１０のアクセスを効率的に、かつ高速に行うことが可能なる。
【０００６】
ところで、上記のようなデータベースサーバ９００では、運用中の入出力障害などにより、ページ管理簿９３０の内容が壊れる場合がある。この場合、データベース９１０内の全てのページを参照し、使用状況が確認される。使用状況の確認処理において、有効なデータが格納されているページは割当済みと判断され、無効なデータ（たとえば、全ての値が０のデータ）が格納されているページは空きと判断される。そして、各ページ９１１〜９１８のデータの内容の確認結果に基づいて、ページ管理簿９３０を復旧することができる。
【０００７】
このように、ページ管理簿９３０の復旧処理では、空きのページに無効なデータが格納されていることが前提となっている。このため、データベース９１０の初期化処理においては、データベース９１０内の全てのページを物理的に初期化することが必須となっている。ページの物理的な初期化とは、各ページ内のデータとして無効なデータを書き込むことである。このような物理的な初期化を行っておくことで、ページ管理簿の復旧処理において、ページの使用状況を正しく判断することができる。
【０００８】
【発明が解決しようとする課題】
しかし、従来のデータベースの初期化処理では、全てのページの物理的な初期化が行われるため、１つのデータベースサーバで取り扱うデータ量の増加に伴い、データベースの初期化に要する時間も増加していた。特に、最近は情報通信技術を利用した業務範囲が拡大しており、データベースサーバで扱うデータ量の増加、およびそれに伴うデータベースの大規模化が進んでいる。そのため、データベースの初期化に多大な時間を要し、データベースサーバの運用効率の悪化を招いていた。
【０００９】
また、データベースサーバの運用形態の中には、オペレータの操作履歴を蓄積するものがある。たとえば、金融機関の取引システムでは、オペレータの操作履歴を逐次蓄積する必要がある。
【００１０】
操作履歴を蓄積するためのデータベースサーバは、一般的に、複数のデータベースで構成される。たとえば、３つのデータベースを設け、１つのデータベースに操作履歴を蓄積している間に、他の２つのデータベースのバックアップと初期化とを行う。１つのデータベースの初期化が終了すると、そのデータベースに操作履歴の蓄積が開始される。バックアップが終了したデータベースは、次回の使用に備え再初期化が行われる。そして、それまで操作履歴を蓄積していたデータベースへのデータ蓄積を終了し、そのデータベースのバックアップが開始される。
【００１１】
すなわち、操作履歴を蓄積するためのデータベースサーバでは、データ蓄積、バックアップ、再初期化といった処理を、複数のデータベースに対してサイクリックに切り換えながら継続した運用が行われる。このように複数のデータベースの切り換え運用を行う場合、次に操作履歴を蓄積することとなるデータベースの初期化が終了するまでは、操作履歴蓄積中のデータベースの記憶領域が枯渇しないようにしなければならない。
【００１２】
ところが、操作履歴の発生量が多い金融業などのオンライン業務においては、この操作履歴を蓄積するデータベースの容量見積もり（バックアップと初期化時間、操作履歴の発生頻度を考慮）が困難なものとなっている。その結果、データベースの蓄積領域の枯渇を避けるため、各データベースに対して、実際に使用されるデータ容量を大きく上回る記憶容量の割り当てが必要となっている。
【００１３】
このように、データベースの再初期化において物理初期化を行うことが運用効率の悪化を招くと共に、データベース肥大化の要因にもなっていた。
前述したように、再初期化において物理初期化を行うのは、ページ管理簿の復旧の際に、ページ内のデータの有効性によってデータの割り当ての有無を判断するためである。そこで、ページ内のデータの有効性を参照せずに、ページ管理簿を復旧することが出来れば、再初期化時に物理初期化を行わずにすむ。再初期化の際に物理初期化を行わなければ、データベースの規模が拡大しても、再初期化を短時間で行うことが可能である。
【００１４】
本発明はこのような点に鑑みてなされたものであり、再初期化の際に物理初期化を行うことなく、単位記憶領域毎のデータの割り当ての有無を示す管理簿を復旧できるデータベース管理プログラム、およびそのデータベース管理プログラムを記録した記録媒体を提供することを目的とする。
【００１５】
【課題を解決するための手段】
本発明では上記課題を解決するために、図１に示すような処理をコンピュータに実行させるデータベース管理プログラムが提供される。本発明に係るデータベース管理プログラムは、データベース１の単位記憶領域１ａ，１ｂ，１ｃ，・・・毎のデータ割当の有無を使用管理簿で管理するものである。本発明に係るデータベース管理プログラムを用いれば、コンピュータに以下の処理を実行させることができる。
【００１６】
コンピュータは、データベース１を初期化する際に、使用管理簿２内に設けられた単位記憶領域１ａ，１ｂ，１ｃ，・・・毎のデータ割当の有無を示す全ての割当フラグを未割当に設定するとともに、データベース１に対して行った初期化の回数を示す初期化カウンタ３の値を更新する（Ｓ２）。さらにコンピュータは、データベース１内の単位記憶領域１ａ，１ｂにデータ４，５が割り当てられる毎に、データ４，５が割り当てられた単位記憶領域１ａ，１ｂに対応する使用管理簿２内の割当フラグを割当済みに設定するとともに、単位記憶領域１ａ，１ｂに対応する割当時カウンタ値１ａａ，１ｂａに初期化カウンタ３の値を設定する（Ｓ３）。
【００１７】
このようなデータベース管理プログラムによれば、初期化処理においては、使用管理簿２が初期化されるとともに、初期化カウンタ３が更新される。そして、データ割当時には、単位記憶領域１ａ，１ｂの割当時カウンタ値１ａａ，１ｂａに、初期化カウンタ３の値が設定される。これにより、使用管理簿２の内容が壊れても、初期化カウンタ３の値と各単位記憶領域１ａ，１ｂ，１ｃ，・・・の割当時カウンタ値１ａａ，１ｂａ，１ｃａ，・・・とを比較することで、単位記憶領域毎の割当の有無を判断し、使用管理簿２を復旧することができる。
【００１８】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、本発明の実施の形態に適用される発明の概要について説明し、その後、本発明の実施の形態の具体的な内容を説明する。
【００１９】
図１は、本発明の実施の形態に適用される発明の概念図である。本発明に係るデータベース管理プログラムを実行するコンピュータは、データベースサーバとして機能する。
【００２０】
[Ｓ１]再初期化前のデータベースサーバは、データベース１、使用管理簿２、および初期化カウンタ３を有している。データベース１には、単位記憶領域１ａ，１ｂ，１ｃ，・・・毎にデータが格納される。単位記憶領域１ａ，１ｂ，１ｃ，・・・は、たとえば、ページと呼ばれる記憶単位である。各単位記憶領域１ａ，１ｂ，１ｃ，・・・には、割当時カウンタ値１ａａ，１ｂａ，１ｃａ，・・・が設定されている。使用管理簿２には、単位記憶領域毎のデータ割当の有無を示す割当フラグが設定されている。初期化カウンタ３は、データベース１に対して行った初期化の回数を示す値が設定されている。
【００２１】
[Ｓ２]データベース１の再初期化の際に、データベースサーバは、使用管理簿２内に設けられた単位記憶領域毎のデータ割当の有無を示す全ての割当フラグを未割当に設定する。また、データベースサーバは、再初期化の際に、初期化カウンタ３の値を更新する。
【００２２】
[Ｓ３]データベースサーバは、データベース１内の単位記憶領域１ａ，１ｂにデータ４，５が割り当てられる毎に、データ４，５が割り当てられた単位記憶領域１ａ，１ｂに対応する使用管理簿２内の割当フラグを割当済みに設定する。また、データベースサーバは、単位記憶領域１ａ，１ｂに対応する割当時カウンタ値１ａａ，１ｂａに初期化カウンタ３の値を設定する。
【００２３】
[Ｓ４]使用管理簿２の内容が壊れ、使用管理簿２を消失した場合、データベースサーバは、データベース１内の単位記憶領域１ａ，１ｂ，１ｃ，・・・毎に設定された割当時カウンタ値１ａａ，１ｂａ，１ｃａ，・・・と、初期化カウンタ３の値とを比較する。
【００２４】
[Ｓ５]そして、データベースサーバは、比較の結果、値が一致した単位記憶領域に対応する割当フラグを割当済みに設定し、値が一致しなかった単位記憶領域に対応する割当フラグを未割当に設定して、使用管理簿２を復旧する。
【００２５】
このようにして、再初期化時に物理初期化を行わなくても、使用管理簿２の復旧が可能となる。再初期化処理で行われる使用管理簿２の初期化は、割当フラグの初期化のみであるため、物理初期化に比べて非常に短時間で行うことができる。その結果、データベースの規模が拡大しても、再初期化の処理時間はほとんど変わらずにすむ。その結果、データベースの初期化時間が短縮され、データベースの使用効率が向上する。
【００２６】
さらに、複数のデータベースをサイクリックに切り換えて使用するシステムでは、再初期化の時間が長引くことによるデータベースの規模の拡大を抑制することができる。
【００２７】
以下、オペレータの操作履歴を蓄積するデータベースサーバの例を用いて、本発明の実施の形態を具体的に説明する。
図２は、データベースシステムの構成例を示す図である。データベースシステムは、データベースサーバ１００と複数の端末装置２１０，２２０，２３０，・・・とで構成される。データベースサーバ１００と各端末装置２１０，２２０，２３０，・・・とは、ネットワーク１０で接続されている。
【００２８】
端末装置２１０，２２０，２３０，・・・は、オペレータによる操作内容を、ネットワーク１０を介してデータベースサーバ１００に送信する。
データベースサーバ１００は、各端末装置２１０，２２０，２３０，・・・から送られる操作内容に基づいて、操作内容を示す情報（操作履歴情報）を作成する。そして、データベースサーバ１００は、作成した操作履歴情報を逐次、データベースに蓄積する。
【００２９】
図３は、本実施の形態に用いるデータベースサーバのハードウェア構成例を示す図である。データベースサーバ１００は、ＣＰＵ(Central Processing Unit)１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ(Random Access Memory)１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、通信インタフェース１０６およびＨＤＤインタフェース１０７が接続されている。
【００３０】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。
【００３１】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０８を介してＣＰＵ１０１に送信する。
【００３２】
通信インタフェース１０６は、ネットワーク１０に接続されている。通信インタフェース１０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。
【００３３】
ＨＤＤインタフェース１０７には、データベース（ＤＢ）用の複数のＨＤＤ１４〜１６と、バックアップ用のストレージデバイス１７とが接続されている。ＨＤＤインタフェース１０７は、ＣＰＵ１０１からの命令に従って、操作履歴情報をＤＢ用のＨＤＤ１４〜１６に格納する。また、ＨＤＤインタフェース１０７は、ＣＰＵ１０１からの命令に従って、ＨＤＤ１４〜１６に格納された操作履歴情報を、バックアップ用のストレージデバイス１７に転送する。なお、バックアップ用のストレージデバイス１７は、たとえば磁気テープドライブのような、可搬型の記録媒体にデータを格納可能な装置である。
【００３４】
以上のようなハードウェア構成によって、本実施の形態に係るデータベースサーバ１００の処理機能を実現することができる。
図４は、データベースサーバの機能ブロック図である。データベースサーバ１００は、複数のＤＢ３１０，３２０，３３０とバックアップ用記録媒体４００とに対して、アクセス可能に接続されている。ＤＢ３１０は、ＨＤＤ１４内の記憶領域である。ＤＢ３２０は、ＨＤＤ１５内の記憶領域である。ＤＢ３３０は、ＨＤＤ１５内の記憶領域である。バックアップ用記録媒体４００は、ストレージデバイス１７に挿入された可搬型の記録媒体である。
【００３５】
データベースサーバ１００は、ディクショナリ１１０、ページ管理簿群１２０、データベース状態切換部１３０、初期化部１４０、操作履歴取得部１５０、操作履歴蓄積部１６０、バックアップ部１７０、およびページ管理簿復旧部１８０を有している。
【００３６】
ディクショナリ１１０は、データベース３１０、３２０，３３０の定義情報（レコードやカラム情報など）や使用状態（データ蓄積中やバックアップ中）に加え、初期化状態、初期化カウンタを管理する。初期化状態は、物理初期化前（データ構造の定義直後）か、初期化直後か、操作履歴情報格納直後かを示す情報である。初期化カウンタは、各データベース３１０，３２０，３３０の初期化の回数を示す情報である。初期化カウンタは、最初の初期化（物理初期化）が行われた際に「００００」が設定され、その後、再初期化が行われる毎に、１ずつカウントアップされる。
【００３７】
ページ管理簿群１２０は、データベース３１０，３２０，３３０内の各々のページ（データの単位格納領域）の使用状況を管理する。具体的には、ページ管理簿群１２０には、操作履歴情報の蓄積対象とされたデータベース内の各ページに関して、操作履歴情報が割り当てられたか否かを示すフラグ（割当フラグ）が設定される。
【００３８】
データベース状態切換部１３０は、データベース３１０，３２０，３３０の使用状態切換を制御する。すなわち、データベース状態切換部１３０は、データベース３１０，３２０，３３０の使用状態を、操作履歴情報の蓄積、バックアップ、および初期化の各処理対象として、サイクリックに切り替える。
【００３９】
具体的には、データベース状態切換部１３０は、データベース３１０，３２０，３３０の構造を定義し、ディクショナリ１１０に対して、各データベース３１０，３２０，３３０がデータ構造の定義直後であることを示す情報を設定する。なお、データ構造の定義直後のデータベースは、ディクショナリ１１０から割り当て領域がポイントされている状態であり、内部データの初期化は行われていない。そして、データベース状態切換部１３０は、各データベースへの処理が所定の順番で繰り返されるように、初期化するデータベース、操作履歴情報を蓄積するデータベース、バックアップ対象とするデータベースを適宜選択する。
【００４０】
その後、データベース状態切換部１３０は、初期化するデータベースの識別情報を含む初期化要求を、初期化部１４０に通知する。また、データベース状態切換部１３０は、操作履歴情報を蓄積するデータベースの識別情報を含む操作履歴蓄積要求を、操作履歴蓄積部１６０に通知する。さらに、データベース状態切換部１３０は、バックアップ対象とするデータベースの識別情報を含むバックアップ要求を、バックアップ部１７０に通知する。
【００４１】
初期化部１４０は、データベース状態切換部１３０からの初期化要求を受けて、初期化要求で指定されたデータベースの初期化処理を行う。初期化処理には、物理初期化処理と、再初期化処理とがある。物理初期化処理は、データベースの記憶領域を構造定義に従って区分けするとともに、区分けされた各記憶領域に無意味なデータを書き込む処理である。再初期化処理は、初期化対象のデータベースに関するページ管理簿群１２０内のページ管理簿を初期化する処理である。ページ管理簿の初期化とは、全てのページに対応する割当フラグを、空き（未割当）の状態に設定することである。
【００４２】
操作履歴取得部１５０は、ネットワーク１０を介して端末装置２１０，２２０，２３０，・・・から送られてくるオペレータの操作内容に関する情報を取得する。次に、操作履歴取得部１５０は、取得した情報に時刻情報などの所定の管理情報を付加して、操作履歴情報を生成する。そして、操作履歴取得部１５０は、生成した操作履歴情報を操作履歴蓄積部１６０に渡す。
【００４３】
操作履歴蓄積部１６０は、データベース状態切換部１３０からの操作履歴情報蓄積要求を受けて、操作履歴情報蓄積要求で指定されたデータベースを、操作履歴情報の蓄積対象として特定する。そして、操作履歴蓄積部１６０は、操作履歴取得部１５０から取得した操作履歴情報を、蓄積対象として特定されたデータベースに対して格納する。
【００４４】
なお、操作履歴蓄積部１６０は、新たな操作履歴情報を格納する際には、ページ管理簿群１２０の内容を参照し、データベース内の空きのページを確認する。そして、操作履歴蓄積部１６０は、空きページに対して操作履歴情報を格納する。空きのページに操作履歴情報を格納した場合には、操作履歴蓄積部１６０は、ページ管理簿群１２０内の該当ページに対応する割当フラグに対して、そのページが割当済みであることを示す情報を設定する。
【００４５】
バックアップ部１７０は、データベース状態切換部１３０からのバックアップ要求を受けて、バックアップ要求で指定されたデータベース内の操作履歴情報のバックアップデータを、バックアップ用記録媒体４００に格納する。なお、バックアップデータは、操作履歴情報のデータそのままのコピーであってもよいし、データ圧縮された１つのファイルであってもよい。
【００４６】
ページ管理簿復旧部１８０は、データベースサーバ１００の管理者の操作入力などに基づくページ管理簿復旧要求を受け取ると、ディクショナリ１１０とデータベース３１０，３２０，３３０との内容を参照して、ページ管理簿群１２０を生成する。なお、ページ管理簿復旧要求は、ページ管理簿群１２０の内容が壊れた際に出される。
【００４７】
具体的には、ページ管理簿復旧部１８０は、ディクショナリ１１０に設定されている各データベース３１０，３２０，３３０に対応する初期化カウンタの値と、データベース３１０，３２０，３３０内の各ページの割当時カウンタ値とを比較する。比較の結果に基づき、ページ管理簿復旧部１８０は、初期化カウンタの値と割当時カウンタ値が一致したページを、データが割り当てられたページ（データが有効なページ）と判断する。また、ページ管理簿復旧部１８０は、初期化カウンタの値と割当時カウンタ値が一致しないページを、空きページ（データが無効なページ）と判断する。そして、ページ管理簿復旧部１８０は、データベース毎の各ページの使用の有無に基づき、ページ管理簿群１２０を生成する。
【００４８】
図５は、データベースのデータ構造例を示す図である。データベース３１０には、操作履歴情報がページ３１１〜３１８，・・・単位で格納されている。各ページ３１１〜３１８，・・・には、識別番号（ページ番号）が設定されている。また、各ページ３１１〜３１８，・・・には、割当時カウンタ値３２１〜３２８，・・・が含まれている。割当時カウンタ値３２１〜３２８，・・・には、各ページに操作履歴情報が割り当てられた際に、データベース３１０に対応づけて設定されている初期化カウンタの値が設定される。
【００４９】
図５の例は、データベース３１０の初期化が２回行われ、その後、操作履歴情報が蓄積されたときの状態を示している。図５中、最後（２回目）の初期化後に操作履歴情報が蓄積されたページを、網掛けで示している。たとえば、ページ番号１、２，４，５，７の各ページ３１１，３１２，３１４，３１５，３１７には、最後の初期化後に、操作履歴情報が格納されている。
【００５０】
最後の初期化後に操作履歴情報が格納されたページ３１１，３１２，３１４，３１５，３１７の割当時カウンタ値３２１，３２２，３２４，３２５，３２７には、初期化が２回行われたことを示す値「０００１」が設定されている。最後の初期化後に操作履歴情報が格納されていないページ３１３，３１６，３１８の割当時カウンタ値３２３，３２６，３２８には、初期化が１回行われたことを示す値「００００」が設定されている。
【００５１】
図６は、ディクショナリのデータ構造例を示す図である。ディクショナリ１１０には、データベース（ＢＤ）番号、初期化状態、および初期化カウンタなどの欄が設けられている。各欄の横方向に並べられた情報同士が互いに関連づけられている。
【００５２】
データベース番号の欄には、各データベース３１０，３２０，３３０の識別番号（データベース番号）が設定されている。データベース３１０のデータベース番号は「ＤＢ＃１」であり、データベース３２０のデータベース番号は「ＤＢ＃２」であり、データベース３３０のデータベース番号は「ＤＢ＃３」である。
【００５３】
状態の欄には、各データベース３１０，３２０，３３０の初期化状態が設定されている。初期化状態が物理初期化前（データ構造の定義直後）の場合、状態の欄に「ＮＯＮ」が設定される。初期化状態が初期化後（操作履歴情報格納前）の場合、状態の欄に「ＩＮＴ」が設定される。初期化状態が操作履歴情報格納後（再初期化前）の場合、状態の欄に「ＡＣＴ」が設定される。
【００５４】
初期化カウンタの欄には、各データベースの初期化の回数を表す数値（初期化カウンタ）が設定される。初期化カウンタの値は、物理初期化が行われた際に「００００」に設定され、その後、再初期化が行われる毎に１ずつカウントアップされる。
【００５５】
図６の例では、データベース番号「ＤＢ＃１」のデータベース３１０は、操作履歴情報格納直後の状態であり、物理初期化が１回行われている。データベース番号「ＤＢ＃２」のデータベース３２０は、初期化直後の状態であり、物理初期化が１回行われている。データベース番号「ＤＢ＃３」のデータベース３３０は、データ構造定義直後の状態であり、初期化は行われていない。
【００５６】
図７は、ページ管理簿群のデータ構造例を示す図である。ページ管理簿群１２０には、各データベース３１０，３２０，３３０に対応づけて、ページ管理簿１２１〜１２３が設けられている。ページ管理簿１２１は、データベース番号「ＤＢ＃１」のデータベース３１０に対応する。ページ管理簿１２２は、データベース番号「ＤＢ＃２」のデータベース３２０に対応する。ページ管理簿１２３は、データベース番号「ＤＢ＃３」のデータベース３３０に対応する。
【００５７】
ページ管理簿１２１〜１２３には、対応するデータベース３１０，３２０，３３０内のページ毎に、そのページのページ番号に対応付けて、使用の有無を示すフラグ（割当フラグ）が設定されている。図７の例では、割当済みを示す情報を黒丸（●）で示し、空きを示す情報を白丸（○）で示している。実際には、割当済みを示す情報は、たとえば「１１」である。また、空きを示す情報は、たとえば、「００」である。
【００５８】
たとえば、データベース番号「ＤＢ＃１」のデータベース３１０に対応するページ管理簿１２１では、ページ番号＃１、＃２，＃４，＃５，＃７のページが割当済みであり、ページ番号＃３、＃６，＃８のページが空きである。
【００５９】
以上のような構成およびデータ構造のデータベースサーバ１００によって、操作履歴情報の蓄積が行われる。
以下、データベースサーバ１００で実行される処理の詳細について説明する。まず、データベース３１０，３２０，３３０の状態の切換処理について説明する。
【００６０】
図８は、データベース状態切換処理の手順を示すフローチャートである。以下、図８に示す処理をステップ番号に沿って説明する。なお、操作履歴情報蓄積処理は、データベースサーバ１００が起動された後、または、操作入力などにより操作履歴情報の蓄積機能の実効命令が出されたときに、処理が開始される。
【００６１】
［ステップＳ１１］データベース状態切換部１３０は、全てのデータベース３１，３２０，３３０に対して、操作履歴情報を蓄積するためのデータ構造を定義する。構造定義の内容は、初期化部１４０に渡される。そして、データベース状態切換部１３０は、ディクショナリ１１０内の状態の欄に、各データベース３１０，３２０，３３０に対応づけて、構造定義直後であることを示す情報「ＮＯＮ」を設定する。
【００６２】
［ステップＳ１２］データベース状態切換部１３０は、各データベース３１０，３２０，３３０の初期状態を設定する。具体的には、データベース状態切換部１３０は、操作対象履歴情報の蓄積を最初に行うデータベースを初期化対象として設定する。
【００６３】
［ステップＳ１３］データベース状態切換部１３０は、初期化対象として設定されたデータベースを指定した初期化要求を、初期化部１４０に対して出力する。
【００６４】
［ステップＳ１４］データベース状態切換部１３０は、操作履歴情報蓄積対象として設定したデータベースを指定した操作履歴情報蓄積要求を、操作履歴蓄積部１６０に出力する。なお、データベース状態切換処理の開始直後で、初期化の完了したデータベースがない場合には、ステップＳ１４の処理はスキップする。
【００６５】
［ステップＳ１５］データベース状態切換部１３０は、バックアップ対象として設定されたデータベースを指定したバックアップ要求を、バックアップ部１７０に対して出力する。なお、データベース状態切換処理の開始直後で、まだ操作履歴情報の蓄積処理が行われていない場合には、ステップＳ１５の処理はスキップする。
【００６６】
［ステップＳ１６］データベース状態切換部１３０は、データベースの状態切換時期か否かを判断する。たとえば、次に操作履歴情報の蓄積対象とすべきデータベースの初期化が終了したときを、データベースの状態切換時期とすることができる。また、所定時間間隔でデータベースの状態を切り換えるようにしてもよい（次に操作履歴情報の蓄積対象とすべきデータベースが初期化済みであることが必要）。
【００６７】
データベースの状態切換時期であれば、処理がステップＳ１７に進められる。データベースの状態切換時期でなければ、処理がステップＳ１８に進められる。［ステップＳ１７］データベース状態切換部１３０は、各データベースの状態を変更する。具体的には、データベース状態切換部１３０は、初期化されたデータベースを操作履歴情報の蓄積対象に設定し、操作履歴情報蓄積要求を操作履歴蓄積部１６０に渡す。また、データベース状態切換部１３０は、操作履歴情報が蓄積されたデータベースをバックアップ対象に設定し、バックアップされたデータベースを初期化対象に設定する。その後、処理がステップＳ１３に進められる。これにより、ステップＳ１３〜Ｓ１６において、変更後の状態に従った処理要求が、初期化部１４０、操作履歴蓄積部１６０、およびバックアップ部１７０に出力される。
【００６８】
［ステップＳ１８］データベース状態切換部１３０は、操作履歴情報の蓄積処理が終了か否かを判断する。たとえば、データベース状態切換部１３０は、操作履歴情報の蓄積終了を示す操作入力が行われた際に、操作履歴情報の蓄積終了であると判断する。操作履歴情報蓄積が終了であれば、図８の処理が終了し、そうでなければ、処理がステップＳ１６に進められる。
【００６９】
図９は、初期化処理の手順を示すフローチャートである。以下、図９に示す処理をステップ番号に沿って説明する。なお、初期化処理は、データベース状態切換部１３０から、初期化対象のデータベースを指定した初期化要求が出力された際に、初期化部１４０で実行される。
【００７０】
［ステップＳ２１］初期化部１４０は、初期化要求で指定されたデータベースを、初期化対象として選択する。
［ステップＳ２２］初期化部１４０は、ディクショナリ１１０を参照し、選択したデータベースがデータ構造を定義直後（初期化前）か否かを判断する。具体的には、ディクショナリ１１０において、選択したデータベースの初期化状態として「ＮＯＮ」が設定されていれば、定義直後である。初期化状態が定義直後であれば、処理がステップＳ２３に進められる。初期化状態が定義直後でなければ、処理がステップＳ２４に進められる。
【００７１】
［ステップＳ２３］初期化部１４０は、選択したデータベースの物理初期化を行う。その後、処理がステップＳ２５に進められる。
［ステップＳ２４］初期化部１４０は、選択したデータベースの再初期化を行う。
【００７２】
［ステップＳ２５］初期化部１４０は、選択したデータベースに対応するディクショナリ１１０内の初期化カウンタを更新する。すなわち、初期化部１４０は、物理初期化後であれば初期化カウンタに「００００」を設定し、再初期化後であれば、初期化カウンタの値に１を加算する。
【００７３】
［ステップＳ２６］初期化部１４０は、ディクショナリ１１０内の選択したデータベースに対応する初期化状態の欄に、初期化直後を示す情報（ＩＮＴ）を設定する。その後、初期化処理が終了する。
【００７４】
図１０は、操作履歴情報蓄積処理の手順を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。なお、操作履歴情報蓄積処理は、データベース状態切換部１３０から、操作履歴情報蓄積対象のデータベースを指定した操作履歴情報蓄積要求が出力された際に、操作履歴蓄積部１６０で実行される。
【００７５】
［ステップＳ３１］操作履歴蓄積部１６０は、操作履歴情報蓄積要求で指定されたデータベースを、操作履歴情報の蓄積対象として選択する。
［ステップＳ３２］操作履歴蓄積部１６０は、ディクショナリ１１０内の選択したデータベースに対応する初期化状態の欄に、操作履歴情報格納直後であることを示す情報（ＡＣＴ）を設定する。
【００７６】
［ステップＳ３３］操作履歴蓄積部１６０は、操作履歴情報を操作履歴取得部１５０から取得したか否かを判断する。操作履歴情報を取得した場合には、処理がステップＳ３４に進められる。操作履歴情報を取得していない場合には、処理がステップＳ３９に進められる。
【００７７】
［ステップＳ３４］操作履歴蓄積部１６０は、ページ管理簿群１２０を参照し、選択したデータベース内の空きページのページ番号を確認する。そして、操作履歴蓄積部１６０は、空きページの１つを履歴蓄積ページとし、取得した操作履歴情報を割り当てる。
【００７８】
［ステップＳ３５］操作履歴蓄積部１６０は、ディクショナリ１１０内の選択したデータベースに対応する初期化カウンタの値を取得する。
［ステップＳ３６］操作履歴蓄積部１６０は、履歴蓄積ページの割当時カウンタ値として、ディクショナリ１１０から取得した初期化カウンタの値を設定する。
【００７９】
［ステップＳ３７］操作履歴蓄積部１６０は、操作履歴取得部１５０から取得した操作履歴情報を、履歴蓄積ページに格納する。
［ステップＳ３８］操作履歴蓄積部１６０は、ページ管理簿群１２０を更新する。具体的には、操作履歴蓄積部１６０は、ページ管理簿群１２０内の履歴蓄積ページに対応する割当フラグを、割当済みに設定する。
【００８０】
［ステップＳ３９］操作履歴蓄積部１６０は、指定されたデータベースへの操作履歴情報蓄積が終了か否かを判断する。指定されたデータベースへの操作履歴情報蓄積が終了する場合とは、たとえばデータベースの状態が切り替えられ、他のデータベースが操作履歴情報の蓄積対象となった場合や、操作履歴情報蓄積処理の終了を示す操作入力があった場合である。
【００８１】
指定されたデータベースへの操作履歴情報蓄積終了であれば、図１０に示す処理が終了し、そうでなければ、処理がステップＳ３３に進められる。
以上のような処理がデータベースサーバ１００で実行されることにより、複数のデータベース３１０，３２０，３３０に対して、操作履歴情報が順次蓄積される。
【００８２】
図１１は、データベースの状態の切換状況を示す状態遷移図である。本実施の形態では、データベースサーバ１００における操作履歴情報の蓄積処理は、３つの状態を順番に繰り返すことで実行される。なお、状態の切換は、データベース状態切換部１３０で制御されている。
【００８３】
第１の状態ＳＴ１では、操作履歴情報の蓄積対処はデータベース３１０であり、操作履歴蓄積部１６０によって、操作履歴取得部１５０で生成された操作履歴情報がデータベース３１０に格納される。初期化対象はデータベース３２０であり、初期化部１４０によってデータベース３２０の初期化が行われる。バックアップ対象はデータベース３３０であり、バックアップ部１７０によって、データベース３３０に格納された操作履歴情報がバックアップ用記録媒体４００にバックアップされる。
【００８４】
各データベース３１０，３２０，３３０に対する処理完了後、第１の状態ＳＴ１から第２の状態ＳＴ２に遷移する。
第２の状態ＳＴ２では、操作履歴情報の蓄積対処はデータベース３２０であり、操作履歴蓄積部１６０によって、操作履歴取得部１５０で生成された操作履歴情報がデータベース３２０に格納される。初期化対象はデータベース３３０であり、初期化部１４０によってデータベース３３０の初期化が行われる。バックアップ対象はデータベース３１０であり、バックアップ部１７０によって、データベース３１０に格納された操作履歴情報がバックアップ用記録媒体４００にバックアップされる。
【００８５】
各データベース３１０，３２０，３３０に対する処理完了後、第２の状態ＳＴ２から第３の状態ＳＴ３に遷移する。
第３の状態ＳＴ３では、操作履歴情報の蓄積対処はデータベース３３０であり、操作履歴蓄積部１６０によって、操作履歴取得部１５０で生成された操作履歴情報がデータベース３３０に格納される。初期化対象はデータベース３１０であり、初期化部１４０によってデータベース３１０の初期化が行われる。バックアップ対象はデータベース３２０であり、バックアップ部１７０によって、データベース３２０に格納された操作履歴情報がバックアップ用記録媒体４００にバックアップされる。
【００８６】
各データベース３１０，３２０，３３０に対する処理完了後、第３の状態ＳＴ３から第１の状態ＳＴ１に遷移する。
このように、第１の状態ＳＴ１、第２の状態ＳＴ２、第３の状態ＳＴ３をサイクリックに繰り返すことで、各データベース３１０，３２０，３３０に対して、操作履歴情報の蓄積、バックアップ、および初期化の処理を、繰り返し実行することができる。しかも、常に操作履歴情報の蓄積対象とするデータベースを用意しておくことができ、継続して操作履歴情報の蓄積が可能となる。
【００８７】
図１２は、ディクショナリの状態遷移を示す図である。ディクショナリ１１０は、データベース３１０，３２０，３３０の状態が遷移する毎にデータベース３１０，３２０，３３０が順次初期化され、初期化状態の欄が更新される。また、データベース３１０，３２０，３３０の初期化が行われる毎に、初期化カウンタの欄の対応する初期化カウンタが更新される。
【００８８】
データ構造の定義直後は、各データベースの初期化状態が定義直後「ＮＯＮ」である（ＳＴ１１）。
データベース番号「ＤＢ＃１」のデータベース３１０が初期化されると、データベース３１０の初期化状態が初期化直後「ＩＮＴ」となり、初期化カウンタの値が「００００」となる（ＳＴ１２）。
【００８９】
次に、データベース番号「ＤＢ＃１」のデータベース３１０に操作履歴情報が格納され、データベース番号「ＤＢ＃２」のデータベース３２０が初期化される。すると、データベース３１０の初期化状態が操作履歴情報格納後「ＡＣＴ」となるとともに、データベース３２０の初期化状態が初期化直後「ＩＮＴ」となり、初期化カウンタの値が「００００」となる。（ＳＴ１３）。
【００９０】
次に、データベース番号「ＤＢ＃２」のデータベース３２０に操作履歴情報が格納され、データベース番号「ＤＢ＃３」のデータベース３３０が初期化される。すると、データベース３２０の初期化状態が操作履歴情報格納後「ＡＣＴ」となるとともに、データベース３３０の初期化状態が初期化直後「ＩＮＴ」となり、初期化カウンタの値が「００００」となる。（ＳＴ１４）。
【００９１】
次に、データベース番号「ＤＢ＃３」のデータベース３３０に操作履歴情報が格納され、データベース番号「ＤＢ＃１」のデータベース３１０が初期化される。すると、データベース３３０の初期化状態が操作履歴情報格納後「ＡＣＴ」となるとともに、データベース３１０の初期化状態が初期化直後「ＩＮＴ」となり、初期化カウンタの値が「０００１」となる。（ＳＴ１５）。
【００９２】
このように、各データベースの状態が切り替わる毎に、ディクショナリ１１０の内容が更新される。初期化カウンタの値は、初期化される毎に１ずつカウントアップされる。
【００９３】
また、データベースの２回目以降の初期化処理は、再初期化処理となる。再初期化が行われた際には、そのデータベースの内容は変わらないが、そのデータベースに対応するページ管理簿の内容が初期化される。
【００９４】
図１３は、データベース再初期化時のページ管理簿の状態遷移例を示す図である。たとえば、データベース番号「ＤＢ＃１」のデータベース３１０が再初期化されると、ページ管理簿１２１内の各ページに対応するフラグに、空きを示す情報（○）が設定される。
【００９５】
その後、データベース３１０内のページに操作履歴情報が格納される毎に、そのページに対応するフラグに、割当済みを示す情報（●）が設定される。その際、操作履歴情報が格納されたページの割当時カウンタ値として、データベース３１０に対応する初期化カウンタの値が設定される。
【００９６】
図１４は、操作履歴情報格納時のデータベースの状態遷移例を示す図である。図１４の例では、データベース番号「ＤＢ＃１」のデータベース３１０内のページ番号「＃３」のページ３１３に操作履歴情報を格納したときのデータベース３１０、およびデータベース３１０に対応するページ管理簿１２１の状態遷移を示している。なお、この例では、ディクショナリ１１０において、データベース３１０に対応する初期化カウンタに「０００１」が設定されている。すなわち、データベース３１０の初期化処理が２回（物理初期化１回、再初期化１回）行われている。
【００９７】
ページ３１３に操作履歴情報が割り当てられ、その操作履歴情報が格納されると、ディクショナリ１１０内でデータベース３１０に対応づけられた初期化カウンタの値「０００１」が、ページ３１３の割当時カウンタ値３２３に設定される。同時に、データベース３１０に対応するページ管理簿１２１内のページ番号「＃３」に対応する割当フラグに、割当済みを示す情報（●）が設定される。
【００９８】
このように、データベース３１０，３２０，３３０内の各ページに、対応するデータベースの初期化回数を示す情報を付与することで、ページ管理簿１２１〜１２３の内容が壊れても、迅速にページ管理簿１２１〜１２３を復旧することができる。
【００９９】
図１５は、ページ管理簿復旧処理の手順を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。なお、図１５に示す処理は、ページ管理簿が壊れた際に、ページ管理簿復旧部１８０で実行される。
【０１００】
［ステップＳ５１］ページ管理簿復旧部１８０は、ページ管理簿の復旧処理を行っていないデータベースを１つ選択する。
［ステップＳ５２］ページ管理簿復旧部１８０は、選択したデータベースに対応づけて、初期状態のページ管理簿を生成する。初期状態のページ管理簿には、データベース内の各ページに対応する割当フラグの設定領域が設けられている。
【０１０１】
［ステップＳ５３］ページ管理簿復旧部１８０は、選択したデータベースから未選択のページを１つ選択する。
［ステップＳ５４］ページ管理簿復旧部１８０は、ディクショナリ１１０において、選択したデータベースに対応づけて設定されている初期化カウンタの値と、選択したページに設定されている割当時カウンタ値とを比較する。
【０１０２】
［ステップＳ５５］ページ管理簿復旧部１８０は、初期化カウンタの値と割当時カウンタ値との比較の結果、値が一致したが否かを判断する。値が一致した場合には、処理がステップＳ５６に進められる。値が一致しなかった場合には、処理がステップＳ５７に進められる。
【０１０３】
［ステップＳ５６］ページ管理簿復旧部１８０は、ページ管理簿１２１内の選択したページの割当フラグに、割当済みであることを示す情報を登録する。その後、処理がステップＳ５８に進められる。
【０１０４】
［ステップＳ５７］ページ管理簿復旧部１８０は、ページ管理簿１２１内の選択したページの割当フラグに、空き（未割当）であることを示す情報を登録する。
【０１０５】
［ステップＳ５８］ページ管理簿復旧部１８０は、他の未処理のページがあるか否かを判断する。他の未処理のページがある場合には、処理がステップＳ５３に進められる。他の未処理のページがない場合には、処理がステップＳ５９に進められる。
【０１０６】
［ステップＳ５９］ページ管理簿復旧部１８０は、他の未処理のデータベースがあるか否かを判断する。他の未処理のデータベースがある場合には、処理がステップＳ５１に進められる。他の未処理のデータベースがない場合には、処理が終了する。
【０１０７】
このようにして、各データベース３１０，３２０，３３０に対応するページ管理簿１２１〜１２３を復旧させることができる。
図１６は、ページ管理簿復旧処理を示す概念図である。図１６には、データベース３１０のページ管理簿１２１を復旧する処理が示されている。この例では、ディクショナリ１１０のデータベース番号「ＢＤ＃１」に対応する初期化カウンタに「０００１」の値が設定されている。その初期化カウンタとの値「０００１」とデータベース３１０の各ページ３１１〜３１８，・・・に設定された割当時カウンタ値３２１〜３２８，・・・の値とが比較される。値が一致していれば割当済みのページであり、値が不一致であれば空きのページである。初期化カウンタの値と割当時カウンタ値との比較結果に基づいて、ページ管理簿１２１が再生される。値が一致したページのページ番号に対応づけて割当済みの割当フラグ（●）が設定され、値が一致しないページのページ番号に対応づけて空きの割当フラグ（○）が設定されている。
【０１０８】
このように、各ページが使用された際に、その時点でのデータベースの初期化回数を示す情報をページに設定しておくことで、ページ管理簿が壊れても容易に復旧することができる。その結果、データベースの２回目以降の初期化の際には、物理初期化を行わずにすみ、初期化処理を短時間で行うことができる。
【０１０９】
しかも、ページ管理簿はページ毎の割当フラグが設定されているだけであるため、データベースの規模が拡大しても、再初期化の際のページ管理簿の初期化処理時間には、ほとんど影響を及ぼさない。すなわち、データベースの容量に依存することなく、ほぼ一定でかつ高速にデータベースの初期化を行うことが出来る。これにより、運用上の操作性が向上するとともに、操作履歴を蓄積するような形態のデータベースシステムにおいて、データベース容量の削減が可能となる。
【０１１０】
なお、上記の処理機能は、コンピュータで実行可能なプログラムに定義される。その場合、データベースサーバが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ(Digital Versatile Disc)、ＤＶＤ−ＲＡＭ(Random Access Memory)、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)、ＣＤ−Ｒ(Recordable)／ＲＷ(ReWritable)などがある。光磁気記録媒体には、ＭＯ(Magneto-Optical disc)などがある。
【０１１１】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１１２】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１１３】
（付記１）  データベースの単位記憶領域毎のデータ割当の有無を使用管理簿で管理するデータベース管理プログラムにおいて、
コンピュータに、
前記データベースを初期化する際に、前記使用管理簿内に設けられた前記単位記憶領域毎のデータ割当の有無を示す全ての割当フラグを未割当に設定するとともに、当該データベースに対して行った初期化の回数を示す初期化カウンタの値を更新し、
前記データベース内の前記単位記憶領域にデータが割り当てられる毎に、当該データが割り当てられた単位記憶領域に対応する前記使用管理簿内の割当フラグを割当済みに設定するとともに、当該単位記憶領域に対応する割当時カウンタ値に前記初期化カウンタの値を設定する、
処理を実行させることを特徴とするデータベース管理プログラム。
【０１１４】
（付記２）  前記使用管理簿の内容が壊れた場合、前記データベース内の前記単位記憶領域毎に設定された前記割当時カウンタ値と、前記初期化カウンタの値とを比較し、
比較の結果、値が一致した単位記憶領域に対応する割当フラグを割当済みに設定し、値が一致しなかった単位記憶領域に対応する割当フラグを未割当に設定して、前記使用管理簿を復旧する、
処理をさらに実行させることを特徴とする付記１記載のデータベース管理プログラム。
【０１１５】
（付記３）  前記データベースを初期化する際に、前記データベースの物理初期化前か否かを判断し、物理初期化前の場合にのみ、前記データベースの物理初期化を行うことを特徴とする付記１記載のデータベース管理プログラム。
【０１１６】
（付記４）  前記データベースの初期化状態を表す状態フラグを設け、前記データベースのデータ構造を定義した際に、前記状態フラグを構造定義直後に設定し、
前記データベースを初期化する際に、前記状態フラグが構造定義直後であれば、当該データベースが物理初期化前であると判断して当該データベースの物理初期化を行い、初期化終了後に前記状態フラグを初期化直後に設定することを特徴とする付記３記載のデータベース管理プログラム。
【０１１７】
（付記５）  データ格納対象を切り換えながら複数の前記データベースに対して順次データを格納しており、データ格納が終了したデータベースに関して、他のデータベースにデータを格納している間に、データのバックアップおよび初期化処理を行うことを特徴とする付記１記載のデータベース管理プログラム。
【０１１８】
（付記６）  データベースの単位記憶領域毎の使用の有無を使用管理簿で管理するデータベース管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
前記データベースを初期化する際に、前記使用管理簿内に設けられた前記単位記憶領域毎のデータ割当の有無を示す全ての割当フラグを未割当に設定するとともに、当該データベースに対して行った初期化の回数を示す初期化カウンタの値を更新し、
前記データベース内の前記単位記憶領域にデータが割り当てられる毎に、当該データが割り当てられた単位記憶領域に対応する前記使用管理簿内の割当フラグを割当済みに設定するとともに、当該単位記憶領域に対応する割当時カウンタ値に前記初期化カウンタの値を設定する、
処理を実行させることを特徴とする記録媒体。
【０１１９】
（付記７）  データベースの単位記憶領域毎の使用の有無を使用管理簿で管理するデータベースサーバにおいて、
前記データベースを初期化する際に、前記使用管理簿内に設けられた前記単位記憶領域毎の全ての割当フラグを未割当に設定する未割当フラグ設定手段と、
前記データベースを初期化する際に、前記データベースに対して行った初期化の回数を示す初期化カウンタの値を更新する初期化カウンタ更新手段と、
前記データベース内の前記単位記憶領域にデータが割り当てられる毎に、前記データが割り当てられた単位記憶領域に対応する前記使用管理簿内の割当フラグを割当済みに設定する割当済み設定手段と、
前記データベース内の前記単位記憶領域にデータが割り当てられる毎に、前記データが割り当てられた単位記憶領域の割当時カウンタ値に前記初期化カウンタの値を設定する割当時カウンタ値設定手段と、
を有することを特徴とするデータベースサーバ。
【０１２０】
（付記８）  データベースの単位記憶領域毎の使用の有無を使用管理簿で管理するデータベース管理方法において、
前記データベースを初期化する際に、前記使用管理簿内に設けられた前記単位記憶領域毎のデータ割当の有無を示す全ての割当フラグを未割当に設定するとともに、当該データベースに対して行った初期化の回数を示す初期化カウンタの値を更新し、
前記データベース内の前記単位記憶領域にデータが割り当てられる毎に、当該データが割り当てられた単位記憶領域に対応する前記使用管理簿内の割当フラグを割当済みに設定するとともに、当該単位記憶領域に対応する割当時カウンタ値に前記初期化カウンタの値を設定する、
ことを特徴とするデータベース管理方法。
【０１２１】
【発明の効果】
以上説明したように本発明では、初期化の際に、データベースの初期化回数を示す初期化カウンタを更新し、データを割り当てた単位記憶領域の割当時カウンタ値に、そのときの初期化カウンタの値を設定するようにした。そのため、使用管理簿の内容が壊れても、初期化カウンタの値と各単位記憶領域の割当時カウンタ値とを比較することで、単位記憶領域毎の割当の有無を判断し、使用管理簿を復旧することができる。これにより、再初期化時に物理初期化を行わなくても、使用管理簿の復旧が可能となり、データベースの初期化を非常に短時間で行うことができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に適用される発明の概念図である。
【図２】データベースシステムの構成例を示す図である。
【図３】本実施の形態に用いるデータベースサーバのハードウェア構成例を示す図である。
【図４】データベースサーバの機能ブロック図である。
【図５】データベースのデータ構造例を示す図である。
【図６】ディクショナリのデータ構造例を示す図である。
【図７】ページ管理簿のデータ構造例を示す図である。
【図８】データベース状態切換処理の手順を示すフローチャートである。
【図９】初期化処理の手順を示すフローチャートである。
【図１０】操作履歴情報蓄積処理の手順を示すフローチャートである。
【図１１】データベースの状態の切換状況を示す状態遷移図である。
【図１２】ディクショナリの状態遷移を示す図である。
【図１３】データベース再初期化時のページ管理簿の状態遷移例を示す図である。
【図１４】操作履歴情報格納時のデータベースの状態遷移例を示す図である。
【図１５】ページ管理簿復旧処理の手順を示すフローチャートである。
【図１６】ページ管理簿復旧処理を示す概念図である。
【図１７】従来のデータベースサーバ内のデータ構造を概略的に示す図である。
【符号の説明】
１  データベース
２  使用管理簿
３  初期化カウンタ
１０  ネットワーク
１００  データベースサーバ
２１０，２２０，２３０，・・・  端末装置
１１０  ディクショナリ
１２０  ページ管理簿群
１３０  データベース状態切換部
１４０  初期化部
１５０  操作履歴取得部
１６０  操作履歴蓄積部
１７０  バックアップ部
１８０  ページ管理簿復旧部
３１０，３２０，３３０  データベース
４００  バックアップ用記録媒体
【図１】
0004130076.tif 000002
【図２】
0004130076.tif 000003
【図３】
0004130076.tif 000004
【図４】
0004130076.tif 000005
【図５】
0004130076.tif 000006
【図６】
0004130076.tif 000007
【図７】
0004130076.tif 000008
【図８】
0004130076.tif 000009
【図９】
0004130076.tif 000010
【図１０】
0004130076.tif 000011
【図１１】
0004130076.tif 000012
【図１２】
0004130076.tif 000013
【図１３】
0004130076.tif 000014
【図１４】
0004130076.tif 000015
【図１５】
0004130076.tif 000016
【図１６】
0004130076.tif 000017
【図１７】
0004130076.tif 000018