JP4594928B2 - フラッシュバックデータベース - Google Patents

フラッシュバックデータベース Download PDF

Info

Publication number
JP4594928B2
JP4594928B2 JP2006509576A JP2006509576A JP4594928B2 JP 4594928 B2 JP4594928 B2 JP 4594928B2 JP 2006509576 A JP2006509576 A JP 2006509576A JP 2006509576 A JP2006509576 A JP 2006509576A JP 4594928 B2 JP4594928 B2 JP 4594928B2
Authority
JP
Japan
Prior art keywords
gate
physical
log
cancellation
repository
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
JP2006509576A
Other languages
English (en)
Other versions
JP2006525599A (ja
Inventor
リー,ジェイ・ウィリアム
ロアイツァ,ジュアン
スチュアート,マイケル
フ,ウェイ
ブリッジ,ウィリアム
Original Assignee
オラクル・インターナショナル・コーポレイション
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 オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2006525599A publication Critical patent/JP2006525599A/ja
Application granted granted Critical
Publication of JP4594928B2 publication Critical patent/JP4594928B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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
    • 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/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • 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/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Medical Treatment And Welfare Office Work (AREA)

Description

発明の分野
本発明は、データ管理システムに関し、より特定的に1組のデータを前の状態に復元するための技術に関する。
発明の背景
コンピュータを使用するときに生じるおそれがあるさまざまな問題がある。エラーの2つの一般的なカテゴリは、コンピュータがもたらすエラーと、オペレータがもたらすエラーとを含む。これらの2種類のエラーは性質が異なるために、コンピュータがもたらすエラーから回復するように設計された技術を必ずしも人間のオペレータがもたらすエラーから回復するために使用することができない。
たとえば、(ノードまたはプロセスの故障等の)コンピュータがもたらしたエラーの後でデータベースを回復するために用いられる1つの技術は、動作のログの維持を含む。具体的には、やり直しログを維持して、故障の前に行なわれたトランザクションによって揮発性メモリにおいてなされる変更を、故障の後にデータベースにとって持続的なものにすることができる。同様に、取消しログを維持して、故障の前に行なわれなかったトランザクションによって持続的にされた変更を、故障の後にデータベースから除去することができる。
先述のログベースの回復技術は、オペレータがもたらすエラーの問題には対処しない。なぜなら、これらのエラーは、行なわれたトランザクションによってなされた変更に反映され得るからである。人間のエラーを反映する、行なわれたトランザクションの後にコンピュータがもたらすエラーが続くときでさえも、ログベースの回復動作は、単にこれらの誤って行なわれた変更がコンピュータがもたらしたエラーからの回復の後でもデータベースに反映され続けるということを保証するだけである。したがって、コンピュータがもたらすエラー回復技術は、正しく行なわれた変更と誤って行なわれた変更との間ではなく、行なわれた変更と行なわれていない変更との間を区別する傾向がある。
コンピュータがもたらすエラーの回復技術とは対照的に、オペレータがもたらすエラーの回復技術は、行なわれた変更および行なわれていない変更の双方をデータベースから除去することに焦点を当てる。具体的に、オペレータがもたらすエラーの回復技術は、典型的に、過去における特定の時点(好ましくはオペレータがもたらすエラーを組込んだトランザクションの実行時間の前)に存在した一貫した状態へとデータベースを戻すことに焦点を当てる。たとえば、1つのオペレータがもたらしたエラーの回復技術は、特定の時点でデータベースのバックアップを行なうことを含む。オペレータがもたらすエラーがその時よりも後で導入されるときに、このエラーは、データベースのバックアップコピーに復元することによって「除去」され得る。
もちろん、データベース管理者は、オペレータがもたらしたエラーが導入される前の時間を知っていることはほとんどない。最後のバックアップ動作とエラーの時間との間でかなりの時間が経っていれば、バックアップデータベースに復元して、さらに続いて起こった変更のすべてを当該エラーの前以外のバックアップ動作に再び適用することは、非常に非実用的であり非効率的であるおそれがある。
別の技術は、その状態が主要なデータベースに対して遅延される「ミラー」データベー
スを維持することを含む。ユーザがもたらすエラーの場合、ミラーデータベースに復元することができる。しかしながら、エラーを発見するのにかかる時間が遅延の長さよりも長い場合に、遅延されたミラーさえもエラーを反映する。さらに、長い遅延はエラーが時間内に捕えられる機会を向上させる一方で、それはミラーへのフェールオーバーに関連した非効率性を増加させる。
さまざまな遅延されたミラー技術は、多数の遅延されたミラーデータベースを維持することを含み、各ミラーデータベースは異なる遅延の長さを有する。異なる遅延を有する多数のミラーを使用することによって、少なくとも1つのミラーが、エラー時の前の状態およびエラー時から間もない状態を表わす可能性を増す。しかしながら、このようなミラーの維持は、この目的のために利用可能であり得るよりも多くのリソースを消費する。
代替の技術は、「スナップショット」をサポートする記憶サブシステム上にデータベースを記憶し、さらにサブシステムのスナップショット機構を用いてエラーに先行するスナップショット時間に記憶サブシステムを復元することを含む。たとえば、記憶サブシステムは、T5の特定の「スナップショット時間」を確立し得る。T5の後で、サブシステムにおけるブロックへの各々の変更は、(1)ブロックがT5の後で既に変更されているかどうかを決定し、変更されていなければ、次に(2)ブロックへの変更を行なう前にサブシステムからブロックの変更前のバージョンを読出してそれをT5のスナップショットに関連付けられた特別な分離した「スナップショット記憶装置」へとコピーすることによって処理される。この技術を用いると、記憶サブシステムにおける対応するブロック上のT5のスナップショット記憶装置からブロックをコピーすることによって、記憶サブシステムをそれが時間T5に存在した状態に戻すことができる。
さらに、記憶サブシステムをその前の状態に復元することなく、プロセスおよびトランザクションが特定のブロックを見たいときに以下のことを行なうことによって、時間T5の時点でのサブシステムの状態を見ることができる。以下のこととは、(1)特定のブロックのコピーがT5のスナップショット記憶装置にある場合に、T5のスナップショット記憶装置から特定のブロックのコピーを提供すること、および(2)T5のスナップショット記憶装置にブロックのコピーがないときのみに、記憶サブシステムから特定のブロックのコピーを提供することである。
スナップショットの技術は正確な結果をもたらすが、これを行なうにはすべての書込動作に潜在的にかなりの量のオーバーヘッドを課すことになる。具体的には、任意のスナップショット時間の後で任意のブロックへの第1の更新が行なわれると同時に、ブロックの更新前の画像が読み出され、次に適切なスナップショット記憶装置へと書出される。さらに、データベース管理者が記憶サブシステムを前の状態に戻さなければならないときに、管理者はスナップショット時間が明示的に確立された状態のみに制限される。
オペレータがもたらしたエラーは、生理的な取消しを使用することによって容易に除去されないエラーの一種に過ぎない。たとえば、論理的なデータ破損から回復しようとするときに困難が生じ得る。たとえば、やり直しが再び適用された場合、このような破損は、オペレータがもたらしたエラーと同様に単に「再生」され得る。
上記に基づいて、このセクションで説明されたアプローチに内在する効率の問題またはリソースの消費問題を被らない態様で再生可能なエラーから回復するための機構および技術が提供されることが明らかに望ましい。
このセクションに記載されたアプローチは、追及することのできるアプローチであるが、必ずしも以前に考えられたまたは追跡されたアプローチではない。したがって、特に示されない限り、このセクションに記載されたアプローチのいずれも単にこのセクションに含まれることによって先行技術として制限するものと考えられるべきではない。
本発明は、制限によってではなく例示によって、添付の図面の図において示され、図面では同じ参照数字は同様の要素を指す。
発明の詳細な説明
リポジトリを前の状態に復元するための技術が記載される。以下の説明において、説明のために、複数の特定の詳細が述べられ、本発明を完全に理解してもらえるようにする。しかしながら、本発明は特定の詳細なしで実践され得ることは明らかである。他の例において、公知の構造および装置は、本発明を不必要に分かりにくくするのを避けるためにブロック図の形態で示されている。
機能の概要
リポジトリを前の状態に戻すための技術がここに記載される。一実施例に従うと、リポジトリはデータベースであり、前の状態とは、データベースが過去における特定の時点に有した一貫した状態である。具体的に、前の状態とは、データベースが特定の時点よりも前に行なわれたトランザクションによってなされたすべての変更を反映する状態であり、特定の時点よりも前に行なわれなかったトランザクションによってなされた変更は反映されない。別の実施例において、リポジトリはディスク上の1つ以上のファイルである。
オペレータがもたらしたエラーが既に行なわれたトランザクションによってなされた変更によってデータベースに導入されるときに、本明細書に記載された技術を用いて、データベースを、エラーを導入したトランザクションの実行時間の前の時点に戻すことによってエラーから回復され得る。技術は、「物理的な取消し」の情報の生成を含み、生理的な取消しおよび生理的なやり直しと関連する物理的な取消し情報を用いてリポジトリを前の状態に効率的に戻す。
物理的な取消し
物理的な取消しは、記憶の単位を前の状態に戻すのに必要な情報を含む。「ブロック」という用語は、本明細書では物理的な取消しを維持するために微少の単位として扱われる記憶の単位のことを指す。本明細書に記載された技術は、いかなる特定のサイズまたは細分性のブロックにも制限されない。
一実施例に従うと、ブロックの物理的な取消しはブロックの更新前の画像である。更新されたブロックの更新前の画像を用いて、単に更新されたブロックをブロックの更新前の画像に重ね書きすることによって、更新されたブロックを更新前の状態に戻すことができる。しかしながら、更新前の画像は、記憶の単位を前の状態に戻すために用いることができる情報の一形態に過ぎず、本明細書に記載された技術はいかなる特定の形態の物理的な取消しにも制限されない。
本明細書に記載された技術を用いると、更新されたブロックをディスクに書込むすべての動作は、ブロックの更新前の画像を得るためにディスク読取動作の追加のオーバーヘッドを受けない。むしろ、更新がデータベースサーバによって行なわれるときに、データベースサーバは通常、揮発性メモリにおけるブロックのコピーを既に有している。したがって、物理的な取消しの生成は、単に、第1のコピーを更新する前に揮発性メモリにおける
ブロックの第2のコピーを作成することを含み得る。以下でより詳細に記載されるように、第2の更新前のコピーは、後で、しかしながらブロックの更新された画像がディスクにフラッシュされる時点までに、ディスクにフラッシュされる。
生理的な取消し
生理的な取消しは、論理情報の個々の情報を前の状態に復元するのに必要な情報を含む。たとえば、リレーショナルデータベースシステム内で、テーブルの行が更新された場合に、生理的な取消しの記録が生成され得る。このシナリオにおいて、生理的な取消しの記録は、行をその更新前の状態に戻すための情報を含むが、更新された行と同じデータブロック上に存在し得る他のデータアイテムの状態に関する情報を有さないかもしれない。
生理的な取消しと比較して、物理的な取消しは利点を有する。物理的な取消しの適用例は常に成功する。なぜなら、それは前に適用される画像に関するいかなる仮定も要求しないからである。したがって、物理的な取消しは論理データの破損から常に戻ることができる。一方で、前に適用される画像が自己矛盾していない場合に生理的な取消しの適用例は失敗し得る。ブロックは、メモリの破損、ソフトウェアにおけるバグ等のために自己矛盾しているかもしれない。
生理的なやり直し
生理的な取消しと同様に、生理的やり直しは論理的なデータ項目への変更に関する情報を記憶する。しかしながら、生理的な取消しが論理的なデータ項目への変更を取消す方法についての情報を記憶する一方で、生理的なやり直しは論理的なデータ項目への変更を再び実行する方法についての情報を記憶する。特に、生理的なやり直しを用いて、行なわれたトランザクションによってなされた変更を再び実行し、これらの変更は、コンピュータがもたらしたエラーが生じた時点ではまだ持続的な記憶装置に記憶されていない。
多くのデータベースシステムは、上述のように、コンピュータがもたらしたエラーから回復するために生理的な取消しおよびやり直しを維持する。生理的なやり直しおよび取消し機構の例は、「改善されたトランザクションリカバリのための方法および装置」(“Method and Apparatus For Improved Transaction Recovery”)と題された米国特許第5,850,507号に記載され、その内容は引用により援用される。しかしながら、本明細書に記載された技術は、生理的なやり直しおよび取消しを維持するためのいかなる特定の機構にも制限されない。
二段階の回復
本発明の一実施例に従うと、リポジトリは、ここで「物理的な回復段階」および「生理的な回復段階」と称される2つの段階における前の状態に戻される。たとえば、ユーザがリポジトリを特定の時点(「目標時間」)に存在した状態に復元することを望んでいると想定する。物理的な回復段階の間に、物理的な取消しを用いてリポジトリに関連付けられたすべてのディスクブロックをある時点の物理的な状態(「物理的な回復時間」)に戻す。生理的な回復段階の間に、生理的なやり直しおよび取消しを用いて、リポジトリ内の論理情報をその物理的な回復状態から目標時間に関連付けられた一貫した状態へと移動させる。
なお、物理的な回復時間が目標時間であったとしても、生理的な回復段階は、ブロック内の論理データを一貫した状態に戻すためにまだ必要があるかもしれない。たとえば、時間T5で、所与のブロックは、(1)時間T5の時点で行なわれなかったトランザクションによってなされた変更を含み、(2)T5の前に行なわれたトランザクションによってなされた変更を欠いているかもしれない。したがって、時間T5でブロックをその物理的な状態に戻すことによって、必ずしもブロック上にある論理的なデータ項目を時間T5の
一貫した状態に戻せるとは限らない。したがって、生理的なやり直しを用いて、T5よりも前に行なわれたトランザクションによってなされた変更を、欠いているブロックのT5の画像に追加する。同様に、生理的な取消しを用いて、時間T5の時点で行なわれなかったトランザクションによってなされたいかなる変更もブロックのT5の物理的な画像から除去する。
ゲート
一実施例に従うと、リポジトリを管理するシステムは、物理的取消しを生成する、ここで「ゲート」と称される時間における特定の点を確立する。説明のために、リポジトリはデータベースであると考える。このような実施例において、リポジトリを管理しかつゲートを確立するシステムはデータベースサーバである。
ゲートのために生成された物理的な取消しを用いて、リポジトリを記憶するブロックを、それらがゲートに関連した時間に存在した物理的状態に戻す。たとえば、ゲートG1が時間T5につき確立された場合、ゲートG1のために生成された物理的な取消しは、ブロックを、それらが時間T5にまたはその前に存在した物理的状態に戻すための情報を有する。一実施例において、G1のための物理的な取消しは、T5の後に更新されたすべてのブロックの更新前の画像を含む。ブロックの更新前の画像は、更新がブロックに記憶された複数の論理的データ項目のうちいの1つを変更しただけでも、ブロックにおけるデータのすべてを含む。したがって、リポジトリのブロックは、単にブロックの更新されたバージョンをその対応する更新前の画像に重ね書きすることによって、T5の物理的状態に戻され得る。
一実施例に従うと、ゲートのための物理的やり直しは、それらがゲートと関連した時間の後で、最初に更新されるときにブロックの更新前の画像を記憶することによって確立される。具体的には、(1)ゲート時間の後に(2)ゲート以降、前に更新されていないいかなるブロックになされたいかなる更新にも応答して、更新前の画像が生成される。このような更新は、ここでは「ゲート後の最初の更新」と呼ばれる。
たとえば、時間T5に関連付けられたゲートG1について考察する。ブロックがT5の後に更新されると考える。ブロックがT5の後で既に更新されている場合、更新はゲートの後の最初の更新ではなく、更新に応じて物理的な取消しはG1のために生成されない。一方で、ブロックがT5の後、最初に更新されている場合、更新はゲート後の最初の更新となり、ブロックの更新前の画像はゲートG1の物理的取消しとして生成される。
さまざまな技術を用いて、どの更新がゲート後の最初の更新として分類されるかを識別し得る。たとえば、タイムスタンプは、各ブロックのヘッダに配置されてブロックが最後に更新されたときを示す。更新されているブロックのブロックヘッダにおけるタイムスタンプがゲートのタイムスタンプよりも高い場合に、一部のプロセスはゲートの後で少なくとも1度ブロックを既に更新しているため、現在の更新はゲート後の最初の更新とならないようにする。一方で、更新されているブロックのブロックヘッダにおけるタイムスタンプがゲートのタイムスタンプよりも低い場合、現在の更新はゲート後の最初の更新である。代わりに、データは揮発性メモリに記憶されてどのブロックが最も最近のゲート以降既に更新されているかを示すことができる。本発明は、どの更新がゲート後の最初の更新として適しているかを識別するためのいかなる特定の技術にも制限されない。
フラッシュバックログ
一実施例に従うと、ゲートのための物理的な取消しの記録が「フラッシュバックログ」におけるエントリとして記憶される。以下でより詳細に説明するように、単一のフラッシュバックログを用いて、多くのゲートに関連付けられた更新前の画像を記憶することがで
き、ここでマーカを用いて、フラッシュバックログにおける位置を特定のゲートと相互に関連付ける。
図1aはシステム100を示しており、これを参照して本発明の一実施例に従った物理的な取消しを管理するための技術を説明する。図1aを参照すると、システム100は揮発性メモリ102および不揮発性メモリ104を含む。不揮発性メモリ104は、データを記憶するためのリポジトリ112を含む。リポジトリ112は、たとえば、データベースサーバによって管理されるデータベースであってもよく、本明細書に記載された、物理的な取消しを管理、維持および使用するための動作が、データベースサーバ内のプロセスによって自動的に行なわれ得る。しかしながら、本明細書に記載された技術は、前の状態に戻されなければならないリポジトリのいかなる種類にも適用可能であるため、従来のデータベースサーバの文脈には制限されない。
リポジトリ112に加えて、不揮発性メモリ104はフラッシュバックログ106を含む。フラッシュバックログ106はエントリ(たとえばエントリ140、142、144)を記憶し、これらのエントリは、(1)リポジトリ112内のブロックに対応し、かつ(2)対応するブロックを前の状態に戻すための情報を含む。一実施例に従うと、フラッシュバックログ106における各エントリは、リポジトリ112における対応するブロックの更新前の画像を含む。
揮発性メモリ102は、ブロックキャッシュ110とフラッシュバックログキャッシュ108とを含む。ブロックキャッシュ110は、リポジトリ112からのブロックのコピーを保持する。たとえば、プロセスがリポジトリ112のブロック120からデータ項目を読出すために、ブロック120のコピー122は、揮発性メモリ102内のブロックキャッシュ110にロードされる。プロセスがデータ項目を更新する場合に、更新はブロック120のキャッシュされたコピーに最初に反映され、不揮発性メモリ104に存在するブロック120には反映されない。
揮発性メモリ102は、ブロックキャッシュ110とフラッシュバックログキャッシュ108とを含む。ブロックキャッシュ110は、リポジトリ112からのブロックのコピーを保持する。たとえば、プロセスがリポジトリ112のブロック120からデータ項目を読み出すために、ブロック120のコピー122は揮発性メモリ102内のブロックキャッシュ110にロードされる。次にプロセスがデータ項目を更新する場合、更新は最初に、不揮発性メモリ104に存在するブロック120ではなく、ブロック120のキャッシュされたコピー122に反映される。
揮発性メモリ102はフラッシュバックログキャッシュ108をさらに含む。フラッシュバックログキャッシュ108は、作成されているが不揮発性メモリ104にまだフラッシュされていないフラッシュバックログエントリ(たとえばエントリ130、132および134)を記憶する。たとえば、ブロック120のコピー122が修正される場合に、ブロック120の更新前の画像を含むフラッシュバックログエントリ(たとえば図1Bにおけるエントリ136)を生成するために必要であり得る。フラッシュバックログエントリは、最初にフラッシュバックログキャッシュ108に記憶され、次に、後で不揮発性メモリ104のフラッシュバックログ106へフラッシュされる。図1Cにおいて、エントリ146は、エントリ136が不揮発性メモリ104にフラッシュされていることに応答して、フラッシュバックログ106に追加される。
先行する物理的取消しの生成
上述の実施例において、(1)ゲートの後に(2)そのゲートの後で前に更新されてい
ないブロックに対してなされるすべての更新に応答して、フラッシュバックログエントリが生成される。残念ながら、この技術は、いかなる所与のゲートの直後に生成されなければならないフラッシュバックのログエントリの数における「スパイク」をもたらす。具体的に、ゲートを通過した直後に生じる事実上すべての更新は、ゲート後の最初の更新である。したがって、ゲートの直後で、フラッシュバックログエントリの生成を要求する更新の動作の割合は事実上100%である。最初のスパイクの後で、フラッシュバックログエントリの生成を要求する更新の割合は減少する。なぜなら更新の多くの割合が、ゲートの後で既に更新されたブロックに対するものとなるからである。
一実施例に従うと、スパイクの大きさは先行する物理的な取消しの生成を行なうことによって減じられる。具体的には、フラッシュバックログエントリがゲート後の最初の更新ではない更新について生成される。むしろ、これらはゲートに関連付けられた時間の前さえもゲートのために生成される。ここで「先行するエントリ」と称されるこのようなフラッシュバックログエントリは、ゲートに到達したときに生じるスパイクを減じる。なぜなら追加のフラッシュバックのログエントリは、先行のエントリを有するブロックへのゲート後の最初の更新について生成される必要があり得るからである。
一実施例に従うと、先行するゲートが実際のゲートよりも先に確立される。しかしながら、実際のゲートとは異なり、先行するゲートの後でブロックに対してなされた第1の更新は、フラッシュバックエントリの生成を自動的に引起さない。むしろ、先行するゲートの後のフラッシュバックエントリの生成は最適なものではない。エントリがこれらの状況下で生成されるかどうかは、システムの作業負荷およびリソースの可用性等のさまざまな要素に基づいて決められ得る。たとえば、フラッシュバックエントリが、先行するゲートの後でなされた更新に応答して生成されるかどうかは、フラッシュバックログキャッシュ108においてどれだけの空間が現在利用可能であるかに基づいて決められ得る。別の例として、このシステムは、すべての先行するゲート後の最初の更新の50%等の或る割合についてフラッシュバックエントリを単に生成し得る。これらの要素は、単にフラッシュバックエントリが先行するゲートの後の更新について生成されるかどうかを決定するために使用され得る要素の例に過ぎない。本明細書に記載された技術は、いかなる特定の組の要素にも制限されない。
先行するフラッシュバックエントリがゲートのために生成されたときに、先行するフラッシュバックエントリは、ゲートに関連した時間における対応するブロックの状況を反映しないかもしれない。たとえば、G1が時間T5に関連付けられ、G1のための先行するゲートが時間T3に公開されると考える。T3およびT5の間に生成されるすべての先行するフラッシュバックエントリは、必ずしも時間T5のブロックの状態ではなく、T3およびT5の間の或る時点でのブロックの状態を反映する。
たとえば、ブロックB1は時間T4で更新され得、先行するフラッシュバックエントリを生成させる。ゲートG1に関連付けられたフラッシュバックエントリがデータベースを時間T5に復元するために後で用いられる場合、B1のための先行するフラッシュバックエントリは実際にブロックB1を時間T4に復元する。したがって、先行するゲートが使用されるときに、リポジトリは物理的な回復段階の後で「ファジイ」になる。具体的に、物理的な回復段階の後で、一部のブロックが時間T5における物理的な状態を反映し、他のブロックは時間T3およびT5の間の物理的な状態を反映する。
先行するゲートの使用は、このような「ファジイさ」をもたらし得る技術の一例に過ぎない。たとえば、多数のサーバシステムについて以下に記載する二段階のブロードキャスト技術は、対応するゲートに関連付けられた時間の前の状態を反映する更新前の画像をもたらし得る。さらに、ゲートが物理的な取消しの生成と「同時に」生じると、物理的な取
消しは、ゲートに先行するタイムスタンプに割当てられ得る。しかしながら、その原因にかかわらず、すべての論理的なデータ項目が現在ある何らかの状態から目標の状態に戻されるときに、この「ファジイさ」は生理的な回復段階の間に排除される。
ゲートマーカ
上述のように、フラッシュバックエントリは最初にフラッシュバックキャッシュ108に記憶され、不揮発性メモリ104上のフラッシュバックログ106に定期的にフラッシュされる。一実施例に従うと、単一のフラッシュバックログ106が複数のゲートのために用いられ、(ここで「ゲートマーカ」と称される)マーカがフラッシュバックログ106に挿入されて、特定のゲートに関連付けられたエントリの開始を示す。
図2は、本発明の一実施例に従って配置されたフラッシュバックログ200を示すブロック図である。図2を参照すると、フラッシュバックエントリがキャッシュから持続的な記憶装置にフラッシュされると、フラッシュバックログ200は(示された実施例において左から右へ)連続して配置される。
一実施例に従うと、ゲートマーカはフラッシュバックログ200に記憶されて、所与のゲートに関連付けられたフラッシュバックエントリの適用例を容易にする。示された実施例において、フラッシュバックログ200は、時間T500のゲートG5に関連付けられたゲートマーカ202と、時間T600のゲートG6に関連付けられたゲートマーカ204とを含む。
ゲートマーカの連鎖
一実施例に従うと、フラッシュバックログ200内のさまざまなゲートマーカを共にリンクして、これらをフラッシュバックログ内に迅速に置くようにし得る。示された実施例において、各ゲートマーカは直前のゲートマーカへのリンクを含み、制御ファイル206は、最も最近記憶されたゲートマーカへのリンクを含む。このような態様でリンクされると、いかなる所与のゲートマーカも、最も最近のゲートマーカへの制御ファイル206におけるリンクに従うことによって、次にゲートマーカ内のリンクに従って所望のゲートマーカに戻ることによって、迅速に設定することができる。たとえば、ゲートマーカ202を設定するために、制御ファイル206内のリンクを用いてゲートマーカ204を設定し、ゲートマーカ204内のリンクを用いてゲートマーカ202を設定する。
新しいゲートマーカがフラッシュバックログ200に追加されると、ゲートマーカの連鎖は、新しいゲートマーカが制御ファイルによって現在示されたゲートマーカを指すようにして、次に制御ファイルが新しく挿入されたゲートマーカを指すようにする。たとえば、新しいゲートマーカがフラッシュバックログ200に追加される場合、新しいゲートマーカはゲート204へのリンクを有し、制御ファイル206内のリンクは新しいゲートマーカを指すように更新される。
ゲートマーカの使用
一実施例に従うと、特定のゲートのためのゲートマーカはさまざまな目的を果たす。これらの目的は、(1)フラッシュバックログ内の位置に印を付けること、および(2)生理的なやり直しのログ内の位置を識別することを含む。一実施例において、フラッシュバックログ内のゲートマーカの位置は、リポジトリを、対応するゲートと関連した時間へ戻すためにフラッシュバックエントリを処理し始める場所を示している。たとえば、リポジトリを時間T500に関連した物理的な状態に戻すために、フラッシュバックログ200は、エントリ220から始まってエントリ228まで処理される。一方で、リポジトリを時間T600に関連した物理的状態に戻すために、フラッシュバックログ204は、エントリ222から始まってフラッシュバックログの終わりのエントリ228まで処理するこ
とができる。
代替の実施例において、ゲートマーカそれ自体の位置というよりもゲートマーカ内のポインタを用いて、対応するゲートのためのフラッシュバックログを処理し始める位置を識別する。フラッシュバックログにおける開始位置を示すためにポインタを用いることによって、ゲートマーカそれ自体がフラッシュバックログへと記憶されるシーケンスは、それほど重要ではない。たとえば、時間T500に関連したゲートG1は、フラッシュバックログが位置P1にあるときに発行され得る。ゲートマーカの位置を用いて処理を開始する位置を識別する場合には、ある機構を与えて、G1に関連したフラッシュバックエントリがG1のためのゲートマーカよりも先にフラッシュバックログに記憶されないようにして、G1のゲートマーカが位置P1に記憶されるようにすることを保証しなければならない。しかしながら、ポインタが使用される場合に、G1のための生成された他のフラッシュバックエントリをG1のためにゲートマーカよりも先に、ディスクにフラッシュすることができる。P1の後にフラッシュバックログのどこかに記憶されたG1のためのゲートマーカは、単に位置P1を指すためのポインタを含む。
フラッシュバックエントリが処理されるときに、フラッシュバックエントリがリポジトリを復元するために用いられているゲートと関連した時間よりも後の更新を反映しなければ、リポジトリの対応するブロックはフラッシュバックエントリにおける画像に復元される。たとえば、フラッシュバックエントリ220および222の双方が同じブロックB1に対応し、リポジトリがゲートG5に関連した時間T500に復元される場合に、ブロックB1はフラッシュバックエントリ220に基づいて復元されるが、フラッシュバックエントリ222に基づいては復元されない。なぜならフラッシュバックエントリはT500の後にブロックB1になされた更新を反映するからである。
上述の例において、ゲートマーカはフラッシュバックエントリの適用を開始する場所を示すという機能を果たす。代替の実施例において、フラッシュバックエントリは、逆の順序で与えられ、最も最近のエントリから始まり適切なゲートマーカ(またはゲートマーカにおけるポインタによって示された位置)に進み得る。これらの状況下で、ゲートマーカまたはポインタは、フラッシュバックエントリの処理を停止する場所を示す。また、フラッシュバックログが最も新しいものから最も古いものへと処理される場合に、エントリに関連したタイムスタンプが回復のために用いられるゲートの時間よりも新しいときに、フラッシュバックエントリがスキップされる。たとえば、エントリ220および222の双方が同じブロックB1に対応し、かつリポジトリがゲートG5に関連した時間T500に復元される場合に、エントリ222はスキップされる。なぜならそれは時間T500よりも大きいタイムスタンプと関連しているからである。すなわち、エントリ220がスキップされるのは、エントリ222に反映されたブロックB1の画像が、時間T500の後になされた変更を含むからである。一方で、エントリ220が与えられるのは、エントリ220が時間T500に先行しかつT500よりも前の時間にブロックB1の物理的画像を反映するからである。
上述のように、フラッシュバックエントリを年代順にまたは逆の年代順に適用し得る。実際に、フラッシュバックエントリはいかなる順序でも処理され得る。リポジトリを復元するために用いられるゲートに関連した時間よりも早いタイムスタンプを有するブロックのための多数のフラッシュバックエントリがある場合に、エントリのうちのいずれか1つからの画像は、「物理的な回復段階」の後のブロックの復元された画像として十分良好なものである。任意の順序におけるフラッシュバックエントリを適用する能力は、フラッシュバックエントリを並行して与えることができるシステムにおいて特に有益であり、これによって回復動作の効率をさらに増加させる。たとえば、適用される必要があるフラッシュバックエントリのサブセットは複数のプロセスに分散され得る。これらのプロセスの各
々は、次に、他のプロセスと最小調整された割当てられたフラッシュバックエントリを適用し得る。
上述のように、一実施例において、各ゲートマーカは生理的なやり直しログにおける位置(「やり直しポインタ」)へのポインタを含む。具体的には、ゲートマーカに記憶されたやり直しポインタは、リポジトリがゲートマーカに関連したゲートに復元された後でやり直しの記録を処理し始めるための生理的なやり直しログ250における位置を示している。たとえば、リポジトリが時間T550に戻されると考える。物理的な回復段階の間に、目標時間T550におけるまたはその前の第1のゲートが識別される。現在の例において、ゲートマーカの連鎖は、時間T500に対応するマーカ202に戻って続く。ゲートマーカ202に続くフラッシュバックエントリを次に適用して、リポジトリを時間T500におけるその物理的な状態に復元する。
物理的な回復段階の後で、リポジトリは時間T500におけるまたはその前のブロックの物理的状態を反映する。結果として、T550の前に行なわれたトランザクションによってなされた変更の一部は、時間T500におけるリポジトリの物理的状態に反映されない。このような変更を反映させるために、生理的やり直しの記録が与えられ、これはゲートマーカ202のやり直しポインタによって示されたやり直しログ250における位置で始まる。やり直しの記録の適用例は、リポジトリにおける論理的なデータ項目を時間T550の時点の一貫した状態へとロールする。さらに、生理的回復段階の間に、生理的取消しを用いて、論理的なデータ項目から、(1)物理的な画像にあるが(2)時間T550の時点でまだ行なわれていないトランザクションによってなされたいかなる更新も除去する。
複数サーバシステム
いくつかのデータベースシステムにおいて、複数データベースサーバは、同じデータベースへのアクセスを有し得る。一実施例に従うと、データベースへのアクセスを有するデータベースサーバの各々は、フラッシュバックログおよび生理的やり直しログを含むデータベースを回復するためのその独自のログの組を維持する。さまざまなデータベースサーバは、分離した生理的取消しログを有し得るか、またはすべてのデータベースサーバのための単一の共有された生理的な取消しログがあるかもしれない。データベースを前の状態に復元するために、すべてのサーバのすべてのログからの回復の情報が要求され得る。たとえば、特定のゲートG3の後で、1つのサーバS1はブロックB1へのゲート後の最初の更新を実行し得、別のサーバS2はブロックB2へのゲート後の最初の更新を実行し得、さらに別のサーバS3はブロックB3へのゲート後の最初の更新を実行し得る。このような状況下で、データベースがゲートG3に復元された場合に、S1のフラッシュバックログからのフラッシュバックの記録がB1に適用されなければならず、S2のフラッシュバックログからのフラッシュバックの記録がB2に適用されなければならず、S3のフラッシュバックログからのフラッシュバックの記録がB3に適用されなければならない。
残念ながら、さまざまなサーバ間の通信は即時のものではない。サーバ間通信における遅れは、ゲートの設定に関する同期の問題を引起こすおそれがある。たとえば、サーバS1は午後5時に関連付けられるゲートG3を設定すると考える。サーバ間通信が即時でない場合に、午後5時のサーバS1はゲートG3を公開し得、S2およびS3は、G3の後にすべてのゲート後の最初の更新のためのフラッシュバックエントリを適切に生成し始める。しかしながら、G3の通知は、午後5時の1秒後までにS2に、および午後5時の3秒後までにS3に到達しないかもしれない。結果として、G3は、午後5時および午後5時の1秒後の間のS2によってなされた更新のためのフラッシュバックエントリを欠いている。同様に、G3は、午後5時および午後5時の3秒後の間のS3によってされれた更新のフラッシュバックのエントリを欠いている。
一実施例に従うと、この同期化の問題は、2段階のプロセスを用いたゲートを確立することによって対処される。第1の段階の間に、「コーディネータ」に指定されたサーバは、「ログの開始」メッセージをすべての他のサーバに送信する。ログの開始メッセージに応答して、互いのサーバは、(1)コーディネータにそのフラッシュバックログにおける現在の挿入点の位置を示す応答メッセージを送信し、(2)それが生成するすべての更新についてのフラッシュバックエントリを生成し始める。
たとえば、S2がS1からのログの開始メッセージを受信し、S2のフラッシュバックログにおける現在の挿入点がS2−POS1であると考える。ログの開始メッセージに応答して、S2は、(1)その現在の位置S2−POS1を示すS1に対する応答を送信し、(2)それが行なうすべての更新のためのフラッシュバックエントリを生成し始める。同様に、S3がS1からのログの開始メッセージを受信するときにS3のフラッシュバックログにおける現在の挿入点がS3−POS1である場合に、ログの開始メッセージに応答して、S3は、(1)その現在の位置S3‐POS1を示すS1への応答を送信し、(2)それが行なうすべての更新のためのフラッシュバックエントリを生成し始める。
コーディネータが他のサーバのすべてからの応答を受信したときに、コーディネータは、(1)最後の応答が受信された時間よりも早くない時間に関連したゲートを設定し、(2)そのゲートのためのマーカを生成する。たとえば、S1が午後5時に最後の応答を受信し、午後5時に関連したゲートG3を設定するものと考える。ゲートを設定した後で、コーディネータは「ゲートが設定された」というメッセージを他のサーバに送信する。ゲート設定のメッセージは、新しいゲートに関連する新しい時間を示す。新しいゲートのために設定された時間は必ずサーバがフラッシュバックエントリを開始し始める時間の後であるために、フラッシュバックエントリは、いつゲート設定のメッセージを受信するかにかかわらず、サーバによってなされたすべてのゲート後の最初の変更のために存在する。
ゲート設定のメッセージの受信に応答して、他のサーバは、すべての更新のためのフラッシュバックエントリの生成をやめ、ゲート後の最初の更新のみのためのフラッシュバックエントリを生成し始める。現在の例に戻ると、S2およびS3は、G3が午後5時に設定されたことを示すS1からのゲート設定のメッセージを受信する。S2およびS3は、すべての更新のためのフラッシュバックエントリの生成を止め、午後5時の後のいかなる所与のブロックになされた最初の更新のためのフラッシュバックエントリを生成し始める。
上述の2段階のゲート生成技術は、同期に関連付けられる問題を回避する。なぜなら、サーバがゲートに関連付けられた時間の後にゲート設定のメッセージを受信したとしても、サーバはゲートに関連付けられた時間とサーバがゲート設定のメッセージを受信する時間との間になされたいかなる変更のためのフラッシュバックエントリをも生成しているからである。たとえば、S2が午後5時1分にG3のためのゲート設定のメッセージを受信したとしても、S2は、ゲートG3に関連付けられた時間である午後5時以降になされたすべての更新のためのフラッシュバック情報を生成している。
上述のように、コーディネータは、それが設定するゲートのためのゲートマーカを生成する。一実施例に従うと、複数サーバ環境におけるゲートのために生成されるゲートマーカは、複数サーバの環境において、ゲートマーカがゲートに関連付けられる他のサーバのフラッシュバックログ内の位置を示すデータを含むということを除いては、単一のサーバ環境において生成されるゲートマーカと同様である。たとえば、S1のフラッシュバックログに記憶されたゲートG3のためのフラッシュバックマーカは、S2のフラッシュバックログにおけるS2−POS1、およびS3のフラッシュバックログにおけるS3POS
1を示すデータを含む。したがって、G3に基づく物理的な回復を行なうときに、G3のためのマーカは、S1,S2およびS3の各々のフラッシュバックログにおけるフラッシュバックエントリの処理をどこで始めるかを示す。
代替の実施例において、特定のゲートのためのゲートマーカは分離したフラッシュバックログの各々に配置され得る。たとえば、S1のフラッシュバックログに記憶されたゲートG3のためのフラッシュバックマーカは、ゲートG3に関連付けられたS1のフラッシュバックログ内の位置を示す。ゲートG3のための別々のフラッシュバックマーカは、S2のフラッシュバックログに記憶され、位置S2−POS1を示す。ゲートG3のさらに別のフラッシュバックマーカは、S3のフラッシュバックログに記憶され、位置S3−POS1を示す。
単一のゲートマーカを用いてすべてのサーバのためのゲート位置を示す実施例に従うと、サーバは、それぞれのフラッシュバックログにおける現在の位置および生理的やり直しログにおける現在の位置の双方を送信することによってログの開始メッセージに応答する。双方の情報はゲートのためのマーカに記憶され得る。結果として、データベースがゲートに基づいて前の物理的な状態に復元されるときに、ゲートマーカにおける情報は、さまざまなフラッシュバックログにおいてどこでフラッシュバックエントリの処理をし始めるかだけでなく、さまざまな生理的やり直しログ内のどこでやり直しエントリを処理し始めるかを示す。
タイミング
リポジトリの完全性を保証するために、或る動作が特定のシーケンスで行なわれなければならない。一実施例によって用いられるフラッシュバックログの維持動作に適用可能なタイミング依存は以下のものを含む。:
ブロックの更新前の画像を含むフラッシュバックエントリは、ブロックの更新されたコピーが不揮発性メモリにフラッシュさせるときまたはその前に、不揮発性メモリにフラッシュされなければならない。たとえば、図1Cを参照すると、フラッシュバックエントリ136は、ブロック120の修正されたコピー124がリポジトリ112にフラッシュされるときまたはその前に、フラッシュバックログ106にフラッシュされなければならない。
ブロックの前の画像に反映されたすべての変更のためのやり直しエントリは、前の画像を含むフラッシュバックエントリが不揮発性メモリにフラッシュされるときまたはその前に不揮発性メモリにフラッシュされなければならない。たとえば、ブロックB1が午後4時49分に更新されて、やり直しの記録R1が生成されると考える。さらにフラッシュバックのエントリF1がブロックB1へのゲート後の最初の更新のために生成され、ここでF1の生成を引起こしたゲートG3は午後5時に関連付けられていると考える。このような状況下で、F1に含まれるB1の前の画像は、午後4時49分に生成された変更を反映する。結果として、R1は、F1が不揮発性メモリにフラッシュされるときまたはその前に、不揮発性メモリにフラッシュされなければならない。
変更を反映する前の画像が不揮発性メモリへのフラッシュされる前に、変更のためのやり直しが不揮発性メモリへフラッシュされることを保証するための1つの技術は、ゲートが設定されるときに、ゲートの前になされた変更に関連付けられた、不揮発性記憶装置のすべてのやり直しへのフラッシュを含む。したがって、G3が午後5時に設定されると、午後5時前に行なわれた変更に関連するすべてのやり直しは不揮発性記憶装置にフラッシュされる。結果として、G3のためのフラッシュバックエントリは、やり直しの情報が不揮発性メモリにまだ反映されていないいかなる変更も反映しない。
最適化
本明細書に記載したような回復動作の実行を向上さるためのさまざまな技術を使用し得る。たとえば、ブロックB1にはデータがまだ記憶されていないと考える。B1への最初の更新がゲート後の最初の更新である場合に、フラッシュバックエントリがB1の更新前の画像とともに生成される。しかしながら、この場合、B1の更新前の画像はいかなる有益な情報も含まない。したがって、ゲート後の最初の更新が、保持される必要のあるいかなる情報も記憶しないブロックに対してなされるときに、特定のフラッシュバックエントリが生成される。特別のフラッシュバックエントリは、ブロックの完全な更新前の画像を含まないが、単にブロックを識別し、ブロックが必要とされるいかなる情報も含まないことを示す。
別の例として、INSERT(挿入)動作等のいくつかの状況で、ゲート後の最初の更新がブロックに対して行なわれるときにブロックの先行のバージョンが不揮発性メモリにまだ存在しないかもしれない。これらの状況下で、ブロックの前の画像は通常、更新のためのフラッシュバックエントリを生成するために不揮発性の記憶から読み出さなければならない。しかしながら、ブロックの前の画像が、記憶されなければならないいかなる情報も含まないことがわかっていれば、不揮発性記憶装置から前の画像を読出す必要性は回避され得る。一実施例に従うと、ブロックが後でドロップされる(テーブル等の)構造のためのデータを以前に記憶していた場合、その構造がデータベースが復元され得る最も古いゲートに関連付けられた時間の前にドロップされたかどうかが決定される。データベースが復元され得る最も古いゲートに関連付けられた時間よりも前に構造がドロップされた場合に、前の画像はディスクから読み出される必要はない。代わりに、特別のフラッシュバックエントリを用いてブロックを識別し、ブロックがいかなる必要とされる情報も含まないことを示す。
たとえば、ブロックが1週間前にドロップされたテーブルの一部を以前に記憶しかつデータベースに必要とされる最も古いゲートが2日前である場合に、ブロックは、データベースが復元され得る最も古いゲートに関連付けられた時間よりも前に低下された構造に属していた。結果として、ブロックの前の画像を含まない特別のフラッシュバックエントリがブロックのために用いられ得る。
リソースを保存するために用いられ得る別の技術は、物理的および生理的な取消しログを、リポジトリを一貫した状態に復元するのに十分な情報を含む単一の取消しログへと結合することを含む。結合された取消しログの使用は、別々の物理的な取消しログおよび生理的な取消しログに維持される情報間のかなりの量の冗長性を回避することができる。代わりに、このような冗長性は、生理的な取消しがブロックを前の状態に復元させるのに十分な情報を有さない状況においてのみフラッシュバックエントリを生成することによって回避することができる。生理的な取消しが十分な情報を有さない特定の状況が実現化例によって異なり、たとえば更新されているブロックの特定の種類に依存し得る。
別の技術に従うと、ファイルに関するヘッダ情報を含むブロックは、ファイルのコンテントをなすデータを記憶するブロックとは異なった方法で処理される。一実施例に従うと、ファイルヘッダブロックのために生成されたフラッシュバックエントリは、ヘッダブロックの全体的な前の画像を含まない。むしろ、ファイルヘッダブロックのためのフラッシュバックエントリは、メタ変更をファイルに記述し、対応するファイルヘッダブロックを完全に重ね書きするというよりむしろ、ファイルに論理的に適用される。たとえば、このようなフラッシュバックエントリは、ファイルが特定の時点で拡張されたことを示し得る。このようなフラッシュバックエントリの適用は、ファイルをその元の境界に縮小することを含む。同様に、フラッシュバックエントリはファイルのリポジトリへの追加を示し得る。フラッシュバックエントリの適用例は追加されたファイルの削除を含む。
ハードウェアの概観
図3は、本発明の一実施例が実現され得るコンピュータシステム300を示すブロック図である。コンピュータシステム300は、バス302または情報を通信するための他の通信機構と、バス302に結合された、情報を処理するためのプロセッサ304とを含む。コンピュータシステム300は、バス302に結合された、プロセッサ304によって実行される情報および命令を記憶するための、ランダムアクセスメモリ(RAM)または他の動的記憶装置等の主記憶装置306を含む。主記憶装置306は、プロセッサ304によって実行される命令の実行の際に一時変数または他の中間情報を記憶するために使用され得る。コンピュータシステム300は、読取専用メモリ(ROM)308、またはバス302に結合された、プロセッサ304のための静的な情報および命令を記憶するための他の静的記憶装置をさらに含む。情報および命令を記憶するための磁気ディスクまたは光ディスク等の記憶装置310が提供され、バス302に結合される。
コンピュータシステム300は、バス302を介してコンピュータユーザへの情報を表示するための陰極線管(CRT)等のディスプレイ312に結合され得る。英数字キーおよび他のキーを含む入力装置314は、プロセッサ304への情報および命令の選択を通信するためにバス302に結合される。他の種類のユーザ入力装置は、マウス、トラックボール、またはプロセッサ304への方向情報およびコマンドの選択を通信するためのおよびディスプレイ312上のカーソルの動きを制御するためのカーソル方向キー等のカーソルコントロール316である。この入力装置は、典型的に装置が平面における位置を特定するのを可能にする2つの軸、第1の軸(たとえばx)および第2の軸(たとえばy)における2つの自由度を有する。
本発明は、本明細書に記載された技術を実現するためのコンピュータシステム300の使用に関する。本発明の一実施例に従うと、これらの技術は、主記憶装置306に含まれる1つ以上の命令の1つ以上のシーケンスを実行するプロセッサ304に応答して、コンピュータシステム300によって行なわれる。このような命令は、記憶装置310等の別のコンピュータが読取可能な媒体から主記憶装置306へと読出され得る。主記憶装置306に含まれる命令のシーケンスの実行によってプロセッサ304は本明細書に記載されるステップを実施する。代替の実施例において、配線回路をソフトウェアの命令の代わりにまたはそれと組合わせて用いて本発明を実現し得る。したがって、本発明の実施例はハードウェア回路およびソフトウェアのいかなる特定の組合せにも制限されない。
本明細書で用いられる「コンピュータが読取可能な媒体」という用語は、実行のために命令をプロセッサ304に与えることに関与するいかなる媒体のことも指す。このような媒体は、不揮発性媒体、揮発性媒体、および送信媒体を含むがこれらに制限されない多くの形態をとり得る。不揮発性媒体は、たとえば記憶装置310等の光ディスクまたは磁気ディスクを含む。揮発性媒体は、主記憶装置306等のダイナミックメモリを含む。送信媒体は、バス302を含むワイヤを備えた、同軸ケーブル、銅線および光ファイバを含む。送信媒体は、電波および赤外のデータ通信の際に生成されるような音波または光波の形態を取ることもできる。
コンピュータが読取可能な媒体の共通の形態は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープまたはいかなる他の磁気媒体、CD‐ROM、いかなる他の光学媒体、せん孔カード、紙テープ、孔のパターンを有するいかなる他の物理的な媒体、RAM、PROM、およびEPROM、FLASH−EPROM、いかなる他のメモリチップまたはカートリッジ、以下に記載されるような搬送波、またはコンピュータが読み出すことのできるいかなる他の媒体を含む。
コンピュータが読取可能な媒体のさまざまな形態は、実行のために1つ以上の命令の1つ以上のシーケンスをプロセッサ304に運ぶことを含み得る。たとえば、命令は最初にリモートコンピュータの磁気ディスクで運ばれ得る。リモートコンピュータは、命令をそのダイナミックメモリにロードし、モデムを用いて電話回線上で命令を送信する。コンピュータシステム300にローカルなモデムは、電話回線上でデータを受信し、赤外線送信機を用いてデータを赤外線信号に変換する。赤外線検出器は、赤外線信号内で運ばれるデータを受信することができ、適切な回路はデータをバス302上に配置することができる。バス302はデータを主記憶装置306に運び、そこからプロセッサ304は命令を検索し実行する。主記憶装置306によって受信された命令は、プロセッサ304による実行の前または後のいずれかに記憶装置310上に選択的に記憶され得る。
コンピュータシステム300は、バス302に結合された通信インターフェイス318を含む。通信インターフェイス318は、ローカルネットワーク322に接続されたネットワークリンク320に結合する双方向データ通信を提供する。たとえば、通信インターフェイス318は、対応する種類の電話回線へのデータ通信接続を与えるための統合デジタル通信サービス網(ISDN)カードまたはモデムであってもよい。別の例として、通信インターフェイス318は、互換性のあるLANへのデータ通信接続を与えるためのローカルエリアネットワーク(LAN)カードであってもよい。無線リンクを実現してもよい。いかなるこのような実現化例において、通信インターフェイス318は、さまざまな種類の情報を表わすデジタルデータストリームを運ぶ電気的、電磁的または光学的な信号を送受信する。
ネットワークリンク320は、典型的に、他のデータ装置への1つ以上のネットワークを通したデータ通信を提供する。たとえば、ネットワークリンク320は、ローカルネットワーク322を通したホストコンピュータ324への、またはインターネットサービスプロバイダ(ISP)326によって運営されるデータ機器への接続を提供し得る。ISP326は、さらに、現在一般に「インターネット」328と呼ばれる世界的なパケットデータ通信ネットワークを介したデータ通信サービスを提供する。ローカルネットワーク322およびインターネット328の双方は、デジタルデータストリームを運ぶ電気的、電磁的または光学的な信号を用いる。さまざまなネットワークを介した信号、ならびにコンピュータシステム300へのおよびコンピュータシステムからのデジタルデータを運ぶ、ネットワークリンク320上の信号および通信インターフェイス318を介した信号は、情報を送信する搬送波の例示の形態である。
コンピュータシステム300は、ネットワーク、ネットワークリンク320および通信インターフェイス318を介して、プログラムコードを含むメッセージを送信しこれを含むデータを受信することができる。インターネットの例において、サーバ330は、インターネット328、ISP326、ローカルネットワーク322および通信インターフェイス318を介したアプリケーションプログラムのために要求されるコードを送信し得る。
受信されたコードは、受信されるとプロセッサ304によって実行され得、および/または後で実行するために記憶装置310または他の不揮発性記憶装置に記憶される。この態様で、コンピュータシステム300は搬送波の形態をしたアプリケーションコードを取得し得る。
前述の説明において、本発明の実施例は、実現化例によって異なり得る複数の特定の詳細を参照して記載してきた。したがって、本発明がどのようなものであるかおよび出願人によって本発明として意図されるものが何かを唯一および排他的に示すものはクレームの
組であり、このクレームの組は、後に続くいかなる修正も含むクレームが発する特定の形態でこの出願から発せられるものである。このようなクレームに含まれる用語のための本明細書で明白に述べられたいかなる定義も、クレームで用いられるようなこのような用語の意味を決定する。したがって、クレームにおいて明白に挙げられていない制限、要素、特性、特徴、利点または属性はこのようなクレームの範囲を決して制限するべきではない。したがって、明細書および図面は、限定的な意味ではなく例示的な意味でみなされるべきである。
本発明の一実施例に従ったフラッシュバックログを有するシステムを示すブロック図である。 本発明の一実施例に従ったフラッシュバックログを有するシステムを示すブロック図である。 本発明の一実施例に従ったフラッシュバックログを有するシステムを示すブロック図である。 本発明の一実施例に従ったフラッシュバックログで実現されるゲートマーカを示すブロック図である。 本発明の実施例が実現され得るコンピュータシステムのブロック図である。

Claims (21)

  1. リポジトリに記憶されているデータを最新の論理状態の前である第1の論理状態に戻す方法であって、前記リポジトリに記憶されている前記データの前記第1の論理状態は、第1の時点において存在していたものであり、前記方法は、コンピュータシステムの1つ以上のプロセッサによって実行され、前記データを前記第1の論理状態に戻すことは、コンピュータで実行される以下のステップを含み、前記以下のステップは、
    前記リポジトリにおけるデータを持続的に記憶する1つ以上のブロックに第1の取消しを適用するステップを含み、前記第1の取消しは、物理的な取消しであり、
    1つ以上のブロックはリポジトリにおけるすべてのブロックの部分集合であり、
    前記物理的な取消しは、記憶の単位である前記1つ以上のブロックを、前記最新の論理状態の前にある第2の論理状態に戻すのに必要な情報を含み、
    前記物理的な取消しは、前記第2の論理状態の第2の時点において、前記1つ以上のブロックのコピーを含み、
    物理的な取消しの適用によって、前記1つ以上のブロックの各々は前記第2の論理状態を反映し、前記以下のステップはさらに、
    前記物理的な取消しを適用するステップの後に、第2の取消し、または、前記第2の論理状態を反映する前記1つ以上のブロックの部分集合に存在する論理的なデータ項目に対するやり直し、の少なくとも1つを適用して、前記論理的なデータ項目を、前記第1の時点における前記1つ以上のブロックの部分集合に存在する論理的なデータ項目に反映させるステップを含み、
    前記第2の取消しは、前記論理的なデータ項目になされた変更の取消しの仕方に関する情報を含み、前記やり直しは、前記論理的なデータ項目への変更の再実行の仕方に関する情報を含む、方法。
  2. 物理的な取消しを適用する前記ステップは、物理的な取消しの記録を、前記コンピュータシステムの複数のプロセスに割当てるステップを含み、
    前記複数のプロセスは、前記物理的な取消しの記録を互いに対して平行に適用する、請求項1に記載の方法。
  3. 物理的な取消しを適用する前記ステップは、前記リポジトリにおけるブロックに前記第1の時点よりも前の時間を反映させ、
    第2の取消しまたはやり直しのうちの少なくとも1つを適用する前記ステップは、前記論理的なデータ項目が前記第1の時点において存在していたときに前記論理的なデータ項目を反映するために、前記論理的なデータ項目を修正するための前記やり直しを適用するステップを含む、請求項1に記載の方法。
  4. 第2の取消しまたはやり直しのうちの少なくとも1つを適用する前記ステップは、前記やり直しを適用した後に、前記第1の時点にまたはそれよりも前に行なわれなかったトランザクションによってなされた変更を前記論理的なデータ項目の少なくとも一部から除去するために、前記第2の取消しを適用するステップを含む、請求項3に記載の方法。
  5. 前記物理的な取消しは、第1の物理的な取消しと、第2の物理的な取消しとを含み、
    前記第1の物理的な取消しは、特定の時点に対応するゲートに関連付けられており、前記ゲートは、物理的な取消しが生成される特定の時点であり、
    前記第2の物理的な取消しは、前記ゲートの前に来る先行するゲートに関連付けられており、
    前記物理的な取消しを前記1つ以上のブロックに適用する前記ステップは、
    前記1つ以上のブロックの第1の組に、前記第1の物理的な取消しを適用するステップを含み、
    前記1つ以上のブロックの第2の組に、前記第2の物理的なやり直しを適用するステップを含む、請求項1に記載の方法。
  6. 前記第1のおよび第2の物理的な取消しを適用する前に、
    前記先行するゲートの後になされた必ずしもすべてではない、いくつかの先行するゲート後の最初の更新のための前記第2の物理的な取消しを生成するステップと、
    物理的な取消しが前記先行するゲートの後に生成された、ブロックに対してなされた更新を除く、前記ゲートの後になされたすべてのゲート後の最初の更新のための前記第1の物理的な取消しを生成するステップとをさらに含む、請求項5に記載の方法。
  7. 前記先行するゲート後の最初の更新が行なわれると、前記コンピュータシステムのリソースの可用性に基づいて先行するゲート後の最初の更新のための第3の物理的な取消しを生成するかどうかを決定するステップをさらに含む、請求項6に記載の方法。
  8. 前記物理的な取消しを適用する前に、
    特定の時点と関連したゲートに基づいて前記物理的な取消しを生成するステップと、
    ログにおける一連の記録として前記物理的な取消しを、前記コンピュータシステムに記憶するステップと、
    前記ゲートを前記ログにおける位置に関連付けるデータを、前記コンピュータシステムに記憶するステップとをさらに含む、請求項1に記載の方法。
  9. 前記ゲートを前記ログにおける位置と相互に関連付けるデータを記憶する前記ステップは、前記ゲートの各ゲートにつき前記ログ内にゲートマーカを記憶するステップを含む、請求項8に記載の方法。
  10. 前記リポジトリを前記ゲートに関連付けられた前記論理状態に戻すために、前記ログにおけるどの記録を処理するかを決定するために、ゲートに関連付けられた前記ゲートマーカを用いるステップをさらに含む、請求項9に記載の方法。
  11. 前記ゲートマーカはやり直しログにおける位置を示すデータを含み、
    前記方法は、前記やり直しログにおけるどのやり直しを処理するかを決定するために、前記やり直しログにおける前記位置を用いるステップをさらに含む、請求項9に記載の方法。
  12. 前記ゲートマーカは、前記ログにおける位置を示すデータを含み、
    前記方法は、前記ログにおけるどのエントリを処理するかを決定するために前記ログにおける前記位置を用いるステップをさらに含む、請求項9に記載の方法。
  13. 各ゲートマーカ内に前記ログにおける前のゲートマーカへのリンクを記憶するステップをさらに含む、請求項9に記載の方法。
  14. 複数のデータベースサーバは前記リポジトリにアクセスすることが可能であり、
    前記複数のデータベースサーバの各データベースサーバは、他のデータベースサーバによって維持される他のログに対して別個であって、かつ前記リポジトリに存在する前記ブロックの少なくとも一部のための物理的な取消し情報を含むログを維持する、請求項1に記載の方法。
  15. 前記物理的な取消しを適用する前に、以下のステップを実行することによってゲートを設定するステップをさらに含み、前記以下のステップは、
    前記複数のデータベースサーバのうちの1つをコーディネータに指定するステップと、
    前記コーディネータに、ログの開始メッセージを前記複数のデータベースサーバの互いに送信させるステップと、
    すべての更新のための物理的な取消しを生成することによって互いのデータベースサーバを前記ログの開始メッセージに応答させるステップと、
    前記ログの開始メッセージを送信した後で、前記コーディネータにゲート設定のメッセージを前記複数のデータベースサーバの互いに送信させるステップと、
    ゲート後の最初の更新のための物理的な取消しを生成することのみによって、互いのデータベースサーバを前記ゲート設定のメッセージに応答させるステップとを実行することによってゲートを設定するステップをさらに含む、請求項14に記載の方法。
  16. 互いのデータベースサーバは、応答を前記コーディネータに送信することによって前記ログの開始メッセージに応答し、
    前記コーディネータは、前記他のデータベースサーバのすべてのための応答を受信した後で前記ゲート設定のメッセージを送信する、請求項15に記載の方法。
  17. 互いのデータベースサーバによって送信された前記応答は、前記データベースサーバの別々のログ内の位置を示し、
    前記コーディネータは、前記ゲートを位置の情報に関連付けるデータを記憶し、
    前記位置の情報は、前記互いのデータベースサーバから受信された前記応答で示された前記位置を識別する、請求項16に記載の方法。
  18. 前記ゲートを位置情報に関連付けるデータを記憶する前記ステップは、前記コーディネータの別々のログ内に前記ゲートのためのマーカを記憶するステップを含み、前記マーカは前記互いのデータベースサーバから受信された前記応答において示された前記位置へのリンクを含む、請求項17に記載の方法。
  19. リポジトリに記憶されているデータを前の状態に復元するための方法であって、前記方法は、コンピュータシステムの1つ以上のプロセッサによって実行され、
    第1の時点に関連付けられた、先行するゲートを設定するステップと、
    前記リポジトリにおけるブロックに対してなされた必ずしもすべてではない、いくつかの先行するゲート後の最初の更新のための第1の物理的な取消しを生成するステップとを含み、各ブロックは記憶の単位であり、
    前記第1の時点よりも遅い第2の時点に関連付けられるゲートを設定するステップと、
    物理的な取消しが前記先行するゲートのために生成されたブロックに対してなされた更新を除く、前記リポジトリに記憶されているブロックに対してなされたすべてのゲート後の最初の更新のための第2の物理的な取消しを生成するステップと、
    前記リポジトリを以下のステップを行なうことによって少なくとも前記第2の時点と同じくらい昔の状態に復元するステップとを含み、以下のステップは、
    前記リポジトリのブロックの第1の組を前記第2の時点に先行する時間に復元するために前記先行するゲートに関連付けられる前記第1の物理的な取消しを用いるステップと、
    前記リポジトリのブロックの第2の組を前記第2の時点に復元するために前記ゲートに関連付けられる前記第2の物理的な取消しを用いるステップとを含む、方法。
  20. 前記先行するゲート後の最初の更新が行なわれると、前記コンピュータシステムのリソースの可用性に基づいて先行するゲート後の最初の更新のための物理的な取消しを生成するかどうかを決定するステップをさらに含み、前記決定するステップは、第1の物理的な取消しを生成する前記ステップの前に行なわれる、請求項19に記載の方法。
  21. 1つ以上のプロセッサによって実行されるときに、1つ以上のプロセッサに請求項1から20のいずれか1つに記載の方法を実行させる1つ以上のシーケンスの命令を記憶した、コンピュータが読取可能な媒体。
JP2006509576A 2003-04-30 2004-03-31 フラッシュバックデータベース Expired - Lifetime JP4594928B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/427,511 2003-04-30
US10/427,511 US7181476B2 (en) 2003-04-30 2003-04-30 Flashback database
PCT/US2004/010017 WO2004100020A2 (en) 2003-04-30 2004-03-31 Flashback database

Publications (2)

Publication Number Publication Date
JP2006525599A JP2006525599A (ja) 2006-11-09
JP4594928B2 true JP4594928B2 (ja) 2010-12-08

Family

ID=33310167

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006509576A Expired - Lifetime JP4594928B2 (ja) 2003-04-30 2004-03-31 フラッシュバックデータベース

Country Status (9)

Country Link
US (2) US7181476B2 (ja)
EP (1) EP1618475B1 (ja)
JP (1) JP4594928B2 (ja)
CN (2) CN101221573B (ja)
AU (1) AU2004237061B2 (ja)
CA (1) CA2521552C (ja)
DE (1) DE602004006404T2 (ja)
HK (1) HK1083652A1 (ja)
WO (1) WO2004100020A2 (ja)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10191922B2 (en) 1998-11-24 2019-01-29 Oracle International Corporation Determining live migration speed based on workload and performance characteristics
US9239763B2 (en) 2012-09-28 2016-01-19 Oracle International Corporation Container database
US20050022213A1 (en) * 2003-07-25 2005-01-27 Hitachi, Ltd. Method and apparatus for synchronizing applications for data recovery using storage based journaling
US8095511B2 (en) * 2003-06-30 2012-01-10 Microsoft Corporation Database data recovery system and method
US7756844B2 (en) * 2003-07-08 2010-07-13 Pillar Data Systems, Inc. Methods of determining and searching for modified blocks in a file system
US7836029B2 (en) * 2003-07-08 2010-11-16 Pillar Data Systems, Inc. Systems and methods of searching for and determining modified blocks in a file system
US7401093B1 (en) * 2003-11-10 2008-07-15 Network Appliance, Inc. System and method for managing file data during consistency points
US7721062B1 (en) 2003-11-10 2010-05-18 Netapp, Inc. Method for detecting leaked buffer writes across file system consistency points
US7930491B1 (en) * 2004-04-19 2011-04-19 Cisco Technology, Inc. Memory corruption detection system and method using contingency analysis regulation
US7421617B2 (en) 2004-08-30 2008-09-02 Symantec Corporation Systems and methods for optimizing restoration of stored data
US7664983B2 (en) 2004-08-30 2010-02-16 Symantec Corporation Systems and methods for event driven recovery management
US8566326B2 (en) 2004-11-05 2013-10-22 Oracle International Corporation High-performance log-based processing
US7747556B2 (en) 2005-02-28 2010-06-29 Microsoft Corporation Query-based notification architecture
US7440979B2 (en) * 2005-03-30 2008-10-21 Sap Ag Snapshots for instant backup in a database management system
US20070028231A1 (en) * 2005-08-01 2007-02-01 International Business Machines Corporation System and method for start menu and application uninstall synchronization
US10296629B2 (en) * 2006-10-20 2019-05-21 Oracle International Corporation Server supporting a consistent client-side cache
US9697253B2 (en) * 2006-10-20 2017-07-04 Oracle International Corporation Consistent client-side cache
US8224813B2 (en) * 2006-10-20 2012-07-17 Oracle International Corporation Cost based analysis of direct I/O access
US20080154842A1 (en) * 2006-12-20 2008-06-26 International Business Machines Corporation Enhanced relational database management system and method
JP2008165624A (ja) * 2006-12-28 2008-07-17 Hitachi Ltd 計算機システム及び第1記憶装置
US7873605B2 (en) * 2007-01-29 2011-01-18 Oracle International Corporation Apparatus to selectively remove the effects of transactions in online database and enable logical recovery
US8095827B2 (en) 2007-11-16 2012-01-10 International Business Machines Corporation Replication management with undo and redo capabilities
US20090319653A1 (en) * 2008-06-20 2009-12-24 International Business Machines Corporation Server configuration management method
US9043555B1 (en) * 2009-02-25 2015-05-26 Netapp, Inc. Single instance buffer cache method and system
US8332365B2 (en) * 2009-03-31 2012-12-11 Amazon Technologies, Inc. Cloning and recovery of data volumes
US8719226B1 (en) * 2009-07-16 2014-05-06 Juniper Networks, Inc. Database version control
US8793288B2 (en) * 2009-12-16 2014-07-29 Sap Ag Online access to database snapshots
US8484166B2 (en) * 2011-11-03 2013-07-09 Oracle International Corporation Oracle rewind: metadata-driven undo
US8527462B1 (en) * 2012-02-09 2013-09-03 Microsoft Corporation Database point-in-time restore and as-of query
US8694461B2 (en) * 2012-02-21 2014-04-08 American Express Travel Related Services Company, Inc. Systems and methods for interval control element chain architecture
US9928147B2 (en) 2012-09-28 2018-03-27 Oracle International Corporation Forceful closure and automatic recovery of pluggable databases in a shared-everything cluster multitenant container database
US10635674B2 (en) 2012-09-28 2020-04-28 Oracle International Corporation Migrating a pluggable database between database server instances with minimal impact to performance
US9396220B2 (en) 2014-03-10 2016-07-19 Oracle International Corporation Instantaneous unplug of pluggable database from one container database and plug into another container database
US10915549B2 (en) 2012-09-28 2021-02-09 Oracle International Corporation Techniques for keeping a copy of a pluggable database up to date with its source pluggable database in read-write mode
US8788461B2 (en) 2012-10-04 2014-07-22 Delphix Corp. Creating validated database snapshots for provisioning virtual databases
US8903779B1 (en) 2013-03-06 2014-12-02 Gravic, Inc. Methods for returning a corrupted database to a known, correct state
US9110847B2 (en) 2013-06-24 2015-08-18 Sap Se N to M host system copy
US9830372B2 (en) 2013-07-24 2017-11-28 Oracle International Corporation Scalable coordination aware static partitioning for database replication
US9767178B2 (en) 2013-10-30 2017-09-19 Oracle International Corporation Multi-instance redo apply
CN103617277A (zh) * 2013-12-09 2014-03-05 山东瀚高基础软件股份有限公司 一种还原误删除的数据表内容的方法
US9779128B2 (en) * 2014-04-10 2017-10-03 Futurewei Technologies, Inc. System and method for massively parallel processing database
US10491695B2 (en) * 2014-08-22 2019-11-26 Oracle International Corporation Autosave with across user session undo support
US9558078B2 (en) 2014-10-28 2017-01-31 Microsoft Technology Licensing, Llc Point in time database restore from storage snapshots
US9804935B1 (en) 2015-01-26 2017-10-31 Intel Corporation Methods for repairing a corrupted database to a new, correct state by selectively using redo and undo operations
US9830223B1 (en) 2015-01-26 2017-11-28 Intel Corporation Methods for repairing a corrupted database to a new, correct state
CN104778228B (zh) * 2015-03-27 2018-08-07 百度在线网络技术(北京)有限公司 一种用于多方置位数据库的方法和装置
WO2016155002A1 (en) * 2015-04-03 2016-10-06 Yahoo! Inc. Method and system for data recovery in a data system
EP3089051B1 (en) * 2015-04-28 2018-04-11 Micro Systemation AB Database rollback using wal
US10635658B2 (en) 2015-10-23 2020-04-28 Oracle International Corporation Asynchronous shared application upgrade
WO2017070590A1 (en) 2015-10-23 2017-04-27 Oracle International Corporation Proxy databases
US10606578B2 (en) 2015-10-23 2020-03-31 Oracle International Corporation Provisioning of pluggable databases using a central repository
US10803078B2 (en) 2015-10-23 2020-10-13 Oracle International Corporation Ability to group multiple container databases as a single container database cluster
EP3365805B1 (en) 2015-10-23 2019-08-07 Oracle International Corporation Ability to group multiple container databases as a single container database cluster
US10789131B2 (en) 2015-10-23 2020-09-29 Oracle International Corporation Transportable backups for pluggable database relocation
US11657037B2 (en) 2015-10-23 2023-05-23 Oracle International Corporation Query execution against an in-memory standby database
WO2017070572A1 (en) 2015-10-23 2017-04-27 Oracle International Corporation Application containers for container databases
US11068437B2 (en) 2015-10-23 2021-07-20 Oracle Interntional Corporation Periodic snapshots of a pluggable database in a container database
US10747752B2 (en) 2015-10-23 2020-08-18 Oracle International Corporation Space management for transactional consistency of in-memory objects on a standby database
US10579478B2 (en) 2015-10-23 2020-03-03 Oracle International Corporation Pluggable database archive
US9747174B2 (en) * 2015-12-11 2017-08-29 Microsoft Technology Licensing, Llc Tail of logs in persistent main memory
US10387387B2 (en) 2015-12-17 2019-08-20 Oracle International Corporation Enabling multi-tenant access to respective isolated data sets organized using different application schemas
US10289617B2 (en) 2015-12-17 2019-05-14 Oracle International Corporation Accessing on-premise and off-premise datastores that are organized using different application schemas
CN106484906B (zh) * 2016-10-21 2020-01-10 焦点科技股份有限公司 一种分布式对象存储系统闪回方法及装置
US10891291B2 (en) 2016-10-31 2021-01-12 Oracle International Corporation Facilitating operations on pluggable databases using separate logical timestamp services
US11386058B2 (en) 2017-09-29 2022-07-12 Oracle International Corporation Rule-based autonomous database cloud service framework
US11567934B2 (en) 2018-04-20 2023-01-31 Oracle International Corporation Consistent client-side caching for fine grained invalidations
US11188516B2 (en) 2018-08-24 2021-11-30 Oracle International Corproation Providing consistent database recovery after database failure for distributed databases with non-durable storage leveraging background synchronization point
CN109918231B (zh) * 2019-02-28 2021-02-26 上海达梦数据库有限公司 数据重整的异常修复方法、装置、设备和存储介质
US11281670B2 (en) 2019-03-30 2022-03-22 Oracle International Corporation High-performance implementation of sharing of read-only data in a multi-tenant environment
CN110232093B (zh) * 2019-04-30 2021-04-13 武汉达梦数据库有限公司 数据库同步中基于闪回查询的初始化装载方法及设备
US12008014B2 (en) 2021-07-30 2024-06-11 Oracle International Corporation Data guard at PDB (pluggable database) level
US20240184674A1 (en) * 2022-12-02 2024-06-06 Microsoft Technology Licensing, Llc Database reversion with backup data structures

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US116404A (en) * 1871-06-27 Improvement in spurs
US61537A (en) * 1867-01-29 Improvement in nut
US5369764A (en) * 1990-04-25 1994-11-29 Blair; Gary L. Method for sharing access to database elements in a data processing system
US5530855A (en) * 1992-10-13 1996-06-25 International Business Machines Corporation Replicating a database by the sequential application of hierarchically sorted log records
JP2783109B2 (ja) * 1993-03-04 1998-08-06 三菱電機株式会社 データベースシステム退避装置及びデータベースシステム復元装置及びデータベースシステム移行装置
GB2276737A (en) 1993-03-30 1994-10-05 Ibm Fault-tolerant transaction-oriented data processing
US5778165A (en) * 1995-10-20 1998-07-07 Digital Equipment Corporation Variable-level backup scheduling method and apparatus
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
US5850507A (en) 1996-03-19 1998-12-15 Oracle Corporation Method and apparatus for improved transaction recovery
US5857204A (en) * 1996-07-02 1999-01-05 Ab Initio Software Corporation Restoring the state of a set of files
KR100212447B1 (ko) 1996-11-22 1999-08-02 정선종 재수행 단계에서 종료한 트랜잭션 처리 기법을 이용한 댕글링 트랜잭션 발생 방지 방법
KR100198805B1 (ko) * 1996-11-22 1999-06-15 정선종 분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법
US5996088A (en) * 1997-01-22 1999-11-30 Oracle Corporation High-speed database checkpointing through sequential I/O to disk
JP4128641B2 (ja) * 1997-10-13 2008-07-30 株式会社東芝 データ退避方法
US7107395B1 (en) * 1998-12-31 2006-09-12 Emc Corporation Apparatus and methods for operating a computer storage system
US7043504B1 (en) * 2000-04-10 2006-05-09 International Business Machines Corporation System and method for parallel primary and secondary backup reading in recovery of multiple shared database data sets
KR100390853B1 (ko) 2000-06-07 2003-07-10 차상균 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치
CA2453082A1 (en) * 2001-07-06 2003-01-16 Computer Associates Think, Inc. Systems and methods of information backup
US7305421B2 (en) 2001-07-16 2007-12-04 Sap Ag Parallelized redo-only logging and recovery for highly available main memory database systems
US7300603B2 (en) * 2003-08-05 2007-11-27 Rohm And Haas Electronic Materials Cmp Holdings, Inc. Chemical mechanical planarization compositions for reducing erosion in semiconductor wafers

Also Published As

Publication number Publication date
US20040220961A1 (en) 2004-11-04
AU2004237061B2 (en) 2008-10-09
CN101221573A (zh) 2008-07-16
US7181476B2 (en) 2007-02-20
US7631018B2 (en) 2009-12-08
AU2004237061A1 (en) 2004-11-18
HK1083652A1 (en) 2006-07-07
WO2004100020A2 (en) 2004-11-18
WO2004100020A3 (en) 2005-07-07
CA2521552A1 (en) 2004-11-18
JP2006525599A (ja) 2006-11-09
CN101221573B (zh) 2012-05-02
EP1618475B1 (en) 2007-05-09
CN1781081A (zh) 2006-05-31
CA2521552C (en) 2010-08-03
US20070244918A1 (en) 2007-10-18
CN100375048C (zh) 2008-03-12
EP1618475A2 (en) 2006-01-25
DE602004006404D1 (de) 2007-06-21
DE602004006404T2 (de) 2008-01-10

Similar Documents

Publication Publication Date Title
JP4594928B2 (ja) フラッシュバックデータベース
US9575849B2 (en) Synchronized backup and recovery of database systems
US7904425B2 (en) Generating backup sets to a specific point in time
US8005795B2 (en) Techniques for recording file operations and consistency points for producing a consistent copy
US8127174B1 (en) Method and apparatus for performing transparent in-memory checkpointing
US8060714B1 (en) Initializing volumes in a replication system
US7032089B1 (en) Replica synchronization using copy-on-read technique
US8176276B2 (en) Techniques for producing a consistent copy of source data at a target location
US7882286B1 (en) Synchronizing volumes for replication
JP4477950B2 (ja) リモートコピーシステム及び記憶装置システム
US7788458B2 (en) Checkpoint and consistency markers
JP4291060B2 (ja) トランザクション処理方法,トランザクション制御装置およびトランザクション制御プログラム
US7908515B1 (en) Methods and apparatus for action regulation for continuous data replication systems
JP2007140700A (ja) 計算機システム及び管理計算機とストレージシステム並びにバックアップ管理方法
JP2009539178A (ja) 頻繁なアプリケーション整合バックアップの効率的な作成
JP2008181287A (ja) データのリカバリを制御する装置及び方法
JP5292351B2 (ja) メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム
US20110282843A1 (en) Method and system for data backup and replication
US12086037B2 (en) Scalable low-loss disaster recovery for data stores
US8689043B1 (en) Fast failover with multiple secondary nodes
JP5292350B2 (ja) メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム
US7856419B2 (en) Method and system for storage replication
US11042454B1 (en) Restoration of a data source
US8799211B1 (en) Cascaded replication system with remote site resynchronization after intermediate site failure
US9424261B2 (en) Techniques to take clean database file snapshot in an online database

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100420

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100716

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100819

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100914

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100917

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

Free format text: PAYMENT UNTIL: 20130924

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4594928

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term