JP2531776B2 - デ―タベ―スを回復する方法 - Google Patents

デ―タベ―スを回復する方法

Info

Publication number
JP2531776B2
JP2531776B2 JP1025962A JP2596289A JP2531776B2 JP 2531776 B2 JP2531776 B2 JP 2531776B2 JP 1025962 A JP1025962 A JP 1025962A JP 2596289 A JP2596289 A JP 2596289A JP 2531776 B2 JP2531776 B2 JP 2531776B2
Authority
JP
Japan
Prior art keywords
log
page
file
database
error
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 - Lifetime
Application number
JP1025962A
Other languages
English (en)
Other versions
JPH01261746A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH01261746A publication Critical patent/JPH01261746A/ja
Application granted granted Critical
Publication of JP2531776B2 publication Critical patent/JP2531776B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions
    • 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

Description

【発明の詳細な説明】 A.産業上の利用分野 情報処理システムの発展で、関係データベース管理プ
ログラムが進歩し、多数の異なるデータベース・テーブ
ルのすべてに共通な特定のフィールドを使って、それら
のテーブルに含まれるデータをユーザが探索、アクセス
及び変更することが可能になった。
B.従来技術 これらのデータベース・システムが改善されるに従っ
て、データベース内のレコードに対するアクセスの速度
及び効率が増大し、能力がさらに追加された。たとえ
ば、最近のデータ処理システムは、各ユーザがサブペー
ジ・レベルで同時にデータに均等なアクセスを行なうこ
とができる。多数の同時ユーザのためのサポートを提供
し始めた。
そのような改善にもかかわらず、大きな問題として残
された1つの領域は、入出力または電源の故障後、すな
わち、システム・クラッシュ後などにデータの回復を行
なうことであった。その理由は、データベースにあるデ
ータの編集に伴って大量の時間と経費がかかるようにな
ったこと、ならびに、ユーザが、ますます需要になって
きている彼等のデータベース資源に大きく依存するよう
になったことであった。したがって、そのようなデータ
損失に関連する問題を解決する試みに多大な開発努力が
費やされてきた。
多分、この問題に対する最も明白な一般的解決法は、
冗長構成を設けて、そのような不完全なログの書込み、
または検出されたログ書込みの障害のためにデータベー
スまたはその一部分を復元する必要がある場合に、デー
タのバックアップ・コピーを入手できるようにすること
であった。したがって、そのような冗長構成をもたらす
ための幾つかの方法が当技術で開発されてきた。その最
も初期の方法の1つはシャドー・ページングと呼ばれ、
基本的に、データ・ページ全体のコピーを保持し、第2
のコピーに更新を行なうというものであった。変更を含
む新しいコピーを永久的媒体に安全に書き込んだ後、保
存用コピーを書き直すことができる。この方法は、たと
えば、SQL/DSとして市販されているIBM社のデータベー
ス・プロダクトで使用されていた。このシャドー・コピ
ー法を用いた種々のシステムについての概説が、リバ・
スボボドバ(Liba Svobodova)の論文「ネットワークに
基づいた分散システムのためのファイル・サーバ(File
Servers for Network Based Distribution System
s)」、ACM Computing Surveys、Vol.16、No.4(1984年
12月)、pp.353−399に記載されている。
シャドー・ページングは幾つかの環境で実現可能な解
決法であると思われるが、そのようなシャドー・コピー
を維持する際に費用と空間が必要なことを含めて、それ
なりの欠点を伴っていた。したがって、データベース・
システムは、データベース・レコードに対する変更を変
更レコード及びデータベース回復ログの両方に書き込む
ことによってのみ、トランザクション回復機能を実施し
始めた。データベース回復ログに記録された情報は、コ
ミットされたトランザクションの変更がシステム故障の
後に続くシステム再始動の間にデータベース状態に組み
込まれるようにするものであった(かつ、コミットされ
ていないトランザクションに対するトランザクション・
ロールバックをサポートして、データベース・レコード
に対する変更を逆転または取消しできるようにするもの
であった)。
先行書込みロギングと呼ばれるこの方法の1形態が開
発されたが、そのプロトコルは、実際のデータベース・
レコード自体に変更を書き込む前に永続ファイル内の回
復ログに変更を書き込むことを必要とした。そのような
ロギングの1つの問題点は、多数のユーザが、望ましく
は、サブページ・レベルでデータベースに同時にアクセ
スすることができるという、上記の同時性が望まれるこ
とに関係するものであり、そのような同時性が必要だと
いうことは、言い換えればたとえば、レコードに対する
迅速で効率的なアクセスを行なうためにデータベース・
プログラムが共通に使用するインデックス・ファイルに
対する同時アクセスが必要だということになる。
これらのインデックス・ファイルのインデックス・ノ
ードに含まれる情報は、データベース・テーブルに対し
てレコードが削除または挿入されるとき頻繁に削除また
は挿入される、重要なレコード情報を提供する点で非常
に重要であり、したがって、そのようなサブページ・レ
ベルでの同時アクセス可能性が強く求められていた。そ
のようなインデックス・ファイルの特に重要な1つの態
様は、データベース内のレコードの個々のフィールド
が、それ自体に関するレコードには保持されていず、
(ポインタまたは記述子により)別のファイルに保持さ
れているデータを論理的に含むことがしばしばあるとい
うことであった。そのようなファイルの例は長フィール
ド・ファイルと呼ばれ、非常に重要である可能性がある
音声データやイメージ・データ等の大きなデータ・セッ
ト型式の項目に関連するイメージを含むことがあり、し
たがって、そのようなインデックスの重要性を示す長い
フィールドがそれに含まれる。
上記のことを念頭に置いて、それにもかかわらず上記
サブページ・レベルの同時性をもたらす先行書込みロギ
ング型のデータベース回復システムを実現することが望
まれていたことを理解されたい。したがって、特願昭63
−94715号に記載されたようなシステムが開発された。
当技術で周知のBツリー構造として通常構成されるもの
などこれらのインデックス・ファイルについて考察して
いるその他の参考文献は、レーマン(Lehman)及びヤオ
(Yao)の論文「Bツリー上の同時動作のための効率的
ロッキング(Efficient Locking for Concurrent Opera
tion on a B−Tree)」、ACM Transactions on Databas
e Systems、Vol.6、No.4、1981年12月、pp.650−670で
ある。この参考文献を引用により本書に組み込む。
上記の進歩にもかかわらず、有効なデータベース回復
を行なう点で問題が残っていた。まず、そのようなシス
テムの再始動時に、入出力エラーを含むファイルは容易
に検出できず、したがって、再始動動作がファイルにア
クセスしてデータ損失をもたらすのを防止し防護するこ
とができなかった。さらに、不完全なログ書込みまたは
検出されたログ書込み障害を容易に検出して、それ以後
のトランザクションの書込みを中断するための手段がな
かった。さらに、再始動中にそのようなエラー・ファイ
ルを容易に識別するための有効な手段がなかった。さら
に、エラー・ファイル・インデックスの復元は決して自
動的ではなく、明確なユーザ活動を必要とし、障害イン
デックスに関連するアクセス計画を無効にした。
C.発明が解決しようとする問題点 したがって、先行書込みロギング・プロトコルを使用
したトランザクション管理システムで、ディスクへの非
原子的書込み中における入出力エラー及び電源障害によ
るデータ消失を減少させるための手法が求められてい
た。システム・テーブルを含めて、インデックス・ファ
イル上の入出力エラーがデータ消失を引き起こさないよ
うなシステム及び方法が強く求められていた。また、影
響を受けたインデックスを復元するための明確なユーザ
活動を必要とせずに、エラーからの自動回復を行なうた
めの方法が求められていた。2重書込み、シャドー・ペ
ージング等を使用しなくても、ログ・ファイル書込み中
の電源障害でデータ消失が起こらないような手段が求め
られていた。ユーザ・テーブル上の入出力エラーがエラ
ー状態のテーブルに対して僅かなデータ消失効果しか持
たないようにする効果的な手段を設けることが強く望ま
れていた。さらに、インデックスと関連するアクセス計
画を無効にしない。インデックス・ファイルの復元方法
を提供することが望まれていた。従来技術によって満た
されることがなかった上記及びその他の機能が、以下に
詳細に説明する本発明によって提供される。
D.問題点を解決するための手段 先行書込みロギング・プロトコルを有するトランザク
ション管理システムを使用した、非原子的メモリ書込み
中のデータベース・システム・クラッシュに対するデー
タ回復のための手法が提供される。好ましい実施例で
は、通常処理中にログ・レコードが書かれる。再実行
(REDO)中に回復ログを走査して、記録された処理の完
了が確認される。検出された不完全なまたは失敗したロ
グ書込みからの回復が行なわれ、コミットされていない
トランザクションは取り消される。入出力エラーを有す
るファイルが検出され、フラッグが付けられて、後続の
再始動(RESTART)動作がファイルにアクセスしないよ
うにする。このシステムはさらに、障害インデックスに
関連するアクセス計画を無効にするために明確なユーザ
活動を必要とすることなく、再始動手順の一部としてエ
ラー・インデックス・ファイルの自動的復元を行なう。
通常動作中、フラッグを付けられたデータ・ファイル
・エラーは、そのデータ・ファイルにアクセスしようと
しているアプリケーションに報告される。しかし、フラ
ッグを付けられた長フィールド・ファイル・エラーは、
アプリケーションがその長フィールド・ファイルを使用
しようとしたときだけ、そのアプリケーションに報告さ
れる。フラッグを付けられたインデックス・ファイル・
エラーは、システムが下側のデータ・ファイルにアクセ
スするとき、または、アプリケーションが相関データ・
レコードにアクセスするためインデックス・ファイルに
アクセスするとき、アプリケーションに対するエラー状
況なしにその復元を行なう。インデックス・ファイル上
で検出された入出力エラー及びログ書込み障害またはロ
グ書込み中の電源障害の結果として前にコミットされた
データが消失することが回避される。
E.実施例 本発明を一層良く理解するため、最初に第1図ないし
第4図を参照にしながら、代表的データ及び、そのデー
タがデータベース・システムに記憶される方法について
のさらに詳細な説明を、第1図の従業員表の例を使って
行なう。第3図に関して、データベース・インデックス
の概念について一例を示す。次に、第4図に関して、第
4図に示した特に重要な形態のファイル、すなわち、長
フィールド・ファイルにアクセスする際の第3図のイン
デックス情報の使用について説明する。後でさらに明ら
かになるように、これらのインデックスは実際には、対
応するデータ・レコードを参照し、それらのデータ・レ
コードは相関する長フィールドを参照する。
次に、システム再始動モードにおける本発明の動作全
体、再実行再始動及び取消し再始動段階について第5図
を参照して概説する。次に、第7図及び第8図に関して
再実行中の各動作のより詳しい考察を行ない、第11図に
関して、第5図に示すシステム再始動後のシステム動作
のより詳しい説明を行なう。
第1図は、ユーザがデータベースに入力した実際のデ
ータの一例を概念的に示す。この例では、このデータは
実質的には、従業員名10等のヘッダ、ある形式の従業員
番号12、及び当該の従業員の肖像画等のある型式のイメ
ージ・データ14を含むリストである。したがって、この
テーブルの最初のレコードはアンドリュー(Andrew)、
従業員番号1、及びアンドリューの肖像画からなるデー
タである。データベースに入力された他の従業員につい
ても同様のレコードがある。
第2図は、コンピュータ・ディスクに記憶されるとき
の第1図のテーブル・データの一部を示すファイルの説
明図である。このファイルは、それぞれ第1図のレコー
ドの幾つかを含むページ0−2(それぞれ、参照番号1
6、18及び20)等のデータ・ページを順に示す。各デー
タ・ページはヘッダ及びトレーラを有する。たとえば、
ページ0はヘッダとして22及びトレーラとして30を有
し、ページ1は36及び44を、ページ2は50及び58をそれ
ぞれヘッダ及びトレーラとして有する。ヘッダ及びトレ
ーラはそれぞれログ・シーケンス番号(LSN)を含む。
このLSNは、ページの書出しに先立ってヘッダからトレ
ーラに複写される。ページの読み戻し後、前の書込みが
完了したことを確認するため、ヘッダとトレーラが比較
されて、それらが等しいことが確かめられる。
さらに具体的にページ0(参照番号16)を参照する
と、第1のスロット0のポインタ32を含むレコード・ポ
インタ・ディレクトリ24がある。ポインタ32はレコード
26を指し、レコード26自体は、名前「エドワーズ(Edwa
rds)」、通し番号24、及びエドワーズのイメージのビ
デオ・データを含む長フィールド・ファイル(LF)を指
すポインタを含む。レコード・ポインタ・ディレクトリ
24の次のスロットはこの例では使用されない。すなわ
ち、このスロットは、ビデオ・データを有する別の長フ
ィールド・ファイルを指すポインタを含まない。スロッ
ト2は、レコード28を指すポインタ34を有し、レコード
28は、アンドリューのイメージのビデオ・データを含む
長フィールドを指すポインタを含む。要約すると、イン
デックスは、レコードを指すポインタを含むデータ・レ
コード・ディレクトリを指す。これらのレコードは名
前、通し番号、及び実際の長フィールド・イメージ・デ
ータを指す長フィールド記述子またはポインタを含む。
同様に、ページ1(18)はレコード・ポインタ・ディ
レクトリ38を有する。この事例では、スロット0のポイ
ンタ48は、ハウェル(Howell)のデータを含むレコード
42を指し、レコード42には、イメージ・データを指す長
フィールド・ポインタが存在する。スロット1のポイン
タ46は、レコード40を指し、レコード40は、ベーカー
(Baker)のイメージ・データを含む長フィールドを指
す長フィールド・ポインタを含む。同様に、ページ2に
ついては、レコード・ポインタ・ディレクトリ52は、レ
コード56を指すポインタ62を有するスロット0を含む。
このレコード56は、対応する長フィールド・ファイル中
でチェスター(Chester)のイメージ・データを指す長
フィールド・ポインタを含む。スロット1は同様に、レ
コード54を指すポインタ60を有し、レコード54は、エド
ガー(Edgar)のイメージ・データが存在する長フィー
ルドを指すポインタを含む。
長フィールドとは、当技術で周知のように、イメージ
のディジタル化された実際のビデオ・データが、好まし
くは圧縮された様式で記憶される場所である。したがっ
て、レコードに対するポインタは32、34、46、48、60及
び62、及びレコードは、イメージ・データが存在するそ
れぞれの長フィールド・ファイルの始めに対する指示さ
れた実際の変位を含む。第2図で一例を挙げると、ポイ
ンタ62はレコード56を指し、レコード56は、チェスター
82の圧縮イメージ・データが存在する長フィールドに対
するセグメント・ディレクトリの始めである1098(第4
図の最上部に示す)に対応する数を含むことになる。
関係データベースでは、第1図のテーブル1のデータ
等のデータに効率的にアクセスすることが必要である。
このことは通常インデックス・ファイルを使って行なわ
れており、その一例を、当技術で周知の形で(テーブル
1のデータについて)第3図に概略的に示す。第3図
は、インデックスが2段ツリーの形を取っている、テー
ブル1用のインデックスを示す。データベース・ファイ
ルのページ3(64)のルート・レベルは、3つのノード
66、68及び70を指すポインタを有する。これらのノード
は、それぞれインデックス・ファイルのページ5、4及
び6に記憶されたインデックス・データを有する。イン
デックス・ファイルのページ3(64)のD、F及び「NU
LL」はそれぞれ、それらが指す指定のノード66、68、70
における最も可能性の高い「キー」を示す。この事例で
は、キーは従業員名の頭文字であるが、数字データが記
憶される他のアプリケーションでは、キーは数字でよ
い。アンドリュー、ベーカー及びチェスターはDよりも
前の頭文字を有するので、彼等に関係するインデックス
・データはノード66に記憶される。ルート64内のFはノ
ード68を指し、ノード68は、頭文字がFよりも前でDよ
りも後のエドガー及びエドワーズのインデックス・デー
タを含む。ルート64のNULLポインタは許容される最高の
キーであるので、最後のノード70を指す。ノード70はハ
ウェルを含む。なぜならば、その頭文字HがF(先行ノ
ード68中の最高キー)よりも後だからである。
第3図の名前の後に続く番号の意味は、それらの番号
がレコード識別、すなわち、それぞれの名前のIDを表わ
すことである。たとえば、ノード66の場合、アンドリュ
ー0、2は、まずページ0のレコード・ポインタ・ディ
レクトリ24、スロット2からの長フィールド・ポインタ
を含むレコード28の位置34を検索し、次に、レコード28
に含まれる長フィールド・ポインタが指す92(第4図)
にある実際の長フィールド・データを検索することによ
り、アンドリューに対するイメージ・データを探し出す
ことができることを示す。
第4図はコンピュータ・ディスクにある長フィールド
・ファイルの記憶についての説明図である。参照番号72
は、最初のイメージ・データを82に有する長フィールド
・ファイルの始めを示す。各イメージに対する内部セグ
メント・ディレクトリが、それぞれのイメージ・データ
についての詳細を提供する。したがって、チェスターの
イメージ・データ82に対するディレクトリ80は、長さが
10,500バイトで開始変位が1106である1つの項目を示
す。同様に、第2図のページ1、参照番号18では、ハウ
ェルのイメージ・データを指すレコード42中の長フィー
ルド・ポインタは、ハウェルの実際のイメージ・データ
88に対する内部セグメント・ディレクトリ86の始めであ
る11,800(第4図)を指すことになる。
他の長フィールド・データの始め74及び76に関して
は、第2図に示す適当な相関長フィールド・ファイル・
ポインタが、対応する内部セグメント・ディレクトリ9
0、94、98及び102を指すことになる。これらのディレク
トリは、アンドリュー、エドワーズ、ベーカー及びエド
ガーに関する当該の実圧縮イメージ・データ92、96、10
0及び104についての詳細を含む。本明細書に示す実施例
では、セグメント・ディレクトリは長フィールド領域に
あるが、希望するなら、これらの領域にはイメージ・デ
ータのみを含めることができ、その場合は、セグメント
・ディレクトリを望むなら第2図に示すレコード中に含
めることもできることに留意されたい。
これで、たとえば今述べたようにインデックスから見
つかったポインタを用い、重要なタイプのデータベース
・ファイルにアクセスして更新する際の、データベース
・システムにおけるインデックスの役割について一層明
確な理解が得られたので、第5図に関連して本発明の回
復システムの全体的動作について説明する。
260でシステム再始動が開始すると、262でログ・レコ
ードが読み込まれる。各ログ・レコードは、ログ・レコ
ード、及びそれに含まれるデータベース活動が関係する
特定のページの表識を含む。基本的に、プログラムは、
ステップ260−270では、これらのログ・レコードまたは
それらと関連するLSNによって参照されるデータ・ペー
ジを読み込んで、ログ・レコードのデータベース動作ま
たは活動が行なわれたことを確認する(この段階はシス
テム再始動−再実行段階と呼ばれる)。266で、特定の
ログ・レコードについて、データ、インデックス、長フ
ィールド・ファイル等の関連ページ・ファイル・タイプ
が識別される。次に、268でそのページが読み取られ、2
70で、読み込まれたばかりのページ上のLSNが関連ログ
・レコードのLSNに等しいまたはそれよりも大きいかど
うかについて、検査が行なわれる。イエスの場合は、ロ
グ・レコードで識別された動作が完了したことが分か
り、処理は、262で次のログ・レコードを読むためにル
ープして戻る。しかし、検査の結果がノーの場合は、読
み込まれたばかりのログ・レコードに関連する元のデー
タベース活動または動作を272で再実行しなければなら
ないことを示す。したがって、その基本概念は、上記特
願昭63−94715号によれば、294で検査して、残ったログ
・レコードがなくなるまで、ログ・ファイル全体が読み
取られ、264でイエスの場合は、すべての活動が繰り返
され、再始動−再実行段階が完了したことを示す。した
がって、判断ブロック264でイエスの結果が出ること
は、このとき、コミットしていない、記録されたすべて
のトランザクションをロール・バックしなければならな
いことを意味し、したがって、274でシステム再始動−
取消し段階に入る。
一般に、この取消し段階中に、コミットされていない
トランザクションを表わす各ログ・レコードは時間順に
取り消される。すなわち、全ログ・レコードを逆方向に
検査して、それらがコミットされていないトランザクシ
ョンの一部であるかどうか調べる。そうである場合は、
そのログ・レコードに対して打切りが行なわれる。この
取消し段階は、第5図のステップ274−282で表わされ
る。
具体的には、276で前のログ・レコードが読み取ら
れ、278で、ログ・レコードが見つかったかどうか検査
が行なわれる。見つからなかった場合は、279で、シス
テム・プロファイルまたはシステム構成中に、エラー・
インデックスを自動的に再作成するようにとの要求をユ
ーザが指定したかどうか検査が行なわれる。ノーの場合
は、281で通常動作が再開する。すなわち、システム再
始動が完了する。イエスの場合は、プログラムはステッ
プ284を実行する。これは、第5図のシステム再始動動
作の直後に起こることに対応する。そこで、処理はルー
チンを出て、第11図に関してさらに詳しく示すエラー・
インデックス・ファイルの再作成を完了する。
始動−取消し段階の目的に関して前述したように、ロ
グ・レコードが見つかったときは、280で検査を行なっ
て、このログ・レコードがコミットされていないトラン
ザクションと関連しているかどうか判定する。イエスの
場合、システムは282で、ログ・レコード中で識別され
たデータベース活動の取消しを実行し、そこで処理は、
276で次の前ログ・レコードを読み取るためにループし
て戻る。もちろん、280で、問題のログ・レコードがコ
ミットされていないトランザクションに含まれていない
場合は、処理は、ステップ282の動作のような取消し動
作を実行せずに、次の前ログ・レコードを読むために27
6にループして戻る。
第5図の上段に示したステップ262及び266に関連し
て、第7図のステップ136に示すように、ログ・レコー
ドを得るにはページを読み取らなければならないことは
もちろん明らかである。第7図に示すログ・ページの読
取り動作のさらに詳細な説明に加えて、第7図のステッ
プは、ページを読み取る際にエラーに出会ったときの本
発明のシステムの動作をも示す。たとえば、ある事例で
ページがログ・エラーを有することが分かった場合、処
理はステップ268に進む。一方、たとえば、第7図の180
に示すように、両方のページで入出力エラーが発生した
場合は、戻りエラー・ログ・ファイル状況を起こす致命
的エラーが発生したことになる。第7図に関連するもう
1つの事例は、170のようにログ・ファイル終了状況が
返されるときであり、これは、やはり第5図に関連し
て、処理ステップ264に達し、すべての活動が繰り返さ
れた、すなわち、再始動−再実行段階が完了したことを
示す。
第7図と同様に、以下にさらに詳しく説明する第8図
のステップ262及び266に関してさらに詳細を提供するこ
とは、第5図のステップ268で示すように、データ・フ
ァイル、長フィールド・ファイル及びインデックス・フ
ァイルからページを読み取る際に実際に必要なステップ
についてさらに詳細を提供する。第8図の184及び186で
ファイルからページを読み取る際にエラーに出会ったと
きに実行されるステップが特に示されている。その際19
4でファイルが命名し直され、次いで処理は、ステップ2
62に従って次のログ・レコードを読み取るためにブロッ
ク270から出るイエスの経路にループして戻る。
したがって、第7図、第8図及び第11図はシステム再
始動中の本発明の動作に関することに留意されたい。具
体的には、第7図はログ・ページの処理と、再始動中に
検出されるエラーの処理を詳細に示す。第8図は、再始
動中の実際のデータ・ファイル、インデックス・ファイ
ル及び長フィールド・ファイルに関係するエラーの検出
及び処理を詳細に示し、第11図は、再始動−取消しの完
了後にエラー・インデックス・ファイルを再作成する際
のステップを詳細に示す。対照的に、第6図、第9図及
び第10図はデータベース・システムの通常の順方向処理
動作に関係する。具体的には、第6図はそのような通常
処理中のログ・ページの書込みを詳細に示し、第9図
は、通常のデータベース動作で普通出会う読取りエラー
の処理を詳細に示し、第10図は、データベース・システ
ムの通常動作中のそのような通常のすなわち非再始動の
インデックス処理中に行なわれるエラー・インデックス
・ファイルの処理について記述する。
第6図は、ログ・ページをハード・ファイル等のコン
ピュータ媒体に書き込む方法を示す流れ図である。一般
に、システムは「付加」モードにあり、ログ・レコード
が回復ログに連続的に追加、すなわち、書き込まれる。
次に、ログ・ページが周期的にディスクに書き出され
る。106は、コミットを出した要求側機能に応答してロ
グ・ページをディスクへ書き込み始めることを示す。最
終的に、要求側機能から要求されたログ・レコードは、
要求側機能がコミットを出した後で、ページに書き出さ
れるが、第6図に示した処理は、ページが実際に書き出
される前に行なわれることを認識されたい。コミット時
に、その時点までに作成されたすべてのログ・レコード
のデータを含むログ・ページを書き出すことが望まし
い。
108で、処理は、書き込むべきログ・レコードが満た
されているか否かについて照会する。ログ・ページが満
たされていない(すなわち、ログ・ページがページ・サ
イズよりも小さい)場合は、不完全ページであると指示
され、処理は114に進み、そのページがすでに書き込ま
れたかどうか判定される。書かれていない場合は、処理
は116に進み、そのページが位置n+1に書き込まれ
る。次いで118でページ書込みカウンタが1にセットさ
れ、106で開始したルーチンの呼出しプログラムに120で
戻り、ページを書き出すアルゴリズムが実際に完了す
る。
ブロック114で、ページがすでに書き込まれていた場
合は、122へのイエス分岐をたどり、122で、ページ・カ
ウンタが増分される。ページ・カウンタが偶数であると
124で判定された場合は、処理は128に進み、n番目のロ
グ・ページが位置n+2に書き込まれる。124でページ
書込みカウンタが奇数の場合は、手順は126に進み、そ
こでn番目のログ・ページが位置n+1に書き込まれ
る。いずれの場合にも、130または132で、このルーチン
の呼出しプログラムへの戻りが実行される。108に戻っ
て、ログ・ページ・サイズがページ・サイズよりも小さ
くない(すなわち、完全なページが満たされた)場合
は、処理はステップ110に進み、そこで、n番目のログ
・ページが位置nに書き込まれ、次いで、処理は112で
呼出しプログラムに戻る。このように、n番目のログ・
ページが位置nに書き込まれるのは、当該ログ・ページ
にログ・レコードがたまって、そのサイズが所定のペー
ジ・サイズ以上になったときである。それまでは、位置
n+1及びn+2に交互に書き込まれる。従って、n番
目のログ・ページの書き込みが停電等のため途中で中断
しても、前回書き込まれたログ・ページが位置n+1及
びn+2のいずれかに残っているから、それを第7図に
従って読み出すことによりデータベースを回復すること
ができる。
第7図は、ログ・ページの処理、及びデータベース再
始動処理中に検出されたエラーの処理を示す流れ図であ
る。134はこの処理の始めであり、136で、n番目のログ
・ページが読み込まれる。ログ・ページの読込み後、13
8で、入出力エラーまたはヘッダとトレーラのLSNの不一
致があった場合は、172で次のログ・ページn+1が読
み込まれる。174で、入出力エラーまたは不一致のLSNが
あると判定された場合は、180でエラー状況が返され
る。この特定の事例では、180でデータベースを回復す
ることができず、したがって、バックアップ・コピーか
ら復元しなければならない。174で、入出力エラーまた
はヘッドLSNとトレーラLSNの不一致がなかった場合は、
判断ブロック176に達する。ページn+1のLSNがログの
開始LSNよりも小さい場合は、このページが前に書き出
されていないことが分かり、処理は178に進む。178で、
ログ・ファイル終了状況が返され、全ページの処理が完
了したことを示す。
第7図で176のノー分岐から先に進むと、ページn+
1のLSNがログの開始LSNよりも大きいかまたは等しい場
合は、処理は148に進み、ページn+1のLSNを検査し
て、ログの開始LSNよりも小さいかどうか調べる。小さ
い場合は、第7図のこの処理は完了し、154でログ・フ
ァイル終了状況が返される。148で、ページn+1のLSN
がログの開始LSNよりも小さくない場合は、152で次のロ
グ・ページn+2が読み取られる。そのページの読取り
後、156で、入出力エラーまたはヘッダとトレーラのLSN
の不一致が発生したかどうか判定される。発生した場合
は、ページn+1からのログ・レコードが使用され、処
理は162で呼出しプログラムに戻る。156に戻って、入出
力エラーや不一致がなかった場合は、158で、ページn
+2のLSNがページn+1のLSNよりも小さいかどうか判
定される。そうである場合は、162で再び処理はページ
n+1に戻る。そうでない場合は、160で、処理はペー
ジn+2に戻る。この段階では、処理は単に、最高のLS
Nを有するページを判定して、そのページを返す。有効
なLSN、すなわちログの始めよりも大きなLSNがある限
り、入出力エラーまたは不一致に出会わない場合に書き
出すことが可能な隣接する2ページのうちの大きい方の
ページが返される。ページを返すことに関連して、実際
に特定のページ番号が返され、次いで、番号を指定され
たページから適当なレコードが返されることに留意され
たい。
判断ブロック138に戻って、136でn番目のログ・ペー
ジを読み込んだ後、検査を行なって、入出力エラーまた
はヘッダとトレーラのLSNの不一致が発生したかどうか
判定する。発生しなかった場合は、140でページnのLSN
がログの開始LSNよりも小さいかどうか検査が行なわれ
る。そうである場合は、ページn+1またはn+2での
み作業が行なわれたことを示し、次に流れは144に進
み、次のログ・ページn+1が読み取られる。しかし、
ページnのLSNがログの開始LSNよりも大きいかまたは等
しい場合は、そのページが正しく読み取られ、使用すべ
き適正なページであることを示し、したがって、142に
従って読取り成功状況が返される。
144に戻って、次のログ・ページn+1を読み込んだ
後、146で入出力エラーまたはヘッダとトレーラのLSNの
不一致が発生したかどうか検査が行なわれる。不一致ま
たはエラーが検出された場合は、150に従って次のログ
・ページn+2が読み込まれる。次に、164でこのペー
ジの入出力エラーまたは不一致が検査される。164で不
一致またはエラーが検出された場合は、イエスの分岐出
口に従って165でエラー・ログ・ファイル状況が返され
る。一方、164でエラーや不一致が検出されなかった場
合は、168で、このログ・ページn+2のLSNがログの開
始LSNよりも小さいかどうかが検査される。もし小さけ
れば、170でログ・ファイル終了が返される。一方、ペ
ージn+2のLSNがログの開始LSNに等しいか又はそれよ
りも大きい場合は、168でページn+2が返される。こ
のように、第7図のオペレーションは、第6図に従って
書き込まれたログ・ページが適正かどうかを判断し、そ
して適正なページn、n+1又はn+2を返す。
第6図との関連で説明すると、n番目のログ・ページ
について、110で位置nへの書き込みが成功裏に完了し
ていると、第7図のオペレーションは、136から138及び
140を経て、n番目のログ・ページの読み取りがうまく
いったことを示す。また、第6図において126での位置
n+1への書き込みが完了し、次回の書き込みを128で
実行している途中でエラーが生じた場合は、n番目のロ
グ・ページについてはまだ位置nへの書き込み(110)
が実行されていないので、第7図のオペレーションは、
136から138及び140を経て144の方へ進み、そこから14
6、148、152及び156を経て、162で適正なページn+1
を返す。このページは、第6図の126で位置n+1に書
き込まれていたものである。第6図で126に続いて110が
実行され、その途中でエラーが生じていた場合には、第
7図の138でエラーが検出されるので、172から174及び1
76を経て、最終的に162で適正なページn+1を返す。
第6図で位置n+2への書き込み(128)が完了して、
それに続く書き込み(110又は126)の途中でエラーが生
じた場合も同様である。その場合は、中断したのが110
か126かに応じて、第7図の160又は168で適正なページ
n+2が返される。このページn+2は、第6図の128
で位置n+2に書き込まれていたものである。
第8図は、データベース再始動処理中の任意のデータ
・ファイル、インデックス・ファイルまたは長フィール
ド・ファイルでのエラーの検出及び処理を示す流れ図で
ある。処理は182で開始し、ログ・レコードの処理が開
始される。ログ・レコードは、特定の所望データ、イン
デックスまたは長フィールド・ファイル・データを読み
取るべきページ及びファイルを識別することを想起され
たい。184で、ログ・レコードから指定されたページが
読み取られる。186で、読取りエラーが発生したかどう
か検出が行なわれる。読取りエラーが検出されたとき
は、190で検査が行なわれて、読取りが試みられている
ファイルが存在するかどうか調べられる。存在しないと
きは、エラーの標識を付する対象がないので、これで第
8図の処理は終了する。そこで、第8図の処理が終了し
たという意味でステップ196で動作成功が返される。一
方、そのようなファイルが存在するときは、そのファイ
ルが命名し直され、エラーの標識が付されることにな
る。こうして、ステップ196で動作成功が返される。186
に戻って、読取りエラーが発生しなかった場合は、188
で検査が行なわれて、ヘッダとトレーラのLSNの不一致
が存在するかどうかが判定される。存在する場合は、や
はり194で、ファイルが命名し直され、196で動作成功が
返される。一方、188でヘッダとトレーラのLSNの不一致
が検出されなかった場合は、192で、通常行なわれるは
ずの動作が実行される。これらの動作は、この時点でロ
グ・レコードがその実行を要求するどのような動作でも
よい。たとえば、特定の動作の再実行等でも、そのとき
必要ならば、キーを追加することでもよい。最後に、第
8図に関連して、回復後に、エラー・ファイルを識別す
る情報を捕捉してテーブル中またはディスク上に載せる
ことができる。しかし、好ましい方法は、そのような情
報をビット・マップに記憶することである。
第9図は、通常処理中、すなわち、非データベース再
始動中のエラー・ファイル処理を示す流れ図である。処
理は198で開始し、その後200で、ページまたはファイル
の読取り要求が実行される。202で読取りエラーがある
かどうか検査され、エラーがあった場合は、206で検査
が行なわれて、そのファイルが存在するかどうかが判定
される。そうである場合は、214で、エラーに相当する
状況が設定され、要求は処理されず、次いで215でその
状況が返される。
206のファイルが存在するかどうかのテストに戻っ
て、ファイルが存在しない場合は210で、ファイル・タ
イプがインデックス・ファイルであるかどうかについて
検査が行なわれる。インデックス・ファイルでない場合
は、処理は214に進み、やはり要求は処理されず、215で
エラーに相当する状況が返される。一方、210で検査さ
れたファイル・タイプがインデックス・ファイルであっ
た場合は、処理は、第10図に示すように212から先に進
む。202に戻って、読取りエラーが検出されなかった場
合は、204でヘッダとトレーラのLSNの不一致があるかど
うか検査が行なわれる。不一致が検出された場合は、や
はり214及び215で処理要求が拒絶される。一方、ヘッダ
とトレーラのLSNが一致した場合は、208で要求が処理さ
れ、成功に相当する状況が設定され、215でその状況が
返される。
次に第10図に戻ると、これは、通常の非データベース
再始動中のエラー・インデックス・ファイル処理を示す
流れ図である。218で、テーブルをオープンするように
との要求が行なわれたかどうか検査が行なわれる。要求
が行なわれていない場合は、220でエラー・メッセージ
が返される。テーブル・オープン要求は、新しいテーブ
ルの処理を開始するようにとの要求である。そのような
要求を処理が受け取った場合、222で、インデックス・
ファイルを再作成するための手順が開始される。222に
おけるそのような手順の始めはエラー・インデックス・
ファイルを削除することである。それが行なわれると、
224で、システム・インデックス・テーブルを使って最
初のインデックス定義が探し出される。226で、この最
初の定義を使って、処理は、224で定義されたインデッ
クスを作成または再作成し始める。228で、すべてのイ
ンデックスがすでに作成されたかどうか検査が行なわれ
る。まだの場合は、230で次のインデックス定義が検索
され、226にループして戻って、取り出されたインデッ
クスが再作成される。再び228の検査を続行し、すべて
のインデックスが作成された場合は、232で「テーブル
・オープン」要求が完了され、234から戻る。
第11図は、システム再始動の完了後の全エラー・イン
デックス・ファイルの再作成を示す流れ図である。236
で、システム再始動が実際に完了し、インデックス・フ
ァイルのすべてを作成する動作が開始される。238です
べてのエラー・インデックス・ファイルのリストが取り
出される。これは、前のエラーが発生した時点及びイン
デックス・ファイル再作成を試みていた際のシステム・
クラッシュの後であり、その場合は、238でリストが存
在する。しかし、前のエラー及びクラッシュが起きなか
った場合は、このリストは明らかに空である。240で、
取り出されたこのリストが任意の新しいエラー・インデ
ックス・ファイルに追加される。これは、第8図で付さ
れたエラー標識によりそのディレクトリを検査すること
によってエラー・インデックス・ファイルがあるかどう
か調べることによって行なわれ、エラー・インデックス
・ファイルがある場合は、それらをエラー・インデック
ス・ファイルのリストに加える。242で、検査が行なわ
れて、リスト上の最初のファイルが取り出される。以下
のステップ244以下で、このリストに挙げられたすべて
のファイルについて実際にそのファイルをオープンして
みることにより、オープンが成功すれば、それは再始動
によりエラーが回復していることを意味するので、それ
をリストから削除し、オープンが成功しなければ、それ
は再始動によってもエラーが回復しなかったことを意味
するので、それをリストに残すという処理を行う。244
で、リスト上のすべての項目が処理されたかどうか調べ
られる。処理されていない場合は、246でファイルが更
新のためオープンされる。252で検査が行なわれ、オー
プンが成功したかどうかが判定され、そうである場合
は、リスト254からその項目が取り除かれる。取り除か
れた後で、256で次の項目が指示され、244にループして
戻り、そこで再び検査が行なわれて、リスト上のすべて
の項目が処理されたかどうかが判定される。252で、オ
ープンが成功しなかった場合は、256で次の項目が指示
される。244に戻って、リスト上の全項目が処理された
場合は、248でディスク上のリストが更新され、250で処
理が終了する。
第12図に、前述のアルゴリズムの機能を提供するコン
ピュータ・プログラムを実行して、本発明のシステムを
実現するために使用することができる処理装置のブロッ
ク・ダイヤグラムを示す。このシステムは、IBMパーソ
ナル・システム/2に組み込まれたパーソナル・コンピュ
ータ等の通常のパーソナル・コンピュータ・アーキテク
チャーの形を取ることが好ましい。このシステム290に
は、インテル80286または80386等のマイクロプロセッサ
308が設けられている。マイクロプロセッサ308はバス31
0によって入出力装置300、ROM302、メモリ304及び媒体3
06のうちの選択された所望のものに結合される。通常の
ように、バス310は当技術では周知の目的用のアドレス
線、コマンド線及びデータ線からなることを了解された
い。本発明のシステム290に含めることができる入出力
装置300には、IBMパーソナル・システム・カラー表示装
置8510等の表示装置、ユーザ入力用のキーボード、マウ
ス等、さらに、所望ならば印刷装置がある。簡単のた
め、第12図ではアダプタが省略されているが、それぞれ
の装置300−306用のそのようなアダプタをIBMパーソナ
ル・システム/2の一部として含めることができ、あるい
はIBM社からのプラグ・イン・オプションとして入手で
きることを了解されたい。
読取り専用メモリ(ROM)302内には、プロセッサ308
による実行のために基本入出力オペレーティング・シス
テム(BIOS)が格納される。BIOSは周知のように、コン
ピュータ・システム290の基本動作を制御する。さら
に、OS/2等のオペレーティング・システム298が設けら
れ、メモリ304にロードされ、ROM302内のBIOSと共に実
行される。
本発明のシステム及び方法を実現するための好ましい
実施例で使用することができるパーソナル・システム/2
及びオペレーティング・システムOS/2についてのその他
の情報は、引用により本書に組み込んだ下記の参考文献
に記載されている。IBM Operating System/2 Version
1.0 Standard Edition Technical Reference、IBM社部
品番号6280201、発注番号5871−AA;Technical Referenc
e Manual、Personal System/2(Model 80)、IBM社部品
番号68X2256、発注番号S68X−2256;及びOS/2 Programme
r′s Guide、ヤコブッチ(Iacobucci)編、マグローヒ
ル社、1988年。
本発明によれば、さらに、メモリ304にロードできる
か、あるいは媒体306に記憶させることができるアプリ
ケーション・プログラム292が設けられる。この媒体306
は、ハード・ファイル、ディスク駆動機構に結合された
ディスケット等の通常の形のものなら何でもよい。OS/2
によれば、データベース・アプリケーション・プログラ
ム292はオペレーティング・システム298の拡張と見なす
ことができ、システム290が上記の関係データベース機
能をできるようにするため、通常、プロセッサ308に命
令を与えるデータベース・プログラムと関連する多数の
機能を含む。オペレータは種々の入出力装置300を介し
てデータベース・プログラムとインターフェースするこ
とができ、そのようなインターフェース処理にはデータ
の入力、アクセス、変更またはデータベースからの削除
及びその他のそのようなタスクが含まれる。たとえば、
ユーザは、当技術で周知のSQLコマンド等のある形のデ
ータ操作言語コマンドを入力することにより、データベ
ース・プログラム292と対話することができ、それによ
り、システム290は、データベースに存在するデータを
照会し、検査のためユーザが設定した所望の応答をビデ
オ端末、印刷装置等に出力する。
データベース・プログラム292に含まれるソフトウェ
ア機能は、回復ログ機能294及びシステム再始動機能296
を含むことに留意されたい。第12図にデータベース・プ
ログラム292の一部として図式的かつ概念的に示したこ
れらの機能は、本発明の方法による回復ログの生成及び
システム再始動の実行に関して、上記の本発明の機能を
実行することが認められる。
【図面の簡単な説明】
第1図はデータベース・テーブルの説明図である。 第2図は、媒体に概念的に記憶されたときの第1図のデ
ータベース・テーブルのデータ・ページの説明図であ
る。 第3図は、媒体に概念的に記憶されたときの第1図のデ
ータベース・テーブル用のインデックスBツリーの説明
図である。 第4図は、第1図のテーブル中の従業員に対応する長フ
ィールド・ファイル・データの説明図である。 第5図は、本発明の種々の構成要素の動作全体を示す流
れ図である。 第6図は、ログ・ページを媒体に書き込む方法を示す流
れ図である。 第7図は、第5図の方法に従って書かれたログ・ページ
の処理と、データベース再始動処理の間に検出されたエ
ラーの処理を示す流れ図である。 第8図は、データベース再始動処理中におけるデータ、
インデックスまたは長フィールド・ファイルに関するエ
ラーの検出及び処理を示す流れ図である。 第9図は、通常の非データベース再始動処理中における
エラー・ファイル処理を示す流れ図である。 第10図は、通常の非データベース再始動インデックス処
理中におけるエラー・インデックス・ファイル処理を示
す流れ図である。 第11図は、システム再始動の完了後のエラー・インデッ
クスの再作成を示す流れ図である。 第12図は、第5図ないし第11図に関連して説明するルー
チンを実行するための本発明によるコンピュータ化され
たシステムを示す全般的機能ブロック・ダイヤグラムで
ある。 290……データ回復システム、292……データベース・プ
ログラム、298……オペレーティング・システム、300…
…入出力装置、302……読取り専用メモリ、304……メモ
リ、306……媒体、308……プロセッサ。
フロントページの続き (72)発明者 ロイド・ジユーゼン・ジヨーダン・セカ ンド アメリカ合衆国テキサス州オースチン、 ベイスウオーター・ガーデン13505番地 (72)発明者 フランク・エリオツト・レビン アメリカ合衆国テキサス州オースチン、 チヤペル・ダウン・ストリート9406番地 (72)発明者 チエング―フオング・シイ アメリカ合衆国テキサス州オースチン、 カバナ、レイン12225番地 (72)発明者 ウイリアム・ウオルター・マイエ、ジユ ニア アメリカ合衆国テキサス州オースチン、 マークリイ・レイン・12405番地

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】データ・ファイル、インデックス・ファイ
    ル、及び回復ログを記憶するための記憶媒体と、該記憶
    媒体に対して入出力を行うCPUとを有するデータベース
    ・システムにおいて、入出力エラーの後でデータベース
    を回復する方法であって、 (a)通常の処理中にログ・レコードを上記記憶媒体上
    の上記回復ログに書き込むステップと、 (b)上記回復ログを走査することにより上記システム
    を再始動するステップと、 (c)上記回復ログの走査でコミットされないトランザ
    クションが検出された場合に該トランザクションで取り
    消すステップと、 (d)上記記憶媒体において入出力エラーの生じたファ
    イルを命名し直し、エラー・ファイルとして識別するス
    テップと、 (e)上記エラー・ファイルがインデックス・ファイル
    の場合に該インデックス・ファイルを再構成するステッ
    プと、 を具備するデータベースを回復する方法。
  2. 【請求項2】データ・ファイル及びインデックス・ファ
    イルを有するデータベースを回復するための回復ログを
    ログ・ページとして保持するデータベース・システムに
    おいて、 (a)ログ・ページを記憶媒体に書き出すときに、該ロ
    グ・ページが所定のサイズより小さいかどうかを判断す
    るステップと、 (b)上記ログ・ページが上記所定のサイズ以上であれ
    ば、上記ログ・ページを上記記憶媒体の所定の位置に書
    き出すステップと、 (c)上記ログ・ページが上記所定のサイズより小さけ
    れば、上記ログ・ページを上記記憶媒体の上記所定の位
    置とは異なる2つの位置に交互に書き出すステップと、 (d)エラー後の再始動で上記所定の位置及び上記2つ
    の位置のいずれかから正しいログ・ページを読み取るス
    テップと、 (e)読み取ったログ・ページに基づいて上記システム
    を再始動するステップと、 を具備するデータベースを回復する方法。
JP1025962A 1988-04-08 1989-02-06 デ―タベ―スを回復する方法 Expired - Lifetime JP2531776B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/179,195 US4945474A (en) 1988-04-08 1988-04-08 Method for restoring a database after I/O error employing write-ahead logging protocols
US179195 1988-04-08

Publications (2)

Publication Number Publication Date
JPH01261746A JPH01261746A (ja) 1989-10-18
JP2531776B2 true JP2531776B2 (ja) 1996-09-04

Family

ID=22655619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1025962A Expired - Lifetime JP2531776B2 (ja) 1988-04-08 1989-02-06 デ―タベ―スを回復する方法

Country Status (5)

Country Link
US (1) US4945474A (ja)
EP (1) EP0336546B1 (ja)
JP (1) JP2531776B2 (ja)
BR (1) BR8901635A (ja)
DE (1) DE68926693T2 (ja)

Families Citing this family (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5123104A (en) * 1988-04-08 1992-06-16 International Business Machines Corporation Method and apparatus for concurrent modification of an index tree in a transaction processing system utilizing selective indication of structural modification operations
US5278983A (en) * 1988-09-30 1994-01-11 International Business Machines Corporation Boundary representation solid modeling system
US5159669A (en) * 1988-12-15 1992-10-27 Xerox Corporation Automatically creating a second workspace operation record including history data and a unit ID based on a first workspace operation
DE68927705T2 (de) * 1989-06-13 1997-07-17 Ibm Verfahren zum Entfernen unbestätigter Änderungen an gespeicherten Daten durch ein Datenbankverwaltungssystem
US5412801A (en) * 1990-01-17 1995-05-02 E-Net Gap recovery for off-site data storage and recovery systems
JP2778786B2 (ja) * 1990-03-02 1998-07-23 富士通株式会社 データ更新・復元処理方式
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
US5138710A (en) * 1990-04-25 1992-08-11 Unisys Corporation Apparatus and method for providing recoverability in mass storage data base systems without audit trail mechanisms
US5327532A (en) * 1990-05-16 1994-07-05 International Business Machines Corporation Coordinated sync point management of protected resources
JP2667039B2 (ja) * 1990-05-18 1997-10-22 株式会社東芝 データ管理システムおよびデータ管理方法
JPH0540682A (ja) * 1990-06-08 1993-02-19 Internatl Business Mach Corp <Ibm> アトミシテイを有する記憶装置の高可用性耐故障再配置
EP0465018B1 (en) * 1990-06-29 1997-05-14 Oracle Corporation Method and apparatus for optimizing undo log usage
EP0465019B1 (en) * 1990-06-29 1997-05-14 Oracle Corporation Method and apparatus for managing state identifiers for efficient recovery
US5129152A (en) * 1990-12-20 1992-07-14 Hughes Aircraft Company Fast contact measuring machine
US5317730A (en) 1991-01-11 1994-05-31 International Business Machines Corporation System for modifying persistent database based upon set of data elements formed after selective insertion or deletion
US5333303A (en) * 1991-03-28 1994-07-26 International Business Machines Corporation Method for providing data availability in a transaction-oriented system during restart after a failure
GB2256069B (en) * 1991-05-23 1994-09-07 Digital Equipment Int Transaction processing
DE69119222T2 (de) * 1991-06-04 1996-11-21 Ibm Datensicherung und Beseitigung in einem Datenverarbeitungssystem
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
US5764877A (en) * 1991-06-25 1998-06-09 Digital Equipment Corporation Media recovery with time-split B-trees
US5287501A (en) * 1991-07-11 1994-02-15 Digital Equipment Corporation Multilevel transaction recovery in a database system which loss parent transaction undo operation upon commit of child transaction
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
DE546339T1 (de) * 1991-12-09 1993-11-25 Yokogawa Electric Corp Verteiltes Steuersystem.
US5446884A (en) * 1992-02-13 1995-08-29 International Business Machines Corporation Database recovery apparatus and method
US5574897A (en) * 1992-09-30 1996-11-12 International Business Machines Corporation System managed logging of objects to speed recovery processing
US5530855A (en) * 1992-10-13 1996-06-25 International Business Machines Corporation Replicating a database by the sequential application of hierarchically sorted log records
SE508828C2 (sv) * 1992-12-08 1998-11-09 Ericsson Telefon Ab L M System för relationsåterhämtning av databas i händelse av fel
US5581749A (en) * 1992-12-21 1996-12-03 Thedow Chemical Company System and method for maintaining codes among distributed databases using a global database
US5504883A (en) * 1993-02-01 1996-04-02 Lsc, Inc. Method and apparatus for insuring recovery of file control information for secondary storage systems
JPH06266597A (ja) * 1993-03-11 1994-09-22 Fujitsu Ltd ログ取得方式
GB2276737A (en) * 1993-03-30 1994-10-05 Ibm Fault-tolerant transaction-oriented data processing
US5408649A (en) * 1993-04-30 1995-04-18 Quotron Systems, Inc. Distributed data access system including a plurality of database access processors with one-for-N redundancy
US5524190A (en) * 1993-06-04 1996-06-04 Taligent, Inc. Command object logging system for restoring documents
JP2708386B2 (ja) 1994-03-18 1998-02-04 インターナショナル・ビジネス・マシーンズ・コーポレイション 同時更新及び複写手順を通して重複データベースを回復させる方法及び装置
JP3441807B2 (ja) * 1994-09-19 2003-09-02 株式会社日立製作所 B木インデクスの管理方法およびシステム
JP3593366B2 (ja) * 1994-09-19 2004-11-24 株式会社日立製作所 デ−タベ−ス管理方法
US5713017A (en) * 1995-06-07 1998-01-27 International Business Machines Corporation Dual counter consistency control for fault tolerant network file servers
SE506534C2 (sv) * 1995-06-15 1998-01-12 Ericsson Telefon Ab L M Sätt att bestämma innehåll i restaureringslogg
US5878428A (en) * 1995-11-20 1999-03-02 International Business Machines Corporation System, method, and article of manufacture for adding transactional recovery to a binary class in an object oriented system
US5745750A (en) * 1995-12-15 1998-04-28 International Business Machines Corporation Process and article of manufacture for constructing and optimizing transaction logs for mobile file systems
US5771343A (en) * 1996-02-14 1998-06-23 Sterling Commerce, Inc. System and method for failure detection and recovery
US5805785A (en) * 1996-02-27 1998-09-08 International Business Machines Corporation Method for monitoring and recovery of subsystems in a distributed/clustered system
US5644698A (en) * 1996-05-30 1997-07-01 International Business Machines Corporation Configurable reuse delay criterion for storage volumes
US5758355A (en) * 1996-08-07 1998-05-26 Aurum Software, Inc. Synchronization of server database with client database using distribution tables
US6009425A (en) * 1996-08-21 1999-12-28 International Business Machines Corporation System and method for performing record deletions using index scans
KR100198805B1 (ko) * 1996-11-22 1999-06-15 정선종 분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법
US5991772A (en) * 1997-10-31 1999-11-23 Oracle Corporation Method and apparatus for restoring a portion of a database
US6173292B1 (en) 1998-03-04 2001-01-09 International Business Machines Corporation Data recovery in a transactional database using write-ahead logging and file caching
US6792435B1 (en) * 1998-03-10 2004-09-14 International Business Machines Corporation Method and apparatus for recovering the definitions of dropped database objects
US6226651B1 (en) 1998-03-27 2001-05-01 International Business Machines Corporation Database disaster remote site recovery
US6119128A (en) * 1998-03-30 2000-09-12 International Business Machines Corporation Recovering different types of objects with one pass of the log
US6151685A (en) * 1998-05-15 2000-11-21 International Business Machines Corporation System and method for recovering a segment directory for a log structured array
US6247024B1 (en) 1998-09-25 2001-06-12 International Business Machines Corporation Method and system for performing deferred file removal in a file system
US7756818B1 (en) * 1999-07-07 2010-07-13 Computer Associates Think, Inc. Database table recovery system
JP4237354B2 (ja) * 1999-09-29 2009-03-11 株式会社東芝 トランザクション処理方法及びトランザクション処理システム
US6487677B1 (en) * 1999-09-30 2002-11-26 Lsi Logic Corporation Methods and systems for dynamic selection of error recovery procedures in a managed device
US6496944B1 (en) 1999-10-06 2002-12-17 International Business Machines Corporation Method for database assisted file system restore
US6951011B1 (en) * 1999-10-21 2005-09-27 Oracle International Corp. Diagnostic method and article for identifying significant events
US7107292B1 (en) 2000-10-13 2006-09-12 International Business Machines Corporation Fast system level recovery
US6799172B2 (en) * 2001-08-28 2004-09-28 International Business Machines Corporation Method and system for removal of resource manager affinity during restart in a transaction processing system
US6880051B2 (en) * 2002-03-14 2005-04-12 International Business Machines Corporation Method, system, and program for maintaining backup copies of files in a backup storage device
GB0208143D0 (en) 2002-04-09 2002-05-22 Ibm Data recovery system
US6865454B2 (en) * 2002-07-02 2005-03-08 Quantum Engineering Inc. Train control system and method of controlling a train or trains
US20040088195A1 (en) * 2002-10-31 2004-05-06 Childress Allen B. Method of modifying a business rule
US20040215494A1 (en) * 2003-04-24 2004-10-28 Wahlbin Stefan L. Method and system for determining monetary amounts in an insurance processing system
GB2405228B8 (en) * 2003-08-19 2007-09-13 Ibm A method, apparatus and computer program for verifying the order of a queue of work items
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US7895064B2 (en) * 2003-09-02 2011-02-22 Computer Sciences Corporation Graphical input display in an insurance processing system
US20050066235A1 (en) * 2003-09-24 2005-03-24 International Business Machines Corporation Automated fault finding in repository management program code
US7765247B2 (en) * 2003-11-24 2010-07-27 Computer Associates Think, Inc. System and method for removing rows from directory tables
US7143120B2 (en) * 2004-05-03 2006-11-28 Microsoft Corporation Systems and methods for automated maintenance and repair of database and file systems
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7366740B2 (en) * 2004-05-03 2008-04-29 Microsoft Corporation Systems and methods for automatic maintenance and repair of enitites in a data model
US7293191B1 (en) 2004-07-26 2007-11-06 Symantec Operating Corporation System and method for managing I/O errors in a storage environment employing asymmetric distributed block virtualization
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US7499954B2 (en) * 2004-11-01 2009-03-03 International Business Machines Corporation Consistent reintegration of a failed primary instance
US7627614B2 (en) * 2005-03-03 2009-12-01 Oracle International Corporation Lost write detection and repair
US7552147B2 (en) * 2005-09-02 2009-06-23 International Business Machines Corporation System and method for minimizing data outage time and data loss while handling errors detected during recovery
US8078588B2 (en) * 2005-10-10 2011-12-13 Oracle International Corporation Recoverable execution
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
KR100678926B1 (ko) * 2006-01-05 2007-02-06 삼성전자주식회사 로그 정보 관리 시스템 및 방법
US20070234342A1 (en) * 2006-01-25 2007-10-04 Flynn John T Jr System and method for relocating running applications to topologically remotely located computing systems
US7650352B2 (en) * 2006-03-23 2010-01-19 International Business Machines Corporation System and method for increasing availability of an index
US7613749B2 (en) * 2006-04-12 2009-11-03 International Business Machines Corporation System and method for application fault tolerance and recovery using topologically remotely located computing devices
US7953698B2 (en) * 2006-08-03 2011-05-31 Sybase, Inc. Replication system with methodology for replicating stored procedure calls
US8548942B2 (en) 2006-10-04 2013-10-01 Salesforce.Com, Inc. Methods and systems for recursive saving of hierarchical objects to a database
US8161010B2 (en) * 2006-10-04 2012-04-17 Salesforce.Com, Inc. Methods and systems for providing fault recovery to side effects occurring during data processing
US8682863B2 (en) 2006-10-04 2014-03-25 Salesforce.Com, Inc. Methods and systems for bulk row save logic in an object relational mapping layer and application framework
US7594138B2 (en) 2007-01-31 2009-09-22 International Business Machines Corporation System and method of error recovery for backup applications
US20090063807A1 (en) * 2007-08-29 2009-03-05 International Business Machines Corporation Data redistribution in shared nothing architecture
JP4982342B2 (ja) * 2007-12-03 2012-07-25 日本電信電話株式会社 データベースシステム,データ管理方法,データベースプログラム及びそのプログラムを記録する記録媒体
US8631203B2 (en) 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US8108356B2 (en) * 2007-12-24 2012-01-31 Korea Advanced Institute Of Science And Technology Method for recovering data in a storage system
US7991630B2 (en) * 2008-01-18 2011-08-02 Computer Sciences Corporation Displaying likelihood values for use in settlement
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
KR101587995B1 (ko) * 2009-10-28 2016-01-22 삼성전자주식회사 적응적 로깅 장치 및 방법
US8930321B2 (en) 2010-06-30 2015-01-06 Microsoft Corporation Logical recovery with unbundled transaction services
US8745000B2 (en) * 2010-10-29 2014-06-03 International Business Machines Corporation Private database logging with minimal storage requirements
US9081653B2 (en) 2011-11-16 2015-07-14 Flextronics Ap, Llc Duplicated processing in vehicles
US9330414B2 (en) * 2012-05-21 2016-05-03 Oracle International Corporation Approval system for buyer-initiated requisition modifications
US9003162B2 (en) 2012-06-20 2015-04-07 Microsoft Technology Licensing, Llc Structuring storage based on latch-free B-trees
US20170017406A1 (en) * 2015-07-14 2017-01-19 HGST Netherlands B.V. Systems and methods for improving flash-oriented file system garbage collection
US10152500B2 (en) 2013-03-14 2018-12-11 Oracle International Corporation Read mostly instances
US8683262B1 (en) 2013-06-21 2014-03-25 Terracotta Inc. Systems and/or methods for rapid recovery from write-ahead logs
US9519591B2 (en) 2013-06-22 2016-12-13 Microsoft Technology Licensing, Llc Latch-free, log-structured storage for multiple access methods
US9767178B2 (en) 2013-10-30 2017-09-19 Oracle International Corporation Multi-instance redo apply
US9514211B2 (en) 2014-07-20 2016-12-06 Microsoft Technology Licensing, Llc High throughput data modifications using blind update operations
US9892153B2 (en) 2014-12-19 2018-02-13 Oracle International Corporation Detecting lost writes
JP6556851B2 (ja) * 2015-09-08 2019-08-07 株式会社東芝 データベースシステム、サーバ装置、プログラムおよび情報処理方法
US10747752B2 (en) 2015-10-23 2020-08-18 Oracle International Corporation Space management for transactional consistency of in-memory objects on a standby database
US11657037B2 (en) 2015-10-23 2023-05-23 Oracle International Corporation Query execution against an in-memory standby database
US10698771B2 (en) 2016-09-15 2020-06-30 Oracle International Corporation Zero-data-loss with asynchronous redo shipping to a standby database
US10891291B2 (en) 2016-10-31 2021-01-12 Oracle International Corporation Facilitating operations on pluggable databases using separate logical timestamp services
US11475006B2 (en) 2016-12-02 2022-10-18 Oracle International Corporation Query and change propagation scheduling for heterogeneous database systems
US10691722B2 (en) 2017-05-31 2020-06-23 Oracle International Corporation Consistent query execution for big data analytics in a hybrid database
US10860221B1 (en) * 2019-07-05 2020-12-08 EMC IP Holding Company LLC Page write to non-volatile data storage with failure recovery
US11580255B2 (en) 2019-11-11 2023-02-14 Bank Of America Corporation Security tool for n-tier platforms
CN112783792B (zh) * 2021-02-08 2024-01-09 腾讯云计算(北京)有限责任公司 分布式数据库系统的故障检测方法、装置及电子设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3736566A (en) * 1971-08-18 1973-05-29 Ibm Central processing unit with hardware controlled checkpoint and retry facilities
US4044337A (en) * 1975-12-23 1977-08-23 International Business Machines Corporation Instruction retry mechanism for a data processing system
US4498145A (en) * 1982-06-30 1985-02-05 International Business Machines Corporation Method for assuring atomicity of multi-row update operations in a database system
US4648031A (en) * 1982-06-21 1987-03-03 International Business Machines Corporation Method and apparatus for restarting a computing system
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
US4697266A (en) * 1983-03-14 1987-09-29 Unisys Corp. Asynchronous checkpointing system for error recovery
US4686620A (en) * 1984-07-26 1987-08-11 American Telephone And Telegraph Company, At&T Bell Laboratories Database backup method
US4751639A (en) * 1985-06-24 1988-06-14 Ncr Corporation Virtual command rollback in a fault tolerant data processing system
US4814971A (en) * 1985-09-11 1989-03-21 Texas Instruments Incorporated Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state
US4868744A (en) * 1986-03-03 1989-09-19 International Business Machines Corporation Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system without burdening the system log
JPH0682336B2 (ja) * 1986-04-28 1994-10-19 日本電気株式会社 ブロック閉塞を用いたロールバックリカバリシステム
US4819156A (en) * 1986-06-13 1989-04-04 International Business Machines Corporation Database index journaling for enhanced recovery

Also Published As

Publication number Publication date
US4945474A (en) 1990-07-31
BR8901635A (pt) 1989-11-21
EP0336546B1 (en) 1996-06-19
EP0336546A3 (en) 1991-06-26
DE68926693D1 (de) 1996-07-25
JPH01261746A (ja) 1989-10-18
EP0336546A2 (en) 1989-10-11
DE68926693T2 (de) 1997-01-23

Similar Documents

Publication Publication Date Title
JP2531776B2 (ja) デ―タベ―スを回復する方法
JP2531894B2 (ja) デ―タ処理装置
JP2679779B2 (ja) トランザクション処理方法及び装置
JP2505112B2 (ja) トランザクション管理方法
US4498145A (en) Method for assuring atomicity of multi-row update operations in a database system
US6185699B1 (en) Method and apparatus providing system availability during DBMS restart recovery
US7133884B1 (en) Unobtrusive point-in-time consistent copies
US6567928B1 (en) Method and apparatus for efficiently recovering from a failure in a database that includes unlogged objects
US8078588B2 (en) Recoverable execution
US5864849A (en) System and method for restoring a multiple checkpointed database in view of loss of volatile memory
US7340645B1 (en) Data management with virtual recovery mapping and backward moves
US6898688B2 (en) Data management appliance
US4878167A (en) Method for managing reuse of hard log space by mapping log data during state changes and discarding the log data
US6651073B1 (en) Method and apparatus for insuring database data integrity without data recovery logging
EP0501160A2 (en) Intelligent page store for concurrent and consistent access to a database by a transaction processor and a query processor
JPH06318165A (ja) 故障後の再起動中でのトランザクション適応システムにおいてデータを利用可能にする方法
JPH0833860B2 (ja) データベースの回復方法
US20030131253A1 (en) Data management appliance
JPH0212460A (ja) 索引木への並列アクセスのためのデータ・アクセス方法およびデータ処理システム
EP1023677A1 (en) Monitoring document changes with persistent update sequence numbers
WO2005103955A1 (en) System and method for a consistency check of a database backup
EP0295424B1 (en) Method for managing subpage concurrency control and partial transaction rollback in a transaction-oriented system of the write-ahead logging type
US6038569A (en) System for data structure loading with concurrent image copy
US7765247B2 (en) System and method for removing rows from directory tables
US6275832B1 (en) Providing transaction undo without logging

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080627

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20080627

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20090627

Year of fee payment: 13

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090627

Year of fee payment: 13