JPH05233382A - トランザクション整合資源回復方法 - Google Patents

トランザクション整合資源回復方法

Info

Publication number
JPH05233382A
JPH05233382A JP4305117A JP30511792A JPH05233382A JP H05233382 A JPH05233382 A JP H05233382A JP 4305117 A JP4305117 A JP 4305117A JP 30511792 A JP30511792 A JP 30511792A JP H05233382 A JPH05233382 A JP H05233382A
Authority
JP
Japan
Prior art keywords
recovery
log
archive
pseudo
record
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
Application number
JP4305117A
Other languages
English (en)
Inventor
Dean S Daniels
ディーン・スペンサー・ダニエル
L Haskin Roger
ロジャー・エル・ハスキン
Arthur Sodan Wayne
ウエイン・アーサー・ソダン
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 JPH05233382A publication Critical patent/JPH05233382A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 operations
    • G06F11/1471Error detection or correction of the data by redundancy in operations involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 operations
    • G06F11/1402Saving, restoring, recovering or retrying
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 operations
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】 大部分のUNDOログ記録をログ記録中に放
棄させる一方で、回復ログ・アーカイブの単一のパスで
破滅的媒体故障からトランザクション整合資源回復を実
行するための方法。 【構成】 媒体回復プロシージャは、PSEUDO−R
ECOVERY記録を回復ログに書込むことによって選
択された時間でシステム・クラッシュをシミュレートす
る疑似クラッシュ回復技術に基づく。資源回復は、引き
続き生じるPSEUDO−RECOVERY記録の実行
が後で行われる最後の疑似クラッシュまで、ログ・アー
カイブ記録の通常の実行によって行われる。回復ログ記
録実行プロシージャは、ARIESの回復方法に基づ
く。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、トランザクション整合
のフォワード・リカバリにだけ重要な全てのログ記録
を、オフライン・イメージ・ダンプおよび回復ログ・ア
ーカイブ媒体から保持する一方で、アーカイブの大きさ
を減らすために回復ログ・アーカイブにフィルタをかけ
るためのシステムに関する。
【0002】
【従来の技術及び発明が解決しようとする課題】二次の
安定記憶装置媒体の故障からの回復は、コンピュータ・
システムに重要な問題である。あるケースでの媒体の回
復は、全体的にオフライン記憶媒体(テープを始めとす
るアーカイブ)から実行しなければならない。これは、
単一のディスク安定記憶装置を有する小さいシステムで
特に必要であるが、マシン・ルームの火災、又は自然災
害を始めとする、より大きいシステムの災害からの回復
にも必要なことである。データベース管理システムのよ
うなトランザクション・ベースのシステムは、安定媒体
に記憶されたデータ資源を、原子単位又はトランザクシ
ョン整合状態での回復を必要とする。従来のデータ資源
の回復アルゴリズムは、クラッシュの回復を目的とし、
オンラインにおいて安定記憶装置媒体に従来通りに格納
されたログの部分を含む、全ての回復ログが使用可能で
あると仮定している。安定媒体の故障によるオンライン
回復ログの消失は、トランザクション整合クラッシュの
回復を妨げる。従来の回復アルゴリズムを用いるフォワ
ード・リカバリは、全ての回復ログ記録を取り込むため
に回復ログ・アーカイブ・テープを必要とする。全ての
ログ記録を格納するためのこの必要条件は、回復ログ・
アーカイブ等で占有された実質的な記憶容量により、厄
介である。
【0003】従来技術で知られている従来の回復システ
ムは、著者 C.Mohan、et al、によるIBM社発刊の "
書込み先行記録使用の細密ロッキング及び部分ロールバ
ック支援のトランザクション回復方法"("ARIES:A Tra
nsaction Recovery Method Supporting Fine-Granularity Locking and Partial Ro
llbacks Using Write-Ahead Logging" IBM Research Report RJ 6649、
revised 11/2/90、IBM Research Division、Yorktown Heights、New York )に
記載されているので参照されたい。
【0004】著者C.J.Dateの"データべース・システ
ムの導入"("An Introduction To DataBase Systems"、Volume 1、4th Edition、Eddison-
Wesley Publishing co.、Copyright 1986、Ch.18)に
よって指摘されるように、"トランザクション"は、順序
の全ての中間点で整合性を維持せずに、回復可能な資源
の整合状態を他の整合状態に変えるオペレーション順序
を基準化する仕事の論理的単位である。この目的のため
に、データベースが、回復可能な資源の典型的な実例と
して参照される。
【0005】安定記憶装置によってデータを管理するデ
ータベース管理システムは、データを破滅状態又は不整
合状態のままにする故障を被りやすい。不整合なデータ
は、ユーザによって想定される保全性保証を犯し、極端
なケースでは、データベース管理システムが誤った動
作、すなわち、クラッシュする。データベースは、クラ
ッシュから次の方法で回復できる。放棄されたトランザ
クションのアクションを逆探索するためにUNDO回復
ログ記録を用いて、及びクラッシュの前に永久記憶装置
に書込みできなかった不良のトランザクションのアクシ
ョンを繰返すためにREDO回復ログ記録を用いて、ど
のトランザクションが不良か、どのトランザクションが
放棄されたかを求めるために回復ログをスキャンする。
安定記憶装置媒体の故障から回復するために、データベ
ース及び回復ログのアーカイブ・ダンプは、同じように
処理されなければならない。
【0006】システム・サポート・トランザクションの
処理は、トランザクションが、データベースに対して、
ある更新を実行し、トランザクションがその正常な終了
に到達する前にシステムの故障が発生する場合、これら
の更新は、回復プロシージャの一部として回復されるこ
とを保証する。従って、トランザクションは、そのまま
全体を実行するか、又は、全てが取り消される。複数の
トランザクション及び予測できない故障の同時並行の実
行に直面するトランザクションのアトミシティ及び耐久
性を保証することは、トランザクション処理で非常に重
要な問題である。過去に多くの方法が、この問題を扱う
ために開発されたが、しかし、このような方法に付随す
る関連した仮定、性能、特性、及び複雑さは、必ずしも
満足できるものではなかった。
【0007】トランザクション及びデータの回復の保証
を満足させるには、トランザクション回復システムが、
回復可能のデータ対象物を変化せしめるトランザクショ
ン及びそのアクションの進行状態を回復ログで記録す
る。回復ログは、トランザクションの不良アクションが
データベースに反映されるか、又はトランザクションの
不良の未遂(放棄された)のアクションが、様々な種類
の故障であっても復元されるかの確認のソースになる。
記録アクションが、データ対象の内容を反映する場合、
これらの回復ログ記録は、また、損傷又はデータ消失の
最構築のソースとなる。概念的に、回復ログは、絶えず
成長する順編成ファイルと見なすことができる。全ての
ログ記録は、その記録がログに付加される場合、一意な
ログ一連番号(LSN:log sequence number)を割当てら
れる。LSNは、昇順で割当てられ、及び一般に、対応
するログ記録の論理アドレス、すなわち、ある開始点か
ら経過時間を測定するタイムスタンプである。
【0008】不揮発性又は安定バージョンの回復ログ
は、回転磁気媒体("ディスク")を始めとする安定記憶
装置に格納される。このような安定記憶装置は、回復ロ
グの2つの同一のコピーを異なるディスクに保持するこ
とによって改善できる。これらのオンライン安定記憶装
置ログ記録は、次に、テープを始めとするより安価で且
つ速度がより遅いアーカイブ媒体に時折コピーされる。
回復ログ・アーカイブ記録は、一度、データベースの適
切なイメージ・コピー(アーカイブ・ダンプ)が作られ
ると放棄され、以前の回復ログ・アーカイブ記録が実際
的な意義を失う。
【0009】トランザクション又はプロセスの故障が発
生すると、一般にそのトランザクションは、更新が行わ
れない状態になる。プロセスが消滅したとき、トランザ
クションが更新の実行に関係していたならば、トランザ
クションが非持久記憶装置の、あるページを破壊させる
ことがある。システム故障が生じた場合、非持久記憶装
置の内容は一般に消失し、そしてトランザクション・シ
ステムが再開を強要され、データベース及び回復ログの
安定記憶装置バージョンを使用して回復作業が実行され
る。安定記憶装置媒体又は装置の故障が生じた場合、安
定記憶装置媒体の内容が、一般に消失し、そしてデータ
ベースが、データ対象及び回復ログ・アーカイブの最後
のイメージ・コピー(アーカイブ・ダンプ)を使用して
回復されなければならない。
【0010】回復ログのUNDO記録は、トランザクシ
ョンによって行われた変化をどのようにして復元するか
の情報を提供する。回復ログのREDO記録は、トラン
ザクションによって行われた変化をどのようにしてやり
直すかの情報を提供する。ARIESを始めとする書込
み先行記録(WAL:write-Ahead Logging)ベースのシス
テムでは、更新されたデータベースは、読出されたのと
同一の安定記憶装置位置に再書込みされる。WALプロ
トコルは、変更データが、安定記憶装置のデータの直前
のバージョンを置き換える前に、あるデータに対する変
化を表す回復ログ記録が既に安定記憶装置にあると宣言
する。すなわち、システムは、少くとも回復ログのUN
DO記録が、ページ更新アクションが安定記憶装置に最
初に書込まれたことを表すまでは、更新データ・ページ
をデータベースの安定記憶装置バージョンに書込むこと
を許可しない。
【0011】トランザクションは、アプリケーション指
定のオペレーション順序で実行するので、特別なBEG
INトランザクション・オペレーションで開始し、CO
MMITオペレーション又はABORTオペレーション
で終了する。COMMITオペレーション及びABOR
Tオペレーションは、従来技術で知られているアトミシ
ティをもたらすキーである。また、トランザクション状
態は、回復ログに記憶され、及び最後のトランザクショ
ンCOMMIT記録の全LSNによる全ての回復ログの
記録をディスクに対して強制することによって、トラン
ザクションのCOMMIT状態及びトランザクションの
回復ログ記録の全てが、安定記憶装置に安全に記録され
まで、いずれのトランザクションも完全であるとみなさ
れることはない。このことにより、完全に記録すること
は成功したが、システム故障前に更新ページが安定記憶
装置に物理的に書込みされなかったトランザクションを
回復させるための回復プロシージャを再開始させる。こ
のことは、該トランザクションの全てのREDO記録が
安定記憶装置に書込まれるまでは、トランザクションが
そのCOMMIT処理を完了できないことを意味する。
【0012】大量のデータを有するシステムでは、アー
カイブ媒体へのイメージ・ダンプは、時々行われるだけ
である。イメージ・ダンプの順方向に回復させるために
加えられる回復ログ記録の数は、時間経過と共に大きく
なり、最終的には非常に大容量となる。回復ログ・アー
カイブ自身が、オフライン・ログ・アーカイブ記憶装置
の扱いが困難になるほど、大容量に達する。ログ・アー
カイブの大きさ及びその結果としての媒体回復時間は、
ログ記録処理の間、ログ記録からの無関係のデータを圧
縮(フィルタリング)することによって減らすことがで
きる。従来技術で知られているように、特に、UNDO
データは、回復ログのオンライン安定記憶装置の部分が
回復のために利用可能であるとの信頼をもって想定され
る場合、回復ログ・アーカイブから放棄される。
【0013】システムが、オフライン記憶装置から完全
に復元されなければならない破滅的媒体故障のケースで
は、このオンライン回復の想定は認められない。明らか
なことは、全てのUNDO記録がログ・アーカイブに存
在しても、データベースは、最後に書込まれたログ・ア
ーカイブ記録に復元できるだけである。しかしながら、
データベース・システムをクラッシュさせる不整合及び
破壊の可能性ある状態に回復させるよりも、最近のトラ
ンザクションを消失させて、トランザクション整合状態
に回復させるほうが良い。この技術の基本的問題は、U
NDO記録がログ記録中に放棄される場合、一般に、デ
ータ対象をアーカイブだけからトランザクション整合状
態に回復させることは不可能である。これは、通常の破
滅データ対象イメージ・ダンプが、トランザクション整
合状態で記録されないからであり、イメージ・ダンプの
時点でアクティブであったトランザクションに対して、
UNDOオペレーションを実行しないで整合状態にする
ことはできない。
【0014】このようにアーカイブ・イメージ・ダンプ
の回復は、フォワード・リカバリと称される。フォワー
ド・リカバリは、同じではないが、クラッシュ回復に類
似し、クラッシュの時点で存在するデータ資源に回復ロ
グを加えることによるシステムのクラッシュ後、データ
資源をトランザクション整合状態に回復させるプロセス
である。"クラッシュされた資源"は、クラッシュの時点
で一般に破滅状態であり、オンライン回復ログ記録を用
いて不完全なトランザクションを除去しなければならな
い。フォワード・リカバリとクラッシュ回復との相違
は、クラッシュ回復中に処理しなければならない回復ロ
グの量は、通常の順方向処理において頻繁にチェックポ
イントを作成することによって最小にでき、ここにおい
て、アーカイブからフォワード・リカバリ中に処理しな
ければならない回復ログの量が、非常に多量であるの
で、前述のログ・フィルタリングを必要とさせる。
【0015】ダメージを受けた回復ログからのトランザ
クション整合のフォワード・リカバリは、イメージ・ダ
ンプの時間に対応する記録で開始する回復ログ記録をイ
メージ・ダンプ資源コピーに加え、及び最も早くダメー
ジを受けたログ部分の近辺ではない幾つかの記録を前に
順方向に処理することによって達成される。回復ログ・
アーカイブが、全てのUNDO記録にフィルタをかける
場合、不完全なトランザクションを探ることができず、
アーカイブ記録だけからのトランザクション整合の回復
を妨げる。
【0016】このようなことから、大規模な関連データ
対象回復技術は、フィルタをかけない回復ログを使用す
る。このような従来技術は、フォワード・リカバリ・ア
ーカイブ・フィルタリング問題の解決には効果はない。
これらに関しては、Jennerに付与された米国特許第46
48031号、Gawlick、et al.に付与された同450
7751号、Elliott、et al.に付与された同4945
474号を参照されたい。これらは、回復ログの圧縮及
び破滅データ対象への効率的な適用業務に対して様々な
技術を開示するが、フィルタを掛けたログ・アーカイブ
からのフォワード・リカバリの問題解決を導かない。
【0017】Kapulka、et al.に付与された米国特許第
4878167号は、フォワード・リカバリを得るため
のフィルタをかけた"資源回復"ログを構築する方法を開
示する。Kapulka、et al.の方法は、健全なログからフ
ォワード・リカバリをサポートするフィルタをかけたロ
グの構築方法であるが、しかし、これらのフィルタをか
けた資源回復ログは、ダメージを受けたログからの、い
ずれのポイントにおいてトランザクション整合回復をも
たらすための十分な情報を含まない。
【0018】従って、これらの従来技術の問題の解決
は、データ資源イメージ・ダンプからトランザクション
整合回復と、データベース・システム全体の全てのUN
DOログ記録の記録なしで、回復ログ・アーカイブだけ
を保証する効果的な回復ログ・アーカイブ・プロトコル
を必要とする。この未解決の問題は、従来技術で明らか
であり、下記に述べる方法で本発明によって解決され
る。
【0019】
【課題を解決するための手段】本発明は、ほとんどのU
NDOデータにフィルタをかけてログ記録処理中に放棄
する一方で、回復ログ・アーカイブのワン・パスだけで
破滅的な安定記憶装置故障からトランザクション整合な
回復を実行するための方法である。破局故障の定義は、
完了したトランザクションの任意の数が、整合に資源回
復後、消失したままであることを意味する。しかしなが
ら、本発明の方法は、回復ログ・アーカイブ記憶ボリュ
ームとアトミック・リカバリの完全さとの間の思いがけ
ない柔軟な妥協をもたらす。
【0020】本発明は、破滅的な安定媒体故障からのフ
ィルタリング及び回復に対して3つの代替実施例を有す
る。これらは、(a)ワン・パス回復方法、(b)1+
イプシロン・パス回復方法、及び(c)エクステント指
向の1+イプシロン・パス回復方法である。
【0021】最初の2つの方法は、本発明の基礎を形成
する"疑似クラッシュ"回復の概念に基づく。疑似クラッ
シュ(P/C :pseudo-crash)は、疑似クラッシュ・ポイ
ントとして称される、時間の特定のポイントで生ずるシ
ミュレートされたシステム・クラッシュとして定義され
る。疑似クラッシュ・ポイントにおいて、既存のクラッ
シュ回復システムによって書込まれるトランザクション
記録は、特別な疑似クラッシュ識別と共に回復ログに書
込まれる。PSEUDO−RECOVERYタイプの記
録がバックグラウンドに書込まれるときは、通常のシス
テム・オペレーション及び回復ログ作成が続く。破局故
障の後、データ資源回復が、最後の疑似クラッシュ(M
OSTRECENT−PSEUDO−CRASHタイム
スタンプを含むログ・アーカイブ記述子(LAD :Log Ar
chive Descriptor)による)のポイントまで、通常の方
法で、回復ログ・アーカイブから実行され、そして整合
資源を回復させるためにPSEUDO−RECOVER
Y記録が加えられる。PSEUDO−RECOVERY
記録を加えた後、データ資源は、トランザクション整合
状態になる。
【0022】本発明の第3の方法は、ログ・アーカイブ
の調整可能なエクステントの範囲内で完全な回復性を確
実にするログ・エクステント概念を用いる。エクステン
ト指向の1+イプシロン・パス回復方法は、記録タイプ
とトランザクション識別子との組合せを基にした記録に
おいてログ記録が選択できるシステムに適用できる。3
つの方法の全ては、また、オフライン・ログ・アーカイ
ブの状態を表す小さいログ・アーカイブ記述子(LA
D)ブロックのアーカイブ記憶装置を必要とする。
【0023】本発明の目的は、トランザクション整合の
フォワード・リカバリに必要な全ての記録を保持する一
方で、アーカイブから実質的に必要のない記録にフィル
タをかけることによって回復ログ・アーカイブのボリュ
ームを減らすことにある。PSEUDO−RECOVE
RY記録の繰返し作成に係わるシステム・オーバヘッド
が小さくても、全ての回復ログ記録が回復アーカイブで
保持される場合、再格納可能なトランザクションの数
が、利用可能な数に近づくのに十分であることは、本発
明の利点である。すなわち、破滅的トランザクションの
消失は、フィルタをかけないログ・アーカイブで予期さ
れるよりも、疑似クラッシュ・プロシージャの方がよ
い。本発明の他の利点は、本発明の方法を使用する回復
システムが、疑似クラッシュ・オーバヘッド必要条件を
回復完全必要条件と釣り合わせることができることにあ
る。
【0024】本発明の方法は、前述のARIES回復ア
ルゴリズムと一致するが、UNDO−REDOプロシー
ジャを用いる他のWAL回復技術にも応用できる。これ
らの方法は、回復ログ記録に任意のタイプを割当てるシ
ステムに次のように応用できる。ログ記録をログ・アー
カイブにコピーする場合、記録のタイプに基づくログ記
録をコピーあるいは放棄するように回復ログ・システム
に命令でき、及び、回復ログ・アーカイブのスキャン中
にログ記録のタイプを回復できる。
【0025】本発明の特徴及び利点は、下記の明細書、
請求項及び図面で明白になる。
【0026】
【実施例】本発明で述べるトランザクション回復方法
は、著者Mohan、et.al.の"書込み先行記録使用の細密
ロッキング及び部分ロールバック支援のトランザクショ
ン回復方法"(ARIES:"A Transaction Recovery Method
Supporting Fine-Granularity Locking and Partial Roll-backs Us
ing Write-Ahead Logging")に記載されているので参照されたい。図1
は、従来技術で知られているフォワード・リカバリのプ
ロセスを例示する。例えばARIESのような適切な資
源回復プロシージャを用いるフォワード・リカバリ・プ
ロセッサ10が、資源イメージ・ダンプ・アーカイブ1
2を受けて示されている。回復ログ・アーカイブ14
は、例えば、データベースを有することができる回復ト
ランザクション整合資源16を最終的に作るために、直
列の方法でプロセッサ10によってイメージ・ダンプ・
アーカイブ12に加えられるREDO及びUNDOタイ
プを含む、一連の回復記録を提供する。資源16は、破
局故障の後に続く連続システム・オペレーションのため
に利用可能にされ、資源16がトランザクション整合状
態にあるので、次のシステム・オペレーションは、最後
の回復ログ記録ステップに続いて生じたトランザクショ
ンの消失を除き、制約されない。従来技術では、ログ・
アーカイブ14は、全てがログ記録のフィルタをかけな
いコピーを含まなければならない。
【0027】図2は、本発明で採用しているトランザク
ション指向のシステムの典型的な実施例を示す。回復プ
ロセッサ20、アーカイブ記憶装置22及び、24は、
プロセッサ10と直接に相似性であり、アーカイブ12
及び14は、図1関連で説明されている。中央演算処理
装置(CPU)26は、トランザクション指向システム
全体を制御するために働く。主メモリ28は、二方向の
交信バスでCPU26に接続され、直接アクセス記憶装
置(DASD)30は、双方向データバスを通してメモ
リ28に接続されている。DASD30は、オンライン
・データ対象物全体及びオンライン回復ログを格納する
のに必要な大容量の安定記憶装置を備える。
【0028】アーカイブ・プロセッサ32は、双方向の
データバスを通してDASD30に接続している。アー
カイブ・プロセッサ32は、DASD30からデータ対
象イメージ及び回復ログ記録を受け、ログ・フィルタ3
4を経てアーカイブ記憶装置24に進むログ記録を分割
する。アーカイブ・プロセッサ32は、DASD30か
らデータ対象イメージを受け、資源イメージ・ダンプに
おける従来技術で知られているいずれか適切な方法で、
アーカイブ記憶装置22にデータ対象イメージを直接書
込みする。ログ・フィルタ34は、残っている回復ログ
記録をアーカイブ記憶装置24に書込みする前に、回復
ログから不必要なログ記録を除去する役割を行う。
【0029】回復ログ・ジェネレータ36は、双方向デ
ータバスを通してCPU26に接続され、メモリ28及
びDASD30に格納されたデータ資源に関するアクシ
ョンに応答してログ記録を作成する。回復ログ・ジェネ
レータ36は、メモリ28又はCPU26の故障から、
トランザクション整合回復を確実にするために必要なク
ラッシュ回復プロシージャの全てを有する。回復ログ・
ジェネレータ36のオペレーションは、ログ・エクステ
ント・コントローラ38又は疑似クラッシュ・コントロ
ーラ40によって修正される。コントローラ38及び4
0が、例示目的のために図2に示され、スイッチ42を
通してジェネレータ36に接続されている。好ましい実
施例では、コントローラ38又はコントローラ40は、
回復ログ・ジェネレータ36だけの範囲内で単独で実行
される。
【0030】DASD30の破局故障の場合、回復プロ
セッサ20は、アーカイブ記憶装置22から資源イメー
ジ・ダンプ・コピーを、及びアーカイブ記憶装置24か
ら回復ログ・アーカイブ・コピーを受ける役割を行い、
ここにおいて新しいトランザクション整合データ資源が
作り出され、そして図1に関して説明された方法でDA
SD30へ転送される。回復プロセッサ20とログ・フ
ィルタ34及びコントローラ38乃至40は、本発明の
重要な要素として、図2で例示されるトランザクション
指向システムに加えられる。
【0031】フィルタをかけられたログ・アーカイブか
らのフォワード・リカバリの3つの代替方法は、本発明
の一部としてここで説明される。3つの方法それぞれ
は、3つの独立したプロシージャで構成する。これらの
3つのプロシージャは、(a)フォワード処理ロギング
・プロシージャ、(b)ログ・アーカイブ・フィルタリ
ング・プロシージャ、及び(c)カタストロフィック・
フォワード・リカバリ・プロシージャである。これらの
3つのプロシージャのパスカル・タイプの疑似コードの
実施例が、以下のリストによる本発明の3つの方法に対
して表1乃至8で例示されている。
【0032】 表 方法 プロシージャ 1 ワン・パス フォワード・ロギング 2 ワン・パス ログ・アーカイブ・フィルタリング 3 ワン・パス フォワード・リカバリ 4 1+イプシロン フォワード・ロギング 2 1+イプシロン ログ・アーカイブ・フィルタリング 5 1+イプシロン フォワード・リカバリ 6 エクステント指向 フォワード・ロギング 7 エクステント指向 ログ・アーカイブ・フィルタリング 8 エクステント指向 フォワード・リカバリ
【0033】ワン・パス回復方法は、アーカイブ上を1
順方向に通過させるだけで、ログ・アーカイブで利用可
能な最後の疑似クラッシュ(P/C)ポイントまで回復
させる。表1及び図3を参照するに、データ管理方法
は、P/Cポイントを得て開始する。これは、一意の疑
似クラッシュ・タイムスタンプ44(図4)を含むST
ART−PSEUDO−CRASHタイプのログ記録を
書込むことによって実行される。疑似放棄は、次に、図
4の記録46によって例証されるように、ログに一連の
PSEUDO−RECOVERY・タイプ記録を書込む
ことによって各アクティブ・トランザクションに対して
実行される。特別なタイプのコード(例えば、PSEU
DO−RECOVERYタイプ)は、これらをリアル回
復記録から区別する。PSEUDO−RECOVERY
記録46は、システムがP/Cポイントでクラッシュし
た場合、クラッシュ回復プロセッサ20によって書込ま
れるものと同じである。PSEUDO−RECOVER
Y記録46は、トランザクション放棄中に書込まれるA
RIES補償記録に対応する。全てのPSEUDO−R
ECOVERY記録46が書込まれると、P/Cポイン
ト・タイムスタンプを含むEND−PSEUDO−RE
COVERY記録48(図4)が、ログに書込まれる。
【0034】 表1 ForwardProcessing() BEGIN /*単一のタイムスタンプを生成する。*/ timeStamp = GenerateUniqueTimeStamp (); /*START-PSEUDO-CRASH記録を書込む。*/ LogWrite ("START-PSEUDO-CRASH"、 timeStamp); /*各アクティブ・トランザクションのために疑似放棄を実行する。*/ FOR EACH ACTIVE TRANSACTION DO /*トランザクションの疑似放棄を実行する。 *通常は、このルーチンが、ログに"RECOVERY"記録を書込むことによってト *ランザクションを放棄し、そして揮発性のデータ構造に対するトランザク *ションの影響を元どおりにする。しかし、"DoPseudoAbort" フラグで呼出 *されると、ルーチンは、 "PSEUDO-RECOVERY"記録をログに書込み、揮発性 *のデータ構造を変更しない。 */ AbortTransaction (transaction、 DoPseudoAbort); END /*END-PSEUDO-RECOVERY記録を書込む。*/ LogWrite ("END-PSEUDO-RECOVERY"、 timeStamp); END
【0035】図3を参照するに、回復ログがP/Cポイ
ントからP/Cポイントに実線50に沿って最後のログ
・アーカイブ・ダンプ(LAD)52まで進むことに注
意されたい。以後、ログは、安定記憶装置(52におけ
る点線)で累算を続けるが、しかし、ログ・アーカイブ
には存在しない。P/Cポイント44によって例証され
た疑似クラッシュは、回復ログ・ライン50に沿っての
期間で生じる。各P/Cにおいて、PSEUDO−RE
COVERYタイプの記録のシリーズ58が、図3の短
いライン(P/Cログ)の区分で示されるように、EN
D−PSEUDO−RECOVERYタイプの記録60
の後に書込まれる。これらの最後の区分は、LADのラ
ベルをつけられ、最後のP/Cポイント44がログ・ア
ーカイブに書込まれたことを表すログ・アーカイブ記述
子を示す。図3で注意する重要な機能は、疑似クラッシ
ュ回復ログ生成と同時に進む回復ログの作成である。実
際問題として、2つのセット(50及び58)のログ記
録は、単一の回復ログに一緒に併合される。記録シリー
ズ50及び58は、例示目的だけのために図3で別個の
ライン上に示される。
【0036】ワン・パス回復方法の第2のプロシージャ
は、表2で疑似コードとして例示されたログ・アーカイ
ブ・フィルタリング・プロシージャである。記録をDA
SD30(図2参照)のオンライン・ログからアーカイ
ブ記憶装置24のログ・アーカイブにコピーする場合、
全てのUNDO記録が放棄され、そしてPSEUDO−
RECOVERYタイプを含む全ての他の記録タイプ
が、ログ・アーカイブにコピーされる。最後にコピーさ
れたEND−PSEUDO−RECOVERYタイプ記
録60(記録44のP/Cタイムスタンプに等しい)の
タイムスタンプは、アーカイブ・テープが完了すると、
ログ・アーカイブLADに格納される。図3において、
ログ・アーカイブ・ダンプ・ポイント52は、最後のデ
ータ資源イメージ・ダンプ・ポイント54との関係を示
し、ログ・アーカイブ・ダンプ・ポイントが、イメージ
・データ・ダンプ・ポイントの後で起こらなければなら
ないことを例示している。
【0037】 表2 Archiving() BEGIN /*オフライン・アーカイブにコピーされるように各記録を処理する。*/ FOR EACH RECORD DO SELECT (logrecord.type) WHEN ("RECOVERY") DO /*UNDOトランザクションに使用される記録は、媒体回復に必要でない。 *これらは、アーカイブにコピーされない。 */ DiscardRecord (logrecord); END WHEN ("END-PSEUDO-RECOVERY") DO /*最高位の疑似クラッシュ・タイムスタンプを呼出す。記録は、アーカ *イブにコピーされ、アーカイブに以前に書込まれた全ての記録と共に *不揮発性記憶装置に強制格納される。 */ timeStamp = logrecord.timestamp; LogWriteArchive (logrecord); LogForceArchive (); SavePseudoCrashTimeStamp (timeStamp); END OTHERWISE DO /*全ての他の記録は、単にアーカイブにコピーされる。END-PSEUDO- *RECOVERY記録がコピーされる場合、記録は、不揮発性記憶装置に強制 *格納される。 */ LogWriteArchive (logrecord); END END SELECT END END
【0038】ワン・パス回復方法の第3のプロシージャ
は、表3のパスカル・タイプの疑似コードとして例示さ
れたフォワード媒体回復プロシージャである。最初に、
イメージ・ダンプ・データが、アーカイブ記憶装置22
(図2参照)から復元される。次に、最後のP/Cタイ
ムスタンプが、アーカイブLADから得られる。それか
ら、ログ・アーカイブがスキャンされ、ログ記録がデー
タ資源に加えられる。フォワード・リカバリのスキャン
は、ライン56として図3で例示されている。スキャン
は、イメージ・ダンプ・ポイント54で始まり、最後の
P/Cラベル付けされたLADまで前に進むことに注意
する。最後のではない疑似クラッシュに対しての、全て
のPSEUDO−RECOVERYタイプの記録は、こ
のスキャン中に無視される。最後の疑似クラッシュ記録
44に遭遇した場合、PSEUDO−RECOVERY
記録58が、データ資源に加えられ、リアル補償ログ記
録が書込まれる。最後の疑似クラッシュ・タイムスタン
プ44に続くライン50の全ての他の回復ログ記録は無
視されるが、これは図3のフォワード・パス56の終了
ポイントを知ることによって理解できよう。回復は、ラ
イン58の最後のEND−PSEUDO−RECOVE
RY記録60を読出して完了する。
【0039】 表3 /* *このルーチンへの入力は、アーカイブへの書込みが成功した最後のEND-PSEUDO *-RECOVERY記録のタイムスタンプである。 */ CatastrophicMediaRecovery (MostRecentPseudoCrashTimeStamp) BEGIN /*PSEUDO-RECOVERY 記録を加えるべきかを求めるために使用される局所変数を *初期化する。最後に成功した疑似クラッシュからのPSEUDO-RECOVERY 記録だ *けが加えられる。 */ ApplyPseudoCrashRecords = FALSE; /*アーカイブの各記録を読出し、処理する。1つのパスがアーカイブに対して *行われ、古い記録で開始し、そして最後に書込まれた記録の方向へ読出す。 */ FOR EACH RECORD IN THE ARCHIVE DO SELECT (logrecord.type) WHEN ("START-PSEUDO-CRASH") DO /*この記録のタイムスタンプが、 入力のタイムスタンプと一致するかど *うかチェックする。 一致する場合、これは、最後の疑似クラッシュで *あり、そしてそのPSEUDO-RECOVERY記録を加えるべきである。 */ IF (logrecord.timestamp = MostRecentPseudoCrashTimeStamp) THEN ApplyPseudoCrashRecords = TRUE; END WHEN ("END-PSEUDO-RECOVERY") DO /*PSEUDO-RECOVERY記録が現在加えられている場合、この記録は、媒体回 *復が完全であることを示す。 START-PSEUDO-CRASHでアクティブであっ *た全てのトランザクションが放棄され、その影響が元に戻る。START- *PSEUDO-CRASH の後で始まったトランザクションは無視され、その変化 *は加えられない。データは、 START-PSEUDO-CRASHのポイントでトラン *ザクション整合状態に復元される。 データがトランザクション整合状 *態に復元されたことを示すために呼出し側に成功を通知する。 */ IF (ApplyPseudoCrashRecords = TRUE) THEN RETURN (SUCCESS); END WHEN ("PSEUDO-RECOVERY") DO /*最後の疑似クラッシュが処理中であるならば、 記録を加えるべきであ *る。さもなければ、記録は無視される。 */ IF (ApplyPseudoCrashRecords = TRUE) THEN ApplyRecord (logrecord); END OTHERWISE DO /*最後の疑似クラッシュが処理中でない場合のみ、 全ての他の記録が *加えられる。さもなければ、全ての他の記録は無視される。 */ if (ApplyPseudoCrashRecords = FALSE) THEN ApplyRecord (logrecord); END END SELECT END /*指定したタイムスタンプのEND-PSEUDO-RECOVERY 記録が、アーカイブで発見 *できない場合、データがトランザクション整合状態に復元されなかったこと *を示すために呼出し側にエラーを通知する。 */ RETURN (FAILURE); END
【0040】このように、イメージ・ダンプ・ポイント
54から最後のEND−PSEUDO−RECOVER
Y記録60へのログ・アーカイブでの単一の順方向パス
において、データ資源イメージ・ダンプ・アーカイブ
は、ログ・アーカイブ記述子に格納された最後のP/C
ポイント44に先行する全てのトランザクションにおい
てトランザクション整合状態に回復された。図3の例に
おいて、LADタイムスタンプ44からディスク・クラ
ッシュ・ポイント62までの全てのトランザクションが
消失することに注目する。しかしながら、このトランザ
クション消失期間は、同時に行われるフィルタをかけな
い回復ログ・アーカイブを使用してのフォワード・リカ
バリで被る消失期間よりはよい。この例では、ログ・フ
ィルタ・アーカイブは、UNDOタイプ記録を含まず、
わずかな追加の疑似クラッシュログ記録を含むだけであ
る。
【0041】ワン・パス回復方法は、余分なSTART
−PSEUDO−CRASH、PSEUDO−RECO
VERY及びEND−PSEUDO−RECOVERY
のログ記録の書込みを犠牲にして、単一のログ・アーカ
イブのパスで回復させる。PSEUDO−RECOVE
RYタイプの記録のいくつか、又は全てが、1+イプシ
ロン・パス回復方法である本発明の第2の方法を用いて
ログ・アーカイブから削除される。この2番目の方法
は、幾らかのトランザクションを復元させるために、ロ
グ・アーカイブの小さい部分(イプシロン)の部分有界
逆パスの必要性を犠牲にして、PSEUDO−RECO
VERYタイプの記録を減少あるいは削除する。この第
2の方法も又、3つのプロシージャを有する。
【0042】第1のフォワード処理プロシージャは、パ
スカル・タイプの疑似コードの表4で例示されている。
第2のログ・アーカイブ・プロシージャは、表2の第1
の方法で例示されたのと実質的に同一である。最後に、
フォワード・リカバリ・プロシージャが、表5で例示さ
れている。
【0043】表4及び図5を参照するに、1+イプシロ
ン・パス回復方法は、UNDOデータを含む回復ログ記
録が、通常のUNDO記録タイプと区分するために特別
のタイプ・コード(例えば、PRE−PSEUDO−C
RASH−INTERVAL−UNDOタイプ)で書込
まれる際に、最初に疑似クラッシュ・インタバルを開始
させることによって疑似クラッシュの前処理を含むこと
が理解できよう。疑似クラッシュ・インタバル64(図
5参照)は、完了させるために疑似クラッシュ・インタ
バルの開始において、全ての又は大部分のトランザクシ
ョン・アクションを実行させるために期間の延長を行
う。疑似クラッシュ・インタバル期間の長さは、調整パ
ラメータであり、特定のシステムにおいては、全てのト
ランザクションの予期された実行時の2シグマ範囲であ
る。
【0044】 表4 ForwardProcessing () BEGIN /*疑似クラッシュ・インタバルの開始前に書込まれた最後の記録の LSNをセー *ブする。 */ PreIntervalHighLSN = LogCurrentHighestLsn (); /*疑似クラッシュ・インタバル・タイマーを開始する。タイマー期間は、調整 *パラメータである。タイマー期間が長いほど、疑似放棄されるべきトランザ *クションが、より少なくなる。 */ StartTimer (PseudoCrashIntervalTimePeriod); /*疑似クラッシュ・インタバルが開始したことを示すグローバル・フラグがセ *ットされる。全ての"UNDO"記録は、ここで代わりに、"PRE-PSEUDO-CRASH- *INTERVAL-UNDO"記録として書込まれる。 */ PseudoCrashIntervalActive = TRUE; /*疑似クラッシュ・インタバルは、タイマーが終了すると終わる。*/ WHEN (TimerExpires ()) DO /*疑似クラッシュ記録のために単一のタイムスタンプを生成する。*/ timeStamp = GenerateUniqueTimeStamp (); /*開始疑似クラッシュ記録を書込む。*/ LogWrite ("START-PSEUDO-CRASH"、timeStamp); /*疑似クラッシュ・インタバルを終える。*/ PseudoCrashIntervalActive = FALSE; /*疑似クラッシュ・インタバルの前に始まった全てのアクティブ・トランザ *クションの疑似放棄を実行する。 */ FOR EACH ACTIVE TRANSACTION DO /*疑似クラッシュ・インタバルの前にトランザクションが開始したかをチ *ェックする。もしそうならば、前述のワン・パス回復アルゴリズムでの *トランザクションで疑似放棄を実行する。 */ IF (transaction.lowLSN <= PreIntervalHighLSN) THEN Abort Transaction (transaction、DoPseudoAbort); END /*END-PSEUDO-RECOVERY記録を書込む。*/ LogWrite ("END-PSEUDO-RECOVERY"、timeStamp); END END
【0045】疑似クラッシュ・インタバル64の終了で
P/Cが得られ、START−PSEUDO−CRAS
Hタイプの記録が、前述の第1の方法で書込まれる。次
に、PSEUDO−RECOVERY記録が、疑似クラ
ッシュ・インタバルより前で開始し、まだ完了していな
いアクティブ・トランザクションに書き込まれる。これ
らの、より長いアクティブ・トランザクションは、前述
のワン・パス回復方法のPSEUDO−RECOVER
Y記録を必要とするアクティブ・トランザクションよ
り、実質的により少ないので、PSEUDO−RECO
VERYタイプのログ記録の全体の数は、この第2の方
法で大幅に減らされる。最後に、END−PSEUDO
−RECOVERY記録60(図3乃至図5)は前述の
ように回復ログに書込まれる。
【0046】この1+イプシロン・パス回復方法の第2
のプロシージャは、ログ・アーカイブ・フィルタリング
・プロシージャである。ログ記録中に、疑似クラッシュ
・インタバルの外部に生成された全てのUNDO記録が
放棄され、PRE−PSEUDO−CRASH−INT
ERVAL−UNDO及びPSEUDO−RECOVE
RYタイプを有する全ての他の記録タイプが、ログ・ア
ーカイブにコピーされる。最後にアーカイブしたP/C
のタイムスタンプが、ワン・パス回復方法に関連して述
べたようにLADに記録される。このプロシージャは、
ワン・パス回復方法のために表2で示されたプロシージ
ャと同一である。
【0047】図5を参照するに、ライン64に沿ったP
RE−PSEUDO−CRASH−INTERVAL−
UNDO記録が、P/Cポイント66とEND−PSE
UDO−RECOVERY記録60との間のPSEUD
O−RECOVERY記録と共にログ・アーカイブに含
まれることに注目する。図5において、PRE−PSE
UDO−CRASH−INTERVAL−UNDO記録
と他のログ記録は、2つの独立した記録シリーズとして
例示されているが、実際問題として単一の回復ログに統
合され、そして記録タイプ指示子の参照によってだけ分
離可能である。
【0048】1+イプシロン・パス回復方法の第3のプ
ロシージャは、表5のパスカル・タイプの疑似コードで
例示されたフォワード回復プロシージャである。前述の
ように、フォワード媒体回復は、イメージ・ダンプ・ポ
イント68から最後のP/Cポイント66(図5参照)
までのフォワード・パス70の期間にて通常のログ・ア
ーカイブ記録を使用して実行される。最後のSTART
−PSEUDO−CRASH記録の読出し後、フォワー
ド・パスが、図5のパス58として続くが、しかし、E
ND−PSEUDO−RECOVERY記録60と遭遇
するまでPSEUDO−RECOVERY記録だけを加
える。最後のEND−PSEUDO−RECOVERY
記録60の読出し後、最終のP/Cポイント66の時点
でのトランザクション・アクティブは、通常の逆の回復
パス72を、P/Cポイント66でアクティブであった
が、フォワード・パス70及びパス58では元に戻らな
いトランザクションの影響を元どおりにするために、P
RE−PSEUDO−CRASH−INTERVAL−
UNDO記録に加える。パス58は、実行が疑似クラッ
シュ・インタバル54全体に及んだいずれの長いトラン
ザクションの復元を完了した。
【0049】 表5 /*このルーチンへの入力は、アーカイブに書込み成功した最後のEND-PSEUDO- *RECOVERY記録のタイムスタンプである。 */ CatastrophicMediaRecovery (MostRecentPseudoCrashTimeStamp) BEGIN /*否アクティブ・トランザクションを示すためにトランザクション表を初期化 *する。 InitializeTransactionTable (); /*PSEUDO-RECOVERY 記録を加えるべきかどうかを求めるために使用される局所 *変数を初期化する。最後に成功した疑似クラッシュからのPSEUDO-RECOVERY *記録だけが加えられる。 */ ApplyPseudoCrashRecord = FALSE; /*アーカイブの各記録を読出し、処理する。これは、ワン・パスがアーカイブ *に対して行われ、古い記録で開始し、そして最後に書込まれた記録の方向へ *読出す。 */ FOR EACH RECORD IN THE ARCHIVE DO SELECT (logrecord.type) WHEN ("START-PSEUDO-CRASH") DO /*この記録のタイムスタンプが入力のタイムスタンプに一致するかどう *かチェックする。もしそうならば、これは、最後の疑似クラッシュで *あり、そのPSEUDO-RECOVERY記録は、加えられるべきである。 */ IF (logrecord.timestamp = MostRecentPseudoCrashTimeStamp) THEN ApplyPseudoCrashRecords = TRUE; END WHEN ("END-PSEUDO-CRASH") DO /*これが最後のEND-PSEUDO-CRASH記録であるならば、フォワード・パス *は完了する。アーカイブ記録のUNDOパスを開始するためにループから *抜き出る。 */ IF (logrecord.timestamp = MostRecentPseudoCrashTimeStamp) THEN GOTO END_RECORD_FOUND; END WHEN ("END-TRANSACTION") DO /*このトランザクションは、終了した。この終了したトランザクション *をトランザクション表から削除する。 */ RemoveTransactionFromTable (logrecord.transaction); END OTHERWISE DO /*記録をデータに加えるかどうかを求める。記録が PSEUDO-RECOVERYで *あり且つ PSEUDO-RECOVERY記録が加えられているのであれば、記録を *加える。また、同様に、記録がPSEUDO-RECOVERYでなく且つ、PSEUDO *-RECOVERY 記録に加えていないならば、同じように記録を加える。さ *もなければ、記録は無視される。 */ IF ( ((ApplyPseudoCrashRecords = TRUE) AND (logrecord.type = "PSEUDO-RECOVERY")) OR ((ApplyPseudoCrashRecord ≠ TRUE) AND (logrecord.type ≠ "PSEUDO-RECOVERY")) ) THEN DO /*この記録のトランザクションが、トランザクション表に記録され *ているかどうかをチェックする。否定ならば、そのトランザクシ *ョンを表に加える。 */ IF (LocateTransactionInTable (logrecord.transaction) = NOT_FOUND) THEN InsertTransactionIntoTable (logrecord.transaction); /*各トランザクションの最後の記録のLSNをセーブする。*/ SaveHighLsnInTable (logrecord.transaction, logrecord.1sn); /*記録を加える。*/ ApplyRecord (logrecord); END END END SELECT END /*指定したタイムスタンプの END-PSEUDO-RECOVERY記録がアーカイブにない場 *合、データがトランザクション整合状態に復元されなかったことを示すため *に呼出し側にエラーを通知する。 */ RETURN (FAILURE); END_RECORD_FOUND: /*END-PSEUDO-RECOVERY 記録が、アーカイブで見つけられた。データをトラン *ザクション整合状態に復元するために、START-PSEUDO-CRASH記録が書込まれ *た時にアクティブであった全てのトランザクションを放棄しなければならな *い。これらのトランザクションは、上記のアーカイブのフォワード・パスの *結果、トランザクション表に記録される。そのトランザクションを放棄する *ために、放棄されたトランザクションの全ての記録が読出され、その影響が *戻されるまで、アーカイブを後方へパスする必要がある。 */ WHILE TRANSACTION TABLE IS NOT EMPTY DO /*トランザクション表に格納された最高位のLSNでの記録を読出す。 */ highestLSN = MaxHighLsnInTransactionTable (); LogReadRecord (highestLsn、 &logrecord); /*この記録の影響を元どおりにする。*/ UndoRecord (logrecord); /*記録のトランザクションのために最高位の LSNを更新する。これがトラン *ザクションの第1の記録であるならば、トランザクションは、トランザク *ション表から削除される。 */ IF (logrecord.backpointer LSN = NULL_LSN) THEN RemoveTransactionFromTable (logrecord.transaction); ELSE SaveHighLsnInTable (logrecord.transaction、 logrecord.backpointerLSN); END /*START-PSEUDO-CRASHが、放棄され、その影響が取り消された時点で、全ての *トランザクションがアクティブである。START-PSEUDO-CRASH記録の後に開始 *するトランザクションからは、記録は加えられない。クライアントのデータ *は、START-PSEUDO-CRASH記録の時点でトランザクション整合状態に復元され *ている。 */ RETURN (SUCCESS); END
【0050】前述のように、データ資源イメージ・ダン
プ68は、最後のP/Cポイント66までのトランザク
ションにおいてトランザクション整合状態に回復させら
れる。P/Cポイント66からディスク・クラッシュ・
ポイント78までの全てのトランザクションは消失す
る。第2の短い逆パス72を要求することによって、ほ
とんどのPSEUDO−RECOVERYタイプの記録
及び全てのUNDO記録が、ログ・アーカイブからフィ
ルタをかけられる。
【0051】上記2つの方法は、通常のフォワード処理
中にPSEUDO−RECOVERYタイプの記録を回
復ログに書込みする疑似クラッシュ・コントローラ40
として図2で例示された特別な回復論理を必要とする。
本発明の第3の方法は、フォワード処理プロシージャ中
に幾らかの追加のブックキーピングを犠牲にして、全て
の特別なPSEUDO−RECOVERYタイプのログ
記録を削除するために、回復ログ記録処理において量子
化を利用するエクステント指向の1+イプシロン・パス
回復方法である。又、この第3の方法は、最初の2つの
疑似クラッシュ方法と比べて、ログ・アーカイブからU
NDO記録をフィルタするために、さらに複雑なフィル
タリング論理(図2でログ・フィルタ34として例示さ
れている)を必要とする。エクステント指向の方法は、
回復ログが量子(ログ・エクステント)で書込まれ、ロ
グ記録プロセスが完全書込みエクステントでオペレート
すると仮定する。トランザクション整合回復は、ログ・
アーカイブのエクステントの終了で得られる。この方法
は、ログ・アーカイブ・エクステントの大きさに制限が
ない。
【0052】エクステント指向の回復方法の第1のフォ
ワード処理プロシージャは、パスカル・タイプの疑似コ
ード実行の形で表6で例示される。図6を参照するに、
データ管理システムは、通常のフォワード処理中に、新
しい回復ログ記録をエクステントに満杯になるまで書込
むことによって新しいエクステントを始める。それぞれ
異なる長さのエクステントは、e1、e2及びe3とし
てライン80に沿って例示されている。エクステントが
満杯の場合、データ管理システムは、エクステントを"
クローズ"するためにEXTENT−ID記録に書込み
し、エクステントの現アクティブ・トランザクションの
リストを連結する。このようなリストは、ライン82と
して図6に例示されている。このアクティブ・トランザ
クション・リストは、エクステントの最後の記録として
のアクティブ・トランザクションのリストとして、又は
アクティブ・トランザクション・リストをEXTENT
−ID記録に書込みすることによってチェックポイント
記録として書込まれる。
【0053】 表6 ForwardProcessing () BEGIN /*各ログ・エクステントが、満杯になる時、現在アクティブであるトランザク *ションと一緒にEXTENT-IDを記録する。 */ WHEN (CurrentExtentIsFull) DO /*現在のエクステントのEXTENT-ID と一緒に現在アクティブであるトランザ *クションのリストをセーブする。 */ SaveListOfActiveTransactions (CurrentExtentId,TransactionTable); END END
【0054】このエクステント指向方法の第2のプロシ
ージャは、疑似コード・ルーチンとして表7で例示され
るログ・アーカイブ・フィルタリング・プロシージャで
ある。ログ記録は、一度に1つのエクステントを進め
る。エクステント記録が始まると、アクティブ・トラン
ザクションのリスト82が、エクステントの端部から得
られる。次に、アクティブ・リスト82のエクステント
・トランザクションの全ての記録が、アーカイブにコピ
ーされるが、しかし、アクティブ・リスト82にないト
ランザクションのUNDO記録は、放棄される。これら
は、ログ・エクステントの長さに基づいて、一般に、U
NDO記録の大部分を占有する。アーカイブ・テープが
外される場合、最後のアーカイブされたエクステントの
EXTENT−ID記録83が、特定のアーカイブ・テ
ープのLADに書込まれる。
【0055】 表7 /*このルーチンへの入力は、アーカイブされるエクステントのEXTENT-ID である *。 */ Archiving (ExtentId) BEGIN /*アーカイブにコピーされる最高位の記録のLSNを初期化する。*/ highestLSN = NULL_LSN; /*最初に、このエクステントが満杯になったときアクティブであったトランザ *クションのリストを得る。 */ ObtainListOfActiveTransactions (ExtentId、 ActiveTransactionList); /*記録をエクステントからアーカイブにコピーを始める。UNDO記録は放棄され *るが、しかし、これは、トランザクションがアクティブ・トランザクション *・リストにない場合だけである。 */ FOR EACH RECORD IN THE EXTENT DO /*記録が、UNDO記録でないか、又は記録がUNDO且つそのトランザクションが *アクティブ・トランザクション・リストに現れるならば、その記録をアー *カイブにコピーする。 */ IF ((logrecord.type !="UNDO") OR (LocateTransactionInList (logrecord.transaction、 ActiveTransactionList) = FOUND)) THEN DO /*アーカイブにコピーされた最後の記録のLSNをセーブする。*/ highLSN = logrecord.LSN; /*その記録をアーカイブにコピーする。*/ LogWriteArchive (logrecord); END ELSE DO /*この記録は、 アクティブ・トランザクション・リストに存在しな *いトランザクションに属するUNDO 記録である。その記録は、媒体 *回復に必要とせず、及びアーカイブにコピーされない。 */ DiscardRecord (logrecord); END END /*エクステントの全ての記録は、読出された。いずれかの記録が、アーカイブ *にコピーされた場合、コピーされた最後の記録のLSNをセーブする。 */ IF (highestLSN != NULL_LSN) THEN SaveHighestArchiveLSN (highestLSN); END
【0056】エクステント指向の方法の第3のプロシー
ジャは、表8で例示されるフォワード回復プロシージャ
である。図6を参照するに、84でとられた永久データ
資源イメージ・ダンプが、最初に復元される。次に、最
後にアーカイブされたEXTENT−ID記録83のタ
イムスタンプが、ログ・アーカイブ記述子から得られ
る。それから、ログ・アーカイブが、イメージ・ダンプ
84の時間から最後のLAD83のタイムスタンプま
で、順方向にスキャンされ、データ資源が、回復ログ記
録に従って従来通りに更新される。通常のロール・フォ
ワード媒体回復処理(例えば、ARIES)が使用され
るが、但し、最後にアーカイブされたエクステントの最
終の記録83が処理された場合のロール・フォワード・
パスの停止を除く。このパスは、ライン86として図6
に例示されている。
【0057】 表8 /*このルーチンへの入力は、アーカイブされる最後のエクステントで最高位の記 *録のLSNである。 */ CatastrophicMediaRecovery (HighArchive LSN) BEGIN /*否アクティブ・トランザクションを示すためにトランザクション表を初期化 *する。 InitializeTransactionTable (); /*アーカイブの各記録を読出し、処理する。これは、1つのパスがアーカイブ *に対して行われ、古い記録で開始し、そして最後に書込まれた記録の方向へ *読出す。 */ FOR EACH RECORD IN THE ARCHIVE DO /*アーカイブされた最後のエクステントの端部に到達したかどうかチェック *する。*/ IF (logrecord.LSN > HighArchive LSN) THEN GOTO END_ARCHIVE_FOUND; /*この記録のトランザクションが、トランザクション表に記録されるかどう *かチェックする。否定ならば、トランザクションを表に加える。 IF (LocateTransactionInTable (logrecord.transaction) = NOT_FOUND) THEN InsertTransactionIntoTable (logrecord.transaction); /*各トランザクションの最後の記録のLSNをセーブする。*/ SaveHighLsnInTable (logrecord.transaction、logrecord.1sn); SELECT (logrecord.type) WHEN ("END_TRANSACTION") DO /*このトランザクションは終了した。トランザクションをトランザクシ *ョン表から削除する。 */ RemoveTransactionFromTable (logrecord.transaction); END OTHERWISE DO /*全ての他の記録を加える。*/ ApplyReccord (logrecord) END END SELECT END /*最高位の記録が、アーカイブで発見できない場合、データがトランザクショ *ン整合状態に復元されなかったことを示すために呼出し側にエラーを通知す *る。 */ RETURN (FAILURE); END_ARCHIVE_FOUND: /*最高位の記録が、アーカイブで見つけられた。データをトランザクション整 *合状態に復元するために、元のログ・エクステントの端部でアクティブであ *った全てのトランザクションを放棄しなければならない。これらのトランザ *クションは、前述のアーカイブのフォワード・パスの結果として、トランザ *クション表に記録される。トランザクションを放棄するために、放棄された *トランザクションの全ての記録が読出され、その影響が戻されるまで、アー *カイブを後方へパスする必要がある。 */ WHILE TRANSACTION TABLE IS NOT EMPTY DO /*トランザクション表に格納された最高位のLSNにおいて記録を読出す。 */ highestLSN = MaxHighLsnInTransactionTable (); LogReadRecord (highestLsn &logrecord); /*この記録の影響を元どおりにする。*/ UndoRecord (logrecord); /*記録のトランザクションの最高位のLSNを更新する。これがトランザクショ *ンの第1の記録であるならば、 トランザクションが、トランザクション表 *から削除される。 IF (logrecord.backpointerLSN = NULL_LSN) THEN RemoveTransactionFromTable (logrecord.transaction); ELSE SaveHighLsnInTable (logrecord.transaction、 logrecord.backpointerLSN); END /*オリジナルのエクステントの端部での全てのトランザクション・アクティブ *が放棄され、その影響が元に戻される。クライアントのデータは、トランザ *クション整合状態に復元された。 */ RETURN (SUCCESS); END
【0058】最後に、最後のエクステントのUNDO記
録が、リスト82のアクティブ・トランザクションの影
響を復元するために使用される。この第2の短い逆パス
(UNDO記録を実行するためのエクステントのe3を
越える)は、図6でライン88として例示されている。
【0059】ここでの検討は、回復ログが、UNDO及
びREDOタイプの記録を有することを前提としてい
る。実際問題として、UNDO及びREDOのデータ
が、単一の回復ログ記録に含まれるのが普通である。こ
のようなケースでは、上述の検討は、回復ログ記録のR
EDO及びUNDO部分に関係することを意図する。
【0060】
【発明の効果】本発明は、大部分のUNDOデータにフ
ィルタをかけてログ記録処理中に放棄する一方で、回復
ログ・アーカイブのワン・パスだけで破滅的な安定記憶
装置故障からトランザクション整合な回復を実行でき
る。
【図面の簡単な説明】
【図1】従来技術で知られている順方向データ資源回復
プロセスを例示する図である。
【図2】本発明のトランザクション指向のシステムの実
施例を示す図である。
【図3】本発明のワン・パス回復方法を例示する図であ
る。
【図4】図3のタイムスタンプを例示する図である。
【図5】本発明の1+イプシロン・パス回復方法を例示
する図である。
【図6】本発明のエクステント指向の1+イプシロン・
パス回復方法を例示する図である。
【図7】本発明のエクステント・クロージャを示す図で
ある。
【符号の説明】
10・・・フォワード・リカバリ・プロセッサ 12・・・資源イメージ・ダンプ・アーカイブ 14・・・回復ログ・アーカイブ 16・・・回復トランザクション整合資源 20・・・回復プロセッサ 22・・・アーカイブ記憶装置 24・・・アーカイブ記憶装置 26・・・中央演算処理装置(CPU) 30・・・直接アクセス記憶装置(DASD) 32・・・アーカイブ・プロセッサ 34・・・ログ・フィルタ 36・・・回復ログ・ジェネレータ 38・・・ログ・エクステント・コントローラ 40・・・疑似クラッシュ・コントローラ 44・・・P/Cポイント
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロジャー・エル・ハスキン アメリカ合衆国95120、カリフォルニア州 サンホセ、ポルト・アレグレ・ドライブ 5972 (72)発明者 ウエイン・アーサー・ソダン アメリカ合衆国15206、ペンシルベニア州 ピッツバーグ、シャディ・アベニュー 513 アパートメント ナンバー11

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】トランザクション・ログ記録を格納するた
    めの安定記憶装置資源及びシステム故障からデータベー
    スを回復させるための第1のプロシージャ手段を有する
    トランザクション・ベースのデータ・システムにおい
    て、上記第1のプロシージャ手段が、REDO及びUN
    DOタイプを有する選択可能な記録タイプとして上記安
    定記憶装置資源に格納された一連の回復ログ記録を単一
    のパスで実行するステップを有し、上記システムが、上
    記安定記憶装置資源の内容のダンプを受信及び格納する
    ためのアーカイブ記憶装置資源を有する、上記安定記憶
    装置資源の故障からトランザクション整合資源回復のた
    めの方法であって、 上記システムによるトランザクションのフォワード処理
    中に、 トランザクション・ログ記録を回復ログに書込みするス
    テップと、 上記回復ログに、予め設定された時間に対応する疑似ク
    ラッシュ・タイムスタンプ値を有するSTART−PS
    EUDO−CRASHタイプ記録を書込みするステップ
    と、 上記回復ログに、上記予め設定された疑似クラッシュ時
    間で発生するシステム故障から回復するために、上記第
    1の回復プロシージャ手段に従って一連のPSEUDO
    −RECOVERYタイプ記録を書込みするステップ
    と、 上記回復ログに、上記疑似クラッシュ・タイムスタンプ
    値を有するEND−PSEUDO−RECOVERYタ
    イプ記録を書込みするステップと、 上記安定記憶装置資源に、上記END−PSEUDO−
    RECOVERYの書込みステップの完了において、上
    記安定記憶装置資源にまだ格納されていない全ての既存
    の回復ログ記録の回復ログ・コピーを書込みするステッ
    プとを連続して実行するステップを有し、 上記安定記憶装置資源から上記アーカイブ記憶装置資源
    への上記回復ログ・コピーのアーカイブ・ダンプ中に、 全ての残っている記録タイプを、フィルタをかけた回復
    ログ・アーカイブ記録として、上記アーカイブ記憶装置
    資源に書込みする一方で、全てのUNDOタイプ記録を
    放棄することによって上記回復ログ・コピー記録にフィ
    ルタをかけるステップと、 上記アーカイブ記憶装置資源に、END−PSEUDO
    −RECOVERY記録の書込みに応じる上記疑似クラ
    ッシュ・タイムスタンプ値を有するMOST−RECE
    NT−PSEUDO−CRASH記録を書込みするステ
    ップとを連続して実行するステップを有し、 上記MOST−RECENT−PSEUDO−CRAS
    H記録に含まれる疑似クラッシュ・タイムスタンプとは
    異なる、全ての上記疑似クラッシュ・タイムスタンプに
    関連する全ての上記PSEUDO−RECOVERYタ
    イプのログ・アーカイブ記録を無視する一方で、単一の
    フォワード・パスで上記第1の回復プロシージャ手段に
    よって上記フィルタをかけた回復ログ・アーカイブ記録
    を実行するステップと、 上記MOST−RECENT−PSEUDO−CRAS
    Hタイムスタンプ値と等しいタイムスタンプを有するS
    TART−PSEUDO−CRASHタイプのログ・ア
    ーカイブ記録の後に作られた全ての上記REDO及びU
    NDOタイプのログ・アーカイブ記録を無視する一方
    で、上記第1の回復プロシージャ手段に従って、上記M
    OST−RECENT−PSEUDO−CRASHタイ
    ムスタンプと関連する上記PSEUDO−RECOVE
    RYタイプのログ・アーカイブ記録を実行するステップ
    とを有する上記方法。
  2. 【請求項2】トランザクション・ログ記録を格納するた
    めの安定記憶装置資源及びシステム故障からデータベー
    スを回復させるための第1のプロシージャ手段を有する
    トランザクション・ベースのデータ・システムにおい
    て、上記第1のプロシージャ手段が、REDO及びUN
    DOタイプを有する選択可能な記録タイプとして上記安
    定記憶装置資源に格納された一連の回復ログ記録を単一
    のパスで実行するステップを有し、上記システムが、上
    記安定記憶装置資源の内容のダンプを受信及び格納する
    ためのアーカイブ記憶装置資源を有する、上記安定記憶
    装置資源の故障からトランザクション整合資源回復のた
    めの方法であって、 上記トランザクションのフォワード処理中に、 トランザクション・ログ記録を回復ログに書込みするス
    テップと、 上記回復ログに、予め設定された時間で開始した期間に
    おいて、PRE−PSEUDO−CRASH−INTE
    RVAL−UNDOタイプを有するログ記録として上記
    第1の回復プロシージャ手段によって作成された全ての
    UNDOタイプの回復ログ記録を書込みするステップ
    と、 上記回復ログに、上記期間の終了時に対応する疑似クラ
    ッシュ・タイムスタンプ値を有するSTART−PSE
    UDO−CRASHタイプの記録を書込みするステップ
    と、 上記回復ログに、上記期間の終了時にシステム故障から
    回復させるための上記第1の回復プロシージャ手段に従
    って一連のPSEUDO−RECOVERYタイプの記
    録を書込みするステップと、 上記回復ログに、上記疑似クラッシュ・タイムスタンプ
    値を有するEND−PSEUDO−RECOVERYタ
    イプの記録を書込みするステップと、 上記安定記憶装置資源に、上記END−PSEUDO−
    RECOVERYの書込みステップの完了において、上
    記安定記憶装置資源にまだ格納されていない全ての既存
    の回復ログ記録の回復ログ・コピーを書込みするステッ
    プとを連続して実行するステップを有し、 上記安定記憶装置資源から上記アーカイブ記憶装置資源
    への上記回復ログ・コピーのアーカイブ・ダンプ中に、 全ての残っている記録タイプを、フィルタをかけた回復
    ログ・アーカイブ記録として上記アーカイブ記憶装置資
    源に書込みする一方で、全てのUNDOタイプ記録を放
    棄することによって上記回復ログ・コピー記録にフィル
    タをかけるステップと、 上記安定記憶装置資源に、END−PSEUDO−RE
    COVERY記録の書込みに応じる上記疑似クラッシュ
    ・タイムスタンプ値を有するMOST−RECENT−
    PSEUDO−CRASH記録を書込みするステップと
    を連続して実行するステップを有し、 上記MOST−RECENT−PSEUDO−CRAS
    H記録に含まれる疑似クラッシュ・タイムスタンプとは
    異なる、全ての上記疑似クラッシュ・タイムスタンプに
    関連する全ての上記PSEUDO−RECOVERYタ
    イプのログ・アーカイブ記録を無視する一方で、単一の
    フォワード・パスの上記第1の回復プロシージャ手段に
    従って上記フィルタをかけた回復ログ・アーカイブ記録
    を実行するステップと、 上記MOST−RECENT−PSEUDO−CRAS
    Hタイムスタンプ値と等しいタイムスタンプを有するS
    TART−PSEUDO−CRASHタイプのログ・ア
    ーカイブ記録の後に作られた全ての上記REDO及びU
    NDOタイプのログ・アーカイブ記録を無視する一方
    で、上記第1の回復プロシージャ手段に従って、上記M
    OST−RECENT−PSEUDO−CRASHタイ
    ムスタンプと関連する上記PSEUDO−RECOVE
    RYタイプのログ・アーカイブ記録を実行するステップ
    と、 上記最後の回復ログ・アーカイブ疑似クラッシュ・イン
    タバル上の単一の逆方向送り中に、上記MOST−RE
    CENT−PSEUDO−CRASHタイムスタンプ値
    と関連する疑似クラッシュ・インタバルで上記PRE−
    PSEUDO−CRASH−INTERVAL−UND
    Oタイプのログ・アーカイブ記録を実行するステップと
    を有する上記方法。
  3. 【請求項3】トランザクション・ログ記録を格納するた
    めの安定記憶装置資源及びシステム故障からデータベー
    スを回復させるための第1のプロシージャ手段を有する
    トランザクション・ベースのデータ・システムにおい
    て、上記第1のプロシージャ手段が、REDO及びUN
    DOタイプを有する選択可能な記録タイプとして上記安
    定記憶装置資源に格納された一連の回復ログ記録を単一
    のパスで実行するステップを有し、上記システムが、上
    記安定記憶装置資源の内容のダンプを受信及び格納する
    ためのアーカイブ記憶装置資源を有する、上記安定記憶
    装置資源の故障からトランザクション整合資源回復のた
    めの方法であって、 上記データベースのフォワード処理中に、 トランザクション・ログ記録を回復ログに書込みするス
    テップと、 上記安定記憶装置資源に、エクステントの完了時点で、
    上記安定記憶装置資源にまだ格納されていない予め設定
    された上記エクステントのグループ内の全ての上記回復
    ログ記録の回復ログ・コピーを書込みするステップと、 上記安定記憶装置資源に、上記エクステントの終了時点
    でまだアクティブの全てのトランザクションのリストを
    有するEXTENT−IDタイプの記録を書込みするス
    テップとを連続して実行するステップを有し、 上記安定記憶装置資源から上記アーカイブ記憶装置資源
    への上記回復ログ・コピーのアーカイブ・ダンプ中に、 フィルタをかけた回復ログ・アーカイブ記録として上記
    アーカイブ記憶装置手段に全ての残っている記録のタイ
    プを書込みする一方で、上記アクティブ・トランザクシ
    ョン・リストのトランザクションを含むUNDOタイプ
    記録を除く、全てのUNDOタイプの記録を放棄するこ
    とによって上記回復ログ・コピー記録にフィルタをかけ
    るステップを有し、 最後のEXTENT−IDタイプのログ・アーカイブ記
    録に続いて、全てのログ・アーカイブ記録を無視する一
    方で、単一のフォワード・パスの上記第1の回復プロシ
    ージャ手段に従って、上記フィルタをかけた回復ログ・
    アーカイブ記録を実行するステップと、 上記回復ログ・アーカイブの最後のエクステントの単一
    の逆のパスで記録中に、上記UNDOタイプのログ・ア
    ーカイブを実行するステップとを有する上記方法。
  4. 【請求項4】システム故障から資源回復のために第1の
    プロシージャ手段によって生成され、回復ログに書込ま
    れるUNDO及びREDOタイプを有する選択可能なタ
    イプの回復ログ記録を有する、フィルタをかけた回復ロ
    グ・アーカイブをアーカイブ記憶装置資源で生成するた
    めに、デジタル・コンピュータ・システムで実行される
    方法であって、トランザクション・ベースのシステムに
    おいて、安定記憶装置資源故障からトランザクション整
    合資源回復のために、回復ログ・アーカイブに上記フィ
    ルタをかけ、 上記回復ログに、予め設定された時間に対応する疑似ク
    ラッシュ・タイムスタンプ値を有するSTART−PS
    EUDO−CRASHタイプの記録を書込みするステッ
    プと、 上記回復ログに、上記予め設定された疑似クラッシュ時
    間で発生するシステム故障から回復するために、上記第
    1の回復プロシージャ手段に従って一連のPSEUDO
    −RECOVERYタイプ記録を書込みするステップ
    と、 上記回復ログに、上記疑似クラッシュ・タイムスタンプ
    値を有するEND−PSEUDO−RECOVERYタ
    イプの記録を書込みするステップと、 上記安定記憶装置資源に、上記END−PSEUDO−
    RECOVERYの書込みステップの完了において、上
    記安定記憶装置資源にまだ格納されていない全ての既存
    の回復ログ記録の回復ログ・コピーを書込みするステッ
    プと、全てのUNDOタイプの回復ログ・コピー記録を
    除いて、上記安定記憶装置資源から上記アーカイブ記憶
    装置資源に上記回復ログ・コピーを書込むステップとを
    有する上記方法。
  5. 【請求項5】上記第1の書込みするステップが、上記予
    め設定された疑似クラッシュ時間に先行する期間中に、
    全ての上記UNDOタイプの記録をPRE−PSEUD
    O−CRASH−INTERVAL−UNDOタイプの
    記録として再ラベル付けするステップをさらに有するこ
    とを特徴とする請求項4記載の方法。
  6. 【請求項6】システム故障から資源回復のために第1の
    プロシージャ手段によって生成されるUNDO及びRE
    DOタイプを有する選択可能なタイプの回復ログ記録を
    有する、フィルタをかけた回復ログ・アーカイブをアー
    カイブ記憶装置資源で生成するために、デジタル・コン
    ピュータ・システムで実行される方法であって、トラン
    ザクション・ベースのシステムにおいて、安定記憶装置
    資源故障からトランザクション整合資源回復のために、
    回復ログ・アーカイブに上記フィルタをかけ、 回復ログに、予め設定された回復ログ・エクステントが
    得られるまで、上記第1の回復プロシージャ手段に従う
    REDO及びUNDOタイプの記録を有する一連の回復
    記録を書込むステップと、 上記回復ログに、上記回復ログ・エクステントの終了時
    点で、まだアクティブなトランザクションのリストを書
    込むステップと、 上記回復ログ記録を上記アーカイブ記憶装置資源に書込
    む場合、上記アクティブ・トランザクション・リストの
    トランザクションと関連しない全てのUNDO記録を放
    棄することによって上記回復ログ記録にフィルタをかけ
    るステップとを有する方法。
  7. 【請求項7】データ資源を記憶するための第1の記憶装
    置資源手段と、 UNDO及びREDOタイプの記録を含む回復ログを有
    するデータを格納するための安定記憶装置資源手段と、 システム故障の影響から上記データ資源のトランザクシ
    ョン整合な回復に影響を与えるために、第1の回復プロ
    シージャに従って回復記録を生成するための第1の回復
    プロシージャ手段と、 上記データ資源のデータ・イメージ・ダンプ・アーカイ
    ブ及び上記回復ログ記録の回復ログ・アーカイブを格納
    するためのアーカイブ記憶装置資源手段と、 上記第1の回復手段が、一連の疑似クラッシュ回復記録
    を生成し、及び上記疑似クラッシュ回復記録を上記回復
    ログに書込みできるようにさせる疑似クラッシュ信号を
    生成させるための疑似クラッシュ制御手段と、 上記疑似クラッシュ制御手段によって生成された回復ロ
    グ記録を除いて、上記回復ログ・アーカイブから全ての
    UNDOタイプの回復ログ記録を除外するためのアーカ
    イブ・ログ・フィルタ手段と、 上記データ・イメージ・ダンプ・アーカイブがトランザ
    クション整合状態に持ってこられる上記回復ログ・アー
    カイブ記録を使用して上記第1の回復プロシージャに従
    って上記データ・イメージ・ダンプ・アーカイブを修正
    するための回復実行手段とを有する同時に故障別の処理
    を実行するためのコンピュータ・システム。
  8. 【請求項8】上記アーカイブ・ログ・フィルタ手段によ
    って上記回復ログ・アーカイブ・ダンプからの除外を妨
    げるPRE−PSEUDO−CRASH−INTERV
    AL−UNDOタイプの記録として上記疑似クラッシュ
    信号に先立ち、予め設定された疑似クラッシュ期間中に
    生成された全ての上記UNDOタイプ回復ログ記録にマ
    ークをつけるための疑似クラッシュ・インタバル・マー
    キング手段をさらに有することを特徴とする請求項7記
    載のコンピュータ・システム。
  9. 【請求項9】データ資源を記憶するための第1の記憶装
    置資源手段と、 UNDO及びREDOタイプの記録を含む回復ログを有
    するデータを格納するための安定記憶装置資源手段と、 システム故障の影響から上記データ資源のトランザクシ
    ョン整合な回復に影響を与えるために、第1の回復プロ
    シージャに従って回復記録を生成するための第1の回復
    プロシージャ手段と、 上記データ資源のデータ・イメージ・ダンプ・アーカイ
    ブ及び上記回復ログ記録の回復ログ・アーカイブを格納
    するためのアーカイブ記憶装置資源手段と、 予め設定された回復ログ・エクステントの終わりにおい
    て、まだアクティブなトランザクションのリストを書込
    みするためのエクステント・クロージャ手段と、 上記アクティブ・トランザクション・リストのトランザ
    クションに関連する回復ログ記録を除く、全てのUND
    Oタイプの回復ログ記録を上記回復ログ・アーカイブか
    ら除外するためのアーカイブ・ログ・フィルタ手段と、 上記データ・イメージ・ダンプ・アーカイブが、トラン
    ザクション整合状態に持ってこられる上記第1の回復プ
    ロシージャに従って上記データ・イメージ・ダンプ・ア
    ーカイブに上記回復ログ・アーカイブ記録を加えるため
    の回復実行手段とを有する同時に故障別処理を実行する
    ためのコンピュータ・システム。
JP4305117A 1991-12-23 1992-11-16 トランザクション整合資源回復方法 Pending JPH05233382A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/813,233 US5278982A (en) 1991-12-23 1991-12-23 Log archive filtering method for transaction-consistent forward recovery from catastrophic media failures
US813233 1991-12-23

Publications (1)

Publication Number Publication Date
JPH05233382A true JPH05233382A (ja) 1993-09-10

Family

ID=25211833

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4305117A Pending JPH05233382A (ja) 1991-12-23 1992-11-16 トランザクション整合資源回復方法

Country Status (3)

Country Link
US (1) US5278982A (ja)
EP (1) EP0549325A2 (ja)
JP (1) JPH05233382A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0836515A (ja) * 1994-07-25 1996-02-06 Nec Corp ファイル復旧方式

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7299240B1 (en) 1992-04-10 2007-11-20 Intellisync Corporation Method for translating computer data from one record structure to another
JPH06266597A (ja) * 1993-03-11 1994-09-22 Fujitsu Ltd ログ取得方式
US5581750A (en) * 1993-03-15 1996-12-03 International Business Machines Corporation System and method for improving data recovery performance
US5426774A (en) * 1993-04-06 1995-06-20 Honeywell Inc. Method for maintaining a sequence of events function during failover in a redundant multiple layer system
US5870764A (en) * 1993-05-12 1999-02-09 Apple Computer, Inc. Method of managing a data structure for concurrent serial and parallel revision of a work
US5873097A (en) * 1993-05-12 1999-02-16 Apple Computer, Inc. Update mechanism for computer storage container manager
US5455946A (en) * 1993-05-21 1995-10-03 International Business Machines Corporation Method and means for archiving modifiable pages in a log based transaction management system
US5590318A (en) * 1993-11-18 1996-12-31 Microsoft Corporation Method and system for tracking files pending processing
US5832203A (en) * 1995-01-23 1998-11-03 Tandem Computers Incorporated Method for providing recovery from a failure in a system utilizing distributed audit
US5689705A (en) * 1995-02-13 1997-11-18 Pulte Home Corporation System for facilitating home construction and sales
DE69624359D1 (de) 1995-07-20 2002-11-21 Novell Inc Transaktionslogverwaltung in einem netz abtrennbarer rechner
CA2227432C (en) * 1995-07-20 2001-05-22 Novell, Inc. Transaction synchronization in a disconnectable computer and network
US5721918A (en) * 1996-02-06 1998-02-24 Telefonaktiebolaget Lm Ericsson Method and system for fast recovery of a primary store database using selective recovery by data type
US6647510B1 (en) * 1996-03-19 2003-11-11 Oracle International Corporation Method and apparatus for making available data that was locked by a dead transaction before rolling back the entire dead transaction
US7388092B2 (en) * 1996-05-03 2008-06-17 Applera Corporation Oligonucleotides and analogs labeled with energy transfer dyes
US5903898A (en) * 1996-06-04 1999-05-11 Oracle Corporation Method and apparatus for user selectable logging
US5878434A (en) * 1996-07-18 1999-03-02 Novell, Inc Transaction clash management in a disconnectable computer and network
US6141664A (en) 1996-11-13 2000-10-31 Puma Technology, Inc. Synchronization of databases with date range
US6405218B1 (en) 1996-11-13 2002-06-11 Pumatech, Inc. Synchronizing databases
US7013315B1 (en) 1996-11-13 2006-03-14 Intellisync Corporation Synchronization of databases with record sanitizing and intelligent comparison
US6212529B1 (en) * 1996-11-13 2001-04-03 Puma Technology, Inc. Synchronization of databases using filters
US6044381A (en) * 1997-09-11 2000-03-28 Puma Technology, Inc. Using distributed history files in synchronizing databases
US7302446B1 (en) 1996-11-13 2007-11-27 Intellisync Corporation Synchronizing databases
US6330568B1 (en) 1996-11-13 2001-12-11 Pumatech, Inc. Synchronization of databases
US5943676A (en) 1996-11-13 1999-08-24 Puma Technology, Inc. Synchronization of recurring records in incompatible databases
US5974425A (en) * 1996-12-17 1999-10-26 Oracle Corporation Method and apparatus for reapplying changes to a database
US5832516A (en) * 1997-01-21 1998-11-03 Oracle Corporation Caching data in recoverable objects
US6125368A (en) * 1997-02-28 2000-09-26 Oracle Corporation Fault-tolerant timestamp generation for multi-node parallel databases
US5933838A (en) * 1997-03-10 1999-08-03 Microsoft Corporation Database computer system with application recovery and recovery log sequence numbers to optimize recovery
US5953728A (en) * 1997-07-25 1999-09-14 Claritech Corporation System for modifying a database using a transaction log
US5890161A (en) 1997-10-28 1999-03-30 Microsoft Corporation Automatic transaction processing of component-based server applications
US6732123B1 (en) * 1998-02-23 2004-05-04 International Business Machines Corporation Database recovery to any point in time in an online environment utilizing disaster recovery technology
US6065018A (en) * 1998-03-04 2000-05-16 International Business Machines Corporation Synchronizing recovery log having time stamp to a remote site for disaster recovery of a primary database having related hierarchial and relational databases
US6119128A (en) * 1998-03-30 2000-09-12 International Business Machines Corporation Recovering different types of objects with one pass of the log
US6925477B1 (en) 1998-03-31 2005-08-02 Intellisync Corporation Transferring records between two databases
US6526416B1 (en) * 1998-06-30 2003-02-25 Microsoft Corporation Compensating resource managers
US6604236B1 (en) 1998-06-30 2003-08-05 Iora, Ltd. System and method for generating file updates for files stored on read-only media
US6449623B1 (en) * 1998-09-04 2002-09-10 Lucent Technologies Inc, Method and apparatus for detecting and recovering from data corruption of a database via read logging
US6289355B1 (en) 1998-09-16 2001-09-11 International Business Machines Corp. Fast log apply
JP3004008B1 (ja) * 1998-10-20 2000-01-31 三菱電機株式会社 更新履歴管理装置及び更新履歴管理方法
US7007003B1 (en) 1998-12-04 2006-02-28 Intellisync Corporation Notification protocol for establishing synchronization mode for use in synchronizing databases
US7062456B1 (en) 1999-02-09 2006-06-13 The Chase Manhattan Bank System and method for back office processing of banking transactions using electronic files
US6728879B1 (en) 1999-06-02 2004-04-27 Microsoft Corporation Transactional log with multi-sector log block validation
FI991336A7 (fi) * 1999-06-10 2000-12-11 Nokia Networks Oy Menetelmä levyvarmennetun tietokannan elvyttämiseksi
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
US6801938B1 (en) * 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
US6526417B1 (en) * 2000-01-25 2003-02-25 International Business Machines Corporation System and method for change accumulation unmerged update reduction
US7028251B2 (en) 2000-03-02 2006-04-11 Iora, Ltd. System and method for reducing the size of data difference representations
US6633977B1 (en) 2000-03-31 2003-10-14 International Business Machines Corporation System and method for computer system duplication
US7328211B2 (en) 2000-09-21 2008-02-05 Jpmorgan Chase Bank, N.A. System and methods for improved linguistic pattern matching
US6629108B2 (en) * 2001-03-09 2003-09-30 Hewlett-Packard Development Company, Lp. Method for insuring data integrity for mirrored independently accessible memory devices
EP1377906B1 (en) * 2001-03-13 2012-10-17 Oracle America, Inc. Method and arrangements for node recovery
US20040205587A1 (en) * 2001-08-07 2004-10-14 Draper Stephen P.W. System and method for enumerating arbitrary hyperlinked structures in which links may be dynamically calculable
US20030033303A1 (en) * 2001-08-07 2003-02-13 Brian Collins System and method for restricting access to secured data
US20030217062A1 (en) 2001-12-18 2003-11-20 Shawn Thomas Method and system for asset transition project management
US7987246B2 (en) 2002-05-23 2011-07-26 Jpmorgan Chase Bank Method and system for client browser update
US7340650B2 (en) * 2002-10-30 2008-03-04 Jp Morgan Chase & Co. Method to measure stored procedure execution statistics
US20040103199A1 (en) * 2002-11-22 2004-05-27 Anthony Chao Method and system for client browser update from a lite cache
US7299450B2 (en) 2003-06-17 2007-11-20 Microsoft Corporation Undoing changes in a software configuration management system
US7047379B2 (en) * 2003-07-11 2006-05-16 International Business Machines Corporation Autonomic link optimization through elimination of unnecessary transfers
WO2005015361A2 (en) * 2003-08-08 2005-02-17 Jp Morgan Chase Bank System for archive integrity management and related methods
US20050065965A1 (en) * 2003-09-19 2005-03-24 Ziemann David M. Navigation of tree data structures
US7472254B2 (en) * 2003-10-10 2008-12-30 Iora, Ltd. Systems and methods for modifying a set of data objects
US7409585B2 (en) 2004-01-30 2008-08-05 Dell Products L.P. Automatic media repair after read failure due to media error
US7366974B2 (en) * 2004-09-03 2008-04-29 Jp Morgan Chase Bank System and method for managing template attributes
US20060059210A1 (en) * 2004-09-16 2006-03-16 Macdonald Glynne Generic database structure and related systems and methods for storing data independent of data type
US20090132466A1 (en) * 2004-10-13 2009-05-21 Jp Morgan Chase Bank System and method for archiving data
FR2882448B1 (fr) * 2005-01-21 2007-05-04 Meiosys Soc Par Actions Simpli Procede de gestion, de journalisation ou de rejeu du deroulement d'un processus applicatif
US20060280907A1 (en) * 2005-06-08 2006-12-14 Whitaker Robert H Novel mineral composition
US8065606B1 (en) 2005-09-16 2011-11-22 Jpmorgan Chase Bank, N.A. System and method for automating document generation
US7833339B2 (en) * 2006-04-18 2010-11-16 Franklin Industrial Minerals Mineral filler composition
US7651559B2 (en) * 2005-11-04 2010-01-26 Franklin Industrial Minerals Mineral composition
US20070104923A1 (en) * 2005-11-04 2007-05-10 Whitaker Robert H Novel mineral composition
US7761732B2 (en) * 2005-12-07 2010-07-20 International Business Machines Corporation Data protection in storage systems
US7756838B2 (en) * 2005-12-12 2010-07-13 Microsoft Corporation Robust end-of-log processing
ATE532313T1 (de) * 2006-02-15 2011-11-15 Software Ag Ausfallsicheres system zum verwalten von client- server-kommunikation
US7996837B2 (en) * 2006-05-03 2011-08-09 Oracle International Corporation Recovery mechanism for transactions
WO2007134251A2 (en) * 2006-05-12 2007-11-22 Goldengate Software, Inc. Apparatus and method for read consistency in a log mining system
US8104076B1 (en) 2006-11-13 2012-01-24 Jpmorgan Chase Bank, N.A. Application access control system
US8140483B2 (en) 2007-09-28 2012-03-20 International Business Machines Corporation Transaction log management
US8452730B2 (en) * 2007-12-12 2013-05-28 Teradata Us, Inc. Archiving method and system
JP4870190B2 (ja) * 2009-04-27 2012-02-08 株式会社日立製作所 データ処理方法、計算機、及びデータ処理プログラム
US8762634B2 (en) * 2009-10-24 2014-06-24 International Business Machines Corporation Efficiently restoring data from a sequential-access backup archive
US10430298B2 (en) * 2010-10-28 2019-10-01 Microsoft Technology Licensing, Llc Versatile in-memory database recovery using logical log records
US9038177B1 (en) 2010-11-30 2015-05-19 Jpmorgan Chase Bank, N.A. Method and system for implementing multi-level data fusion
US9292588B1 (en) 2011-07-20 2016-03-22 Jpmorgan Chase Bank, N.A. Safe storing data for disaster recovery
US10540373B1 (en) 2013-03-04 2020-01-21 Jpmorgan Chase Bank, N.A. Clause library manager
US8683262B1 (en) * 2013-06-21 2014-03-25 Terracotta Inc. Systems and/or methods for rapid recovery from write-ahead logs
US20150019516A1 (en) * 2013-07-09 2015-01-15 David Wein Providing Durability of In-Memory Columnar Datastores Using Multile Logs
US9858305B2 (en) 2014-03-06 2018-01-02 International Business Machines Corporation Restoring database consistency integrity
US9779128B2 (en) * 2014-04-10 2017-10-03 Futurewei Technologies, Inc. System and method for massively parallel processing database
CN105069617B (zh) * 2015-07-27 2018-10-12 飞天诚信科技股份有限公司 一种恢复不完整交易的方法和装置
US10776428B2 (en) 2017-02-16 2020-09-15 Nasdaq Technology Ab Systems and methods of retrospectively determining how submitted data transaction requests operate against a dynamic data structure
US10789097B2 (en) 2017-02-16 2020-09-29 Nasdaq Technology Ab Methods and systems of scheduling computer processes or tasks in a distributed system
CN112307118B (zh) * 2020-09-30 2024-03-22 武汉达梦数据库股份有限公司 基于日志解析同步的保障数据一致性的方法和同步系统
CN112925676B (zh) * 2021-03-09 2023-01-17 上海沄熹科技有限公司 一种基于wal实现分布式数据库集群任意时间点恢复的方法
US11822436B2 (en) * 2021-12-10 2023-11-21 Sap Se Database recovery based on logical timestamp
CN120196685B (zh) * 2025-05-26 2025-09-05 瀚高基础软件股份有限公司 一种PostgreSQL主从数据库的数据复制方法、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6310252A (ja) * 1986-06-30 1988-01-16 インターナショナル ビジネス マシーンズ コーポレーション ログ・デ−タを管理する方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0097239B1 (en) * 1982-06-21 1989-09-27 International Business Machines Corporation Method and apparatus for restoring data in a computing system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6310252A (ja) * 1986-06-30 1988-01-16 インターナショナル ビジネス マシーンズ コーポレーション ログ・デ−タを管理する方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0836515A (ja) * 1994-07-25 1996-02-06 Nec Corp ファイル復旧方式

Also Published As

Publication number Publication date
EP0549325A3 (ja) 1995-05-03
EP0549325A2 (en) 1993-06-30
US5278982A (en) 1994-01-11

Similar Documents

Publication Publication Date Title
JPH05233382A (ja) トランザクション整合資源回復方法
US8868507B2 (en) Method and apparatus for data recovery using storage based journaling
US6665815B1 (en) Physical incremental backup using snapshots
JP2531776B2 (ja) デ―タベ―スを回復する方法
JP4638905B2 (ja) データベースのデータ復旧システムおよびその方法
US6078999A (en) Recovering from a failure using a transaction table in connection with shadow copy transaction processing
EP1320802B1 (en) A method and system for highly-parallel logging and recovery operation in main-memory transaction processing systems
US7650341B1 (en) Data backup/recovery
US7979741B2 (en) Method and apparatus for data recovery system using storage based journaling
US6938056B2 (en) System and method for restoring a file system from backups in the presence of deletions
EP0465019B1 (en) Method and apparatus for managing state identifiers for efficient recovery
US7243197B2 (en) Method and apparatus for backup and recovery using storage based journaling
JP4261800B2 (ja) クライアントサーバー環境における差分バックアップシステムの管理方法
US8572331B2 (en) Method for reliably updating a data group in a read-before-write data replication environment using a comparison file
US10133746B1 (en) Persistent file system objects for management of databases
JP3410899B2 (ja) 多重ボリューム・データ・セットを回復する方法
US20040260726A1 (en) DBMS backup without suspending updates and corresponding recovery using separately stored log and data files
US7293146B1 (en) Method and apparatus for restoring a corrupted data volume
US6038569A (en) System for data structure loading with concurrent image copy
CN114546726A (zh) 一种值日志系统中数据库备份的方法和系统
EP4685650A1 (en) Database recovery method and apparatus
JPH04184641A (ja) データベース復旧方式
US20080256312A1 (en) Apparatus and method to detect and repair a broken dataset
JPH0443441A (ja) データベースのログ管理処理方式
JPH01140353A (ja) データベースのデータ保全方式