JP4130076B2 - データベース管理プログラムおよび記録媒体 - Google Patents

データベース管理プログラムおよび記録媒体 Download PDF

Info

Publication number
JP4130076B2
JP4130076B2 JP2001389712A JP2001389712A JP4130076B2 JP 4130076 B2 JP4130076 B2 JP 4130076B2 JP 2001389712 A JP2001389712 A JP 2001389712A JP 2001389712 A JP2001389712 A JP 2001389712A JP 4130076 B2 JP4130076 B2 JP 4130076B2
Authority
JP
Japan
Prior art keywords
database
initialization
storage area
data
unit storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001389712A
Other languages
English (en)
Other versions
JP2003186721A (ja
Inventor
稔 山中
丞 味沢
修志 関谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001389712A priority Critical patent/JP4130076B2/ja
Priority to US10/118,147 priority patent/US7376678B2/en
Publication of JP2003186721A publication Critical patent/JP2003186721A/ja
Application granted granted Critical
Publication of JP4130076B2 publication Critical patent/JP4130076B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation

Description

【0001】
【発明の属する技術分野】
本発明はデータベース管理プログラムおよびデータベース管理プログラムを記録したコンピュータ読み取り可能な記録媒体に関し、特にデータベースの単位記憶領域毎の使用の有無を使用管理簿で管理するデータベース管理プログラムおよびそのようなデータベース管理プログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
データベース用のサーバコンピュータ(データベースサーバ)では、データに効率的にアクセスするための技術が求められている。データベースの高速アクセスを可能とする技術の1つに、ページ管理簿を用いて、データベース内の単位記憶領域であるページ毎の使用状況を管理する方法がある。
【0003】
図17は、従来のデータベースサーバ内のデータ構造を概略的に示す図である。データベースサーバ900は、データベース910、ディクショナリ920、およびページ管理簿930で構成されている。
【0004】
データベース910は、入出力のための単位記憶領域である複数のページ911〜918で構成される。個々のページ911〜918には、複数のレコードが格納される。ディクショナリ920は、データベース910の定義情報(レコードやカラム情報など)や状態(データ蓄積中やバックアップ中)を管理する。ページ管理簿930は、データベース910内の各々のページ911〜918の使用状況(割当の有無)を管理する。すなわち、ページ管理簿930には、各ページ911〜918にデータが割り当てられているか否かを示すフラグが、各ページ911〜918のページ番号に対応づけて設定されている。図17の例では、割当済みのフラグを黒丸(●)で示し、空き(未割当)のフラグを白丸(○)で示している。
【0005】
このようなデータベースサーバ900によれば、ページ管理簿930を参照することで、データベース910内のどのページが使用されていて、どのページが空いているのかを、迅速に判断することができる。その結果、データベース910のアクセスを効率的に、かつ高速に行うことが可能なる。
【0006】
ところで、上記のようなデータベースサーバ900では、運用中の入出力障害などにより、ページ管理簿930の内容が壊れる場合がある。この場合、データベース910内の全てのページを参照し、使用状況が確認される。使用状況の確認処理において、有効なデータが格納されているページは割当済みと判断され、無効なデータ(たとえば、全ての値が0のデータ)が格納されているページは空きと判断される。そして、各ページ911〜918のデータの内容の確認結果に基づいて、ページ管理簿930を復旧することができる。
【0007】
このように、ページ管理簿930の復旧処理では、空きのページに無効なデータが格納されていることが前提となっている。このため、データベース910の初期化処理においては、データベース910内の全てのページを物理的に初期化することが必須となっている。ページの物理的な初期化とは、各ページ内のデータとして無効なデータを書き込むことである。このような物理的な初期化を行っておくことで、ページ管理簿の復旧処理において、ページの使用状況を正しく判断することができる。
【0008】
【発明が解決しようとする課題】
しかし、従来のデータベースの初期化処理では、全てのページの物理的な初期化が行われるため、1つのデータベースサーバで取り扱うデータ量の増加に伴い、データベースの初期化に要する時間も増加していた。特に、最近は情報通信技術を利用した業務範囲が拡大しており、データベースサーバで扱うデータ量の増加、およびそれに伴うデータベースの大規模化が進んでいる。そのため、データベースの初期化に多大な時間を要し、データベースサーバの運用効率の悪化を招いていた。
【0009】
また、データベースサーバの運用形態の中には、オペレータの操作履歴を蓄積するものがある。たとえば、金融機関の取引システムでは、オペレータの操作履歴を逐次蓄積する必要がある。
【0010】
操作履歴を蓄積するためのデータベースサーバは、一般的に、複数のデータベースで構成される。たとえば、3つのデータベースを設け、1つのデータベースに操作履歴を蓄積している間に、他の2つのデータベースのバックアップと初期化とを行う。1つのデータベースの初期化が終了すると、そのデータベースに操作履歴の蓄積が開始される。バックアップが終了したデータベースは、次回の使用に備え再初期化が行われる。そして、それまで操作履歴を蓄積していたデータベースへのデータ蓄積を終了し、そのデータベースのバックアップが開始される。
【0011】
すなわち、操作履歴を蓄積するためのデータベースサーバでは、データ蓄積、バックアップ、再初期化といった処理を、複数のデータベースに対してサイクリックに切り換えながら継続した運用が行われる。このように複数のデータベースの切り換え運用を行う場合、次に操作履歴を蓄積することとなるデータベースの初期化が終了するまでは、操作履歴蓄積中のデータベースの記憶領域が枯渇しないようにしなければならない。
【0012】
ところが、操作履歴の発生量が多い金融業などのオンライン業務においては、この操作履歴を蓄積するデータベースの容量見積もり(バックアップと初期化時間、操作履歴の発生頻度を考慮)が困難なものとなっている。その結果、データベースの蓄積領域の枯渇を避けるため、各データベースに対して、実際に使用されるデータ容量を大きく上回る記憶容量の割り当てが必要となっている。
【0013】
このように、データベースの再初期化において物理初期化を行うことが運用効率の悪化を招くと共に、データベース肥大化の要因にもなっていた。
前述したように、再初期化において物理初期化を行うのは、ページ管理簿の復旧の際に、ページ内のデータの有効性によってデータの割り当ての有無を判断するためである。そこで、ページ内のデータの有効性を参照せずに、ページ管理簿を復旧することが出来れば、再初期化時に物理初期化を行わずにすむ。再初期化の際に物理初期化を行わなければ、データベースの規模が拡大しても、再初期化を短時間で行うことが可能である。
【0014】
本発明はこのような点に鑑みてなされたものであり、再初期化の際に物理初期化を行うことなく、単位記憶領域毎のデータの割り当ての有無を示す管理簿を復旧できるデータベース管理プログラム、およびそのデータベース管理プログラムを記録した記録媒体を提供することを目的とする。
【0015】
【課題を解決するための手段】
本発明では上記課題を解決するために、図1に示すような処理をコンピュータに実行させるデータベース管理プログラムが提供される。本発明に係るデータベース管理プログラムは、データベース1の単位記憶領域1a,1b,1c,・・・毎のデータ割当の有無を使用管理簿で管理するものである。本発明に係るデータベース管理プログラムを用いれば、コンピュータに以下の処理を実行させることができる。
【0016】
コンピュータは、データベース1を初期化する際に、使用管理簿2内に設けられた単位記憶領域1a,1b,1c,・・・毎のデータ割当の有無を示す全ての割当フラグを未割当に設定するとともに、データベース1に対して行った初期化の回数を示す初期化カウンタ3の値を更新する(S2)。さらにコンピュータは、データベース1内の単位記憶領域1a,1bにデータ4,5が割り当てられる毎に、データ4,5が割り当てられた単位記憶領域1a,1bに対応する使用管理簿2内の割当フラグを割当済みに設定するとともに、単位記憶領域1a,1bに対応する割当時カウンタ値1aa,1baに初期化カウンタ3の値を設定する(S3)。
【0017】
このようなデータベース管理プログラムによれば、初期化処理においては、使用管理簿2が初期化されるとともに、初期化カウンタ3が更新される。そして、データ割当時には、単位記憶領域1a,1bの割当時カウンタ値1aa,1baに、初期化カウンタ3の値が設定される。これにより、使用管理簿2の内容が壊れても、初期化カウンタ3の値と各単位記憶領域1a,1b,1c,・・・の割当時カウンタ値1aa,1ba,1ca,・・・とを比較することで、単位記憶領域毎の割当の有無を判断し、使用管理簿2を復旧することができる。
【0018】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、本発明の実施の形態に適用される発明の概要について説明し、その後、本発明の実施の形態の具体的な内容を説明する。
【0019】
図1は、本発明の実施の形態に適用される発明の概念図である。本発明に係るデータベース管理プログラムを実行するコンピュータは、データベースサーバとして機能する。
【0020】
[S1]再初期化前のデータベースサーバは、データベース1、使用管理簿2、および初期化カウンタ3を有している。データベース1には、単位記憶領域1a,1b,1c,・・・毎にデータが格納される。単位記憶領域1a,1b,1c,・・・は、たとえば、ページと呼ばれる記憶単位である。各単位記憶領域1a,1b,1c,・・・には、割当時カウンタ値1aa,1ba,1ca,・・・が設定されている。使用管理簿2には、単位記憶領域毎のデータ割当の有無を示す割当フラグが設定されている。初期化カウンタ3は、データベース1に対して行った初期化の回数を示す値が設定されている。
【0021】
[S2]データベース1の再初期化の際に、データベースサーバは、使用管理簿2内に設けられた単位記憶領域毎のデータ割当の有無を示す全ての割当フラグを未割当に設定する。また、データベースサーバは、再初期化の際に、初期化カウンタ3の値を更新する。
【0022】
[S3]データベースサーバは、データベース1内の単位記憶領域1a,1bにデータ4,5が割り当てられる毎に、データ4,5が割り当てられた単位記憶領域1a,1bに対応する使用管理簿2内の割当フラグを割当済みに設定する。また、データベースサーバは、単位記憶領域1a,1bに対応する割当時カウンタ値1aa,1baに初期化カウンタ3の値を設定する。
【0023】
[S4]使用管理簿2の内容が壊れ、使用管理簿2を消失した場合、データベースサーバは、データベース1内の単位記憶領域1a,1b,1c,・・・毎に設定された割当時カウンタ値1aa,1ba,1ca,・・・と、初期化カウンタ3の値とを比較する。
【0024】
[S5]そして、データベースサーバは、比較の結果、値が一致した単位記憶領域に対応する割当フラグを割当済みに設定し、値が一致しなかった単位記憶領域に対応する割当フラグを未割当に設定して、使用管理簿2を復旧する。
【0025】
このようにして、再初期化時に物理初期化を行わなくても、使用管理簿2の復旧が可能となる。再初期化処理で行われる使用管理簿2の初期化は、割当フラグの初期化のみであるため、物理初期化に比べて非常に短時間で行うことができる。その結果、データベースの規模が拡大しても、再初期化の処理時間はほとんど変わらずにすむ。その結果、データベースの初期化時間が短縮され、データベースの使用効率が向上する。
【0026】
さらに、複数のデータベースをサイクリックに切り換えて使用するシステムでは、再初期化の時間が長引くことによるデータベースの規模の拡大を抑制することができる。
【0027】
以下、オペレータの操作履歴を蓄積するデータベースサーバの例を用いて、本発明の実施の形態を具体的に説明する。
図2は、データベースシステムの構成例を示す図である。データベースシステムは、データベースサーバ100と複数の端末装置210,220,230,・・・とで構成される。データベースサーバ100と各端末装置210,220,230,・・・とは、ネットワーク10で接続されている。
【0028】
端末装置210,220,230,・・・は、オペレータによる操作内容を、ネットワーク10を介してデータベースサーバ100に送信する。
データベースサーバ100は、各端末装置210,220,230,・・・から送られる操作内容に基づいて、操作内容を示す情報(操作履歴情報)を作成する。そして、データベースサーバ100は、作成した操作履歴情報を逐次、データベースに蓄積する。
【0029】
図3は、本実施の形態に用いるデータベースサーバのハードウェア構成例を示す図である。データベースサーバ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、通信インタフェース106およびHDDインタフェース107が接続されている。
【0030】
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
【0031】
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス108を介してCPU101に送信する。
【0032】
通信インタフェース106は、ネットワーク10に接続されている。通信インタフェース106は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
【0033】
HDDインタフェース107には、データベース(DB)用の複数のHDD14〜16と、バックアップ用のストレージデバイス17とが接続されている。HDDインタフェース107は、CPU101からの命令に従って、操作履歴情報をDB用のHDD14〜16に格納する。また、HDDインタフェース107は、CPU101からの命令に従って、HDD14〜16に格納された操作履歴情報を、バックアップ用のストレージデバイス17に転送する。なお、バックアップ用のストレージデバイス17は、たとえば磁気テープドライブのような、可搬型の記録媒体にデータを格納可能な装置である。
【0034】
以上のようなハードウェア構成によって、本実施の形態に係るデータベースサーバ100の処理機能を実現することができる。
図4は、データベースサーバの機能ブロック図である。データベースサーバ100は、複数のDB310,320,330とバックアップ用記録媒体400とに対して、アクセス可能に接続されている。DB310は、HDD14内の記憶領域である。DB320は、HDD15内の記憶領域である。DB330は、HDD15内の記憶領域である。バックアップ用記録媒体400は、ストレージデバイス17に挿入された可搬型の記録媒体である。
【0035】
データベースサーバ100は、ディクショナリ110、ページ管理簿群120、データベース状態切換部130、初期化部140、操作履歴取得部150、操作履歴蓄積部160、バックアップ部170、およびページ管理簿復旧部180を有している。
【0036】
ディクショナリ110は、データベース310、320,330の定義情報(レコードやカラム情報など)や使用状態(データ蓄積中やバックアップ中)に加え、初期化状態、初期化カウンタを管理する。初期化状態は、物理初期化前(データ構造の定義直後)か、初期化直後か、操作履歴情報格納直後かを示す情報である。初期化カウンタは、各データベース310,320,330の初期化の回数を示す情報である。初期化カウンタは、最初の初期化(物理初期化)が行われた際に「0000」が設定され、その後、再初期化が行われる毎に、1ずつカウントアップされる。
【0037】
ページ管理簿群120は、データベース310,320,330内の各々のページ(データの単位格納領域)の使用状況を管理する。具体的には、ページ管理簿群120には、操作履歴情報の蓄積対象とされたデータベース内の各ページに関して、操作履歴情報が割り当てられたか否かを示すフラグ(割当フラグ)が設定される。
【0038】
データベース状態切換部130は、データベース310,320,330の使用状態切換を制御する。すなわち、データベース状態切換部130は、データベース310,320,330の使用状態を、操作履歴情報の蓄積、バックアップ、および初期化の各処理対象として、サイクリックに切り替える。
【0039】
具体的には、データベース状態切換部130は、データベース310,320,330の構造を定義し、ディクショナリ110に対して、各データベース310,320,330がデータ構造の定義直後であることを示す情報を設定する。なお、データ構造の定義直後のデータベースは、ディクショナリ110から割り当て領域がポイントされている状態であり、内部データの初期化は行われていない。そして、データベース状態切換部130は、各データベースへの処理が所定の順番で繰り返されるように、初期化するデータベース、操作履歴情報を蓄積するデータベース、バックアップ対象とするデータベースを適宜選択する。
【0040】
その後、データベース状態切換部130は、初期化するデータベースの識別情報を含む初期化要求を、初期化部140に通知する。また、データベース状態切換部130は、操作履歴情報を蓄積するデータベースの識別情報を含む操作履歴蓄積要求を、操作履歴蓄積部160に通知する。さらに、データベース状態切換部130は、バックアップ対象とするデータベースの識別情報を含むバックアップ要求を、バックアップ部170に通知する。
【0041】
初期化部140は、データベース状態切換部130からの初期化要求を受けて、初期化要求で指定されたデータベースの初期化処理を行う。初期化処理には、物理初期化処理と、再初期化処理とがある。物理初期化処理は、データベースの記憶領域を構造定義に従って区分けするとともに、区分けされた各記憶領域に無意味なデータを書き込む処理である。再初期化処理は、初期化対象のデータベースに関するページ管理簿群120内のページ管理簿を初期化する処理である。ページ管理簿の初期化とは、全てのページに対応する割当フラグを、空き(未割当)の状態に設定することである。
【0042】
操作履歴取得部150は、ネットワーク10を介して端末装置210,220,230,・・・から送られてくるオペレータの操作内容に関する情報を取得する。次に、操作履歴取得部150は、取得した情報に時刻情報などの所定の管理情報を付加して、操作履歴情報を生成する。そして、操作履歴取得部150は、生成した操作履歴情報を操作履歴蓄積部160に渡す。
【0043】
操作履歴蓄積部160は、データベース状態切換部130からの操作履歴情報蓄積要求を受けて、操作履歴情報蓄積要求で指定されたデータベースを、操作履歴情報の蓄積対象として特定する。そして、操作履歴蓄積部160は、操作履歴取得部150から取得した操作履歴情報を、蓄積対象として特定されたデータベースに対して格納する。
【0044】
なお、操作履歴蓄積部160は、新たな操作履歴情報を格納する際には、ページ管理簿群120の内容を参照し、データベース内の空きのページを確認する。そして、操作履歴蓄積部160は、空きページに対して操作履歴情報を格納する。空きのページに操作履歴情報を格納した場合には、操作履歴蓄積部160は、ページ管理簿群120内の該当ページに対応する割当フラグに対して、そのページが割当済みであることを示す情報を設定する。
【0045】
バックアップ部170は、データベース状態切換部130からのバックアップ要求を受けて、バックアップ要求で指定されたデータベース内の操作履歴情報のバックアップデータを、バックアップ用記録媒体400に格納する。なお、バックアップデータは、操作履歴情報のデータそのままのコピーであってもよいし、データ圧縮された1つのファイルであってもよい。
【0046】
ページ管理簿復旧部180は、データベースサーバ100の管理者の操作入力などに基づくページ管理簿復旧要求を受け取ると、ディクショナリ110とデータベース310,320,330との内容を参照して、ページ管理簿群120を生成する。なお、ページ管理簿復旧要求は、ページ管理簿群120の内容が壊れた際に出される。
【0047】
具体的には、ページ管理簿復旧部180は、ディクショナリ110に設定されている各データベース310,320,330に対応する初期化カウンタの値と、データベース310,320,330内の各ページの割当時カウンタ値とを比較する。比較の結果に基づき、ページ管理簿復旧部180は、初期化カウンタの値と割当時カウンタ値が一致したページを、データが割り当てられたページ(データが有効なページ)と判断する。また、ページ管理簿復旧部180は、初期化カウンタの値と割当時カウンタ値が一致しないページを、空きページ(データが無効なページ)と判断する。そして、ページ管理簿復旧部180は、データベース毎の各ページの使用の有無に基づき、ページ管理簿群120を生成する。
【0048】
図5は、データベースのデータ構造例を示す図である。データベース310には、操作履歴情報がページ311〜318,・・・単位で格納されている。各ページ311〜318,・・・には、識別番号(ページ番号)が設定されている。また、各ページ311〜318,・・・には、割当時カウンタ値321〜328,・・・が含まれている。割当時カウンタ値321〜328,・・・には、各ページに操作履歴情報が割り当てられた際に、データベース310に対応づけて設定されている初期化カウンタの値が設定される。
【0049】
図5の例は、データベース310の初期化が2回行われ、その後、操作履歴情報が蓄積されたときの状態を示している。図5中、最後(2回目)の初期化後に操作履歴情報が蓄積されたページを、網掛けで示している。たとえば、ページ番号1、2,4,5,7の各ページ311,312,314,315,317には、最後の初期化後に、操作履歴情報が格納されている。
【0050】
最後の初期化後に操作履歴情報が格納されたページ311,312,314,315,317の割当時カウンタ値321,322,324,325,327には、初期化が2回行われたことを示す値「0001」が設定されている。最後の初期化後に操作履歴情報が格納されていないページ313,316,318の割当時カウンタ値323,326,328には、初期化が1回行われたことを示す値「0000」が設定されている。
【0051】
図6は、ディクショナリのデータ構造例を示す図である。ディクショナリ110には、データベース(BD)番号、初期化状態、および初期化カウンタなどの欄が設けられている。各欄の横方向に並べられた情報同士が互いに関連づけられている。
【0052】
データベース番号の欄には、各データベース310,320,330の識別番号(データベース番号)が設定されている。データベース310のデータベース番号は「DB#1」であり、データベース320のデータベース番号は「DB#2」であり、データベース330のデータベース番号は「DB#3」である。
【0053】
状態の欄には、各データベース310,320,330の初期化状態が設定されている。初期化状態が物理初期化前(データ構造の定義直後)の場合、状態の欄に「NON」が設定される。初期化状態が初期化後(操作履歴情報格納前)の場合、状態の欄に「INT」が設定される。初期化状態が操作履歴情報格納後(再初期化前)の場合、状態の欄に「ACT」が設定される。
【0054】
初期化カウンタの欄には、各データベースの初期化の回数を表す数値(初期化カウンタ)が設定される。初期化カウンタの値は、物理初期化が行われた際に「0000」に設定され、その後、再初期化が行われる毎に1ずつカウントアップされる。
【0055】
図6の例では、データベース番号「DB#1」のデータベース310は、操作履歴情報格納直後の状態であり、物理初期化が1回行われている。データベース番号「DB#2」のデータベース320は、初期化直後の状態であり、物理初期化が1回行われている。データベース番号「DB#3」のデータベース330は、データ構造定義直後の状態であり、初期化は行われていない。
【0056】
図7は、ページ管理簿群のデータ構造例を示す図である。ページ管理簿群120には、各データベース310,320,330に対応づけて、ページ管理簿121〜123が設けられている。ページ管理簿121は、データベース番号「DB#1」のデータベース310に対応する。ページ管理簿122は、データベース番号「DB#2」のデータベース320に対応する。ページ管理簿123は、データベース番号「DB#3」のデータベース330に対応する。
【0057】
ページ管理簿121〜123には、対応するデータベース310,320,330内のページ毎に、そのページのページ番号に対応付けて、使用の有無を示すフラグ(割当フラグ)が設定されている。図7の例では、割当済みを示す情報を黒丸(●)で示し、空きを示す情報を白丸(○)で示している。実際には、割当済みを示す情報は、たとえば「11」である。また、空きを示す情報は、たとえば、「00」である。
【0058】
たとえば、データベース番号「DB#1」のデータベース310に対応するページ管理簿121では、ページ番号#1、#2,#4,#5,#7のページが割当済みであり、ページ番号#3、#6,#8のページが空きである。
【0059】
以上のような構成およびデータ構造のデータベースサーバ100によって、操作履歴情報の蓄積が行われる。
以下、データベースサーバ100で実行される処理の詳細について説明する。まず、データベース310,320,330の状態の切換処理について説明する。
【0060】
図8は、データベース状態切換処理の手順を示すフローチャートである。以下、図8に示す処理をステップ番号に沿って説明する。なお、操作履歴情報蓄積処理は、データベースサーバ100が起動された後、または、操作入力などにより操作履歴情報の蓄積機能の実効命令が出されたときに、処理が開始される。
【0061】
[ステップS11]データベース状態切換部130は、全てのデータベース31,320,330に対して、操作履歴情報を蓄積するためのデータ構造を定義する。構造定義の内容は、初期化部140に渡される。そして、データベース状態切換部130は、ディクショナリ110内の状態の欄に、各データベース310,320,330に対応づけて、構造定義直後であることを示す情報「NON」を設定する。
【0062】
[ステップS12]データベース状態切換部130は、各データベース310,320,330の初期状態を設定する。具体的には、データベース状態切換部130は、操作対象履歴情報の蓄積を最初に行うデータベースを初期化対象として設定する。
【0063】
[ステップS13]データベース状態切換部130は、初期化対象として設定されたデータベースを指定した初期化要求を、初期化部140に対して出力する。
【0064】
[ステップS14]データベース状態切換部130は、操作履歴情報蓄積対象として設定したデータベースを指定した操作履歴情報蓄積要求を、操作履歴蓄積部160に出力する。なお、データベース状態切換処理の開始直後で、初期化の完了したデータベースがない場合には、ステップS14の処理はスキップする。
【0065】
[ステップS15]データベース状態切換部130は、バックアップ対象として設定されたデータベースを指定したバックアップ要求を、バックアップ部170に対して出力する。なお、データベース状態切換処理の開始直後で、まだ操作履歴情報の蓄積処理が行われていない場合には、ステップS15の処理はスキップする。
【0066】
[ステップS16]データベース状態切換部130は、データベースの状態切換時期か否かを判断する。たとえば、次に操作履歴情報の蓄積対象とすべきデータベースの初期化が終了したときを、データベースの状態切換時期とすることができる。また、所定時間間隔でデータベースの状態を切り換えるようにしてもよい(次に操作履歴情報の蓄積対象とすべきデータベースが初期化済みであることが必要)。
【0067】
データベースの状態切換時期であれば、処理がステップS17に進められる。データベースの状態切換時期でなければ、処理がステップS18に進められる。[ステップS17]データベース状態切換部130は、各データベースの状態を変更する。具体的には、データベース状態切換部130は、初期化されたデータベースを操作履歴情報の蓄積対象に設定し、操作履歴情報蓄積要求を操作履歴蓄積部160に渡す。また、データベース状態切換部130は、操作履歴情報が蓄積されたデータベースをバックアップ対象に設定し、バックアップされたデータベースを初期化対象に設定する。その後、処理がステップS13に進められる。これにより、ステップS13〜S16において、変更後の状態に従った処理要求が、初期化部140、操作履歴蓄積部160、およびバックアップ部170に出力される。
【0068】
[ステップS18]データベース状態切換部130は、操作履歴情報の蓄積処理が終了か否かを判断する。たとえば、データベース状態切換部130は、操作履歴情報の蓄積終了を示す操作入力が行われた際に、操作履歴情報の蓄積終了であると判断する。操作履歴情報蓄積が終了であれば、図8の処理が終了し、そうでなければ、処理がステップS16に進められる。
【0069】
図9は、初期化処理の手順を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。なお、初期化処理は、データベース状態切換部130から、初期化対象のデータベースを指定した初期化要求が出力された際に、初期化部140で実行される。
【0070】
[ステップS21]初期化部140は、初期化要求で指定されたデータベースを、初期化対象として選択する。
[ステップS22]初期化部140は、ディクショナリ110を参照し、選択したデータベースがデータ構造を定義直後(初期化前)か否かを判断する。具体的には、ディクショナリ110において、選択したデータベースの初期化状態として「NON」が設定されていれば、定義直後である。初期化状態が定義直後であれば、処理がステップS23に進められる。初期化状態が定義直後でなければ、処理がステップS24に進められる。
【0071】
[ステップS23]初期化部140は、選択したデータベースの物理初期化を行う。その後、処理がステップS25に進められる。
[ステップS24]初期化部140は、選択したデータベースの再初期化を行う。
【0072】
[ステップS25]初期化部140は、選択したデータベースに対応するディクショナリ110内の初期化カウンタを更新する。すなわち、初期化部140は、物理初期化後であれば初期化カウンタに「0000」を設定し、再初期化後であれば、初期化カウンタの値に1を加算する。
【0073】
[ステップS26]初期化部140は、ディクショナリ110内の選択したデータベースに対応する初期化状態の欄に、初期化直後を示す情報(INT)を設定する。その後、初期化処理が終了する。
【0074】
図10は、操作履歴情報蓄積処理の手順を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。なお、操作履歴情報蓄積処理は、データベース状態切換部130から、操作履歴情報蓄積対象のデータベースを指定した操作履歴情報蓄積要求が出力された際に、操作履歴蓄積部160で実行される。
【0075】
[ステップS31]操作履歴蓄積部160は、操作履歴情報蓄積要求で指定されたデータベースを、操作履歴情報の蓄積対象として選択する。
[ステップS32]操作履歴蓄積部160は、ディクショナリ110内の選択したデータベースに対応する初期化状態の欄に、操作履歴情報格納直後であることを示す情報(ACT)を設定する。
【0076】
[ステップS33]操作履歴蓄積部160は、操作履歴情報を操作履歴取得部150から取得したか否かを判断する。操作履歴情報を取得した場合には、処理がステップS34に進められる。操作履歴情報を取得していない場合には、処理がステップS39に進められる。
【0077】
[ステップS34]操作履歴蓄積部160は、ページ管理簿群120を参照し、選択したデータベース内の空きページのページ番号を確認する。そして、操作履歴蓄積部160は、空きページの1つを履歴蓄積ページとし、取得した操作履歴情報を割り当てる。
【0078】
[ステップS35]操作履歴蓄積部160は、ディクショナリ110内の選択したデータベースに対応する初期化カウンタの値を取得する。
[ステップS36]操作履歴蓄積部160は、履歴蓄積ページの割当時カウンタ値として、ディクショナリ110から取得した初期化カウンタの値を設定する。
【0079】
[ステップS37]操作履歴蓄積部160は、操作履歴取得部150から取得した操作履歴情報を、履歴蓄積ページに格納する。
[ステップS38]操作履歴蓄積部160は、ページ管理簿群120を更新する。具体的には、操作履歴蓄積部160は、ページ管理簿群120内の履歴蓄積ページに対応する割当フラグを、割当済みに設定する。
【0080】
[ステップS39]操作履歴蓄積部160は、指定されたデータベースへの操作履歴情報蓄積が終了か否かを判断する。指定されたデータベースへの操作履歴情報蓄積が終了する場合とは、たとえばデータベースの状態が切り替えられ、他のデータベースが操作履歴情報の蓄積対象となった場合や、操作履歴情報蓄積処理の終了を示す操作入力があった場合である。
【0081】
指定されたデータベースへの操作履歴情報蓄積終了であれば、図10に示す処理が終了し、そうでなければ、処理がステップS33に進められる。
以上のような処理がデータベースサーバ100で実行されることにより、複数のデータベース310,320,330に対して、操作履歴情報が順次蓄積される。
【0082】
図11は、データベースの状態の切換状況を示す状態遷移図である。本実施の形態では、データベースサーバ100における操作履歴情報の蓄積処理は、3つの状態を順番に繰り返すことで実行される。なお、状態の切換は、データベース状態切換部130で制御されている。
【0083】
第1の状態ST1では、操作履歴情報の蓄積対処はデータベース310であり、操作履歴蓄積部160によって、操作履歴取得部150で生成された操作履歴情報がデータベース310に格納される。初期化対象はデータベース320であり、初期化部140によってデータベース320の初期化が行われる。バックアップ対象はデータベース330であり、バックアップ部170によって、データベース330に格納された操作履歴情報がバックアップ用記録媒体400にバックアップされる。
【0084】
各データベース310,320,330に対する処理完了後、第1の状態ST1から第2の状態ST2に遷移する。
第2の状態ST2では、操作履歴情報の蓄積対処はデータベース320であり、操作履歴蓄積部160によって、操作履歴取得部150で生成された操作履歴情報がデータベース320に格納される。初期化対象はデータベース330であり、初期化部140によってデータベース330の初期化が行われる。バックアップ対象はデータベース310であり、バックアップ部170によって、データベース310に格納された操作履歴情報がバックアップ用記録媒体400にバックアップされる。
【0085】
各データベース310,320,330に対する処理完了後、第2の状態ST2から第3の状態ST3に遷移する。
第3の状態ST3では、操作履歴情報の蓄積対処はデータベース330であり、操作履歴蓄積部160によって、操作履歴取得部150で生成された操作履歴情報がデータベース330に格納される。初期化対象はデータベース310であり、初期化部140によってデータベース310の初期化が行われる。バックアップ対象はデータベース320であり、バックアップ部170によって、データベース320に格納された操作履歴情報がバックアップ用記録媒体400にバックアップされる。
【0086】
各データベース310,320,330に対する処理完了後、第3の状態ST3から第1の状態ST1に遷移する。
このように、第1の状態ST1、第2の状態ST2、第3の状態ST3をサイクリックに繰り返すことで、各データベース310,320,330に対して、操作履歴情報の蓄積、バックアップ、および初期化の処理を、繰り返し実行することができる。しかも、常に操作履歴情報の蓄積対象とするデータベースを用意しておくことができ、継続して操作履歴情報の蓄積が可能となる。
【0087】
図12は、ディクショナリの状態遷移を示す図である。ディクショナリ110は、データベース310,320,330の状態が遷移する毎にデータベース310,320,330が順次初期化され、初期化状態の欄が更新される。また、データベース310,320,330の初期化が行われる毎に、初期化カウンタの欄の対応する初期化カウンタが更新される。
【0088】
データ構造の定義直後は、各データベースの初期化状態が定義直後「NON」である(ST11)。
データベース番号「DB#1」のデータベース310が初期化されると、データベース310の初期化状態が初期化直後「INT」となり、初期化カウンタの値が「0000」となる(ST12)。
【0089】
次に、データベース番号「DB#1」のデータベース310に操作履歴情報が格納され、データベース番号「DB#2」のデータベース320が初期化される。すると、データベース310の初期化状態が操作履歴情報格納後「ACT」となるとともに、データベース320の初期化状態が初期化直後「INT」となり、初期化カウンタの値が「0000」となる。(ST13)。
【0090】
次に、データベース番号「DB#2」のデータベース320に操作履歴情報が格納され、データベース番号「DB#3」のデータベース330が初期化される。すると、データベース320の初期化状態が操作履歴情報格納後「ACT」となるとともに、データベース330の初期化状態が初期化直後「INT」となり、初期化カウンタの値が「0000」となる。(ST14)。
【0091】
次に、データベース番号「DB#3」のデータベース330に操作履歴情報が格納され、データベース番号「DB#1」のデータベース310が初期化される。すると、データベース330の初期化状態が操作履歴情報格納後「ACT」となるとともに、データベース310の初期化状態が初期化直後「INT」となり、初期化カウンタの値が「0001」となる。(ST15)。
【0092】
このように、各データベースの状態が切り替わる毎に、ディクショナリ110の内容が更新される。初期化カウンタの値は、初期化される毎に1ずつカウントアップされる。
【0093】
また、データベースの2回目以降の初期化処理は、再初期化処理となる。再初期化が行われた際には、そのデータベースの内容は変わらないが、そのデータベースに対応するページ管理簿の内容が初期化される。
【0094】
図13は、データベース再初期化時のページ管理簿の状態遷移例を示す図である。たとえば、データベース番号「DB#1」のデータベース310が再初期化されると、ページ管理簿121内の各ページに対応するフラグに、空きを示す情報(○)が設定される。
【0095】
その後、データベース310内のページに操作履歴情報が格納される毎に、そのページに対応するフラグに、割当済みを示す情報(●)が設定される。その際、操作履歴情報が格納されたページの割当時カウンタ値として、データベース310に対応する初期化カウンタの値が設定される。
【0096】
図14は、操作履歴情報格納時のデータベースの状態遷移例を示す図である。図14の例では、データベース番号「DB#1」のデータベース310内のページ番号「#3」のページ313に操作履歴情報を格納したときのデータベース310、およびデータベース310に対応するページ管理簿121の状態遷移を示している。なお、この例では、ディクショナリ110において、データベース310に対応する初期化カウンタに「0001」が設定されている。すなわち、データベース310の初期化処理が2回(物理初期化1回、再初期化1回)行われている。
【0097】
ページ313に操作履歴情報が割り当てられ、その操作履歴情報が格納されると、ディクショナリ110内でデータベース310に対応づけられた初期化カウンタの値「0001」が、ページ313の割当時カウンタ値323に設定される。同時に、データベース310に対応するページ管理簿121内のページ番号「#3」に対応する割当フラグに、割当済みを示す情報(●)が設定される。
【0098】
このように、データベース310,320,330内の各ページに、対応するデータベースの初期化回数を示す情報を付与することで、ページ管理簿121〜123の内容が壊れても、迅速にページ管理簿121〜123を復旧することができる。
【0099】
図15は、ページ管理簿復旧処理の手順を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。なお、図15に示す処理は、ページ管理簿が壊れた際に、ページ管理簿復旧部180で実行される。
【0100】
[ステップS51]ページ管理簿復旧部180は、ページ管理簿の復旧処理を行っていないデータベースを1つ選択する。
[ステップS52]ページ管理簿復旧部180は、選択したデータベースに対応づけて、初期状態のページ管理簿を生成する。初期状態のページ管理簿には、データベース内の各ページに対応する割当フラグの設定領域が設けられている。
【0101】
[ステップS53]ページ管理簿復旧部180は、選択したデータベースから未選択のページを1つ選択する。
[ステップS54]ページ管理簿復旧部180は、ディクショナリ110において、選択したデータベースに対応づけて設定されている初期化カウンタの値と、選択したページに設定されている割当時カウンタ値とを比較する。
【0102】
[ステップS55]ページ管理簿復旧部180は、初期化カウンタの値と割当時カウンタ値との比較の結果、値が一致したが否かを判断する。値が一致した場合には、処理がステップS56に進められる。値が一致しなかった場合には、処理がステップS57に進められる。
【0103】
[ステップS56]ページ管理簿復旧部180は、ページ管理簿121内の選択したページの割当フラグに、割当済みであることを示す情報を登録する。その後、処理がステップS58に進められる。
【0104】
[ステップS57]ページ管理簿復旧部180は、ページ管理簿121内の選択したページの割当フラグに、空き(未割当)であることを示す情報を登録する。
【0105】
[ステップS58]ページ管理簿復旧部180は、他の未処理のページがあるか否かを判断する。他の未処理のページがある場合には、処理がステップS53に進められる。他の未処理のページがない場合には、処理がステップS59に進められる。
【0106】
[ステップS59]ページ管理簿復旧部180は、他の未処理のデータベースがあるか否かを判断する。他の未処理のデータベースがある場合には、処理がステップS51に進められる。他の未処理のデータベースがない場合には、処理が終了する。
【0107】
このようにして、各データベース310,320,330に対応するページ管理簿121〜123を復旧させることができる。
図16は、ページ管理簿復旧処理を示す概念図である。図16には、データベース310のページ管理簿121を復旧する処理が示されている。この例では、ディクショナリ110のデータベース番号「BD#1」に対応する初期化カウンタに「0001」の値が設定されている。その初期化カウンタとの値「0001」とデータベース310の各ページ311〜318,・・・に設定された割当時カウンタ値321〜328,・・・の値とが比較される。値が一致していれば割当済みのページであり、値が不一致であれば空きのページである。初期化カウンタの値と割当時カウンタ値との比較結果に基づいて、ページ管理簿121が再生される。値が一致したページのページ番号に対応づけて割当済みの割当フラグ(●)が設定され、値が一致しないページのページ番号に対応づけて空きの割当フラグ(○)が設定されている。
【0108】
このように、各ページが使用された際に、その時点でのデータベースの初期化回数を示す情報をページに設定しておくことで、ページ管理簿が壊れても容易に復旧することができる。その結果、データベースの2回目以降の初期化の際には、物理初期化を行わずにすみ、初期化処理を短時間で行うことができる。
【0109】
しかも、ページ管理簿はページ毎の割当フラグが設定されているだけであるため、データベースの規模が拡大しても、再初期化の際のページ管理簿の初期化処理時間には、ほとんど影響を及ぼさない。すなわち、データベースの容量に依存することなく、ほぼ一定でかつ高速にデータベースの初期化を行うことが出来る。これにより、運用上の操作性が向上するとともに、操作履歴を蓄積するような形態のデータベースシステムにおいて、データベース容量の削減が可能となる。
【0110】
なお、上記の処理機能は、コンピュータで実行可能なプログラムに定義される。その場合、データベースサーバが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
【0111】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0112】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0113】
(付記1) データベースの単位記憶領域毎のデータ割当の有無を使用管理簿で管理するデータベース管理プログラムにおいて、
コンピュータに、
前記データベースを初期化する際に、前記使用管理簿内に設けられた前記単位記憶領域毎のデータ割当の有無を示す全ての割当フラグを未割当に設定するとともに、当該データベースに対して行った初期化の回数を示す初期化カウンタの値を更新し、
前記データベース内の前記単位記憶領域にデータが割り当てられる毎に、当該データが割り当てられた単位記憶領域に対応する前記使用管理簿内の割当フラグを割当済みに設定するとともに、当該単位記憶領域に対応する割当時カウンタ値に前記初期化カウンタの値を設定する、
処理を実行させることを特徴とするデータベース管理プログラム。
【0114】
(付記2) 前記使用管理簿の内容が壊れた場合、前記データベース内の前記単位記憶領域毎に設定された前記割当時カウンタ値と、前記初期化カウンタの値とを比較し、
比較の結果、値が一致した単位記憶領域に対応する割当フラグを割当済みに設定し、値が一致しなかった単位記憶領域に対応する割当フラグを未割当に設定して、前記使用管理簿を復旧する、
処理をさらに実行させることを特徴とする付記1記載のデータベース管理プログラム。
【0115】
(付記3) 前記データベースを初期化する際に、前記データベースの物理初期化前か否かを判断し、物理初期化前の場合にのみ、前記データベースの物理初期化を行うことを特徴とする付記1記載のデータベース管理プログラム。
【0116】
(付記4) 前記データベースの初期化状態を表す状態フラグを設け、前記データベースのデータ構造を定義した際に、前記状態フラグを構造定義直後に設定し、
前記データベースを初期化する際に、前記状態フラグが構造定義直後であれば、当該データベースが物理初期化前であると判断して当該データベースの物理初期化を行い、初期化終了後に前記状態フラグを初期化直後に設定することを特徴とする付記3記載のデータベース管理プログラム。
【0117】
(付記5) データ格納対象を切り換えながら複数の前記データベースに対して順次データを格納しており、データ格納が終了したデータベースに関して、他のデータベースにデータを格納している間に、データのバックアップおよび初期化処理を行うことを特徴とする付記1記載のデータベース管理プログラム。
【0118】
(付記6) データベースの単位記憶領域毎の使用の有無を使用管理簿で管理するデータベース管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
前記データベースを初期化する際に、前記使用管理簿内に設けられた前記単位記憶領域毎のデータ割当の有無を示す全ての割当フラグを未割当に設定するとともに、当該データベースに対して行った初期化の回数を示す初期化カウンタの値を更新し、
前記データベース内の前記単位記憶領域にデータが割り当てられる毎に、当該データが割り当てられた単位記憶領域に対応する前記使用管理簿内の割当フラグを割当済みに設定するとともに、当該単位記憶領域に対応する割当時カウンタ値に前記初期化カウンタの値を設定する、
処理を実行させることを特徴とする記録媒体。
【0119】
(付記7) データベースの単位記憶領域毎の使用の有無を使用管理簿で管理するデータベースサーバにおいて、
前記データベースを初期化する際に、前記使用管理簿内に設けられた前記単位記憶領域毎の全ての割当フラグを未割当に設定する未割当フラグ設定手段と、
前記データベースを初期化する際に、前記データベースに対して行った初期化の回数を示す初期化カウンタの値を更新する初期化カウンタ更新手段と、
前記データベース内の前記単位記憶領域にデータが割り当てられる毎に、前記データが割り当てられた単位記憶領域に対応する前記使用管理簿内の割当フラグを割当済みに設定する割当済み設定手段と、
前記データベース内の前記単位記憶領域にデータが割り当てられる毎に、前記データが割り当てられた単位記憶領域の割当時カウンタ値に前記初期化カウンタの値を設定する割当時カウンタ値設定手段と、
を有することを特徴とするデータベースサーバ。
【0120】
(付記8) データベースの単位記憶領域毎の使用の有無を使用管理簿で管理するデータベース管理方法において、
前記データベースを初期化する際に、前記使用管理簿内に設けられた前記単位記憶領域毎のデータ割当の有無を示す全ての割当フラグを未割当に設定するとともに、当該データベースに対して行った初期化の回数を示す初期化カウンタの値を更新し、
前記データベース内の前記単位記憶領域にデータが割り当てられる毎に、当該データが割り当てられた単位記憶領域に対応する前記使用管理簿内の割当フラグを割当済みに設定するとともに、当該単位記憶領域に対応する割当時カウンタ値に前記初期化カウンタの値を設定する、
ことを特徴とするデータベース管理方法。
【0121】
【発明の効果】
以上説明したように本発明では、初期化の際に、データベースの初期化回数を示す初期化カウンタを更新し、データを割り当てた単位記憶領域の割当時カウンタ値に、そのときの初期化カウンタの値を設定するようにした。そのため、使用管理簿の内容が壊れても、初期化カウンタの値と各単位記憶領域の割当時カウンタ値とを比較することで、単位記憶領域毎の割当の有無を判断し、使用管理簿を復旧することができる。これにより、再初期化時に物理初期化を行わなくても、使用管理簿の復旧が可能となり、データベースの初期化を非常に短時間で行うことができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に適用される発明の概念図である。
【図2】データベースシステムの構成例を示す図である。
【図3】本実施の形態に用いるデータベースサーバのハードウェア構成例を示す図である。
【図4】データベースサーバの機能ブロック図である。
【図5】データベースのデータ構造例を示す図である。
【図6】ディクショナリのデータ構造例を示す図である。
【図7】ページ管理簿のデータ構造例を示す図である。
【図8】データベース状態切換処理の手順を示すフローチャートである。
【図9】初期化処理の手順を示すフローチャートである。
【図10】操作履歴情報蓄積処理の手順を示すフローチャートである。
【図11】データベースの状態の切換状況を示す状態遷移図である。
【図12】ディクショナリの状態遷移を示す図である。
【図13】データベース再初期化時のページ管理簿の状態遷移例を示す図である。
【図14】操作履歴情報格納時のデータベースの状態遷移例を示す図である。
【図15】ページ管理簿復旧処理の手順を示すフローチャートである。
【図16】ページ管理簿復旧処理を示す概念図である。
【図17】従来のデータベースサーバ内のデータ構造を概略的に示す図である。
【符号の説明】
1 データベース
2 使用管理簿
3 初期化カウンタ
10 ネットワーク
100 データベースサーバ
210,220,230,・・・ 端末装置
110 ディクショナリ
120 ページ管理簿群
130 データベース状態切換部
140 初期化部
150 操作履歴取得部
160 操作履歴蓄積部
170 バックアップ部
180 ページ管理簿復旧部
310,320,330 データベース
400 バックアップ用記録媒体

Claims (5)

  1. データベースの単位記憶領域毎のデータ割当の有無を使用管理簿で管理するデータベース管理プログラムにおいて、
    コンピュータに、
    前記使用管理簿とは別に、前記データベースに対して行った初期化の回数を示す初期化カウンタと、前記データベース内の前記単位記憶領域に対応付けて設けられた割当時カウンタ値とを設け、
    前記データベースを初期化する際に、前記使用管理簿内に設けられた前記単位記憶領域毎のデータ割当の有無を示す全ての割当フラグを未割当に設定するとともに、前記初期化カウンタの値を更新し、
    前記データベース内の前記単位記憶領域にデータが割り当てられる毎に、当該データが割り当てられた単位記憶領域に対応する前記使用管理簿内の割当フラグを割当済みに設定するとともに、当該単位記憶領域に対応する前記割当時カウンタ値に前記初期化カウンタの値を設定する、
    処理を実行させることを特徴とするデータベース管理プログラム。
  2. 前記使用管理簿の内容が壊れた場合、前記データベース内の前記単位記憶領域毎に設定された前記割当時カウンタ値と、前記初期化カウンタの値とを比較し、
    比較の結果、値が一致した単位記憶領域に対応する割当フラグを割当済みに設定し、値が一致しなかった単位記憶領域に対応する割当フラグを未割当に設定して、前記使用管理簿を復旧する、
    処理をさらに実行させることを特徴とする請求項1記載のデータベース管理プログラム。
  3. 前記データベースを初期化する際に、前記データベースの物理初期化前か否かを判断し、物理初期化前の場合にのみ、前記データベースの物理初期化を行うことを特徴とする請求項1記載のデータベース管理プログラム。
  4. データ格納対象を切り換えながら複数の前記データベースに対して順次データを格納しており、データ格納が終了したデータベースに関して、他のデータベースにデータを格納している間に、データのバックアップおよび初期化処理を行うことを特徴とする請求項1記載のデータベース管理プログラム。
  5. データベースの単位記憶領域毎の使用の有無を使用管理簿で管理するデータベース管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
    前記コンピュータに、
    前記使用管理簿とは別に、前記データベースに対して行った初期化の回数を示す初期化カウンタと、前記データベース内の前記単位記憶領域に対応付けて設けられた割当時カウンタ値とを設け、
    前記データベースを初期化する際に、前記使用管理簿内に設けられた前記単位記憶領域毎のデータ割当の有無を示す全ての割当フラグを未割当に設定するとともに、前記初期化カウンタの値を更新し、
    前記データベース内の前記単位記憶領域にデータが割り当てられる毎に、当該データが割り当てられた単位記憶領域に対応する前記使用管理簿内の割当フラグを割当済みに設定するとともに、当該単位記憶領域に対応する前記割当時カウンタ値に前記初期化カウンタの値を設定する、
    処理を実行させることを特徴とするデータベース管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2001389712A 2001-12-21 2001-12-21 データベース管理プログラムおよび記録媒体 Expired - Fee Related JP4130076B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001389712A JP4130076B2 (ja) 2001-12-21 2001-12-21 データベース管理プログラムおよび記録媒体
US10/118,147 US7376678B2 (en) 2001-12-21 2002-04-09 Database management program and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001389712A JP4130076B2 (ja) 2001-12-21 2001-12-21 データベース管理プログラムおよび記録媒体

Publications (2)

Publication Number Publication Date
JP2003186721A JP2003186721A (ja) 2003-07-04
JP4130076B2 true JP4130076B2 (ja) 2008-08-06

Family

ID=19188285

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001389712A Expired - Fee Related JP4130076B2 (ja) 2001-12-21 2001-12-21 データベース管理プログラムおよび記録媒体

Country Status (2)

Country Link
US (1) US7376678B2 (ja)
JP (1) JP4130076B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8655853B2 (en) * 2004-10-01 2014-02-18 Sap Ag System and method for optimizing database transaction termination
JP4927408B2 (ja) 2006-01-25 2012-05-09 株式会社日立製作所 記憶システム及びそのデータ復元方法
US8566287B2 (en) * 2010-01-29 2013-10-22 Hewlett-Packard Development Company, L.P. Method and apparatus for scheduling data backups
JP5729209B2 (ja) * 2011-08-12 2015-06-03 富士通株式会社 情報処理装置、情報処理システムのテスト方法およびプログラム

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5276867A (en) * 1989-12-19 1994-01-04 Epoch Systems, Inc. Digital data storage system with improved data migration
JPH0546447A (ja) * 1991-08-08 1993-02-26 Hitachi Ltd 空き領域検索方法
CA2285096C (en) * 1991-11-12 2000-05-09 Ibm Canada Limited-Ibm Canada Limitee Logical mapping of data objects using data spaces
US5457793A (en) * 1992-03-30 1995-10-10 International Business Machines Corporation Software cache management of a shared electronic store in a supplex
US5440692A (en) * 1992-10-27 1995-08-08 Bmc Software, Inc. Method of dynamically expanding or contracting a DB2 buffer pool
US5809527A (en) * 1993-12-23 1998-09-15 Unisys Corporation Outboard file cache system
JP3371044B2 (ja) * 1994-12-28 2003-01-27 株式会社日立製作所 ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
US5644742A (en) * 1995-02-14 1997-07-01 Hal Computer Systems, Inc. Processor structure and method for a time-out checkpoint
US5832484A (en) * 1996-07-02 1998-11-03 Sybase, Inc. Database system with methods for parallel lock management
JP3859268B2 (ja) * 1996-07-11 2006-12-20 富士通株式会社 Sdh伝送方式におけるポインタ処理装置
US6912201B1 (en) * 1996-07-12 2005-06-28 Fujitsu Limited Pointer processing apparatus, POH terminating process apparatus, method of POH terminating process and pointer/POH terminating process apparatus in SDH transmission system
US5822780A (en) * 1996-12-31 1998-10-13 Emc Corporation Method and apparatus for hierarchical storage management for data base management systems
US5983310A (en) * 1997-02-13 1999-11-09 Novell, Inc. Pin management of accelerator for interpretive environments
US5937434A (en) * 1997-02-14 1999-08-10 Intel Corporation Method of managing a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US6311290B1 (en) * 1997-02-14 2001-10-30 Intel Corporation Methods of reliably allocating, de-allocating, re-allocating, and reclaiming objects in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
EP0863462B8 (en) * 1997-03-04 2010-07-28 Panasonic Corporation Processor capable of efficiently executing many asynchronous event tasks
US6785888B1 (en) * 1997-08-29 2004-08-31 International Business Machines Corporation Memory allocator for a multiprocessor computer system
US6199179B1 (en) * 1998-06-10 2001-03-06 Compaq Computer Corporation Method and apparatus for failure recovery in a multi-processor computer system
US5996055A (en) * 1997-11-26 1999-11-30 Digital Equipment Corporation Method for reclaiming physical pages of memory while maintaining an even distribution of cache page addresses within an address space
US6732111B2 (en) * 1998-03-03 2004-05-04 Siebel Systems, Inc. Method, apparatus, system, and program product for attaching files and other objects to a partially replicated database
US6275830B1 (en) * 1998-03-18 2001-08-14 Oracle Corporation Compile time variable size paging of constant pools
US6157927A (en) * 1998-04-22 2000-12-05 Unisys Corporation Methods and apparatus for enabling a component in a first transaction processing environment to access a resource in another environment that is under the control of an Xatmi complaint transaction manager
US6185663B1 (en) * 1998-06-15 2001-02-06 Compaq Computer Corporation Computer method and apparatus for file system block allocation with multiple redo
WO2000004483A2 (en) * 1998-07-15 2000-01-27 Imation Corp. Hierarchical data storage management
US7013305B2 (en) * 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
US6411964B1 (en) * 1998-12-23 2002-06-25 International Business Machines Corporation Methods for in-place online reorganization of a database
US7111290B1 (en) * 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US6560606B1 (en) * 1999-05-04 2003-05-06 Metratech Method and apparatus for processing data with multiple processing modules and associated counters
US6754680B1 (en) * 1999-05-20 2004-06-22 Matsushita Electric Industrial Co., Ltd. Data control equipment, method to control data and recording medium to record data control procedure
US6631478B1 (en) * 1999-06-18 2003-10-07 Cisco Technology, Inc. Technique for implementing high performance stable storage hierarchy in a computer network
US6324692B1 (en) * 1999-07-28 2001-11-27 Data General Corporation Upgrade of a program
US6430714B1 (en) * 1999-08-06 2002-08-06 Emc Corporation Failure detection and isolation
US6549959B1 (en) * 1999-08-30 2003-04-15 Ati International Srl Detecting modification to computer memory by a DMA device
CA2281287C (en) * 1999-09-01 2003-03-11 Ibm Canada Limited-Ibm Canada Limitee Method and system for efficiently searching for free space in a table of a relational database having a clustering index
JP2001080140A (ja) * 1999-09-14 2001-03-27 Fujitsu Ltd ページプリンタ及びページプリンタの制御方法
US6594660B1 (en) * 2000-01-24 2003-07-15 Microsoft Corporation Share latch clearing
US6820088B1 (en) * 2000-04-10 2004-11-16 Research In Motion Limited System and method for synchronizing data records between multiple databases
US6839725B2 (en) * 2000-05-16 2005-01-04 Sun Microsystems, Inc. Dynamic adaptive tenuring of objects
US6658437B1 (en) * 2000-06-05 2003-12-02 International Business Machines Corporation System and method for data space allocation using optimized bit representation
KR100471567B1 (ko) * 2000-07-29 2005-03-07 엘지전자 주식회사 이중화 시스템 환경에서 데이터 동기화를 위한 트랜잭션관리 방법
US6763428B1 (en) * 2000-08-02 2004-07-13 Symantec Corporation Methods and systems for performing push-pull optimization of files while file storage allocations are actively changing
US20020103819A1 (en) * 2000-12-12 2002-08-01 Fresher Information Corporation Technique for stabilizing data in a non-log based information storage and retrieval system
JP4145024B2 (ja) * 2001-05-17 2008-09-03 富士通株式会社 情報再生装置、及び情報記録媒体再生システム
US6801919B2 (en) * 2001-07-27 2004-10-05 Hewlett-Packard Development Company, L.P. Object oriented database interface encapsulation that allows for chronologically overlapping transactions in a multi-threaded environment
US6732349B1 (en) * 2002-08-29 2004-05-04 Xilinx, Inc. Method and apparatus for improving PIP coverage in programmable logic devices

Also Published As

Publication number Publication date
US20030120689A1 (en) 2003-06-26
JP2003186721A (ja) 2003-07-04
US7376678B2 (en) 2008-05-20

Similar Documents

Publication Publication Date Title
US7418547B2 (en) System and method to protect data stored in a storage system
JP6708929B2 (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
US10705919B2 (en) Data backup using metadata mapping
JP4317876B2 (ja) データストレージシステムにおける冗長データ割り当て
US8099391B1 (en) Incremental and differential backups of virtual machine files
US6728831B1 (en) Method and system for managing storage systems containing multiple data storage devices
JP2005301497A (ja) ストレージ管理装置、リストア方法及びそのプログラム
US20090254468A1 (en) On-demand virtual storage capacity
JP6064608B2 (ja) ストレージ装置、バックアッププログラム、およびバックアップ方法
US20090254636A1 (en) Virtual array site configuration
JP4693540B2 (ja) データベース再構成装置、およびデータベース再構成プログラム
JP4854973B2 (ja) 記憶制御プログラム、記憶制御方法、記憶制御装置および記憶制御システム
JP4130076B2 (ja) データベース管理プログラムおよび記録媒体
JP4390618B2 (ja) データベース再編成プログラム、データベース再編成方法、及びデータベース再編成装置
JP2005215940A (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法
JP6788188B2 (ja) 制御装置および制御プログラム
CN111435342A (zh) 海报的更新方法、更新系统以及管理系统
US8549221B2 (en) RAID management apparatus, RAID management method, and computer product
JP4365509B2 (ja) データ管理装置、データ管理方法、データ管理手順を記録した記録媒体
US8112609B2 (en) Data management apparatus and method
JP2655059B2 (ja) 二重化ファイルの割り当て方式
JPH07219827A (ja) ジャーナルファイルの分割管理方式およびジャーナルフ ァイルの分割管理方法
JP2008305223A (ja) リストア制御プログラム、リストア制御方法、リストア制御装置、およびリストア制御システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080422

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080520

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080520

R150 Certificate of patent or registration of utility model

Ref document number: 4130076

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110530

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120530

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130530

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140530

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees