JPH06266597A - ログ取得方式 - Google Patents
ログ取得方式Info
- Publication number
- JPH06266597A JPH06266597A JP5050924A JP5092493A JPH06266597A JP H06266597 A JPH06266597 A JP H06266597A JP 5050924 A JP5050924 A JP 5050924A JP 5092493 A JP5092493 A JP 5092493A JP H06266597 A JPH06266597 A JP H06266597A
- Authority
- JP
- Japan
- Prior art keywords
- log
- database
- log data
- resource
- data
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1471—Error detection or correction of the data by redundancy in operations involving logging of persistent data for recovery
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【目的】 本発明は、複数のシステムからアクセスされ
るデータベースのログデータを取得するログ取得方式に
関し、ログデータ発生時に、複数システム間で共有する
共用メモリに全システムのログデータをデータベース更
新順に並べて取得しておき、障害発生時に、この並べか
え済みのログデータを参照して障害の発生した資源を閉
塞および復旧を迅速に行うことを目的とする。 【構成】 複数のシステムがデータベース12を共用し
て更新したときのログデータを取得するログ取得処理1
4と、このログ取得処理14が取得したログデータにつ
いて、資源毎にデータベース更新順に不揮発性の共用メ
モリ10に書き出すログ書出処理16とを備えるように
構成する。
るデータベースのログデータを取得するログ取得方式に
関し、ログデータ発生時に、複数システム間で共有する
共用メモリに全システムのログデータをデータベース更
新順に並べて取得しておき、障害発生時に、この並べか
え済みのログデータを参照して障害の発生した資源を閉
塞および復旧を迅速に行うことを目的とする。 【構成】 複数のシステムがデータベース12を共用し
て更新したときのログデータを取得するログ取得処理1
4と、このログ取得処理14が取得したログデータにつ
いて、資源毎にデータベース更新順に不揮発性の共用メ
モリ10に書き出すログ書出処理16とを備えるように
構成する。
Description
【0001】
【産業上の利用分野】本発明は、システムが更新するデ
ータベースのログを取得するログ取得方式に関するもの
である。
ータベースのログを取得するログ取得方式に関するもの
である。
【0002】
【従来の技術】複数システム間で動作するデータベース
管理システムの運用中に、あるシステムがダウンした場
合、そのシステムのトランザクションがまさに更新中の
資源や、更新結果がデータベースに反映されていない資
源などの、最新性の保証されていない資源(汚染資源と
いう)を復旧(リカバリ)する必要がある。このとき、
汚染資源を他のシステムのトランザクションが更新・参
照しないようにするために、汚染資源を閉塞しなければ
ならない。汚染資源を閉塞さえしておけば、ダウンして
いないシステムだけでデータベース管理システムを運用
することができる(フォールバック運用)。このため、
時間のかかる汚染資源の復旧処理は、汚染資源を閉塞し
て他の活性システムがデータベース管理システムを運用
している最中に行うようにしている。
管理システムの運用中に、あるシステムがダウンした場
合、そのシステムのトランザクションがまさに更新中の
資源や、更新結果がデータベースに反映されていない資
源などの、最新性の保証されていない資源(汚染資源と
いう)を復旧(リカバリ)する必要がある。このとき、
汚染資源を他のシステムのトランザクションが更新・参
照しないようにするために、汚染資源を閉塞しなければ
ならない。汚染資源を閉塞さえしておけば、ダウンして
いないシステムだけでデータベース管理システムを運用
することができる(フォールバック運用)。このため、
時間のかかる汚染資源の復旧処理は、汚染資源を閉塞し
て他の活性システムがデータベース管理システムを運用
している最中に行うようにしている。
【0003】また、汚染資源の復旧を行う場合には、デ
ータベースを更新したときに取得したログデータが必要
である。このログデータは、システム固有のログファイ
ルに、システム毎に取得し、これらのログデータについ
て、図6に示すように、汚染資源の復旧を行う前に資源
毎にデータベース更新順に並びかえておく。
ータベースを更新したときに取得したログデータが必要
である。このログデータは、システム固有のログファイ
ルに、システム毎に取得し、これらのログデータについ
て、図6に示すように、汚染資源の復旧を行う前に資源
毎にデータベース更新順に並びかえておく。
【0004】同様に、汚染資源の閉塞を行う場合、デー
タベース更新順に並びかえたログデータをもとに汚染資
源、つまり閉塞を行べき資源を見つける。図6は、従来
技術の説明図を示す。
タベース更新順に並びかえたログデータをもとに汚染資
源、つまり閉塞を行べき資源を見つける。図6は、従来
技術の説明図を示す。
【0005】(1) ログデータの取得フェーズ:シス
テム1、2、3が各システム毎のシステム1用ログファ
イル、システム2用ログファイル、システム3用ログフ
ァイル(不揮発域)にそれぞれDB(データベース)を
更新したログデータを保存する。
テム1、2、3が各システム毎のシステム1用ログファ
イル、システム2用ログファイル、システム3用ログフ
ァイル(不揮発域)にそれぞれDB(データベース)を
更新したログデータを保存する。
【0006】(2) 汚染資源の復旧フェーズ:システ
ム1、2、3がDBの資源を更新中に何らかの障害が発
生した場合、システム1、2、3の各ログファイルから
ログデータを取り出してデータベースの資源更新順にソ
ートし、作業用領域(揮発域)に格納する。このデータ
ベース更新順にソートしたログデータを最新のものから
参照し、障害の発生した資源のログデータを取り出し、
DBの障害資源のリカバリ(復旧)を行う。
ム1、2、3がDBの資源を更新中に何らかの障害が発
生した場合、システム1、2、3の各ログファイルから
ログデータを取り出してデータベースの資源更新順にソ
ートし、作業用領域(揮発域)に格納する。このデータ
ベース更新順にソートしたログデータを最新のものから
参照し、障害の発生した資源のログデータを取り出し、
DBの障害資源のリカバリ(復旧)を行う。
【0007】
【発明が解決しようとする課題】上述したように、図6
のような従来のシステムで障害が発生した場合、ログデ
ータをデータ更新順に並びかえてこれを参照して、いず
れの資源を閉塞するか見つけると共に、閉塞した資源の
復旧を行うようにしていたため、システム毎に取得され
たログデータを資源毎にデータベース更新順に並びかえ
る必要があり、ログデータの量が膨大であり、並びかえ
る処理に膨大な時間が必要となってしまい、汚染資源を
見つけて閉塞してフォールバック運用したり、更に見つ
けた汚染資源を復旧したりするのが遅れてしまうという
問題があった。
のような従来のシステムで障害が発生した場合、ログデ
ータをデータ更新順に並びかえてこれを参照して、いず
れの資源を閉塞するか見つけると共に、閉塞した資源の
復旧を行うようにしていたため、システム毎に取得され
たログデータを資源毎にデータベース更新順に並びかえ
る必要があり、ログデータの量が膨大であり、並びかえ
る処理に膨大な時間が必要となってしまい、汚染資源を
見つけて閉塞してフォールバック運用したり、更に見つ
けた汚染資源を復旧したりするのが遅れてしまうという
問題があった。
【0008】本発明は、これらの問題を解決するため、
複数システム間で共有するログファイルに全システムの
ログデータを資源毎にデータベース更新順に並べて取得
し、障害発生時にこの並びかえ済の資源毎のログデータ
を参照して汚染資源を閉塞および復旧を迅速に行うこと
を目的としている。
複数システム間で共有するログファイルに全システムの
ログデータを資源毎にデータベース更新順に並べて取得
し、障害発生時にこの並びかえ済の資源毎のログデータ
を参照して汚染資源を閉塞および復旧を迅速に行うこと
を目的としている。
【0009】
【課題を解決するための手段】図1を参照して課題を解
決するための手段を説明する。図1において、ログファ
イル11は、ログデータを格納する複数システムが共有
するファイルである。
決するための手段を説明する。図1において、ログファ
イル11は、ログデータを格納する複数システムが共有
するファイルである。
【0010】ログ取得処理14は、システムがデータベ
ース12を更新したときのログデータを取得するもので
ある。
ース12を更新したときのログデータを取得するもので
ある。
【0011】
【作用】本発明は、図1に示すように、システムがデー
タベース12を更新したときに、ログ取得処理14がこ
のデータベース12を更新したときのログデータを取得
して資源毎にデータベース更新順に共有のログファイル
11に格納しておき、障害発生時にログファイル11を
参照してデータベース12の該当資源の閉塞および復旧
を行うようにしている。
タベース12を更新したときに、ログ取得処理14がこ
のデータベース12を更新したときのログデータを取得
して資源毎にデータベース更新順に共有のログファイル
11に格納しておき、障害発生時にログファイル11を
参照してデータベース12の該当資源の閉塞および復旧
を行うようにしている。
【0012】この際、障害発生時にログファイル11を
参照してデータベース12の該当資源の閉塞を行った
後、当該資源を元の状態に戻して復元するようにしてい
る。また、障害発生時にログファイル11を参照してデ
ータベース12の該当資源の閉塞を行った後、当該資源
を更新後の状態にして復元するようにしている。
参照してデータベース12の該当資源の閉塞を行った
後、当該資源を元の状態に戻して復元するようにしてい
る。また、障害発生時にログファイル11を参照してデ
ータベース12の該当資源の閉塞を行った後、当該資源
を更新後の状態にして復元するようにしている。
【0013】従って、複数システム間で共有するログフ
ァイル11に全システムのログデータを資源毎にデータ
ベース更新順に並べて取得し、障害発生時にこの並びか
え済の資源毎のログデータを参照して汚染資源を閉塞お
よび復旧を迅速に行うことが可能となる。
ァイル11に全システムのログデータを資源毎にデータ
ベース更新順に並べて取得し、障害発生時にこの並びか
え済の資源毎のログデータを参照して汚染資源を閉塞お
よび復旧を迅速に行うことが可能となる。
【0014】
【実施例】次に、図1から図5を用いて本発明の実施例
の構成および動作を順次詳細に説明する。
の構成および動作を順次詳細に説明する。
【0015】図1は、本発明の1実施例構成図を示す。
図1において、ログファイル11は、複数のシステム
1、2などに共有に設け、各システムがデータベース1
2の資源を更新したときのログデータを、データベース
の資源の更新順に並べて格納したものである。
図1において、ログファイル11は、複数のシステム
1、2などに共有に設け、各システムがデータベース1
2の資源を更新したときのログデータを、データベース
の資源の更新順に並べて格納したものである。
【0016】データベース12は、各種データを検索し
やすく格納したものである。システム1、2は、データ
ベース12を更新・参照して各種処理を行うものであっ
て、トランザクションが使用する領域およびシステムが
使用する領域などから構成されるものである。トランザ
クションが使用する領域は、図示のように、排他制御処
理13、ログ取得処理14などを実行するプログラムを
格納したり、作業域15などから構成されている。シス
テムが使用する領域は、図示のように、ログ書出処理1
6、バッファ書き戻し処理17などを実行するプログラ
ムを格納したり、バッファ18、システム内作業域19
などから構成されている。
やすく格納したものである。システム1、2は、データ
ベース12を更新・参照して各種処理を行うものであっ
て、トランザクションが使用する領域およびシステムが
使用する領域などから構成されるものである。トランザ
クションが使用する領域は、図示のように、排他制御処
理13、ログ取得処理14などを実行するプログラムを
格納したり、作業域15などから構成されている。シス
テムが使用する領域は、図示のように、ログ書出処理1
6、バッファ書き戻し処理17などを実行するプログラ
ムを格納したり、バッファ18、システム内作業域19
などから構成されている。
【0017】排他制御処理13は、データベース12の
資源の排他を獲得するものである。ログ取得処理14
は、システムがデータベース12を更新したときのログ
データを資源毎にデータベース更新順にログファイル1
1に格納するためのものである。
資源の排他を獲得するものである。ログ取得処理14
は、システムがデータベース12を更新したときのログ
データを資源毎にデータベース更新順にログファイル1
1に格納するためのものである。
【0018】作業域15は、ログデータを一時的に格納
したりなどする領域である。ログ書出処理16は、シス
テム内作業域19にログデータが所定量を越えた場合な
どに取り出してログファイル11に格納するものであ
る。
したりなどする領域である。ログ書出処理16は、シス
テム内作業域19にログデータが所定量を越えた場合な
どに取り出してログファイル11に格納するものであ
る。
【0019】バッファ書き出し処理17は、バッファ1
8のデータをデータベース12に格納したりなどするも
のである。バッファ18は、データを一時的に格納する
ものである。
8のデータをデータベース12に格納したりなどするも
のである。バッファ18は、データを一時的に格納する
ものである。
【0020】システム内作業域19は、各種データを一
時的に格納したりするものであって、ここではログデー
タを一時的に格納するものである。リカバリ処理は、リ
カバリを行なうものである。
時的に格納したりするものであって、ここではログデー
タを一時的に格納するものである。リカバリ処理は、リ
カバリを行なうものである。
【0021】次に、図2のフローチャートに示す順序に
従い、図1の構成の動作を詳細に説明する。図2の
(a)において、S1は、トランザクション開始する。
従い、図1の構成の動作を詳細に説明する。図2の
(a)において、S1は、トランザクション開始する。
【0022】S2は、資源の排他獲得(排他的利用権を
獲得、以下同じ)する。これは、図1の排他制御処理1
3によって更新しようとするデータベース12の資源の
排他を獲得する。
獲得、以下同じ)する。これは、図1の排他制御処理1
3によって更新しようとするデータベース12の資源の
排他を獲得する。
【0023】S3は、更新前ログを取得する。これは、
データベース12の資源を更新する前のログデータを取
得する。S4は、DBを更新する。これは、S3に続
き、データベース12の資源の更新を行う。
データベース12の資源を更新する前のログデータを取
得する。S4は、DBを更新する。これは、S3に続
き、データベース12の資源の更新を行う。
【0024】S5は、更新後ログを取得する。これは、
データベース12の資源を更新した後のログデータを取
得する。S6は、全ての資源への更新が終了したか判別
する。YESの場合には、S9に進む。NOの場合に
は、S7に進む。
データベース12の資源を更新した後のログデータを取
得する。S6は、全ての資源への更新が終了したか判別
する。YESの場合には、S9に進む。NOの場合に
は、S7に進む。
【0025】S7は、トランザクションの作業域に一定
量のログが溜まったか判別する。これは、図1の作業域
15にS3およびS5で取得したログデータが一定量溜
まったか判別する。YESの場合には、S8でトランザ
クションの作業域15のログをシステム内作業域19に
コピーし、S3に戻り繰り返す。一方、NOの場合に
は、S3に戻り繰り返す。
量のログが溜まったか判別する。これは、図1の作業域
15にS3およびS5で取得したログデータが一定量溜
まったか判別する。YESの場合には、S8でトランザ
クションの作業域15のログをシステム内作業域19に
コピーし、S3に戻り繰り返す。一方、NOの場合に
は、S3に戻り繰り返す。
【0026】S9は、トランザクションの作業域の残り
のログをシステム内の作業域にコピする。即ち、S6の
YESで資源への更新が終了したので、トランザクショ
ンの作業域15のログデータをシステム内作業域19に
コピーする。
のログをシステム内の作業域にコピする。即ち、S6の
YESで資源への更新が終了したので、トランザクショ
ンの作業域15のログデータをシステム内作業域19に
コピーする。
【0027】S10は、システム内の作業域のログが不
揮発化されたか判別する。YESの場合には、システム
内作業域19のログデータがログファイル11に保存さ
れて不揮発化されたと判明したので、S11で資源の排
他解放し、S12で一連のトランザクションを終了す
る。一方、NOの場合には、S10でシステム内作業域
19のログデータが不揮発化されるのを待つ。不揮発化
するために複数のシステムに共有のログファイル11に
保存する際に、データベース12の資源毎にデータベー
ス更新順にログデータを保存するようにしている。
揮発化されたか判別する。YESの場合には、システム
内作業域19のログデータがログファイル11に保存さ
れて不揮発化されたと判明したので、S11で資源の排
他解放し、S12で一連のトランザクションを終了す
る。一方、NOの場合には、S10でシステム内作業域
19のログデータが不揮発化されるのを待つ。不揮発化
するために複数のシステムに共有のログファイル11に
保存する際に、データベース12の資源毎にデータベー
ス更新順にログデータを保存するようにしている。
【0028】ここで、S9で複数システム間で共有され
るので、ログファイル11への書き出しは複数システム
間で逐次化される。例えば磁気ディスク装置を利用して
いる場合、装置制御装置に対して最初に占有権を獲得し
たシステムが書き出し可能とし、装置占有が開放された
後、同様のことを繰り返すといった手段が採用される。
るので、ログファイル11への書き出しは複数システム
間で逐次化される。例えば磁気ディスク装置を利用して
いる場合、装置制御装置に対して最初に占有権を獲得し
たシステムが書き出し可能とし、装置占有が開放された
後、同様のことを繰り返すといった手段が採用される。
【0029】一方、ログの書き出し順番は、この逐次化
の方法と無関係にデータベース12の資源の排他的利用
権の獲得によって保証している。データベースの利用権
を獲得出来なかったシステムは、そもそも、書き込むべ
きログが発生しようがないからである。本発明は、主記
憶共有しない独立の複数システム間でデータベースとロ
グを共有することによって、TCMPと同様にログの複
合システム内での一貫した利用を実現可能となるもので
ある。
の方法と無関係にデータベース12の資源の排他的利用
権の獲得によって保証している。データベースの利用権
を獲得出来なかったシステムは、そもそも、書き込むべ
きログが発生しようがないからである。本発明は、主記
憶共有しない独立の複数システム間でデータベースとロ
グを共有することによって、TCMPと同様にログの複
合システム内での一貫した利用を実現可能となるもので
ある。
【0030】以上によって、トランザクション開始時に
資源の排他を獲得し、データベース12に資源の更新前
ログデータおよび更新後ログデータを取得して複数のシ
ステムで共有のログファイル11にデータベース12の
資源毎に更新順にログデータを保存して不揮発化した
後、排他解放して一連のトランザクション終了する。こ
れにより、データベース12の資源のいずれかに障害が
発生しても、ログファイル11には既に資源毎にデータ
ベース更新順にログデータが保存されているため、この
データベース更新順のログデータを参照して汚染資源の
閉塞および復旧を迅速に図ることが可能となる。
資源の排他を獲得し、データベース12に資源の更新前
ログデータおよび更新後ログデータを取得して複数のシ
ステムで共有のログファイル11にデータベース12の
資源毎に更新順にログデータを保存して不揮発化した
後、排他解放して一連のトランザクション終了する。こ
れにより、データベース12の資源のいずれかに障害が
発生しても、ログファイル11には既に資源毎にデータ
ベース更新順にログデータが保存されているため、この
データベース更新順のログデータを参照して汚染資源の
閉塞および復旧を迅速に図ることが可能となる。
【0031】図2の(b)は、バッファ書き戻し処理1
7を示す。図2の(b)において、S21は、バッファ
がいっぱいか判別する。YESの場合には、図1のバッ
ファ18が一杯であると判明したので、S22でバッフ
ァ更新前に取得したログが不揮発化されたか判別する。
YESの場合には、S23でバッファの書き戻しを行
い、S21に戻る。一方、NOの場合には、ログが不揮
発化されるのを待機する。
7を示す。図2の(b)において、S21は、バッファ
がいっぱいか判別する。YESの場合には、図1のバッ
ファ18が一杯であると判明したので、S22でバッフ
ァ更新前に取得したログが不揮発化されたか判別する。
YESの場合には、S23でバッファの書き戻しを行
い、S21に戻る。一方、NOの場合には、ログが不揮
発化されるのを待機する。
【0032】図2の(c)は、ログ書出処理16を示
す。図2の(c)において、S31は、システム内の作
業域のログが一定量を越えたか判別する。YESの場合
には、S33で不揮発域の排他獲得する。
す。図2の(c)において、S31は、システム内の作
業域のログが一定量を越えたか判別する。YESの場合
には、S33で不揮発域の排他獲得する。
【0033】S34は、システム内の作業域19のログ
を不揮発域(ログファイル11)に書き出す。S35
は、不揮発域の排他解放する。そして、S31に戻る。
を不揮発域(ログファイル11)に書き出す。S35
は、不揮発域の排他解放する。そして、S31に戻る。
【0034】次に、図3を用いてUNDO(そのトラン
ザクショでのDB更新を無かったことにする)時の動作
を詳細に説明する。図3において、S41は、トランザ
クション開始する。
ザクショでのDB更新を無かったことにする)時の動作
を詳細に説明する。図3において、S41は、トランザ
クション開始する。
【0035】S42は、資源の排他獲得する。これは、
図1の排他制御処理13が更新しようとするデータベー
ス12の資源の排他を獲得する。S43は、DB更新す
る。これは、S42に続き、データベース12の資源の
更新を行う。
図1の排他制御処理13が更新しようとするデータベー
ス12の資源の排他を獲得する。S43は、DB更新す
る。これは、S42に続き、データベース12の資源の
更新を行う。
【0036】S44は、バッファ書き戻しを行う。この
バッファ書き戻しの際に、当該バッファ書き戻しに関連
するログデータを資源毎にデータベース更新順にログフ
ァイル11に保存しておく。
バッファ書き戻しの際に、当該バッファ書き戻しに関連
するログデータを資源毎にデータベース更新順にログフ
ァイル11に保存しておく。
【0037】S45で、障害が発生する。これは、デー
タベース12の資源への更新時に障害が発生する。S4
6は、リカバリ開始する。
タベース12の資源への更新時に障害が発生する。S4
6は、リカバリ開始する。
【0038】S47は、不揮発域(ログファイル11)
より全ての終了していないトランザクションの最後のロ
グを見つける。これは、S44のときに合わせてログフ
ァイル11に保存した資源毎のデータベース更新順のロ
グデータを取り出し、トランザクションが終了していな
いログデータを見つける。
より全ての終了していないトランザクションの最後のロ
グを見つける。これは、S44のときに合わせてログフ
ァイル11に保存した資源毎のデータベース更新順のロ
グデータを取り出し、トランザクションが終了していな
いログデータを見つける。
【0039】S48は、S47で見つけたログを使い、
資源の復旧、即ち元の状態に戻す。S49は、1つ前の
ログを見つける。S50は、トランザクションのログが
無いか判別する。YESの場合には、S51に進む。一
方、NOの場合には、S48に戻り、資源の復旧を繰り
返す。
資源の復旧、即ち元の状態に戻す。S49は、1つ前の
ログを見つける。S50は、トランザクションのログが
無いか判別する。YESの場合には、S51に進む。一
方、NOの場合には、S48に戻り、資源の復旧を繰り
返す。
【0040】S51は、全てのトランザクションの処理
が終了か判別する。YESの場合には、リカバリ完了す
る。NOの場合には、S48に戻り、資源の復旧を繰り
返す。
が終了か判別する。YESの場合には、リカバリ完了す
る。NOの場合には、S48に戻り、資源の復旧を繰り
返す。
【0041】以上によって、ログファイル11に資源毎
にデータベース更新順に保存したログデータから終了し
ていないトランザクションを順次見つけ出し、この見つ
け出したログデータを使って資源を元の状態に復元する
ことを繰り返す。これにより、障害発生時にログデータ
を資源毎にデータベース更新順に並びかえることなく、
即時に資源の閉塞および資源の復旧を開始することが可
能となる。
にデータベース更新順に保存したログデータから終了し
ていないトランザクションを順次見つけ出し、この見つ
け出したログデータを使って資源を元の状態に復元する
ことを繰り返す。これにより、障害発生時にログデータ
を資源毎にデータベース更新順に並びかえることなく、
即時に資源の閉塞および資源の復旧を開始することが可
能となる。
【0042】次に、図4を用いてREDO(そのトラン
ザクションでのDB更新状態をDBに反映する)時の動
作を詳細に説明する。図4において、S61は、トラン
ザクション開始する。
ザクションでのDB更新状態をDBに反映する)時の動
作を詳細に説明する。図4において、S61は、トラン
ザクション開始する。
【0043】S62は、資源の排他獲得する。これは、
図1の排他制御処理13が更新しようとするデータベー
ス12の資源の排他を獲得する。S63は、DB更新す
る。これは、S62に続き、データベース12の資源の
更新を行う。このDB更新前後の関連するログデータを
資源毎にデータベース更新順にログファイル11に保存
しておく。
図1の排他制御処理13が更新しようとするデータベー
ス12の資源の排他を獲得する。S63は、DB更新す
る。これは、S62に続き、データベース12の資源の
更新を行う。このDB更新前後の関連するログデータを
資源毎にデータベース更新順にログファイル11に保存
しておく。
【0044】S64は、資源の排他解放する。S65
は、トランザクション終了する。S66は、障害発生し
たと(バッファ書き戻し未)する。
は、トランザクション終了する。S66は、障害発生し
たと(バッファ書き戻し未)する。
【0045】S67は、リカバリ開始する。S68は、
不揮発化域(ログファイル11)より終了しているトラ
ンザクションを見つける。
不揮発化域(ログファイル11)より終了しているトラ
ンザクションを見つける。
【0046】S69は、不揮発化域の先頭からログを1
つ取り出す。S70は、ログがもうないか判別する。Y
ESの場合には、S73でリカバリ完了する。NOの場
合には、S71に進む。
つ取り出す。S70は、ログがもうないか判別する。Y
ESの場合には、S73でリカバリ完了する。NOの場
合には、S71に進む。
【0047】S71は、取り出したログが終了トランザ
クションのものか判別する。YESの場合には、S66
で障害発生してバッファ書き戻し未の資源のログデータ
と判明したので、S72で資源の復旧として、当該ログ
データを使って更新後状態にし、S69に戻り、繰り返
す。一方、NOの場合には、S69を戻り繰り返す。
クションのものか判別する。YESの場合には、S66
で障害発生してバッファ書き戻し未の資源のログデータ
と判明したので、S72で資源の復旧として、当該ログ
データを使って更新後状態にし、S69に戻り、繰り返
す。一方、NOの場合には、S69を戻り繰り返す。
【0048】以上によって、ログファイル11に資源毎
にデータベース更新順に保存したログデータから終了し
ているトランザクションを順次見つけ出し、この見つけ
出したログデータを使って資源を更新後の状態に復元す
ることを繰り返す。これにより、障害発生時にログデー
タを資源毎にデータベース更新順に並びかえることな
く、即時に資源の閉塞および資源の復旧を開始すること
が可能となる。
にデータベース更新順に保存したログデータから終了し
ているトランザクションを順次見つけ出し、この見つけ
出したログデータを使って資源を更新後の状態に復元す
ることを繰り返す。これにより、障害発生時にログデー
タを資源毎にデータベース更新順に並びかえることな
く、即時に資源の閉塞および資源の復旧を開始すること
が可能となる。
【0049】図5は、本発明のログデータ取得説明図を
示す。これは、2つのトランザクションAとトランザク
ションBがデータデース12の同一の資源αを更新した
ときに、不揮発化したログファイル11に資源毎にログ
データをデータベース更新順に保存する様子を示したも
のである。
示す。これは、2つのトランザクションAとトランザク
ションBがデータデース12の同一の資源αを更新した
ときに、不揮発化したログファイル11に資源毎にログ
データをデータベース更新順に保存する様子を示したも
のである。
【0050】図5の(a)は、模式的にログファイル1
1への保存を示したものである。図5の(b)は、図5
の(a)の動作説明図である。 (1) トランザクションAの動作:は、トランザク
ションAがデータベース12の資源αの排他を獲得す
る。
1への保存を示したものである。図5の(b)は、図5
の(a)の動作説明図である。 (1) トランザクションAの動作:は、トランザク
ションAがデータベース12の資源αの排他を獲得す
る。
【0051】は、資源αの更新前ログ取得する。
は、資源αの更新する。は、資源αの更新後ログ取得
する。
は、資源αの更新する。は、資源αの更新後ログ取得
する。
【0052】は、資源αのログの不揮発化(同期)す
る。この時点でログデータ(更新前ログデータおよび更
新後ログデータ)がログファイル11に図5の(a)の
点線の矢印を用いて示すように保存する。
る。この時点でログデータ(更新前ログデータおよび更
新後ログデータ)がログファイル11に図5の(a)の
点線の矢印を用いて示すように保存する。
【0053】は、トランザクションAのCOMMIT
終了する。は、資源αの排他解除する。 (2) トランザクションBの動作:は、トランザク
ションBが資源αの排他獲得待ちする。
終了する。は、資源αの排他解除する。 (2) トランザクションBの動作:は、トランザク
ションBが資源αの排他獲得待ちする。
【0054】は、資源αの排他獲得待ち解除する。
は、資源αの更新前ログ取得する。は、資源αの更新
する。
は、資源αの更新前ログ取得する。は、資源αの更新
する。
【0055】(10)は、資源αの更新後ログ取得す
る。(11)は、資源αのログの不揮発化(同期)す
る。この時点でログデータ(更新前ログデータおよび更
新後ログデータ)がログファイル11に図5の(a)の
点線の矢印を用いて示すように保存する。
る。(11)は、資源αのログの不揮発化(同期)す
る。この時点でログデータ(更新前ログデータおよび更
新後ログデータ)がログファイル11に図5の(a)の
点線の矢印を用いて示すように保存する。
【0056】(12)は、トランザクションBのCOM
MIT終了する。(13)は、資源αの排他解除する。
以上の手順によって、ログファイル11には、データベ
ース12の資源毎にデータベース更新順にログデータが
保存されることとなる。
MIT終了する。(13)は、資源αの排他解除する。
以上の手順によって、ログファイル11には、データベ
ース12の資源毎にデータベース更新順にログデータが
保存されることとなる。
【0057】
【発明の効果】以上説明したように、本発明によれば、
複数システム間で共有するログファイル11に全システ
ムのログデータを資源毎にデータベース更新順に並べて
取得し、障害発生時にこの並びかえ済の資源毎のログデ
ータを参照して汚染資源を閉塞および復旧を行う構成を
採用しているため、データベース12の資源の障害発生
時にログデータの並びかえを行うことなく、汚染資源の
閉塞および復旧を即時に開始することができる。これに
より、従来の汚染資源の閉塞および復旧するために、各
システムで取得したログデータをデータベースの資源毎
にソートして汚染資源を見つけて閉塞および復旧を開始
するという遅れを無くし、障害発生時に即時に汚染資源
を閉塞してフォールバック運用を開始しつつ汚染資源の
復旧を図ることが可能となる。
複数システム間で共有するログファイル11に全システ
ムのログデータを資源毎にデータベース更新順に並べて
取得し、障害発生時にこの並びかえ済の資源毎のログデ
ータを参照して汚染資源を閉塞および復旧を行う構成を
採用しているため、データベース12の資源の障害発生
時にログデータの並びかえを行うことなく、汚染資源の
閉塞および復旧を即時に開始することができる。これに
より、従来の汚染資源の閉塞および復旧するために、各
システムで取得したログデータをデータベースの資源毎
にソートして汚染資源を見つけて閉塞および復旧を開始
するという遅れを無くし、障害発生時に即時に汚染資源
を閉塞してフォールバック運用を開始しつつ汚染資源の
復旧を図ることが可能となる。
【図1】本発明の1実施例構成図である。
【図2】本発明の動作説明フローチャートである。
【図3】本発明のUNDO(DB更新を無かったことに
する)時のフローチャートである。
する)時のフローチャートである。
【図4】本発明のREDO(DB更新状態をDBに反映
する)時のフローチャートである。
する)時のフローチャートである。
【図5】本発明のログデータ取得説明図である。
【図6】従来技術の説明図である。
1、2:システム 11:ログファイル 12:データベース 13:排他制御処理 14:ログ取得処理 15:作業域 16:ログ書出処理 17:バッファ書き戻し処理 18:バッファ 19:システム内作業域
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成6年1月28日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正内容】
【書類名】 明細書
【発明の名称】 ログ取得方式
【特許請求の範囲】
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のシステムがデー
タベースを共用するデータベース処理システムにおい
て、データベースのログデータを取得するログ取得方式
に関するものである。
タベースを共用するデータベース処理システムにおい
て、データベースのログデータを取得するログ取得方式
に関するものである。
【0002】
【従来の技術】複数のシステムがデータベースを共用し
ているデータベース処理システムの運用中に、何らかの
原因でデータベースの資源に障害が発生した場合、デー
タベースを更新したときに取得したログデータが必要と
なる。
ているデータベース処理システムの運用中に、何らかの
原因でデータベースの資源に障害が発生した場合、デー
タベースを更新したときに取得したログデータが必要と
なる。
【0003】従来、このログデータは、システム毎にシ
ステム固有のログファイルに取得する。そして、障害発
生時に、図6に示すように、全システム分のログファイ
ルを参照してデータベースの資源の更新時間順に並びか
えて、障害の発生した資源を復旧する。
ステム固有のログファイルに取得する。そして、障害発
生時に、図6に示すように、全システム分のログファイ
ルを参照してデータベースの資源の更新時間順に並びか
えて、障害の発生した資源を復旧する。
【0004】図6は、従来技術の説明図を示す。 (1) ログデータの取得フェース:システム1、2、
3が各システム毎のシステム1用ログファイル、システ
ム2用ログファイル、システム3用ログファイル(不揮
発域)にそれぞれデータベースの資源を更新したときの
ログデータを保存する。
3が各システム毎のシステム1用ログファイル、システ
ム2用ログファイル、システム3用ログファイル(不揮
発域)にそれぞれデータベースの資源を更新したときの
ログデータを保存する。
【0005】(2) 障害となった資源の復旧フェー
ズ:システム1、2、3がデータベース処理の運用中に
何らかの障害が発生した場合、システム1、2、3の各
ログファイルからログデータを取り出してデータベース
の資源の更新時間順に並べかえ、作業用領域に格納す
る。このデータベース更新順に並べかえたログデータを
参照し、障害の発生したデータベースの資源を復旧す
る。
ズ:システム1、2、3がデータベース処理の運用中に
何らかの障害が発生した場合、システム1、2、3の各
ログファイルからログデータを取り出してデータベース
の資源の更新時間順に並べかえ、作業用領域に格納す
る。このデータベース更新順に並べかえたログデータを
参照し、障害の発生したデータベースの資源を復旧す
る。
【0006】また、複数のシステムがデータベースを共
用しているデータベース処理システムにおけるログデー
タの並べかえ技術に関しては、次のものがある。 ・特開昭61−133459号(データベース更新ログ
処理方式) これは、更新ログ用履歴ファイルをデータベースの資源
ごとにグループ化し、複数プロセッサで共用する。個々
の更新ログ用履歴ファイルは、区画化されており、ログ
格納位置がプロセッサごとに固定化される。
用しているデータベース処理システムにおけるログデー
タの並べかえ技術に関しては、次のものがある。 ・特開昭61−133459号(データベース更新ログ
処理方式) これは、更新ログ用履歴ファイルをデータベースの資源
ごとにグループ化し、複数プロセッサで共用する。個々
の更新ログ用履歴ファイルは、区画化されており、ログ
格納位置がプロセッサごとに固定化される。
【0007】 ・特開平3−202950号(ジャーナル収集方式) これは、各プロセッサから発生するログデータを一括し
てミニコンピュータ(BEP)に送付し、共用データベ
ースに関するログデータをミニコンピュータ(BEP)
が併合して共用のログファイルに保存する。
てミニコンピュータ(BEP)に送付し、共用データベ
ースに関するログデータをミニコンピュータ(BEP)
が併合して共用のログファイルに保存する。
【0008】
【発明が解決しようとする課題】上述した図6のような
従来のシステムで障害が発生した場合、ログデータをデ
ータベース更新順に並べかえてこれを参照して、障害と
なった資源の復旧を行うようにしていたため、システム
ごとに取得されたログデータをデータベース更新順に並
べかえる必要があり、ログデータの量が膨大であり、並
べかえる処理に膨大な時間が必要となってしまい、障害
の発生した資源を見つけて閉塞してフォールバック運用
したり、更に、その資源を復旧したりするのが遅れてし
まうという問題があった。
従来のシステムで障害が発生した場合、ログデータをデ
ータベース更新順に並べかえてこれを参照して、障害と
なった資源の復旧を行うようにしていたため、システム
ごとに取得されたログデータをデータベース更新順に並
べかえる必要があり、ログデータの量が膨大であり、並
べかえる処理に膨大な時間が必要となってしまい、障害
の発生した資源を見つけて閉塞してフォールバック運用
したり、更に、その資源を復旧したりするのが遅れてし
まうという問題があった。
【0009】また、前者の公報は、資源グループごとの
更新ログ履歴ファイルが各々のプロセッサごとに区画化
されており、各々のプロセッサは各自の区画域にログデ
ータを出力する。このため、リカバリ時にログデータを
並べかえる必要があるという問題があった。
更新ログ履歴ファイルが各々のプロセッサごとに区画化
されており、各々のプロセッサは各自の区画域にログデ
ータを出力する。このため、リカバリ時にログデータを
並べかえる必要があるという問題があった。
【0010】また、後者の公報は、ログデータを出力す
るプロセッサをミニコンピュータ(BEP)に限定して
いる。このため、ログデータを出力するシステム異常時
の信頼性に欠けるという問題がある。
るプロセッサをミニコンピュータ(BEP)に限定して
いる。このため、ログデータを出力するシステム異常時
の信頼性に欠けるという問題がある。
【0011】本発明は、これらの問題を解決するため、
ログデータ発生時に、複数システム間で共有する共用メ
モリに全システムのログデータをデータベース更新順に
並べて取得しておき、障害発生時に、この並べかえ済み
のログデータを参照して障害の発生した資源の閉塞およ
び復旧を迅速に行うことを目的としている。
ログデータ発生時に、複数システム間で共有する共用メ
モリに全システムのログデータをデータベース更新順に
並べて取得しておき、障害発生時に、この並べかえ済み
のログデータを参照して障害の発生した資源の閉塞およ
び復旧を迅速に行うことを目的としている。
【0012】
【課題を解決するための手段】図1を参照して課題を解
決するための手段を説明する。図1において、共用メモ
リ10は、ログデータを格納する複数システムが共有す
るメモリである。この共用メモリ10は、不揮発域に配
置することも、揮発域に配置することもできる。共用メ
モリ10を揮発域に配置した場合には、更に、複数シス
テムで共有する不揮発性のログファイル11を配置す
る。
決するための手段を説明する。図1において、共用メモ
リ10は、ログデータを格納する複数システムが共有す
るメモリである。この共用メモリ10は、不揮発域に配
置することも、揮発域に配置することもできる。共用メ
モリ10を揮発域に配置した場合には、更に、複数シス
テムで共有する不揮発性のログファイル11を配置す
る。
【0013】ログ取得処理14は、各システム内で動作
するトランザクションがデータベース12を更新したと
きのログデータをシステム内作業域19に取得するもの
である。
するトランザクションがデータベース12を更新したと
きのログデータをシステム内作業域19に取得するもの
である。
【0014】ログ書出処理16は、トランザクションの
ログデータを不揮発域に書き出すものである。
ログデータを不揮発域に書き出すものである。
【0015】
【作用】本発明は、図1に示すように、トランザクショ
ンがデータベース12を更新したときに、ログ取得処理
14がこのデータベース12を更新したときのログデー
タをシステム内作業域19に取得し、ログ書出処理16
がトランザクションによるデータベース更新順にログデ
ータを不揮発性の共用メモリ10に書き出す。また、図
2に示すように、ログデータをデータ更新順に揮発性の
共用メモリ10に書き出し、複数のシステムからのログ
データをまとめてスペース効率を高めるバッファリング
した後、不揮発性のログファイル11に書き出すように
してもよい。
ンがデータベース12を更新したときに、ログ取得処理
14がこのデータベース12を更新したときのログデー
タをシステム内作業域19に取得し、ログ書出処理16
がトランザクションによるデータベース更新順にログデ
ータを不揮発性の共用メモリ10に書き出す。また、図
2に示すように、ログデータをデータ更新順に揮発性の
共用メモリ10に書き出し、複数のシステムからのログ
データをまとめてスペース効率を高めるバッファリング
した後、不揮発性のログファイル11に書き出すように
してもよい。
【0016】従って、複数システム間で共用する共用メ
モリ10に全システムのログデータがデータベース更新
順に並べられて書き出されているので、従来のログ併合
処理が不要であり、障害発生時には、TCMP(密結合
システム)と同様にこの並べかえ済みのログデータを参
照してデータベース12の閉塞および復旧の性能を引き
出すことができる。
モリ10に全システムのログデータがデータベース更新
順に並べられて書き出されているので、従来のログ併合
処理が不要であり、障害発生時には、TCMP(密結合
システム)と同様にこの並べかえ済みのログデータを参
照してデータベース12の閉塞および復旧の性能を引き
出すことができる。
【0017】また、対称的なシステム構成であるためシ
ステムの障害に強く、更に、BEP(ログデータを取得
するミニコンピュータ)は不要であり、シンプルなシス
テム構成となる。
ステムの障害に強く、更に、BEP(ログデータを取得
するミニコンピュータ)は不要であり、シンプルなシス
テム構成となる。
【0018】
【実施例】次に、図1から図5を用いて、本発明の実施
例の構成および動作を順次詳細に説明する。
例の構成および動作を順次詳細に説明する。
【0019】図1は、本発明の1実施例構成図を示す。
図1において、共用メモリ10は、複数のシステム1、
2・・・nなどに共有に設け、各システムがデータベー
ス12の資源を更新したときのログデータをデータベー
ス12の更新順に並べて格納するものである。
図1において、共用メモリ10は、複数のシステム1、
2・・・nなどに共有に設け、各システムがデータベー
ス12の資源を更新したときのログデータをデータベー
ス12の更新順に並べて格納するものである。
【0020】データベース12は、各種データを検索・
更新しやすく格納したものである。システム1、2・・
・nは、データベース12を参照・更新して各種処理を
行うものであって、トランザクションが使用する領域や
システムが使用する領域などをローカルメモリに配置し
たものである。
更新しやすく格納したものである。システム1、2・・
・nは、データベース12を参照・更新して各種処理を
行うものであって、トランザクションが使用する領域や
システムが使用する領域などをローカルメモリに配置し
たものである。
【0021】排他制御処理13は、データベース12の
資源の排他を獲得するものである。ログ取得処理14
は、トランザクションがデータベース12を更新したと
きのログデータをデータベース12の更新順にシステム
内作業域19に取得するものである。
資源の排他を獲得するものである。ログ取得処理14
は、トランザクションがデータベース12を更新したと
きのログデータをデータベース12の更新順にシステム
内作業域19に取得するものである。
【0022】バッファ制御15は、データをバッファに
格納などするものである。ログ書出処理16は、共用メ
モリ10が不揮発域に配置されている場合、システム内
作業域19にログデータが所定量を越えたときなどに取
り出したログデータを共用メモリ10に格納するもので
ある。
格納などするものである。ログ書出処理16は、共用メ
モリ10が不揮発域に配置されている場合、システム内
作業域19にログデータが所定量を越えたときなどに取
り出したログデータを共用メモリ10に格納するもので
ある。
【0023】バッファ書き戻し処理17は、バッファ1
8上のデータをデータベース12に格納したりなどする
ものである。バッファ18は、データを一時的に格納す
るものである。
8上のデータをデータベース12に格納したりなどする
ものである。バッファ18は、データを一時的に格納す
るものである。
【0024】システム内作業域19は、各種データを一
時的に格納したりするものであって、ここでは、ログデ
ータを一時的に格納するものである。
時的に格納したりするものであって、ここでは、ログデ
ータを一時的に格納するものである。
【0025】また、図2において、ログ書出処理16
は、共用メモリ10が揮発域に配置されている場合、シ
ステム内作業域19にログデータが所定量を越えたとき
などに取り出したログデータを共用メモリ10に複写
し、複数のシステムからのログデータをまとめてスペー
ス効率を高めるバッファリングした後に、不揮発性のロ
グファイル11に格納するものである。
は、共用メモリ10が揮発域に配置されている場合、シ
ステム内作業域19にログデータが所定量を越えたとき
などに取り出したログデータを共用メモリ10に複写
し、複数のシステムからのログデータをまとめてスペー
ス効率を高めるバッファリングした後に、不揮発性のロ
グファイル11に格納するものである。
【0026】次に、図3のフローチャートに示す順序に
従い、図1および図2の構成の動作を詳細に説明する。
図3の(a)において、S1は、トランザクションを開
始する。
従い、図1および図2の構成の動作を詳細に説明する。
図3の(a)において、S1は、トランザクションを開
始する。
【0027】S2は、資源の排他獲得(排他的利用権を
獲得、以下同じ)する。これは、図1および図2の排他
制御処理13によって更新しようとするデータベース1
2の資源の排他を獲得する。
獲得、以下同じ)する。これは、図1および図2の排他
制御処理13によって更新しようとするデータベース1
2の資源の排他を獲得する。
【0028】S3は、更新前ログをシステム内作業域に
取得する。これは、データベース12の資源を更新する
前のログデータを取得する。S4は、データベースを更
新する。これは、S3に続き、データベース12の資源
の更新をバッファ18上で行う。
取得する。これは、データベース12の資源を更新する
前のログデータを取得する。S4は、データベースを更
新する。これは、S3に続き、データベース12の資源
の更新をバッファ18上で行う。
【0029】S5は、更新後ログをシステム内作業域に
取得する。これは、データベース12の資源を更新した
後のログデータを取得する。S6は、全ての資源への更
新が終了したかを判別する。YESの場合には、S7に
進む。NOの場合には、S3から繰り返す。
取得する。これは、データベース12の資源を更新した
後のログデータを取得する。S6は、全ての資源への更
新が終了したかを判別する。YESの場合には、S7に
進む。NOの場合には、S3から繰り返す。
【0030】S7は、システム内作業域のログデータが
不揮発化されたかを判別する。YESの場合には、シス
テム内作業域19のログデータが共用メモリ10あるい
はログファイル11に保存されて不揮発化されたと判明
したので、S8で資源の排他解放し、S9で一連のトラ
ンザクションを終了する。一方、NOの場合には、S7
でシステム内作業域19のログデータが不揮発化される
のを待つ。不揮発化するために、複数のシステムに共有
の共用メモリ10またはログファイル11に保存する際
に、データベース更新順にログデータを保存するように
している。
不揮発化されたかを判別する。YESの場合には、シス
テム内作業域19のログデータが共用メモリ10あるい
はログファイル11に保存されて不揮発化されたと判明
したので、S8で資源の排他解放し、S9で一連のトラ
ンザクションを終了する。一方、NOの場合には、S7
でシステム内作業域19のログデータが不揮発化される
のを待つ。不揮発化するために、複数のシステムに共有
の共用メモリ10またはログファイル11に保存する際
に、データベース更新順にログデータを保存するように
している。
【0031】ここで、共用メモリ10へのアクセスは、
複数システム間で逐次化される。例えば共用メモリ10
に対して最初に占有権を獲得したシステムが共用メモリ
10へアクセス可能とし、占有権が解放された後に、同
様のことを繰り返すといった手段が採用される。
複数システム間で逐次化される。例えば共用メモリ10
に対して最初に占有権を獲得したシステムが共用メモリ
10へアクセス可能とし、占有権が解放された後に、同
様のことを繰り返すといった手段が採用される。
【0032】一方、ログデータの書出し順番は、この逐
次化の方法と無関係にデータベース12の資源の排他的
利用権の獲得によって保証している。データベース12
の利用権を獲得できなかったら、そもそも書き込むべ
き、ログデータが発生しようがないからである。
次化の方法と無関係にデータベース12の資源の排他的
利用権の獲得によって保証している。データベース12
の利用権を獲得できなかったら、そもそも書き込むべ
き、ログデータが発生しようがないからである。
【0033】従って、同一資源に対するログデータは、
トランザクションの終了順に書き出されることが保証さ
れる。本発明は、独立の複数システム間でデータヘース
12とログデータを共有することによって、TCMP
(密結合システム)と同様に、ログデータの複合システ
ムの一貫した利用を実現可能とするものである。
トランザクションの終了順に書き出されることが保証さ
れる。本発明は、独立の複数システム間でデータヘース
12とログデータを共有することによって、TCMP
(密結合システム)と同様に、ログデータの複合システ
ムの一貫した利用を実現可能とするものである。
【0034】以上によって、トランザクション開始時に
資源の排他を獲得し、データベース12を更新する際に
更新前ログデータおよび更新後ログデータを取得し、複
数のシステムで共有の共用メモリ10あるいは共有のロ
グファイル11にデータベース12の更新順にログデー
タを保存して不揮発化した後、排他解放して一連のトラ
ンザクションを終了する。これにより、データベース1
2の資源のいずれかに障害が発生しても、共用メモリ1
0あるいはログファイル11には既にデータベース更新
順にログデータが保存されているために、このデータベ
ース更新順のログデータを参照して障害が発生した資源
の閉塞および復旧を迅速に図ることが可能となる。
資源の排他を獲得し、データベース12を更新する際に
更新前ログデータおよび更新後ログデータを取得し、複
数のシステムで共有の共用メモリ10あるいは共有のロ
グファイル11にデータベース12の更新順にログデー
タを保存して不揮発化した後、排他解放して一連のトラ
ンザクションを終了する。これにより、データベース1
2の資源のいずれかに障害が発生しても、共用メモリ1
0あるいはログファイル11には既にデータベース更新
順にログデータが保存されているために、このデータベ
ース更新順のログデータを参照して障害が発生した資源
の閉塞および復旧を迅速に図ることが可能となる。
【0035】図3の(b)は、バッファ書き戻し処理
(システム常駐デーモン)を示す。図3の(b)におい
て、S21は、バッファが一杯かを判別する。YESの
場合には、図1あるいは図2のバッファ18が一杯であ
ると判明したので、S22で更新前に取得したログデー
タが不揮発化されたかを判別する。YESの場合には、
S23でバッファの書き戻しを行い、S21に戻る。一
方、NOの場合には、ログデータが不揮発化されるのを
待機する。
(システム常駐デーモン)を示す。図3の(b)におい
て、S21は、バッファが一杯かを判別する。YESの
場合には、図1あるいは図2のバッファ18が一杯であ
ると判明したので、S22で更新前に取得したログデー
タが不揮発化されたかを判別する。YESの場合には、
S23でバッファの書き戻しを行い、S21に戻る。一
方、NOの場合には、ログデータが不揮発化されるのを
待機する。
【0036】図4の(c)は、ログ書出処理(システム
常駐デーモン)を示す。図4の(c)において、S31
は、システム内作業域のログデータが一定量を超えたか
を判別する。YESの場合には、S33に進む。NOの
場合には、S32で、前回のシステム内作業域19のロ
グデータの書出し契機から一定時間が経過したかを判別
する。また、S32の他の判別手段としては、S7やS
22から不揮発化要求が発生しているかを判別する場合
もある。YESの場合には、S33に進む。NOの場合
には、S31に戻る。
常駐デーモン)を示す。図4の(c)において、S31
は、システム内作業域のログデータが一定量を超えたか
を判別する。YESの場合には、S33に進む。NOの
場合には、S32で、前回のシステム内作業域19のロ
グデータの書出し契機から一定時間が経過したかを判別
する。また、S32の他の判別手段としては、S7やS
22から不揮発化要求が発生しているかを判別する場合
もある。YESの場合には、S33に進む。NOの場合
には、S31に戻る。
【0037】S33は、共用メモリが不揮発域に配置さ
れているかを判別する。YESの場合には、S34に進
む。NOの場合には、S38に進む。S34は、複数の
システム間で共用メモリの排他を獲得する。例えば個々
のシステムは共用メモリ10上に利用宣言を記録し、他
システムが既に利用宣言済みならば排他解放されるのを
待つといった手段が採用される。
れているかを判別する。YESの場合には、S34に進
む。NOの場合には、S38に進む。S34は、複数の
システム間で共用メモリの排他を獲得する。例えば個々
のシステムは共用メモリ10上に利用宣言を記録し、他
システムが既に利用宣言済みならば排他解放されるのを
待つといった手段が採用される。
【0038】S35は、共用メモリ上に記録されている
ログ最終書出位置を参照して、共用メモリ上の該当位置
にシステム内作業域にログデータを必要量だけ格納す
る。複数のシステムのログデータがトランザクションの
終了順にブロッキングされることになる。
ログ最終書出位置を参照して、共用メモリ上の該当位置
にシステム内作業域にログデータを必要量だけ格納す
る。複数のシステムのログデータがトランザクションの
終了順にブロッキングされることになる。
【0039】S36は、共用メモリ上のログ最終書出位
置を更新する。S37は、共用メモリの排他を解放す
る。そして、S31に戻る。S38は、複数のシステム
間で共用メモリの排他を獲得する。例えば個々のシステ
ムは共用メモリ10上に利用宣言を記録し、他システム
が既に利用宣言済みならば排他解放されるのを待つとい
った手段が採用される。
置を更新する。S37は、共用メモリの排他を解放す
る。そして、S31に戻る。S38は、複数のシステム
間で共用メモリの排他を獲得する。例えば個々のシステ
ムは共用メモリ10上に利用宣言を記録し、他システム
が既に利用宣言済みならば排他解放されるのを待つとい
った手段が採用される。
【0040】S39は、共用メモリ上に記録されている
ログ最終書出位置を参照して、共用メモリ上の該当位置
にシステム内作業域のログデータを必要量だけ複写す
る。複数のシステムのログデータがトランザクションの
終了順にバッファリングされることとなる。
ログ最終書出位置を参照して、共用メモリ上の該当位置
にシステム内作業域のログデータを必要量だけ複写す
る。複数のシステムのログデータがトランザクションの
終了順にバッファリングされることとなる。
【0041】S40は、共用メモリ上のログ最終書出位
置を更新する。S41は、共用メモリの排他を解放す
る。S42は、共用メモリ内にバッファリングされたロ
グデータをログファイルに格納する。そして、S31に
戻る。
置を更新する。S41は、共用メモリの排他を解放す
る。S42は、共用メモリ内にバッファリングされたロ
グデータをログファイルに格納する。そして、S31に
戻る。
【0042】図5は、本発明のログデータ取得説明図を
示す。これは、2つのトランザクションAとトランザク
ションBがデータベース12の同一資源αを更新したと
きに、不揮発域に配置された共用メモリ10にログデー
タをデータベース更新順に保存する様子を示したもので
ある。
示す。これは、2つのトランザクションAとトランザク
ションBがデータベース12の同一資源αを更新したと
きに、不揮発域に配置された共用メモリ10にログデー
タをデータベース更新順に保存する様子を示したもので
ある。
【0043】図5の(a)は、模式的に不揮発域に配置
された共用メモリへのログデータの保存を示したもので
ある。図5の(b)は、図5の(a)の動作説明図であ
る。 (1) トランザクションAの動作:は、トランザク
ションAがデータベースの資源αの排他を獲得する。
された共用メモリへのログデータの保存を示したもので
ある。図5の(b)は、図5の(a)の動作説明図であ
る。 (1) トランザクションAの動作:は、トランザク
ションAがデータベースの資源αの排他を獲得する。
【0044】は、資源αの更新前ログを取得する。
は、資源αを更新する。は、資源αの更新後ログを取
得する。
は、資源αを更新する。は、資源αの更新後ログを取
得する。
【0045】は、資源αのログデータの不揮発化を完
了同期をとる。この時点で、ログデータ(更新前ログデ
ータおよび更新後ログデータ)が共用メモリ10に図5
の(a)の点線の矢印を用いて示すように保存される。
了同期をとる。この時点で、ログデータ(更新前ログデ
ータおよび更新後ログデータ)が共用メモリ10に図5
の(a)の点線の矢印を用いて示すように保存される。
【0046】は、ログデータの不揮発化の同期が完了
したことにより、トランザクションAのCOMMITが
終了する。は、資源αの排他解除を行う。
したことにより、トランザクションAのCOMMITが
終了する。は、資源αの排他解除を行う。
【0047】(2) トランザクションBの動作:
は、他のトランザクションが既にデータベースの資源α
を排他獲得しているので、トランザクションBは資源排
他獲得待ちに入る。
は、他のトランザクションが既にデータベースの資源α
を排他獲得しているので、トランザクションBは資源排
他獲得待ちに入る。
【0048】は、トランザクションAが排他を解放し
たことにより、トランザクションBがデータベースの資
源αの排他を獲得する。(10)は、資源αの更新前ロ
グを取得する。
たことにより、トランザクションBがデータベースの資
源αの排他を獲得する。(10)は、資源αの更新前ロ
グを取得する。
【0049】(11)は、資源αを更新する。(12)
は、資源αの更新後ログを取得する。(13)は、資源
αのログデータの不揮発化の完了同期をとる。この時点
で、ログデータ(更新前ログデータおよび更新後ログデ
ータ)が共用メモリに図5の(a)の点線の矢印を用い
て示すように保存される。
は、資源αの更新後ログを取得する。(13)は、資源
αのログデータの不揮発化の完了同期をとる。この時点
で、ログデータ(更新前ログデータおよび更新後ログデ
ータ)が共用メモリに図5の(a)の点線の矢印を用い
て示すように保存される。
【0050】(14)は、ログデータの不揮発化の同期
が完了したことにより、トランザクションBのCOMM
ITが終了する。(15)は、資源αの排他解除を行
う。
が完了したことにより、トランザクションBのCOMM
ITが終了する。(15)は、資源αの排他解除を行
う。
【0051】以上の手順によって、共用メモリ10に
は、データベース12の同一資源に関してトランザクシ
ョンの終了順にログデータが保存されることになる。
は、データベース12の同一資源に関してトランザクシ
ョンの終了順にログデータが保存されることになる。
【0052】
【発明の効果】以上説明したように、本発明によれば、
複数システムで共有する共用メモリ10あるいはログフ
ァイル11に全システムのログデータをデータベース1
2の更新順に並べて取得しているので、障害発生時に、
この並べかえ済みのログデータを参照することができる
ので、ログデータの並べかえ無しに障害となった資源の
閉塞および復旧を即時に開始することができる。これに
より、障害となった資源を閉塞および復旧するために、
各システムで個別に取得したログデータを併合するとい
った従来の手間を省くことができ、障害発生時に即時に
障害となった資源を閉塞してフォールバック運用を開始
しつつ資源を復旧することが可能となる。即ち、独立の
複数システム間でデータベース12とログデータを共有
することによって、TCMP(密結合システム)と同様
にログデータの複合システムでの一貫した利用を実現可
能とするものである。
複数システムで共有する共用メモリ10あるいはログフ
ァイル11に全システムのログデータをデータベース1
2の更新順に並べて取得しているので、障害発生時に、
この並べかえ済みのログデータを参照することができる
ので、ログデータの並べかえ無しに障害となった資源の
閉塞および復旧を即時に開始することができる。これに
より、障害となった資源を閉塞および復旧するために、
各システムで個別に取得したログデータを併合するとい
った従来の手間を省くことができ、障害発生時に即時に
障害となった資源を閉塞してフォールバック運用を開始
しつつ資源を復旧することが可能となる。即ち、独立の
複数システム間でデータベース12とログデータを共有
することによって、TCMP(密結合システム)と同様
にログデータの複合システムでの一貫した利用を実現可
能とするものである。
【図面の簡単な説明】
【図1】本発明の1実施例構成図である。
【図2】本発明の他の実施例構成図である。
【図3】本発明の動作説明フローチャート(つづく)で
ある。
ある。
【図4】本発明の動作説明フローチャート(つづき)で
ある。
ある。
【図5】本発明のログデータ取得説明図である。
【図6】従来技術の説明図である。
【符号の説明】 10:共用メモリ 11:ログファイル 12:データベース 13:排他制御処理 14:ログ取得処理 15:バッファ制御 16:ログ書出処理 17:バッファ書き戻し処理 18:バッファ 19:システム内作業域
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
───────────────────────────────────────────────────── フロントページの続き (72)発明者 妹尾 知茂 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内
Claims (3)
- 【請求項1】システムが更新するデータベースのログを
取得するログ取得方式において、 ログデータを格納する複数システムが共有するログファ
イル(11)と、 システムがデータベース(12)を更新したときのログ
データを取得するログ取得処理(14)とを備え、 システムがデータベース(12)を更新したときに、上
記ログ取得処理(14)がこのデータベース(12)を
更新したときのログデータを取得し、資源毎にデータベ
ース更新順に上記ログファイル(11)に格納してお
き、 障害発生時に上記ログファイル(11)を参照してデー
タベース(12)の該当資源の閉塞および復旧を行うよ
うに構成したことを特徴とするログ取得方式。 - 【請求項2】障害発生時に上記ログファイル(11)を
参照してデータベース(12)の該当資源の閉塞を行っ
た後、当該資源を元の状態に戻して復元するように構成
したことを特徴とする請求項1記載のログ取得方式。 - 【請求項3】障害発生時に上記ログファイル(11)を
参照してデータベース(12)の該当資源の閉塞を行っ
た後、当該資源を更新後の状態にして復元するように構
成したことを特徴とする請求項1記載のログ取得方式。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5050924A JPH06266597A (ja) | 1993-03-11 | 1993-03-11 | ログ取得方式 |
| US08/208,237 US5696967A (en) | 1993-03-11 | 1994-03-10 | Log data management system having a plurality of processing units and a common memory |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5050924A JPH06266597A (ja) | 1993-03-11 | 1993-03-11 | ログ取得方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06266597A true JPH06266597A (ja) | 1994-09-22 |
Family
ID=12872359
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5050924A Pending JPH06266597A (ja) | 1993-03-11 | 1993-03-11 | ログ取得方式 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5696967A (ja) |
| JP (1) | JPH06266597A (ja) |
Families Citing this family (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6052695A (en) * | 1995-02-28 | 2000-04-18 | Ntt Data Communications Systems Corporation | Accurate completion of transaction in cooperative type distributed system and recovery procedure for same |
| US5950212A (en) * | 1997-04-11 | 1999-09-07 | Oracle Corporation | Method and system for workload based group committing for improved performance |
| US5897641A (en) * | 1997-05-13 | 1999-04-27 | International Business Machines Corporation | Application of log records to data compressed with different encoding scheme |
| US5946700A (en) * | 1997-10-31 | 1999-08-31 | Oracle Corporation | Method and apparatus for preserving non-current information that can be overwritten in a computer file |
| US6289355B1 (en) * | 1998-09-16 | 2001-09-11 | International Business Machines Corp. | Fast log apply |
| US6694340B1 (en) * | 1998-09-24 | 2004-02-17 | International Business Machines Corporation | Technique for determining the age of the oldest reading transaction with a database object |
| US6295611B1 (en) * | 1998-12-14 | 2001-09-25 | Sun Microsystems, Inc.. | Method and system for software recovery |
| US7003721B1 (en) * | 1999-06-15 | 2006-02-21 | Microsoft Corporation | Safe save method of HTML files using recovery files including a list with temporary and final names for replacement files |
| JP4237354B2 (ja) * | 1999-09-29 | 2009-03-11 | 株式会社東芝 | トランザクション処理方法及びトランザクション処理システム |
| US6658589B1 (en) * | 1999-12-20 | 2003-12-02 | Emc Corporation | System and method for backup a parallel server data storage system |
| KR100390853B1 (ko) * | 2000-06-07 | 2003-07-10 | 차상균 | 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치 |
| US6871271B2 (en) * | 2000-12-21 | 2005-03-22 | Emc Corporation | Incrementally restoring a mass storage device to a prior state |
| US20030158944A1 (en) * | 2002-02-19 | 2003-08-21 | International Business Machines Corporation | Software control in a business transaction environment |
| US20050010812A1 (en) * | 2003-06-19 | 2005-01-13 | International Business Machines Corporation | Computer system software "black box" capture device |
| US20070083574A1 (en) * | 2005-10-07 | 2007-04-12 | Oracle International Corporation | Replica database maintenance with parallel log file transfers |
| JP4806557B2 (ja) * | 2005-10-18 | 2011-11-02 | 株式会社日立製作所 | ログを管理するストレージ装置及び計算機システム |
| CN100383750C (zh) * | 2006-06-07 | 2008-04-23 | 中国科学院计算技术研究所 | 一种面向大规模计算系统的高可信日志系统实现方法 |
| JP2009205555A (ja) * | 2008-02-28 | 2009-09-10 | Toshiba Corp | メモリシステム |
| US9183200B1 (en) * | 2012-08-02 | 2015-11-10 | Symantec Corporation | Scale up deduplication engine via efficient partitioning |
| US10387399B1 (en) * | 2013-11-01 | 2019-08-20 | Amazon Technologies, Inc. | Efficient database journaling using non-volatile system memory |
| US10191765B2 (en) | 2013-11-22 | 2019-01-29 | Sap Se | Transaction commit operations with thread decoupling and grouping of I/O requests |
| US10372935B1 (en) | 2015-11-13 | 2019-08-06 | Google Llc | Selectively encrypting commit log entries |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4507751A (en) * | 1982-06-21 | 1985-03-26 | International Business Machines Corporation | Method and apparatus for logging journal data using a log write ahead data set |
| US4878167A (en) * | 1986-06-30 | 1989-10-31 | International Business Machines Corporation | Method for managing reuse of hard log space by mapping log data during state changes and discarding the log data |
| US4819159A (en) * | 1986-08-29 | 1989-04-04 | Tolerant Systems, Inc. | Distributed multiprocess transaction processing system and method |
| JPH0833857B2 (ja) * | 1987-02-18 | 1996-03-29 | 株式会社日立製作所 | システム間デ−タベ−ス共用システムジヤ−ナルマ−ジ方式 |
| US5065311A (en) * | 1987-04-20 | 1991-11-12 | Hitachi, Ltd. | Distributed data base system of composite subsystem type, and method fault recovery for the system |
| US4945474A (en) * | 1988-04-08 | 1990-07-31 | Internatinal Business Machines Corporation | Method for restoring a database after I/O error employing write-ahead logging protocols |
| US5201044A (en) * | 1990-04-16 | 1993-04-06 | International Business Machines Corporation | Data processing method for file status recovery includes providing a log file of atomic transactions that may span both volatile and non volatile memory |
| US5327532A (en) * | 1990-05-16 | 1994-07-05 | International Business Machines Corporation | Coordinated sync point management of protected resources |
| US5369757A (en) * | 1991-06-18 | 1994-11-29 | Digital Equipment Corporation | Recovery logging in the presence of snapshot files by ordering of buffer pool flushing |
| US5280611A (en) * | 1991-11-08 | 1994-01-18 | International Business Machines Corporation | Method for managing database recovery from failure of a shared store in a system including a plurality of transaction-based systems of the write-ahead logging type |
| US5278982A (en) * | 1991-12-23 | 1994-01-11 | International Business Machines Corporation | Log archive filtering method for transaction-consistent forward recovery from catastrophic media failures |
| JP2758311B2 (ja) * | 1992-05-28 | 1998-05-28 | 富士通株式会社 | 複合システムにおけるログファイル制御方式 |
-
1993
- 1993-03-11 JP JP5050924A patent/JPH06266597A/ja active Pending
-
1994
- 1994-03-10 US US08/208,237 patent/US5696967A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US5696967A (en) | 1997-12-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH06266597A (ja) | ログ取得方式 | |
| JP2708356B2 (ja) | データベースを更新するための方法、システム及び装置 | |
| US7117229B2 (en) | Method and system for online reorganization of databases | |
| US7779295B1 (en) | Method and apparatus for creating and using persistent images of distributed shared memory segments and in-memory checkpoints | |
| US5724581A (en) | Data base management system for recovering from an abnormal condition | |
| US7103586B2 (en) | Collision avoidance in database replication systems | |
| JP4620457B2 (ja) | 複数の同時にアクティブなファイルシステム | |
| US5201044A (en) | Data processing method for file status recovery includes providing a log file of atomic transactions that may span both volatile and non volatile memory | |
| US5966706A (en) | Local logging in a distributed database management computer system | |
| US5638508A (en) | Method and a system for processing a log record | |
| US6249879B1 (en) | Root filesystem failover in a single system image environment | |
| EP0567999A2 (en) | Method and apparatus for executing a distributed transaction in a distributed database | |
| JPS62105247A (ja) | デ−タ・ベ−ス・システムの管理方法 | |
| JPH06332778A (ja) | トランザクション管理方法 | |
| CN116383227B (zh) | 一种分布式缓存和数据存储一致性处理系统及方法 | |
| CN107438829B (zh) | 一种数据存储设备 | |
| Li et al. | Multiprocessor main memory transaction processing | |
| US20020004799A1 (en) | High availability database system using live/load database copies | |
| Son | Replicated data management in distributed database systems | |
| Son | Synchronization of replicated data in distributed systems | |
| Chamberlin et al. | Dynamic Data Distribution (D^ 3) in a Shared-Nothing Multiprocessor Data Store | |
| Amirishetty et al. | Improving predictable shared-disk clusters performance for database clouds | |
| JPS62245348A (ja) | データベース更新方法 | |
| JP6891533B2 (ja) | データベース装置 | |
| Bratsberg et al. | Online scaling in a highly available database |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20010529 |