JP3594248B2 - ログデータの分類取得システム - Google Patents

ログデータの分類取得システム Download PDF

Info

Publication number
JP3594248B2
JP3594248B2 JP06177094A JP6177094A JP3594248B2 JP 3594248 B2 JP3594248 B2 JP 3594248B2 JP 06177094 A JP06177094 A JP 06177094A JP 6177094 A JP6177094 A JP 6177094A JP 3594248 B2 JP3594248 B2 JP 3594248B2
Authority
JP
Japan
Prior art keywords
log data
transaction
log
data
buffer
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
JP06177094A
Other languages
English (en)
Other versions
JPH06337810A (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 JP06177094A priority Critical patent/JP3594248B2/ja
Publication of JPH06337810A publication Critical patent/JPH06337810A/ja
Application granted granted Critical
Publication of JP3594248B2 publication Critical patent/JP3594248B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、データベースにおける障害復旧に使用するログデータの管理システムに関する。
【0002】
【従来の技術】
データベースシステムにおいては、システムに障害が発生したときのデータ補償のために、以下のような復旧の方式を採用している。即ち、データのバックアップファイルを作成し、処理に要したコマンドなどを時系列にログファイルとして記録する。そして、システムに障害が発生した場合には、障害発生直前の状態のログファイルに記憶されているコマンドをバックアップファイルに対して実行して、障害が発生した直前の状態にシステムを復旧する方式を採用している。
【0003】
そのログファイルの説明に関して、先ず、データベースの更新処理を説明する。データベースシステム(以下、DBシステムと呼ぶことがある)では、データベース(以下、DBと呼ぶことがある)の更新をトランザクションという処理単位で管理している。トランザクションとは、ひとつの完結したデータ操作を行うオペレーションの集まりをいう。トランザクションは、完結性、恒久性という性質を持つ。完結性とは、「トランザクションの状態は成立または不成立のいずれかである」という意味を持つ。また、恒久性とは、「いったん成立したトラザクションの処理は未来永劫保証する」という意味を持つ。
【0004】
DBシステムでは、上記の性質を持つトラザクションを実現するために、データベースの更新動作履歴(以下、ログデータDBシステムと呼ぶことがある)を履歴ログファイル(HLF)に取得する。そして、履歴ログファイル(HLF)にログデータを保証した時点,即ち、履歴ログファイル(HLF)にログデータを確実に記録した時点を、トランザクション完結点としている。
【0005】
図10はDBの更新処理を示したシステム構成図である。データベースシステムは、それに格納されたデータを複数の人が共同利用できるように、複数の端末を備えている。図10では、端末として、端末A(200a),端末B(200b)が示されている。データベース(ここでは、二つのデータベースDB−1(201a),DB−2(201b)を示す。)は、通常、外部記憶装置(第1の外部記憶装置(202))に記憶される。この外部記憶装置(202)は、中央処理装置(203)に接続されている。このデータベースへのアクセスをするための応用プログラムA,Bが、それぞれ中央処理装置(203)の主記憶(204)上で動作する。この中央処理装置(203)には、前記ログファイルを記録するための第2の外部記憶装置(205)も接続されている。この第2の外部記憶装置(205)には、主記憶(204)上のHLF書き出し処理部(204a)により、履歴ログファイル(HLF(206))が書き出される。
【0006】
以下、図10に従ってDB更新処理手順を説明する。
(1) 応用プログラムAを起動すると、応用プログラムAは電文を読み出すためのREADマクロ命令を発行する。READマクロ命令の処理の中で、トランザクションの開始(TRN−START)マクロ命令が発行される。この後、応用プログラムAは、ウェイト状態となり、端末Aからの処理要求を待つ。
(2) 端末A(200a)からの電文の処理要求があると、応用プログラムAは、これを受付ける。これにより、応用プログラムは、ウェイトが解除(ポスト)される。
(3) 応用プログラムAは、DB−1(201a)を第1の外部記憶装置(202)から主記憶(204)上に読込む。
【0007】
(4) 主記憶上で、応用プログラムAは読み込んだDB−1(201a)の内容を変更する。
(5) 応用プログラムAはWRITEマクロ命令を発行する。WRITEマクロ命令の処理の中で、トランザクション終了(TRN−END)マクロ命令が発行される。
(6) オペレーションシステム(OS)が、HLF書き出し処理部(204a)に、第2の外部記憶装置(205)上のHLFへのログデータ書出し処理を要求する。
【0008】
(1)’〜(6)’端末Bからの処理要求に対して、端末Aからの処理要求に対してしたのと同じ操作を行う。なお、(1)〜(6)の処理と(1)’〜(6)’の処理とは、平行して独立に行われる。
(7) オペレーションシステム(OS)からの命令に従って、HLF書き出し処理部(204a)が、履歴ログファイル(206)へ、ログデータを書出す。
(8) オペレーションシステム(OS)が、履歴ログファイル(206)へのログデータ書き出し処理が完了したことを、応用プログラムAに通知する。
(9) 主記憶(204)上で内容変更されたデータベースDB−1(201a)を、第1の外部記憶装置(202)上に書込む。
(10) 応用プログラムAは、DBの更新処理が完了したことを、端末Aに通知する。
(7)’〜(10)’ 端末Bからの処理要求に対して、端末Aからの処理要求に対してしたのと同じ操作を行う。
【0009】
次に、ログデータの取得処理について説明する。
図11はログデータの取得処理を説明するためのブロック図である。ここでは、主記憶(204),データベース(DB−1(201a),DB−2(201b))用の第1の外部記憶装置(202),履歴ログファイル(206)用の第2の外部記憶装置(205)があり、主記憶(204)上にデータベース更新用のバッファ(208),HLF書き出し用のバッファ(209)が設けられている。図11の状態においては、この主記憶(204)上に、二つのデータベースDB−1(201a),DB−2(201b)を順番にアクセスするための応用プログラムCがロードされているとする。以下、図11の場合のログデータ取得処理を説明する。
【0010】
(1) 応用プログラムCを起動すると、応用プログラムCがREADマクロ命令を発行する。READマクロ命令の処理の中で、トランザクション開始(TRN−START)マクロ命令が発行される。
(2) 応用プログラムCが、データベースDB−1を獲得するためのGETマクロ命令を発行する。このGETマクロ命令を発行することにより、応用プログラムCは、データベースDB−1を独占的にアクセスできるようになる。
【0011】
(3) 獲得したDB−1のデータを使用・更新するために、応用プログラムCは、必要とするデータが格納されているページを主記憶(204)上のDB更新用バッファ(208)に読み込む。
(4) 応用プログラムCは、主記憶(204)上に読み込んだデータベースDB−1(201a)からのデータの内容(ここでは、“A”とする。)を変更するためのMODIFYマクロ命令を発行する。
(5) DB更新用バッファ(208)上で、データの内容がAからA’に変更される。
(6) (5)において更新に用いたコマンドを、DB更新用バッファ(208)から抜き出して、ログデータとしてHLFバッファ(209)に転送する。
(2)’〜(6)’DB−2に対し、DB−1に対してしたのと同じ操作を行う。
【0012】
(7) 応用プログラムCは、書き出し(WRITE)マクロ命令を発行する。WRITEマクロ命令の処理の中で、トランザクション終了(TRN−END)マクロ命令が発行される。
(8) HLFバッファ(209)の内容を、履歴ログファイル(206)に書出す。
(9) DB更新用バッファ(208)上のデータA’をDB−1(201a)に書出す。
(9)’ DB更新用バッファ(208)上のデータB’をDB−2(201b)に書出す。
【0013】
以上のように、従来のデータベースシステムでは、複数のデータベースの更新によって得られた複数のログデータを一つの履歴ログファイル(206)に逐次格納していた。従来のデータベースシステムでは、トランザクション毎に、システムチューニングのため統計情報やユーザの課金情報など(以降ユーザデータと呼ぶ)を得て、それらをログデータと一緒に履歴ログファイル(206)に格納するようにしていた。このシステムチューニングとは、データベースのI/O負荷のチューニングのことである。課金情報とは、データベースの使用料金のことである。
【0014】
そして、システムに障害が発生したときは、障害発生前の最終のログファイルに記憶しておいたコマンドを実行する。これにより、障害が発生した直前の状態にシステムを復旧することができる。なお、ここに言う障害には、システムダウン及びデータベース自体の障害を含む。
【0015】
しかし、従来の技術では以下の問題が存在する。
第1に、業務の規模が大きくなると、時間当りのトランザクション処理件数が増大する。それにも拘らず、従来のデータベースシステムでは、複数のデータベースのログデータを一つのHLFバッファ(209)に転送した後に、それらをまとめて一つの履歴ログファイル(206)に書き出していた。このため、履歴ログファイル(206)のI/0ネックが原因で、トランザクションの処理性能が上がらなくなっていた。
【0016】
I/0ネックとは、主記憶(204)上の応用プログラムの処理速度と、二次記憶装置である外部記憶装置(205)へのアクセス速度との差から生じる問題である。すなわち、外部記憶装置(205)へのアクセス時間は、主記憶(204)上でのプログラムの処理速度に比較して極めて遅い。従って、データベースの数が多くなればなるほど、外部記憶装置(209)の履歴ログファイルへログデータを書き出す時間が多くかかる。この場合には、システムの処理時間が外部記憶装置(205)の性能に規制されてしまう。
【0017】
第2に、データベースの復旧操作では、履歴ログファイル(206)を読み出して、このログファイルに含まれるコマンドを、復旧を実行する処理装置に入力する必要がある。しかし、従来のデータベースシステムでは、複数のデータベースのためのログデータを、その発生順に一つの履歴ログファイル(206)に格納していた。従って、復旧時には、検索を行い、履歴ログファイル(206)全体の中から普及対象データベースに関係するログデータのみを抽出する作業が必要であった。このように、データベースの数が多くなると、データベースの復旧運用が煩雑になる問題を有していた。同様に、データベースの数が多くなるとログデータが増大する。ログデータが増大すると、DBを復旧するときに、復旧するDBのログデータを検索する処理に時間が掛かり、復旧操作の時間が増大する問題がある。
【0018】
第3に、従来のデータベースシステムは、トランザクション毎に、システムチューニングのため統計情報やユーザの課金情報などのユーザデータを得て、これを履歴ログファイル(206)に格納する機能を有していた。しかし、従来のデータベースシステムでは、ユーザデータとログデータとを混在して履歴ログファイル(206)に格納しているため、ユーザーデータを使用する場合には、履歴ログファイル(206)全体の中からユーザデータを抽出する操作が必要である。また、このような格納形式では、データベースの復旧時に、ユーザデータとログデータを混在している履歴ログファイル(206)からログデータのみを検索する必要がある。従って、データベースの復旧に時間がかかりすぎる問題があった。
【0019】
【課題を解決するための手段】
従来技術の問題点を解決するため、図1,図2の原理図のように、本発明では、以下のような手段を採用した。
<本発明の要旨>
本発明によるログデータの分類取得システムは、トランザクションの実行によりデータを更新するとともに更新履歴をログデータとして記憶装置(305)に記憶するデータベースシステムにおけるログデータの分類取得装置であって、トランザクション単位にログデータを取得するログデータ取得手段(311)と、前記ログデータ取得手段(311)で取得したログデータを所定の分類条件に従って分類するログデータ分類手段(310)と、前記分類対応に複数設けられ、前記ログデータ分類手段(310)によって分類された各履歴ログデータをそれぞれ書き込む前記記憶装置(305)内に設けられた履歴ログファイル(318)とを具備することを特徴とする。ログデータを分類しておけば、システム復旧時に、必要なログデータを容易に検索して、読み出すことができる。
【0020】
以下に、本発明の構成要素の概要と、そのポイントを簡単にまとめる。
【0021】
〔分類〕
ここで、どのようにログデータを分類するかを説明する。まず、前提となるのは、ログデータの起因となったトランザクション毎に、ログデータを分類するということである。前記したように、トランザクションは、ひとつの完結したデータ操作を行うオペレーションの集まりであり、完結性、恒久性という性質を持つ。従って、システム復旧のためのログデータとして、トランザクション毎にログデータを管理する必要がある。そこで、本実施例では、トランザクション単位にログデータを取得するために、ログデータ取得手段311を設けた。すなわち、ログデータ取得の入口で既に分類しているのである。
【0022】
次に、同じトランザクション中でも更に分類する必要がある。本実施例は、このための分類手段310を設けた。例えば、データベース毎に分類するという場合のためである。すなわち、分類手段310は、データベース毎に履歴ログファイルを形成する。そして、この各データベース毎のログデータを、各HLFバッファ(314a,314b)に格納する。
【0023】
ここで、データベース毎とは、複数のデータベースが存在する場合には、各データベース毎ということである。複数のデータベースが存在する場合とは、例えば、預金システムにおける預金データベースと引き出しデータベースなど複数のデータベースを有する場合である。また、物理的に見たデータベースは一つであるが、そのデータベース中に、複数のデータベースが存在するといってよい場合も本発明を適用できる。換言すれば、業務単位に複数のデータベース群、データファイル群が存在する場合、その業務単位対応のデータベース群を構成する個々のデータベース毎に履歴ログファイルを形成し、そのそれぞれにログデータを格納するようにしてもよい。業務単位対応のデータベース群とは、例えば、銀行において、顧客の預金システムと行員の給与システムがあり、それぞれの業務のシステムに複数のデータベースが存在する場合である。
【0024】
〔分類手段〕
分類手段310は、ログデータを分類するのみならず、ログデータとユーザデータとを分類してもよい。
【0025】
分類手段310は、ログデータを分類し、これを複数の履歴ログファイル(318a,318b)に、分類対応にそれぞれ格納する。
【0026】
〔ログデータ書き出し手段〕
ログデータ書き出し手段(313)は、履歴ログファイル・バッファ(314a,314b)から外部記憶装置(305)上の履歴ログファイル(318a,318b)に対する各履歴ログデータの書き込みを、トランザクションの実行とは非同期に行うことができる。
【0027】
また、ログデータ書き出し手段313は、各履歴ログファイル(318a,318b)へのログデータの書き込みを、並列的に行うことができる。これらのことは、前記I/Oネックによる弊害をより効果的に削減する。
【0028】
<本発明における付加的構成要件>
本発明は、前記必須の構成要件からなるが、以下の構成を付加した上でも成立する。
【0029】
〔バッファ〕
ログデータ分類手段で分類された複数の履歴ログデータを、分類対応にそれぞれ格納する複数のバッファ(314)をさらに備えていても良い。この場合には、各履歴ログファイル(318)は、対応するバッファ(314)に格納されている履歴ログデータを、各々書き込むことになる。このバッファ(314)としては、不揮発性のバッファ及び揮発性のバッファがある。
【0030】
不揮発性のバッファを採用した場合、ログデータは、一旦不揮発メモリ(301)上の履歴ログファイル・バッファ(314a,314b)に転送される。これにより、ログデータが不揮発化されるので、システムがダウンしてもログデータは残る。このように、不揮発メモリ上に複数の履歴ログファイル・バッファ(314a,314b)を設ける構成を採用すれば、I/Oネックによる弊害を防止できるだけでなく、ログファイルの消失を回避できる。
【0031】
なお、データベースシステムを構築する中央処理装置の主記憶(メインストリッヂユニット:MSU)(300)に、揮発型のバッファを分類対応に複数設け、この揮発型バッファに一旦分類後の履歴ログデータを格納し、その後不揮発メモリ(301)上の前記複数のバッファ(314)に履歴ログデータを転送するようにしてもよい。このようにすれば、不揮発型の履歴ログファイル・バッファ(314)の運用をより効果的にすることができる。
【0032】
また、履歴ログファイル(318)への書出し処理は、HLFバッファ(314)が満杯になった時に行うのが好適である。このようにすれば、履歴ログファイル(318)への書き出し回数を最小限に抑えることができるので、I/Oネックによる弊害を最小限にすることができる。但し、履歴ログファイル(318)への書き出しタイミングは、これに限定されず、他の条件が揃ったときに書き出すようにしてもよい。
【0033】
〔ログデータ書出手段〕
バッファ(314a,314b)に転送されたログデータを、トランザクションの処理とは非同期に履歴ログファイル(318)へ書出すログデータ書出手段313を更に備えていても良い。この場合に、このログデータ書出手段313は、複数のバッファ(314)から履歴ログファイル(318)への書き出しを、それぞれ並列的に行うようにしても良い。
【0034】
〔トランザクションファイル〕
トランザクションの処理経過を経時的に記録するトランザクションファイル(315)を更に設けて、履歴ログファイル(318)の代わりに、トランザクションファイルによってトランザクション完結点を管理しても良い。この理由は以下の通りである。即ち、本発明では、履歴ログファイル(318)が複数存在する。従って、一つのトランザクションにおけるログデータが、複数の履歴ログファイル(318)に分散して記録される。このため、どの履歴ログファイル(318)のどの部分を見たらトランザクション完結点であるかが、不明確となる。そこで、履歴ログファイル(318)にトランザクション完結点を記録して管理する代わりに、トランザクションの開始から終了までの時系列的な情報を1つのファイルで管理するトランザクションファイル(315)にトランザクション完結点を記録し、これを管理すれば、トランザクション完結点の所在が明確となるのである。なお、トランザクション完結点は、デーベースシステムの復旧に使用するデータである。即ち、保守要員は、復旧時にトランザクション完結点を検出し、その完結点までのトランザクション対応のログデータを履歴ログファイル(318)から取り出し、そのログデータに従ってデータベース(319)の復旧を行うようにすることができる。
【0035】
このように、システム復旧に必要なトランザクション完結点の管理を、トランザクションの処理経過を開始から完結まで経時的に記録するトランザクションファイルに記録して管理すれば、前記分類対応の複数の履歴ログファイルが存在しても、容易にトランザクション完了点を検索できる。
【0036】
なお、トランザクション完結点をトランザクションファイル(315)に書き込むタイミングは、履歴ログデータを履歴ログファイルに保証した時点でも良いし、履歴ログデータを不揮発性バッファ(314)に書き出した時点でも良い。
【0037】
【作用】
<本発明の必須構成要素による作用>
トランザクションの実行によりデータベース(319)のデータを更新すると、このトランザクション単位で、更新履歴がログデータとしてログデータ取得手段(311)に取得される。このように取得されたログデータは、ログデータ分類手段(310)により、所定の分類条件に従って分類される。この分類されたログデータは、各々に対応する履歴ログファイル(318)に書き込まれて保存される。従って、履歴ログファイル(318)への書き出し処理の負荷を分散でき、その結果、I/Oネックによる処理の遅れを回避できる。このように、システム復旧に先だって、予め分類しているので、システム復旧のためのログデータの検索・読み出しが迅速に行える。
【0038】
<バッファを設けた場合の作用>
トランザクションの実行によりデータベース(319)のデータを更新すると、このトランザクション単位で、更新履歴がログデータとしてログデータ取得手段(311)に取得される。このように取得されたログデータは、ログデータ分類手段(310)により、所定の分類条件に従って分類される。この分類されたログデータは、一旦バッファ(314)に格納される。このように格納されたログデータは、各々に対応する履歴ログファイル(318)に書き込まれて保存される。従って、このバッファ(314)により、分類手段(310)による処理速度と履歴ログファイル(318)への書き込み速度との差が吸収されるので、その結果、I/Oネックによる処理の遅れを回避できる。
【0039】
<揮発バッファと不揮発バッファを設けた場合の作用>
トランザクションの実行によりデータベース(319)のデータを更新すると、このトランザクション単位で、更新履歴がログデータとしてログデータ取得手段(311)に取得される。このように取得されたログデータは、ログデータ分類手段(310)により、所定の分類条件に従って分類される。この分類されたログデータは、一旦揮発バッファに格納される。このように格納されたログデータは、各々に対応する不揮発バッファ(314)に格納されて、それ以後の消失が防止される。このように不揮発化されたデータは、その後、適宜履歴ログファイル(318)に書き込まれて保存される。従って、このバッファ同士のデータ伝送は高速に行える一方、履歴ログファイル(318)への書出は一時に行うことができるので、I/Oネックによる処理の遅れを更に回避できる。
【0040】
<トランザクションファイルを設けた場合の作用>
トランザクションの実行によりデータベース(319)のデータを更新すると、このトランザクション単位で、更新履歴がログデータとしてログデータ取得手段(311)に取得される。このように取得されたログデータは、ログデータ分類手段(310)により、所定の分類条件に従って分類される。この分類されたログデータは、履歴ログファイル(318)に書き出されるか、一旦揮発バッファ(314)に格納される。この時点においてトランザクションが終了していれば、トランザクション完結点がトランザクションファイル(315)に書き込まれる。従って、データベース復旧時に、容易にトランザクション完結点の検索をすることができる。
【0041】
【実施例】
以下に本発明の実施例を図面を参照して説明する。
【0042】
【実施例1】
第1の実施例を、図3乃至図6に従って説明する。
【0043】
<システムの概要>
図3は、本発明の実施例の概要を示したブロックである。
図3に示すように、第1実施例は、2つのデータベース(DB−1(119a),DB−2(119b))を有するデータベースシステムに本発明を適用したものである。このデータベースシステムは、例えば、預貯金管理システムに適用できる。その場合には、一方のデータベース(DB−1(119a))を預金データベースとし、他方のデータベース(DB−2(119b))を引き出しデータベースとする。
【0044】
このデータベースシステムは、2つのデータベース(DB−1(119a),DB−2(119b))が構築された第1の外部記憶装置(104a,104b)と、この第1の外部記憶装置(104)に接続された中央処理装置(100)と、この中央処理装置(100)に接続された第2の外部記憶装置(105a,105b)と、中央処理装置(100)に接続された複数個(図3では一個のみ例示)の端末(106)とから構成されている。
【0045】
この中央処理装置(100)は、端末(106)からの要求に応じてデータベース(DB−1(119a),DB−2(119b))を制御する情報処理装置である。この中央処理装置(100)は、主記憶(MSU)(101),大容量不揮発メモリ(SSU)(103),及びCPU(102)を有している。
【0046】
〔主記憶(MSU)〕
図4にその詳細を示すように、この主記憶(101)には、応用プログラムがロードされて実行される。また、主記憶(101)には、データベースの更新処理に必要なデータベース更新用バッファ(131),ログデータバッファ(132),及び、複数の揮発型HLFバッファ(114)が設けられている。なお、ログデータの分類条件をデータベース対応に分類することとしたので、揮発型HLFバッファ114の数は、データベース(DB−1(119a),DB−2(119b))の数に対応している(図4においは、2個設置されている。)。この主記憶(101)は、揮発性のRAM(ランダムアクセスメモリ)から構成されている。なお、図4に示す状態においては、主記憶(101)上には、両データベース(DB−1(119a),DB−2(119b))に順次アクセスして更新を行う応用プログラム(P−1)がロードされている。
【0047】
〔大容量不揮発メモリ(SSU)〕
この主記憶(101)とは別に設けられた大容量不揮発メモリ(SSU)(103)上には、トランザクションファイル115と、データベース(DB−1(119a),DB−2(119b))の数に対応した複数の不揮発型HLFバッファ112が設けられている。この大容量不揮発メモリ(103)は、NVRAMから構成されている。
【0048】
〔第2の外部記憶装置〕
第2の外部記憶装置105には、履歴ログファイル(HLF−1(120a),HLF−2(120b))が構築されている。この履歴ログファイル(HLF−1(120a),HLF−2(120b))は、データベース(DB−1(119a),DB−2(119b))の数と同数だけ設けられている(図4においは、2個設置されている。)。
【0049】
〔CPU〕
CPU102は、主記憶(101)上にロードされた応用プログラムを実行してデータベース(DB−1(119a),DB−2(119b))を制御する機能の他に、オペレーションシステム(OS)を起動することにより得られる機能を有している。即ち、図4に示すように、CPU(102)は、ログデータ取得部(111),分類部(110),トランザクション完結点管理部(118),転送部(116),監視部(117),及びログデータ書出部(113)を有している。
【0050】
次に、各部の機能を詳しく説明する。
【0051】
[データベース更新用バッファ]
先ず、データベース更新用バッファ131は、応用プログラムの指示に応じて各データベース(DB−1(119a),DB−2(119b))内容を取り込むと共に、第1のデータベース(DB−1(119a))から取り込んだデータの内容Aを新しい内容A’に、第2のデータベース(DB−2(119b))から取り込んだデータの内容Bを新しい内容B’に変更する。
【0052】
[ログデータバッファ]
ログデータバッファ(132)は、ログデータ取得部(111)からの指示に応じて、データベース更新用バッファ(131)でのデータ変更内容(コマンド)抽出して、ログデータとして保持する。ここで、ログデータの構成を説明する。図6に示すように、個々のログデータは、制御部とデータ部から構成されている。制御部は、当該ログがデータベース更新に関するログであるかユーザデータに関するログであるかを示すログ種別表示部,データ部の長さを示すデータ長表示部,及び、当該ログデータを格納すべき履歴ログファイルを特定するHLF種別表示部から構成されている。データ部は、データベースに関するログの場合に限り、当該ログデータがどのデータベースに関するものかを示すDB名表示部,当該ログデータがデータベース中のどのページに関するものかを示す更新ページ番号表示部,及び、更新後のデータを格納した更新後データ格納部から構成されている。ログデータバッファ132には、このようなログデータが時系列的な順番で複数個書き込まれているのである。
【0053】
[分類部]
分類部(110)は、ログデータバッファ(132)に格納されたログデータを分類条件に従って分類して、複数の揮発型HLFバッファ(141a,141b)に転送する。即ち、分類部(110)は、ログデータの制御部内のHLF種別表示部を見て、その記載内容に依り転送先を振り分けるのである。なお、データ部のDB名表示部を見て、その記載内容に依り転送先を振り分けても良い。
【0054】
[揮発型HLFバッファ]
各揮発型HLFバッファ(141a,141b)は、分類部(110)により分類された各データベース(DB−1(119a),DB−2(119b))毎のログデータを、一旦蓄積する。
【0055】
[不揮発型HLFバッファ]
各不揮発型HLFバッファ(112a,112b)には、各々に対応する揮発型HLFバッファ(114a,114b)に蓄積されていたログデータの内容が、転送され不揮発化される。このようにして不揮発化されると、システムダウンが生じてもログデータは残る。従って、トランザクションの処理と同期して、履歴ログファイル(HLF−1(120a),HLF−2(120b))にログデータを書き出す必要はなくなる。そして、揮発型HLFバッファ(141a,141b)から不揮発型HLFバッファ(112a,112b)への転送は、I/O処理が不要であるために極めて高速に行われる。不揮発型HLFバッファ(112a,112b)から履歴ログファイル(HLF−1(120a),HLF−2(120b))への書き出しは、不揮発型HLFバッファ(112a,112b)の中身が一杯になった時点で行えば足りる。よって、履歴ログファイル(HLF−1(120a),HLF−2(120b))への書き出し回数を可能な限り減らし、I/Oネックを軽減させるために、不揮発型HLFバッファ(112a,112b)の容量は、できるだけ大容量にすることが望ましい。
【0056】
[監視部]
監視部(117)は、不揮発型HLFバッファ(112a,112b)の中身が一杯になったかどうかを監視する。そして、揮発型HLFバッファ(114a,114b)に蓄積されていたログデータを転送するのに十分な開き領域がない場合には、書き出し部(113)に対して書き出しの指示を行う。一方、揮発型HLFバッファ(114a,114b)に蓄積されていたログデータを転送するのに十分な開き領域がある場合には、転送部(116)に対して転送の指示を行う。
【0057】
ログデータ書き出し部(113)は、書き出しの指示があると、各不揮発型HLFバッファ(112a,112b)に記憶されているログデータを、対応する履歴ログファイル(HLF−1(120a),HLF−2(120b))に書き出させる。
【0058】
[転送部]
転送部(116)は、転送の指示があると、揮発型HLFバッファ(141a,141b)に記憶されているログデータを不揮発型HLFバッファ(112a,112b)へ転送する。
【0059】
[トランザクションファイル]
トランザクションファイル(115)は、トランザクションの開始から終了までの時系列的な情報を管理するファイルである。このトランザクションファイル(115)には、トランザクション完結点が記録される。このトランザクション完結点とは、トランザクションが完結した時点のことである。
【0060】
[トランザクション完結点管理部]
トランザクション完結点管理部(118)は、トランザクションの完結を検知してトランザクションファイル(115)にトランザクション完結点を記録するとともに、データベース(119a,119b)に対する更新データの書込の完了を検知してトランザクションファイル(115)からトランザクション完結点を削除する機能を有する。
【0061】
[第1の外部記憶装置]
なお、第1の外部記憶装置(104a,104b)は、データベース(119a,119b)に対応して複数設けられている(図3及び図4においては、2個示されている。)。
【0062】
<トランザクションの処理の流れ>
第1実施例におけるトランザクションの処理の流れを、図5に示したトランザクションの処理のフローチャートに沿って説明する。
【0063】
ステップS01は、TRN−STARTマクロ発行である。ここでは、TRN−STARTマクロの発行により、トランザクションが開始される。
続いて処理はステップS02乃至ステップS05のループに入る。このループでは、各データベース(DB−1(119a),DB−2(119b))の各々に対して、順番にステップS02乃至ステップS04の処理を施す。即ち、1回目のループにおいては、第1のデータベース(DB−1(119a))に関する処理を行い、2回目のループにおいては、第2のデータベース(DB−2(119b))に関する処理を行う。
【0064】
ステップS02は、データベース(DB−1(119a),DB−2(119b))の読込みである。ここでは、更新すべきデータが格納されているページを、主記憶(101)上の更新用バッファ(131)に読込む。
【0065】
ステップS03は、データの更新である。ここでは、更新用バッファ(131)上でデータを更新する。
ステップS04は、ログデータバッファ(132)へのログデータ転送である。ここでは、ログデータ取得部(111)が、更新用バッファ(131)に残されているデータの中から更新に関するコマンドを抽出してログデータを取得し、主記憶(101)上のログデータバッファ(132)に転送する。
【0066】
ステップS05では、全てのデータベース(DB−1(119a),DB−2(119b))に対して、ステップS02乃至ステップS04までの処理を行ったか否かを判定する。全データベースに対する処理が未だであれば、ステップS05−1にて処理対象データベースの変更を行い、処理をステップS02に戻す。これに対して、全データベースに対する処理が終了しておれば、処理をステップS06に進める。
【0067】
ステップS06は、TRN−ENDマクロ発行である。ここでは、TRN−ENDマクロ命令を発行する。これにより、応用プログラムは、オペレーションシステム(OS)に処理を渡す。
【0068】
続いて処理はステップS07乃至ステップS11のループに入る。このループでは、各データベース(DB−1(119a),DB−2(119b))に関するログデータの各々に対して、順番にステップS07乃至ステップS10の処理を施す。即ち、1回目のループにおいては、第1のデータベース(DB−1(119a))に関するログデータに対して処理を行い、2回目のループにおいては、第2のデータベース(DB−2(119b))に関するログデータに対して処理を行う。
【0069】
ステップS07は、ログデータの分類及び転送である。即ち、分類部110が、ログデータバッファ132に格納されているログデータの中から、処理対象となっているデータベース(DB−1(119a),DB−2(119b))に関するログデータを分類・抽出する。そして、抽出したログデータを主記憶(101)上のHLFバッファ(114)に転送する。具体的には、1回目のループにおいては、第1のデータベース(DB−1(119a))に関するログデータをHLF−1のHLFバッファ(114a)に転送し、2回目のループにおいては、第2のデータベース(DB−2(119b))に関するログデータをHLF−2のHLFバッファ(114b)に転送する。
【0070】
ステップS08は、SSU上のHLFバッファ(112)が満杯か否かのチェックである。ここでは、監視部(117)により、SSU上のHLFバッファ(112)が満杯か否かをチェックする。具体的には、1回目のループにおいては、HLF−1のSSU上のHLFバッファ(112a)をチェックし、2回目のループにおいては、HLF−2のSSU上のHLFバッファ(112b)をチェックする。チェック結果に応じて、満杯の場合はステップS09の処理を行い、満杯でない場合はステップS10の処理を行う。
【0071】
ステップS09は、履歴ログファイル(HLF−1(120a),HLF−2(120b))への書出し処理要求である。ここでは、監視部(117)が、SSU上のHLFバッファ(112)の中身を対応する履歴ログファイル(HLF−1(120a),HLF−2(120b))へ書出しする様、ログデータ書出部(113)に要求する。具体的には、1回目のループにおいては、HLF−1のSSU上のHLFバッファ(112a)の中身を第1の履歴ログファイル(HLF−1(120a)に書き出し、2回目のループにおいては、HLF−2のSSU上のHLFバッファ(112b)の中身を第2の履歴ログファイル(HLF−2(120b)に書き出す。履歴ログファイル(120a,120b)への書出し処理とトランザクションの処理は、非同期に動作する。従って、一旦書き出し処理を行えば、書き出し処理の完了如何に拘らず、処理をステップS10に進めることができる。
【0072】
ステップS10は、主記憶(101)上のHLFバッファ(114)に格納されたログデータをSSU(103)上のHLFバッファ(112)へ転送する転送処理である。ここでは、転送部116が、SSU(103)上のHLFバッファ(112)に主記憶(101)上のHLFバッファ(114)の内容を転送して、これを不揮発化する。具体的には、1回目のループにおいては、HLF−1のHLFバッファ(114a)の中身をHLF−1のSSU上のHLFバッファ(112a)に転送し、2回目のループにおいては、HLF−2のHLFバッファ(114b)の中身をHLF−2のSSU上のHLFバッファ(112b)に転送する。主記憶(101)とSSU(103)とはバスで接続されているので、両者間のデータ転送は高速に行われる。
【0073】
続くステップS11では、全HLFの処理を終了したか否かをチェックする。全HLFの処理を終了したとは、主記憶(101)上の全HLFバッファ(114a,114b)に記憶されているログデータを、SSU(103)上のHLFバッファ(112a,112b)に書き出したことを意味する。全ログデータの書き出しを完了した場合は、ステップS12の処理を行う。全ログデータに対する処理が未だであれば、ステップS11−1にて処理対象データベースの変更を行い、処理をステップS07に戻す。
【0074】
ステップS12以降の処理は、全てのログデータがSSU(103)上のHLFバッファ(112a,112b),又は履歴ログファイル(HLF−1(120a),HLF−2(120b))へ書き込まれ、不揮発化された場合の処理である。従って、先ず、ステップS12において、トランザクション完結表示の設定を行う。ここでは、トランザクション完結点管理部(118)が、トランザクションファイル(115)に、トランザクションが完結した旨の表示を設定する。表示を設定した時点をトランザクション完結点とする。
【0075】
ステップS13は、データベースの書出しである。ここでは、各データベース(DB−1(119a),DB−2(119b))に、更新用バッファ(131)上で更新された後のページを書出す。
【0076】
ステップS14は、トランザクション完結表示の初期化である。ここでは、トランザクションファイル(115)に設定した、トランザクション完結表示を初期化する。
【0077】
ステップS15は、応用プログラムへのTRN−END通知である。ここでは、応用プログラムにトランザクションが終了した旨を通知する。
【0078】
<ログデータの分類取得処理の詳細>
次に、図4に基づいて、このトランザクションの処理の中でのログデータの分類取得処理をより詳細に説明する。これは、図5のステップS01からステップS14に対応する。
(1) 応用プログラムがREADマクロ命令を発行する。これにより、端末(106)からの要求が読み出される。このREADマクロ命令の処理の中で、TRN−STARTマクロ命令が発行される(図5のステップS01に対応)。TRN−STARTマクロ命令によりトランザクションが開始される。
【0079】
(2) 応用プログラムがGETマクロ命令を発行する。GETマクロ命令により、必要なデータベース(DB−1(119a))を独占的に獲得する。
(3) データベース(DB−1(119a))のデータを更新するために、データが格納されているページを主記憶(101)に読み込む(図5のステップS02に対応)。
【0080】
(4) 応用プログラムが、データ変更のためのMODIFYマクロ命令を発行する。
(5) 主記憶(101)の更新用バッファ(131)上で、データをAからA’に変更する(図5のステップS03に対応)。
(6) (5)で更新したデータに関するログデータを、主記憶(131)のログデータバッファ(132)に転送する(図5のステップS04に対応)。
【0081】
(4)’〜(6)’第2のデータベース(DB−2(119b))に関し、DB−1と同じ操作を行う。
(7) 応用プログラムが、WRITEマクロ命令を発行する。WRITEマクロ命令により、端末(106)に対し、処理結果を通知する。WRITEマクロ命令の処理の中で、TRN−ENDマクロ命令が発行される(図5のステップS06に対応)。
【0082】
(8) 主記憶(101)のログデータバッファ(132)に書き込まれているログデータのうち、データベース(DB−1(119a))に関するログデータを抽出して、主記憶(101)上のHLF−1の揮発型HLFバッファ(114a)に転送する(図5のステップS07に対応)。
(9) SSU(103)上の不揮発型HLFバッファ(112a)が満杯であったら、或いは他の条件により、SSU(103)上の不揮発型HLFバッファ(112a)のデータを、第2の外部記憶装置(105a)内の履歴ログファイル(120a)に書出す(図5のステップS08及びステップS09に対応)。
【0083】
(10) HLF−1の揮発型HLFバッファ(114a)のデータを、SSU(103)上の不揮発型HLFバッファ(112a)に書出して、データを不揮発化する。
(8)’〜(10)’ 第2のデータベース(DB−2(119b))に関し、DB−1と同じ操作を行う。
(11) トランザクション完結表示を、トランザクションファイル(115)に設定する。
【0084】
(12) DB更新用バッファ(131)内の第1のデータベース(DB−1(119a))に関連するデータを、第1のデータベース(DB−1(119a))に書出す。
(12)’第2のデータベース(DB−2(119b))に関し、DB−1と同じ操作を行う。
(13) トランザクションファイル(115)のトランザクション完結表示を、初期化する。
【0085】
以上の処理の結果、SSU(103)上のHLFバッファ(112a,112b)に書き込まれたログデータは、次回以後の処理で、履歴ログファイル(120a,120b)に書き出される。
【0086】
<データベース(DB)の復旧操作>
データベースの復旧操作を以下に説明する。
データベース自体が障害になった場合には、障害となったデータベースを閉塞する。これにより、データベースが復旧するまで、応用プログラムが使用できないようにする。データベース読込み時にI/O障害が発生した場合は、データベース障害を検出した応用プログラムに、I/O障害が発生した旨を通知する。DB書込み時にI/O障害が発生した場合は、データベース障害を検出した応用プログラムに、トランザクションが成立した旨を通知する。障害となったデータベースは、データベース創成時に取得しておいたバックアップデータとデータベースのログデータが取得されている履歴ログファイル(HLF)を使用して復旧する。
【0087】
システムダウンが発生した場合には、そのシステムダウンの発生がトランザクション完結点の前か後かで、操作を異にする。即ち、トランザクション完結点より前の時点でシステムダウンが発生した場合には、先ず、システムを再起動する。この場合は、DBを更新していないので、特別な操作は必要ない。これに対して、トランザクション完結点以降の時点でシステムダウンが発生した場合には、先ずシステムを再起動させる。この際、応用プログラムの起動条件が整う前に、SSU(103)上のHLFバッファ内のログデータを使用して、オペレーションシステム(OS)がデータベースの書出し処理を行う。このようにして、システムダウン直前の状態に、データベースを復旧させる。
【0088】
【実施例2】
図7及び図8は、本発明によるログデータの分類取得装置の第2実施例を示す。図示は一部省略しているが、この第2実施例は第1実施例の構成を全て含んでいる。図7では、第1実施例と同じ機能を有する構成には、同じ符号を付している。それに加えて、第2実施例は、ユーザログデータを分類取得するための構成を有している。以下、第2実施例において追加した構成の説明を行う。
【0089】
図7に示す状態では、主記憶(101)上に、第1のデータベース(DB−1(119a))にアクセスするとともにユーザログを設定する応用プログラム(P−2)がロードされている。
【0090】
主記憶(101)上のユーザログバッファ(133)は、システムチューニングのための統計情報やユーザの課金情報などのユーザ情報を、ユーザログデータとして、トランザクション毎に取得して格納するバッファである。このユーザログバッファ(133)内に蓄積されたユーザログデータは、ログデータ取得部(111)によってログデータバッファ(132)に転送される。ここで、ユーザログデータの構成を説明する。図9に示すように、個々のユーザログデータは、制御部とデータ部から構成されている。制御部は、当該ログデータがユーザデータに関するログであることを示すログ種別表示部,データ部の長さを示すデータ長表示部,及び、当該ログデータを格納すべき履歴ログファイルを特定するHLF種別表示部から構成されている。データ部には、データベースユーザが任意に設定したデータ内容が記載される。ログデータバッファ132には、このようなユーザログデータ及びDB用ログデータが、時系列的な順番で複数個書き込まれているのである。
【0091】
分類部(110)は、ログデータバッファ(132)に格納されたログデータを分類条件に従って分類して、DB用のHLFバッファ(114a)又はユーザログ用のHLFバッファ(114c)に転送する。即ち、分類部(110)は、ログデータの制御部内のHLF種別表示部を見て、その記載内容に依り転送先を振り分けるのである。なお、制御部のログ種別表示部又はデータ部のDB名表示部の有無を見て、その記載内容に依り転送先を振り分けても良い。
【0092】
主記憶(101)上のユーザログ用のHLFバッファ(141c)は、分類部(110)により分類されたユーザログデータを、一旦蓄積する。
ユーザログ用のSSU上のHLFバッファ(112c)には、主記憶(101)上のユーザログ用のHLFバッファ(114c)に蓄積されていたログデータの内容が、転送部(116)により転送され、不揮発化される。このようにして不揮発化されると、システムダウンが生じてもログデータは残る。従って、トランザクションのトランザクションの処理と同期して、ユーザログ用の履歴ログファイル(120c)にログデータを書き出す必要はなくなる。そして、ユーザログ用のHLFバッファ(141c)から不揮発型HLFバッファ(112c)への転送は、I/O処理が不要であるために極めて高速に行われる。不揮発性HLFバッファ(112c)からユーザログ用履歴ログファイル(120c)への書き出しは、不揮発型HLFバッファ(112c)の中身が一杯になった時点で行えば足りる。よって、ユーザログファイル(120c)への書き出し回数を可能な限り減らし、I/Oネックを軽減させるために、不揮発型HLFバッファ(112c)の容量は、できるだけ大容量にすることが望ましい。
【0093】
このユーザログ用のSSU上のHLFバッファ(112c)の使用量は、監視部(117)により監視される。そして、監視部(117)により使用量が一杯であると判断されると、ユーザログ用のSSU上のHLFバッファ(112c)の中身は、ログデータ書き出し部(113)によりユーザログ用HLF(120c)に書き出される。
【0094】
ユーザログデータが最終的に格納されるユーザログ用履歴ログファイル(120c)は、第2の外部記憶装置(105c)上に構築されている。
【0095】
<トランザクションの処理の流れ>
第2実施例におけるトランザクションの処理の流れを、図8に示したトランザクションの処理のフローチャートに沿って説明する。
【0096】
ステップS21は、TRN−STARTマクロ発行である。ここでは、TRN−STARTマクロの発行により、トランザクションが開始される。
【0097】
ステップS22は、データベース(DB−1(119a))の読込みである。ここでは、更新すべきデータが格納されているページを、主記憶(101)上の更新用バッファ(131)に読込む。
【0098】
ステップS23は、データの更新である。ここでは、更新用バッファ(131)上でデータを更新する。
ステップS24は、ログデータバッファ(132)へのログデータ転送である。ここでは、ログデータ取得部(111)が、更新用バッファ(131)に残されているデータの中からデータベース更新に関するコマンドを抽出してDB用のログデータを取得し、主記憶(101)上のログデータバッファ(132)に転送する。
【0099】
ステップS25は、トレース情報のユーザログへの設定である。すなわち、データベース(DB−1(119a))の更新をトレースして得たトレース情報を、ユーザログバッファ(133)に設定する。
【0100】
ステップS26は、ログデータバッファ(132)へのユーザログデータ転送である。ここでは、ログデータ取得部(111)が、ユーザログバッファ(133)に残されているデータの中からユーザログデータを取得し、主記憶(101)上のログデータバッファ(132)に転送する。
【0101】
ステップS27は、TRN−ENDマクロ発行である。ここでは、TRN−ENDマクロ命令を発行する。これにより、応用プログラムは、オペレーションシステム(OS)に処理を渡す。
【0102】
ステップS28は、ログデータの分類及び転送である。即ち、分類部110が、ログデータバッファ132に格納されているログデータの中から、データベース(DB−1(119a))に関するログデータを分類・抽出する。そして、抽出したDB用のログデータを、主記憶(101)上のHLFバッファ(114a)に転送する。
【0103】
ステップS29は、DB用のSSU上のHLFバッファ(112a)が満杯か否かのチェックである。ここでは、監視部(117)により、SSU上のHLFバッファ(112)が満杯か否かをチェックする。監視の結果、満杯であれば処理をステップS30に進め、満杯でなければ処理をステップS31に進める。
【0104】
ステップS30は、DB用の履歴ログファイル(120a)への書出し処理要求である。ここでは、監視部(117)が、DB用のSSU上のHLFバッファ(112a)の中身をDB用の履歴ログファイル(120a)へ書出しする様、ログデータ書出部(113)に要求する。履歴ログファイル(120a)への書出し処理とトランザクションの処理は、非同期に動作する。従って、一旦書き出し処理を行えば、書き出し処理の完了如何に拘らず、処理をステップS31に進めることができる。
【0105】
ステップS31は、主記憶(101)上のHLFバッファ(114a)に格納されたログデータをSSU(103)上のHLFバッファ(112a)へ転送する転送処理である。ここでは、転送部116が、DB用のSSU上のHLFバッファ(112a)に主記憶(101)上のDB用のHLFバッファ(114a)の内容を転送して、これを不揮発化する。主記憶(101)とSSU(103)とはバスラインで接続されているので、両者間のデータ転送は高速に行われる。
【0106】
ステップS32は、ログデータの分類及び転送である。即ち、分類部110が、ログデータバッファ132に格納されているログデータの中から、ユーザログデータを分類・抽出する。そして、抽出したユーザログデータを、主記憶(101)上のHLFバッファ(114c)に転送する。
【0107】
ステップS33は、SSU上のHLFバッファ(112)が満杯か否かのチェックである。ここでは、監視部(117)により、ユーザログ用のSSU上のHLFバッファ(112c)が満杯か否かをチェックする。監視の結果、満杯であれば処理をステップS34に進め、満杯でなければ処理をステップS35に進める。
【0108】
ステップS34は、ユーザログ用の履歴ログファイル(120c)への書出し処理要求である。ここでは、監視部(117)が、ユーザログ用のSSU上のHLFバッファ(112c)の中身をユーザログ用の履歴ログファイル(120c)へ書出しする様、ログデータ書出部(113)に要求する。履歴ログファイル(120c)への書出し処理とトランザクションの処理は、非同期に動作する。従って、一旦書き出し処理を行えば、書き出し処理の完了如何に拘らず、処理をステップS35に進めることができる。
【0109】
ステップS35は、主記憶(101)上のHLFバッファ(114c)に格納されたログデータをSSU(103)上のHLFバッファ(112c)へ転送する転送処理である。ここでは、転送部116が、ユーザデータ用のSSU上のHLFバッファ(112c)に主記憶(101)上のユーザデータ用のHLFバッファ(114c)の内容を転送して、これを不揮発化する。主記憶(101)とSSU(103)とはバスラインで接続されているので、両者間のデータ転送は高速に行われる。
【0110】
ステップS36は、トランザクション完結表示の設定である。ここでは、トランザクション完結点管理部(116)が、トランザクションファイル(115)に、トランザクションが完結した旨の表示を設定する。表示を設定した時点をトランザクション完結点とする。
ステップS37は、データベースの書出しである。ここでは、データベース(DB−1(119a))に、更新用バッファ(131)上で更新された後のページを書出す。
【0111】
ステップS38は、トランザクション完結表示の初期化である。ここでは、トランザクションファイル(115)に設定した、トランザクション完結表示を初期化する。
【0112】
ステップS39は、応用プログラムへのTRN−END通知である。ここでは、応用プログラムにトランザクションが終了した旨を通知する。
【0113】
<ログデータの分類取得処理の詳細>
次に、図7に基づいて、このトランザクションの処理の中でのログデータの分類取得処理を、より詳細に説明する。これは、図8のステップS21からステップS38に対応する。
(1) 応用プログラムがREADマクロ命令を発行する。これにより、端末(106)からの要求が読み出される。このREADマクロ命令の処理の中で、TRN−STARTマクロ命令が発行される(図8のステップS21に対応)。TRN−STARTマクロ命令によりトランザクションが開始される。
【0114】
(2) 応用プログラムがGETマクロ命令を発行する。GETマクロ命令により、データベース(DB−1(119a))を独占的に獲得する。
(3) データベース(DB−1(119a))のデータを更新するために、データが格納されているページを主記憶(101)に読み込む(図8のステップS22に対応)。
(4) 応用プログラムが、データ変更のためのMODIFYマクロ命令を発行する。
【0115】
(5) 主記憶(101)の更新用バッファ(131)上で、データをAからA’に変更する(図8のステップS23に対応)。
(6) (5)で更新したデータに関するDB用のログデータを、主記憶(131)のログデータバッファ(132)に転送する(図8のステップS24に対応)。
(7) DBを更新したトレース情報をユーザログバッファ(133)に設定する(図8のステップS25に対応)。
(8) ユーザログデータ取得マクロ命令を発行する。
(9) ユーザログがログデータバッファ(132)に転送される(図8のステップS26に対応)。
【0116】
(10) 応用プログラムが、WRITEマクロ命令を発行する。WRITEマクロ命令により、端末(106)に対し、処理結果を通知する。WRITEマクロ命令の処理の中で、TRN−ENDマクロ命令が発行される(図8のステップS27に対応)。
(11) 主記憶(101)のログデータバッファ(132)に書き込まれているログデータのうち、DB用のログデータを抽出して、主記憶(101)上にあるDB用のHLFバッファ(114a)に転送する(図8のステップS28に対応)。
【0117】
(12) DB用のSSU上の不揮発型HLFバッファ(112a)が満杯であったら、或いは他の条件により、DB用のSSU上の不揮発型HLFバッファ(112a)のデータを、第2の外部記憶装置(105a)内のDB用の履歴ログファイル(120a)に書出す(図8のステップS29及びステップS30に対応)。
(13) DB用のHLFバッファ(114a)のデータを、DB用のSSU上の不揮発型HLFバッファ(112a)に書出して、データを不揮発化する(図8のステップS31に対応)。
【0118】
(11)’主記憶(101)のログデータバッファ(132)に書き込まれているログデータのうち、ユーザログデータを抽出して、主記憶(101)上にあるユーザログ用のHLFバッファ(114c)に転送する(図8のステップS32に対応)。
(12)’ユーザログ用のSSU上の不揮発型HLFバッファ(112c)が満杯であったら、或いは他の条件により、ユーザログ用のSSU上の不揮発型HLFバッファ(112c)のデータを、第2の外部記憶装置(105a)内のユーザログ用の履歴ログファイル(120c)に書出す(図8のステップS33及びステップS34に対応)。
【0119】
(13)’ユーザログ用のHLFバッファ(114c)のデータを、ユーザログ用のSSU上の不揮発型HLFバッファ(112c)に書出して、データを不揮発化する(図8のステップS35に対応)。
(14) トランザクション完結表示を、トランザクションファイル(115)に設定する。
(15) DB更新用バッファ(131)内のデータベース(DB−1(119a))に関連するデータを、データベース(DB−1(119a))に書出す。
【0120】
(16) トランザクションファイル(115)のトランザクション完結表示を、初期化する。
以上の処理の結果、SSU(103)上のHLFバッファ(112a,112c)に書き込まれたログデータは、次回以後の処理で、履歴ログファイル(120a,120c)に書き出される。
【0121】
【発明の効果】
(1) 本発明により、履歴ログファイルを複数設置して、履歴ログファイルの書出し処理の負荷を分散できる。よって、従来のログデータ取得処理方式で問題であった履歴ログファイルのI/Oネックを解消できる。これより、トランザクション性能の飛躍的向上が計れ、大規模なDBシステムの構築が可能になる。
【0122】
(2) 業務の規模が大きくなり、業務追加を行うと、履歴ログファイルのI/Oネックが原因で、トランザクション性能の低下を招いていた。しかし、本発明により、履歴ログファイルを追加するだけで、履歴ログファイルのI/Oネックによるトランザクション性能の低下を招かずに、業務追加を行うことが可能となる。
【0123】
(3) さらに、ログデータを分類取得することにより、以下のサービスの提供も可能となる。
第1に、データベース(群)単位のDB復旧操作である。即ち、従来は、一つの履歴ログファイルの全てがDB復旧のために必須となる入力データであった。しかし、データベース(群)毎にログデータを取得するとこにより、データベース復旧のための入力データを、データベース(群)毎に独立して管理することが可能となった。また、復旧対象DBのログデータの検索処理時間が短くなり、DB復旧操作の時間を短縮できる。
【0124】
第2に、ユーザデータの事前分類である。即ち、ユーザデータとログデータを分類して取得することにより、抽出操作が不必要なユーザデータ取得機能を実現できる。
【図面の簡単な説明】
【図1】本発明の原理図1
【図2】本発明の原理図2
【図3】第1実施例によるデータベースシステムの全体構成ブロック図
【図4】図3を更に詳細に示したブロック図
【図5】第1実施例によるトランザクションの処理フローを示した図
【図6】データベース用ログデータの構成説明図
【図7】第2実施例によるデータベースシステムを詳細に示したブロック図
【図8】第2実施例によるトランザクションの処理フローを示した図
【図9】ユーザログデータの構成説明図
【図10】従来のシステム概略図
【図11】従来のログデータ取得方式を示した図
【符号の説明】
101 主記憶装置
103 不揮発メモリ
110 分類手段
111 ログデータ取得手段
112 (不揮発型)履歴ログファイル・バッファ
113 ログデータ書出手段
114 揮発型履歴ログファイル・バッファ
115 トランザクションファイル
116 トランザクション完結点管理手段
119 データベース
120 履歴ログファイル
131 データベース更新用バッファ
132 ログデータファイル

Claims (5)

  1. トランザクションの実行によりデータを更新するとともに更新履歴をログデータとして記憶装置に記憶するデータベースシステムにおけるログデータの分類取得装置であって、
    トランザクション単位にログデータを取得するログデータ取得手段と
    前記ログデータ取得手段で取得したログデータを所定の分類条件に従って分類するログデータ分類手段と
    前記分類対応に複数設けられた不揮発性のバッファと、
    前記分類対応に複数設けられ、前記ログデータ分類手段によって分類された各履歴ログデータをそれぞれ書き込まれる前記記憶装置内に設けられた履歴ログファイルと
    トランザクション処理と同期して分類された履歴ログデータを前記不揮発性のバッファに転送する手段と、
    前記履歴ログファイルに対する前記不揮発性のバッファからの各履歴ログデータの書き込みを、トランザクションの実行と非同期に行うログデータ書出手段と
    トランザクションの処理経過を経時的に記録するトランザクションファイルと、
    トランザクション終了時に、履歴ログデータを前記不揮発性のバッファに書き込んだ時点で前記トランザクションファイルにトランザクション完結点を記録するトランザクション完結点管理手段と、
    を具備することを特徴とするログデータの分類取得システム。
  2. トランザクションの実行によりデータを更新するとともに更新履歴をログデータとして記憶装置に記憶するデータベースシステムにおけるログデータの分類取得装置であって、
    トランザクション単位にログデータを取得するログデータ取得手段と
    前記ログデータ取得手段で取得したログデータを所定の分類条件に従って分類するログデータ分類手段と
    前記分類対応に複数設けられ、前記ログデータ分類手段によって分類された各履歴ログデータをそれぞれ書き込む前記記憶装置内に設けられた履歴ログファイルと
    トランザクションの処理過程を経時的に記録するトランザクションファイルと
    トランザクション終了時に、履歴ログデータを前記記憶装置上の履歴ログファイルに保証した時点で前記トランザクションファイルにトランザクション完結点を記録するトランザクション完結点管理手段と
    を具備することを特徴とするログデータの分類取得システム。
  3. 複数のデータベースを備えており、前記分類手段はログデータをデータベースごとに分類することを特徴とする請求項1または2に記載のログデータの分類取得システム。
  4. 前記分類手段は、ログデータを業務単位のデータベース群ごとに分類する請求項1または2に記載のログデータの分類取得システム。
  5. 前記分類手段は、ユーザログデータとデータベースの更新ログデータを分類して複数のログファイルに出力する請求項1または2に記載のログデータの分類取得システム。
JP06177094A 1993-03-30 1994-03-30 ログデータの分類取得システム Expired - Fee Related JP3594248B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP06177094A JP3594248B2 (ja) 1993-03-30 1994-03-30 ログデータの分類取得システム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP7258593 1993-03-30
JP5-72585 1993-03-30
JP06177094A JP3594248B2 (ja) 1993-03-30 1994-03-30 ログデータの分類取得システム

Publications (2)

Publication Number Publication Date
JPH06337810A JPH06337810A (ja) 1994-12-06
JP3594248B2 true JP3594248B2 (ja) 2004-11-24

Family

ID=26402840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06177094A Expired - Fee Related JP3594248B2 (ja) 1993-03-30 1994-03-30 ログデータの分類取得システム

Country Status (1)

Country Link
JP (1) JP3594248B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3085899B2 (ja) * 1995-06-19 2000-09-11 株式会社東芝 マルチプロセッサシステム
KR100714235B1 (ko) * 2004-01-19 2007-05-02 주식회사 이너버스 로그 파일 적재 및 분석 방법과, 이를 수행하기 위한 장치
JP5223457B2 (ja) 2008-05-22 2013-06-26 富士通株式会社 分散トランザクションの2相コミットプロトコルにおけるインダウト状態の解決方法
JP5621465B2 (ja) * 2010-09-27 2014-11-12 日本電気株式会社 データベースシステム
WO2015081470A1 (zh) * 2013-12-02 2015-06-11 华为技术有限公司 数据处理设备和数据处理的方法
JP5843025B2 (ja) * 2015-02-02 2016-01-13 日本電気株式会社 情報処理システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62224843A (ja) * 1986-03-26 1987-10-02 Hitachi Ltd デ−タベ−ス媒体内容保全方式
JPH04205632A (ja) * 1990-11-30 1992-07-27 Toshiba Corp ジャーナル収集装置
JPH05225024A (ja) * 1992-02-13 1993-09-03 Nec Corp ジャーナル媒体作成方式

Also Published As

Publication number Publication date
JPH06337810A (ja) 1994-12-06

Similar Documents

Publication Publication Date Title
EP0618533B1 (en) Apparatus and method for classifying and acquiring log data
US5446884A (en) Database recovery apparatus and method
US5386554A (en) Method and apparatus for reducing data locking time by removing a lock when journal data is written into a main memory journal queue
US5640561A (en) Computerized method and system for replicating a database using log records
US5138710A (en) Apparatus and method for providing recoverability in mass storage data base systems without audit trail mechanisms
US7970748B2 (en) Systems and methods for reorganizing a database object
US5455944A (en) Method for managing logging and locking of page free space information in a transaction processing system
EP0351387B1 (en) Minimizing locking and reading in a segmented storage space
US6018746A (en) System and method for managing recovery information in a transaction processing system
US6934877B2 (en) Data backup/recovery system
US7996363B2 (en) Real-time apply mechanism in standby database environments
US20050049945A1 (en) Database log capture program that publishes transactions to multiple targets to handle unavailable targets by separating the publishing of subscriptions and subsequently recombining the publishing
EP0501180A2 (en) Dynamic, finite versioning for concurrent transaction and query processing
JPH01263745A (ja) データベースの回復方法
US11010256B1 (en) Method and system for implementing current, consistent, and complete backup copy by rolling a change log backwards against a storage device
WO1996023269A1 (en) System for maintenance of database integrity
JP3594248B2 (ja) ログデータの分類取得システム
DE69837635T2 (de) Dateiensystem und Dateienverwaltungsverfahren, die eine verteilte Replikation in einem System mit gemeinsamen RAID verwirklichen
US7516144B2 (en) Method and system for re-population of data in a database
JPH06149485A (ja) データ完結性保証処理方法
US20060004846A1 (en) Low-overhead relational database backup and restore operations
KR102123616B1 (ko) 충돌 페이지 리스트를 이용한 병렬 저널링 방법 및 그 장치
JPH0816881B2 (ja) データベース更新方法
JP2817705B2 (ja) 更新後ジャーナル採取方式
EP3944101B1 (en) Information processing program, information processing method, and information processing device

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040518

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040720

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: 20040810

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040830

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080910

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20080910

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090910

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090910

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100910

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees