JP4598821B2 - データベース復旧中のスナップショットクエリのためのシステムおよび方法 - Google Patents

データベース復旧中のスナップショットクエリのためのシステムおよび方法 Download PDF

Info

Publication number
JP4598821B2
JP4598821B2 JP2007506125A JP2007506125A JP4598821B2 JP 4598821 B2 JP4598821 B2 JP 4598821B2 JP 2007506125 A JP2007506125 A JP 2007506125A JP 2007506125 A JP2007506125 A JP 2007506125A JP 4598821 B2 JP4598821 B2 JP 4598821B2
Authority
JP
Japan
Prior art keywords
database
transaction
lock
incomplete
log file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007506125A
Other languages
English (en)
Other versions
JP2007531156A (ja
Inventor
ウェイ シャオ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2007531156A publication Critical patent/JP2007531156A/ja
Application granted granted Critical
Publication of JP4598821B2 publication Critical patent/JP4598821B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2074Asynchronous 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
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • 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/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • 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)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は一般にコンピュータデータベースの分野に関する。より詳細には、本発明は、復旧操作中にデータベースにアクセスすることに関する。
近年のビジネスは、顧客、サービス、供給業者、課金記録、在庫目録などの極めて重要な記録を保持するために、データベースに大きく依拠する場合がある。データベースハードウェアまたはソフトウェアに障害が起きたときは、データベースを使用する業務を継続できるようにデータベースを復旧することが絶対に必要になる。非常に大きなデータベースでは、復旧には時間およびコストがかかる場合がある。一般に、既存の技法は復旧段階の間にデータベースにアクセスする方法を提供しないので、復旧中はアクセスが制限されることがある。
図1に、データベースの復旧タイムライン100を示す。復旧の3つの段階は、分析段階105(AからB)、リドゥ(redo)段階110(BからC)、アンドゥ(undo)段階115(BからC)である。分析段階105は一般に、データベースに関連するログファイルを読み取って分析することを含む。ログファイルはデータベース操作に伴って生成されることが多く、例えば、データベース更新操作中に、ログファイルはデータベースに対して行われるトランザクションを記録する。これらのトランザクションは、読取り操作を開始して書込み操作で終わる場合がある。しかし、書込みデータがデータベースにコミットされる前に、ディスククラッシュなどのデータベースイベントが生じることがある。そのため、ログファイルは、コミットされたトランザクションとコミットされていないトランザクションの両方を含む場合がある。データベース復旧の分析段階105は、通常、ログファイル上のすべてのトランザクションを読み取ることを含む。
データベース復旧タイムライン100のリドゥ段階110では、ログファイルのエントリをデータベースと比較する。ログファイル中のトランザクションがデータベース中で表されている場合は、トランザクションログファイル中の次のエントリを調べる。ログファイル中にあるトランザクションがデータベース中にない場合は、復旧プロセスの一部として、リドゥ段階でトランザクションログをデータベースファイルに再適用して、トランザクションを記録する。しかし、再入力されたトランザクションは、データベースにコミットされたことがなかったために不完全である場合がある。また、すでにデータベース中にあり再入力する必要のないトランザクションも、不完全な場合がある。
コミットされなかったトランザクションをデータベースから選択的に削除することによって、データベース再構築は、復旧操作後には、トランザクション一貫性のある形をもたらすことができる。データベース復旧のアンドゥ段階115では、ログファイルがトランザクションのコミットメントのレコードを有さない場合に、トランザクションをデータベースからロールバックする。したがって、コミットされなかったトランザクションは削除され、それによりデータベース復旧は、一貫したコミット済みトランザクションのセットをもたらすことができる。
図1のデータベース復旧方式を使用するいくつかの従来技術システムは、アンドゥ段階115の後になるまで、データベースへのアクセスを可能にすることができない。すなわち、従来技術のシステムは、すべての復旧操作が完了するまではデータベースへのアクセスを可能にすることができない。従来技術のシステムは、復旧タイムライン100中の時点Dの後でのみ、アクセスを可能にする。
2003年6月23日に出願された「RESYNCHRONIZATION OF MULTIPLE COPIES OF A DATABASE AFTER A DIVERGENCE IN TRANSACTION HISTORY」という名称の特許出願第10/602283号明細書
したがって、アクセス可能性のためにより早期にデータベース復旧タイムライン中に入るのを可能にすることのできるアーキテクチャおよび方法が必要とされている。本発明は、前述の必要性に対処するものであり、本明細書に述べる追加の利点によってこれらを解決する。
本発明は、データベースの復旧中にデータベースへのアクセスを可能にする方法を含む。一実施形態では、方法は、ログファイルを読み取り、どのトランザクションを復旧操作の一部としてデータベースに入力する必要があるかを決定することを含む。不完全なトランザクションはリドゥロックをアサートし、このリドゥロックは、ロールバック(アンドゥ)操作が完了するまでアサートされたままである。本発明の一態様によれば、クエリがクエリ中で要求されたデータ項目のロックをテストするという条件で、復旧のアンドゥ段階の間にデータベースへのアクセスを行うことができる。データ項目がリドゥロックを有する場合は、クエリはこれらのデータ項目のリドゥロックが除去されるまで待機する。通常の書込みタイプのロックなど、他のロックの場合は、クエリは照会されたデータの前バージョンを読み取ることができるので、アクセスを遅延させることはない。
本発明の別の実施形態では、未入力トランザクションが入力されたときにバージョンを生成した場合、データベースが復旧段階にある間にクエリにアクセスを提供することができる。復旧のロールバック段階の間、バージョンストアへのクエリアクセスを提供することによって、クエリによるアクセスを達成することができる。バージョンストアは、データベース項目のバージョンを記憶するための位置である。照会されたデータ項目のコミット時刻をチェックすることができ、ロックされているデータ項目をクエリがバージョンストアから取り出すようにすることができる。そうでない場合、照会された項目はデータベースから取り出すことができる。
本発明の一実施形態では、本発明のバージョニング態様により、復旧に使用されるミラーデータベースシステムがロールバック復旧操作中にミラーデータベースへのアクセスを許可することができ、ロックされているデータ項目は、クエリに入手可能な、データの前バージョンを有する。この、データベースへの早期アクセスの態様は、可用性、同時実行性、および本明細書に述べるその他の利点をもたらす。
前述の概要、ならびに以下の好ましい実施形態の詳細な説明は、添付の図面と共に読めばよりよく理解される。本発明の実施形態を例示するために、図面には本発明の例示的な構造を示す。ただし、本発明は、開示する特定の方法および手段に限定されない。
(概観)
本発明の一実施形態は、復旧のアンドゥ段階の間にデータベースへのアクセスを可能にする。図1を参照すると、従来技術のシステムは、時点Dの後でしか復旧を可能にしない。本発明のいくつかの実施形態は、時点Cでクエリのアクセス可能性を実現する。この早期アクセス可能性は、行レベルのバージョニングおよび行レベルのロッキングを採用する技法を用いることによって可能である。この技法を使用すると、アンドゥ段階の間にデータベースへのアクセスを必要とするユーザは、データに対するロックに留意してデータをデータベースとバージョンストアのどちらかから適切に採用することによって、トランザクション一貫性のあるデータをデータベースから読み取ることができる。
別の実施形態では、本発明の態様は、フェイルオーバ操作中にミラーデータベースへのアクセスを得る方法を可能にする。この実施形態では、主要データベースの障害発生時、ミラーデータベースを使用してデータベース復旧機構が提供される。復旧中のミラーデータベースへのアクセスは、本発明のバージョンストア態様を使用することによって容易になる。この方法により、ユーザは、従来技術のデータベースの場合よりも早期にミラーデータベースへのアクセスを得ることができる。
図2を使用して例示的な構成について論じた後、図3〜図6に関して例示的な方法および実施形態について論じる。また、図7に関して例示的なコンピューティング環境についても論じる。
(本発明の例示的な実施形態)
ミラーデータベース復旧方式を使用したデータベース復旧の発展が開示されている(例えば、特許文献1参照。)。
本発明の一実施形態では、行レベルのバージョニングを有利に使用して、データベーススナップショット、すなわちある時点でのデータベースのビューを可能にする。行レベルのバージョニングは、スナップショット分離とも呼ばれ、情報の読取り側と書込み側が相互にブロックしないよう複数の行バージョンをユーザテーブル中で保持することによって、データベースアプリケーションの同時実行性を向上させる。行レベルのバージョニングは、更新や保守のための他者からのアクセスなど、データベースに対する操作として、データベース値のバージョンを記憶することを可能にし、それによりデータのバージョンが他者によって読めるようにする。スナップショットクエリは、特定の時点までに他のトランザクションによってデータベースに加えられた変更の一貫したセットを返す読取り専用クエリを指す。スナップショットクエリは、トランザクション一貫性のあるデータベースビューを可能にし、それにより、更新トランザクションをブロックすることなくデータベースに対するクエリが可能になる。
いくつかの従来技術システムでは、トランザクションが行を変更する場合、行レベルのロックをデータベーステーブルに対してアサートすることができる。あるタイプのロックの例は、行に対するリドゥ操作によってアサートされるロックであろう。ロックの第2の例は、行へのアクセスを得たいずれか他のユーザトランザクションによってアサートされるロックであろう。通常、行ロックは、トランザクションが完了して書込み側がコミットするまで、アサートされた状態に維持される。
行レベルのバージョニングにより、通常ならそのようなアクセスを許可しないことになるデータベースに対してクエリを実施することができる。行レベルのバージョニングでは、データベースの読取り側は前にコミットされた行値に到達することができ、したがって、システム中の同時実行性を増大させることができる。このため、データベースシステムは、行が更新されたときに行の古いバージョンを保持しておくのが有利である。行レベルのバージョニングは、トランザクション一貫性のあるデータベーススナップショットをトランザクションの読取り側に提供し、したがって有意義なクエリを可能にする。読取り側トランザクションが開始したときに読取り側以外のすべてのアクティブなトランザクションが無視される場合、データベースのスナップショットをデータベースの状態として定義することができる。
バージョニングは、データベースのスナップショットをデータの古いバージョンから構築できるよう、更新トランザクションが古いバージョンを保持できるようにすることによって機能する。テーブル中またはインデックス中のレコードが更新されるとき、更新を行っているトランザクションのトランザクションシーケンス番号を新しいレコードにスタンプすることができる。レコードの古いバージョンは、バージョンストアに記憶することができ、新しいレコードは、バージョンストア中の古いレコードへのポインタを含むことができる。バージョンストア中の古いレコードは、さらに古いバージョンへのポインタを含むことができる。特定レコードのすべての古いバージョンは、リンクリスト中で連鎖させることができる。リンクポインタを何回か辿ってデータベースの特定スナップショットの適切なバージョンに到達することによって、正しいバージョンに到達することができる。
図2に、本発明の態様を実施するのに使用することのできるソフトウェアコンポーネントを示すブロック図200を示す。ユーザクエリ205は、クエリプロセッサ210への入力として働く。クエリプロセッサは、アクセスメソッド215コンポーネントを呼び出して、データベース240に対する読取りや書込みなどのアクセスを実施する。アクセスメソッドはまた、データベースデータの行に対して掛けられているロックをロックマネージャ220から読み取って分析することもできる。アクセスメソッドはまた、データベース240へのアクセスの実現を補助するために、バージョンストア230からバージョンレコードを受け取る。
図2のコンポーネントは、復旧のアンドゥ段階、すなわちトランザクション一貫性のあるデータベース状態を生み出すために未コミットのトランザクションがロールバックされている段階で、アクティブであることができる。ロギングおよび復旧マネージャ250は、データベース240に対してリドゥ操作ならびにアンドゥ操作を実施する。ロギングおよび復旧マネージャは、コミットされたトランザクションとコミットされていないトランザクションの両方を含むトランザクション情報を、データベースログファイル260から受け取る。
図3は、データベースが復旧モードにある間にデータベースに対するより多くの可用性をもたらす、本発明の方法300を表す流れ図である。復旧において、データベースは、ログファイルトランザクションを読み取ることによって分析段階を開始することができる(ステップ310)。分析段階では、不完全なトランザクションが識別される。不完全なトランザクションにはコミットログレコードが欠けている。リドゥ段階の一部として、ログファイル中で未入力トランザクションが識別される(ステップ315)。未入力トランザクションは、データベースから抜けているかまたはデータベース中で反映されていない、ログファイル中のトランザクションである。検出された未入力トランザクションは、復旧シナリオの一部としてデータベースに再入力することができる。一実施形態では、SQL標準データベースを使用することができる。通常、トランザクションの再入力は、1つまたは複数の一連のリドゥ命令によって実施することができる。リドゥ命令は、復旧前にログファイル中では反映されているがデータベース中にはないトランザクションを挿入する(ステップ320)。このリドゥ段階の間、不完全な(コミットされていない)トランザクションに対するリドゥ操作によって、データベースの行、ページ、テーブル、またはインデックスに対するロックを、これらのトランザクションがロールバックするまでアサートすることができる。
復旧方式の最終段階では、コミットされていないトランザクションを削除して、トランザクション一貫性のあるデータベースを生み出す。SQL環境では、選択された未コミットトランザクションの削除は、1つまたは複数のアンドゥ命令によって達成することができる。図3のステップ325は、リドゥ段階が完了した後でアンドゥ段階を開始することができることを示す。通常なら、何らかの読取りまたは書込み操作のためにデータベースへのアクセスが許可される前に、復旧のこのアンドゥ段階が完了していなければならない。しかし、本発明は有利にも、アンドゥ段階の最初にデータベースへのアクセスを許可することができる(ステップ330)。
アンドゥ段階の間にデータベースにアクセスすることは、データベース内の行、ページ、インデックス、テーブル、またはその他の構造へのクエリによって開始することができる。このクエリは、ロッキングベースの分離レベルまたはスナップショットベースの分離レベルで動作することができる。分離レベルは、クエリの同時実行性挙動を指定するクエリ属性であり、結果セットに影響を及ぼす複数の同時更新があるとき、クエリに対して様々な結果セットをもたらす場合がある。ステップ332で、クエリがスナップショットベースのクエリかロッキングベースのクエリかをテストする。クエリがロッキングベースのクエリである場合は、所望のクエリデータが利用可能なときにそのクエリデータをデータベースから読み取ることができる(ステップ334)。しかし、クエリがスナップショットベースのクエリである場合は、ステップ335に入ることができる。クエリがスナップショットベースのクエリのアプリオリ(a-priori)であるとわかっている場合は、ステップ332は省略できることに留意されたい。
図3のステップ335〜355に、スナップショットベースの分離レベルにおけるクエリ操作に関する例示的なフローを示す。本発明の一態様を用いて、上で論じた行レベルのロックおよびデータベースバージョニングをこの方法に関して使用することができる。クエリを処理する中で、方法300は、データベース要素に対して掛けられているかもしれない排他的または書込みタイプのロックがあるかどうかチェックする(ステップ335)。排他的または書込みタイプのロックがない場合は、利用可能な関連するデータの読取りを実施することができる(ステップ355)。共有または読取りタイプのロックがある場合もあることに留意されたい。その場合は、ステップ335の判定は失敗し、ステップ355からのテストおよび読取りを可能にする。
ステップ355は、どちらのデータソースを読み取るべきかに関するテストを含む。スナップショットクエリ環境では、データは時間とトランザクションの両方で一貫性があることが好ましい。含意されるテストは、クエリの開始時刻を、アクセスされているデータのコミット時刻と比較する。開始時刻がコミット時刻よりも前である場合は、データのバージョンストアを使用すべきである。そうでない場合は、データはコミットされており、トランザクションと時間の両方で一貫性があり、データベースから安全に読み取ることができる。したがってステップ355は、データの一貫性の状態に応じて、データベース値をデータベースとバージョンストアのどちらかから読み取ることを含むことができる。データがバージョンストアから読み取られる場合、データの一貫性の状態に応じて、いくつかのコミット済みバージョンの中から適切なバージョンが選択される。
書込みタイプのロックがある場合は、ロックタイプを知るためにロックをテストすることができる(ステップ340)。ロックがリドゥ段階の間に獲得された場合、ロックによって保護されるデータは、読み取るべきバージョンストア値を有さないことがある。この場合は、データベース復旧のアンドゥ段階の間にリドゥロックが解除されるのを待機する(ステップ345)ことによって、アクセスを遅延させることができる。リドゥロックが解除されると、テストおよびデータ読取りを行うことができる(ステップ355)。この場合もやはり、ステップ355は、データベース値をデータベースとバージョンストアのどちらかから読み取ることを含む。リドゥタイプのロックがアサートされていない場合は、すぐにデータ読取りを実施することができる(ステップ355)。このデータ読取りでは、データベースの行、ページ、テーブル、またはインデックスに対して何らかのタイプのロックがあるにもかかわらず、アクセスを継続することができる。何らかのタイプのロックの例は、別のユーザまたはクエリによってアサートされた排他的(書込みタイプ)ロックであろう。このような排他的ロックは、複数のユーザまたはクエリが同じデータに同時にアクセスするのを防ぐ。リドゥロックの解除を待機している複数のユーザまたはクエリがあり得ること、および、ユーザの中でもとりわけバージョン読取りを実施することになるユーザ(スナップショット分離レベルで操作しているとも言われる)は、データにアクセスするために共有ロックを獲得することが必要になるユーザよりも優先されることは、留意するに値する。後者のタイプのユーザは、ロッキングベースの分離レベルで操作していると言われる。
本発明の別の実施形態では、本発明の態様は有利にも、ミラーデータベースに関連して使用することができる。ミラーデータベースは、主要データベース中で障害が起きた場合のバックアップデータベースとして働くように使用することができる。図4にシステム400を示すが、システム400では、主要データベース410が、高可用性の目的で対応ミラーデータベース420を有する。システム400の一態様では、主要データベースログ415がミラーデータベースサイトに継続的に送られており、それにより、送られたログファイル425は、主要データベース410のトランザクションを反映するようにミラーデータベース420を更新することができる。
図4のシステム400の一態様では、ミラーデータベース420は、継続的にリドゥ操作を実施しており、送られたファイルログ425から受け取ったトランザクションを加える。リドゥ段階の間、ミラーデータベース420はまた、更新されたデータベース要素の行、ページ、テーブル、インデックスに対する適切なロックを継続的に獲得している。このようなシステム中で、バージョニングが適用され、それによりバージョンストアを使用して更新中のトランザクションデータのバージョンが記憶される場合、本発明の他の態様を適用することができる。
図5に、本発明の態様を組み入れたシステム500のブロック図を示す。トランザクションログレコードが、主要データベース510からミラーデータベース520に送られる。SQL環境を仮定すると、リドゥプロセス530は、ミラーリングされたデータベース520に対してリドゥ命令を実施する。リドゥプロセスはまた、バージョンストア550中のバージョンを生成し、同時にロックマネージャ540からロックを得る。ミラーリングされたデータベースに対してリドゥ中に生成されたバージョンは、そのバージョンを生成したトランザクションが終了するとすぐに削除することができる。また、バックグラウンドバージョンストアクリーンアッププロセス560もあり、これは、バージョンストア550に作用して、不要なバージョンを削除し、バージョンレコードによって消費される空間を解放し再利用する。一実施形態では、バージョンレコードはディスクに記憶することができ、バージョンレコードへは、バッファプールをメモリ内キャッシュとして使用してアクセスすることができる。図5のアーキテクチャは、復旧中にミラーデータベースへのアクセスを許可する方法をサポートする。
図6に、復旧操作中にデータベースへのアクセスを早期に許可することをサポートする、本発明の例示的な方法を示す。一実施形態では、復旧操作は、主要データベースのフェイルオーバ後に復旧されつつあるミラーデータベースに対して実施することができる。この実施形態では、フェイルオーバ時に主要データベースからの最後の更新の受領に伴ってミラーデータベースのリドゥ操作を終了することができ、アンドゥ操作を開始することができる。次いで、本発明の態様は、アンドゥ復旧操作中のアクセスを可能にすることができ、有利にも、従来技術のシステムの場合よりも早期にアクセスを可能にすることができる。
図6は、本発明の方法600の流れ図を示す。方法600は、ログファイルがデータベースによって受け取られることで開始する(ステップ610)。未入力トランザクションがデータベースに挿入される。SQL環境では、挿入操作はリドゥ命令を使用することができる。リドゥ操作中、バージョンレコードが本発明の一態様により作成され、適切なリドゥロックがアサートされる(ステップ620)。ログからの未入力トランザクションが入力され、リドゥ操作が終わると、データベース復旧のアンドゥ段階が開始することができる(ステップ625)。
この時点で、方法600は、本発明のバージョニング態様によりデータベースへのアクセスを許可することができる(630)。アクセスは、データベースに対するクエリとすることができる。方法は、クエリがスナップショットベースの分離レベルで動作するかどうかテストする(ステップ640)。分離がスナップショットベースである場合は、テスト、およびバージョンストアまたはデータベースからの読取りを実施することができる(ステップ650)。ステップ650のテストおよびバージョンストアまたはデータベースからの読取りは、図3のステップ355で実施されるのと同様であることに留意されたい。前と同様、テストおよび読取りは、所望のデータの時間およびトランザクションの一貫性に応じて、バージョンストアとデータベースのどちらかから読み取ることができる。図6に戻るが、ステップ650は、リドゥプロセス(ステップ620)がログファイルからの未実行トランザクションを実施していたときにデータのバージョンを作成したので、達成することができる。分離がロッキングベースである場合は、共有ロックがクエリに与えられた後で、データベース自体を安全に使用して(ステップ645)、クエリに必要なデータを得ることができる。
ロックのタイプ(すなわちリドゥプロセスによって得られたかどうか)は、方法600でのテストには不要な場合があることに留意されたい。リドゥプロセス(ステップ620)は、前述のようにデータのバージョンを生成したことに留意されたい。また、データを変更したトランザクションも、データのバージョンを生成しており、したがって、コミットされていないトランザクションによってロックされた行、ページ、テーブル、またはインデックスはどれも、読取りアクセスに必要な情報をスナップショットクエリに提供するためのバージョンストアデータを有することにも留意されたい。
(例示的なコンピューティングデバイス)
図7および以下の考察は、本発明の実施形態を実施するのに適したコンピューティング環境に関する簡単な一般的記述を提供するものである。以下では汎用コンピュータについて述べるが、これは一例にすぎず、本発明の実施形態は、ネットワーク/バス相互運用性および対話を有するクライアントなど、その他のコンピューティングデバイスで実施することもできる。したがって、本発明の実施形態は、ごくわずかなまたは最小限のクライアントリソースが関係するネットワーク化された被ホストサービスの環境で実施することができる。すなわち、クライアントデバイスが単にネットワーク/バスへのインタフェース(アプライアンス中に配置されたオブジェクトやその他のコンピューティングデバイスおよびオブジェクトなど)として働くネットワーク化環境で実施することができる。本質的に、データを記憶することのできる場所またはデータを取り出すことのできる場所ならどこでも、動作に望ましいまたは適した環境とすることができる。
必須ではないが、本発明の実施形態はまた、デバイスまたはオブジェクトのためのサービスの開発者によって使用されるオペレーティングシステムを介して実施することができ、かつ/あるいは、アプリケーションソフトウェアに含めることができる。ソフトウェアは、クライアントワークステーション、サーバ、その他のデバイスなど1つまたは複数のコンピュータによって実行されるコンピュータ実行可能命令(プログラムモジュールなど)の一般的なコンテキストで述べることができる。一般に、プログラムモジュールは、特定のタスクを実施するか特定の抽象データ型を実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。通常、プログラムモジュールの機能は、様々な実施形態で望まれるように結合または分散させることができる。さらに、本発明の様々な実施形態はその他のコンピュータ構成で実施することもできることは、当業者なら理解するであろう。使用に適するであろう、その他の周知のコンピューティングシステム、環境、および/または構成には、限定しないがパーソナルコンピュータ(PC)、現金自動預け払い機、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な民生用電子機器、ネットワークPC、アプライアンス、ライト、環境制御要素、ミニコンピュータ、メインフレームコンピュータなどが含まれる。本発明の実施形態は分散コンピューティング環境で実施することもでき、その場合、タスクは通信ネットワーク/バスまたはその他のデータ伝送媒体を介してリンクされたリモート処理デバイスによって実施される。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含めてローカルとリモートの両方のコンピュータ記憶媒体に位置することができ、クライアントノードはサーバノードとして挙動することもできる。
したがって、図7は、本発明の実施形態を実施することに適したコンピューティングシステム環境700の例を示しているが、上で明確にしたように、コンピューティングシステム環境700は適したコンピューティング環境の一例にすぎず、本発明の一実施形態の使用または機能の範囲についてどんな制限を示唆するものでもない。また、コンピューティング環境700は、この例示的な動作環境700中に示すコンポーネントのいずれか1つまたは組合せに関してどんな依存や要件を有するものとも解釈すべきではない。
図7を参照すると、本発明の一実施形態を実施するための例示的なシステムは、コンピュータシステム710の形の汎用コンピューティングデバイスを含む。コンピュータシステム710のコンポーネントには、限定しないが、処理ユニット720と、システムメモリ730と、システムメモリを含めた様々なシステムコンポーネントを処理ユニット720に結合するシステムバス721とを含めることができる。システムバス721は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスを含めて、いくつかのタイプのバス構造のいずれかとすることができる。限定ではなく例として、このようなアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、PCI(Peripheral Component Interconnect)バス(メザニンバスとも呼ばれる)が含まれる。
コンピュータシステム710は通常、様々なコンピュータ可読媒体を備える。コンピュータ可読媒体は、コンピュータシステム710からアクセスできる任意の利用可能な媒体とすることができ、揮発性と不揮発性の媒体、取り外し式と固定式の媒体の両方が含まれる。限定ではなく例として、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体を含めることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための任意の方法または技術で実現された、揮発性と不揮発性、取り外し式と固定式の媒体が含まれる。コンピュータ記憶媒体には、限定しないがランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気的に消去可能プログラム可能な読取り専用メモリ(EEPROM)、フラッシュメモリ、またはその他のメモリ技術、コンパクトディスク読取り専用メモリ(CDROM)、コンパクトディスク書換え可能(CDRW)、ディジタル多用途ディスク(DVD)、またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、またはその他の磁気記憶デバイスが含まれ、あるいは、所望の情報を記憶するのに使用できコンピュータシステム710からアクセスできるその他の任意の媒体が含まれる。通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波やその他のトランスポート機構などの被変調データ信号中に組み入れるものであり、任意の情報送達媒体がこれに含まれる。用語「被変調データ信号」は、信号中の情報が符号化される形で1つまたは複数の特性が設定または変更される信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークや直接有線接続などの有線媒体と、音響、無線周波数、赤外線などの無線媒体およびその他の無線媒体とが含まれる。以上のいずれかの組合せも、コンピュータ可読媒体の範囲に含めるべきである。
システムメモリ730は、読取り専用メモリ(ROM)731やランダムアクセスメモリ(RAM)732など、揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体を含む。ROM731には通常、起動中などにコンピュータシステム710内の要素間で情報を転送するのを助ける基本ルーチンを含むBIOS(basic input/output system)733が記憶されている。RAM732は通常、処理ユニット720がすぐにアクセス可能な、かつ/または処理ユニット720が現在作用している、データおよび/またはプログラムモジュールを含む。限定ではなく例として、図7には、オペレーティングシステム734、アプリケーションプログラム735、その他のプログラムモジュール736、プログラムデータ737を示す。
コンピュータシステム710は、その他の取り外し式/固定式、揮発性/不揮発性コンピュータ記憶媒体を備えることもできる。例にすぎないが図7には、固定式で不揮発性の磁気媒体に対して読み書きするハードディスクドライブ741と、取り外し式な不揮発性の磁気ディスク752に対して読み書きする磁気ディスクドライブ751と、CD ROM、CDRW、DVD、またはその他の光媒体など取り外し式な不揮発性の光ディスク756に対して読み書きする光ディスクドライブ755を示す。この例示的な動作環境で使用することのできるその他の取り外し式/固定式、揮発性/不揮発性コンピュータ記憶媒体には、限定しないが磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ディジタルビデオテープ、固体RAM、固体ROMなどが含まれる。ハードディスクドライブ741は通常、インタフェース740などの固定式メモリインタフェースを介してシステムバス721に接続され、磁気ディスクドライブ751および光ディスクドライブ755は通常、インタフェース750などの取り外し式メモリインタフェースでシステムバス721に接続される。
以上に論じ図7に示したドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、その他のデータの記憶域をコンピュータシステム710に提供する。例えば図7には、ハードディスクドライブ741がオペレーティングシステム744、アプリケーションプログラム745、その他のプログラムモジュール746、プログラムデータ747を記憶しているのが示されている。これらのコンポーネントは、オペレーティングシステム734、アプリケーションプログラム735、その他のプログラムモジュール736、プログラムデータ737と同じものとすることもでき、異なるものとすることもできることに留意されたい。ここでは、オペレーティングシステム744、アプリケーションプログラム745、その他のプログラムモジュール746、プログラムデータ747が少なくとも異なるコピーであることを示すために、異なる番号を付けてある。ユーザは、キーボード762、マウスやトラックボールやタッチパッドと一般に呼ばれるポインティングデバイス761などの入力デバイスを介して、コンピュータシステム710にコマンドおよび情報を入力することができる。その他の入力デバイス(図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナなどを含めることができる。これらおよびその他の入力デバイスは、システムバス721に結合されたユーザ入力インタフェース760を介して処理ユニット720に接続されることが多いが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)など、その他のインタフェースおよびバス構造で接続されてもよい。モニタ791または他のタイプの表示デバイスも、ビデオインタフェース790などのインタフェースを介してシステムバス721に接続され、ビデオインタフェース790は、ビデオメモリ(図示せず)と通信することができる。モニタ791に加えて、コンピュータシステムは、スピーカ797やプリンタ796など、その他の周辺出力デバイスも備えることができ、これらは出力周辺インタフェース795を介して接続することができる。
コンピュータシステム710は、リモートコンピュータ780など1つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク化された環境または分散環境で動作することができる。リモートコンピュータ780は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、またはその他の一般的なネットワークノードとすることができ、通常はパーソナルコンピュータ710に関して上述した要素の多くまたはすべてを備えるが、図7にはメモリ記憶デバイス781だけが示してある。図7に示す論理接続は、ローカルエリアネットワーク(LAN)771およびワイドエリアネットワーク(WAN)773を含むが、その他のネットワーク/バスを含むこともできる。このようなネットワーキング環境は、家庭、オフィス、企業全体のコンピュータネットワーク、イントラネット、インターネットでよくみられる。
LANネットワーキング環境で使用されるときは、コンピュータシステム710は、ネットワークインタフェースまたはアダプタ770を介してLAN771に接続される。WANネットワーキング環境で使用されるときは、コンピュータシステム710は通常、インターネットなどのWAN773を介した通信を確立するためのモデム772またはその他の手段を備える。モデム772は内蔵でも外付けでもよく、ユーザ入力インタフェース760またはその他の適切な機構を介してシステムバス721に接続することができる。ネットワーク化された環境では、コンピュータシステム710に関して示したプログラムモジュールまたはその一部をリモートのメモリ記憶デバイスに記憶することができる。限定ではなく例として、図7では、リモートアプリケーションプログラム785がメモリデバイス781上にあるのが示されている。図示のネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立するための他の手段を使用してもよいことは理解されるであろう。
パーソナルコンピューティングとインターネットの収束に鑑みて、様々な分散コンピューティングフレームワークが開発されてきており、また開発されつつある。アプリケーションおよびコンピューティングデバイスのためのシームレスに相互運用可能なウェブ対応のインタフェースが、個人にもビジネスユーザにも同様に提供され、それにより、コンピューティングアクティビティはますますウェブブラウザ指向またはネットワーク指向になっている。
例えば、Microsoft Corporationから入手可能なMICROSOFT(登録商標)の.NET(商標)プラットフォームは、サーバと、ウェブベースのデータ記憶などのビルディングブロックサービスと、ダウンロード可能なデバイスソフトウェアとを含む。本明細書の例示的な実施形態を、コンピューティングデバイス上にあるソフトウェアに関して述べたが、本発明の一実施形態の1つまたは複数の部分は、オペレーティングシステムを介して、あるいはアプリケーションプログラミングインタフェース(API)、またはコプロセッサと表示デバイスと要求元オブジェクトとのいずれかの間の「ミドルマン」オブジェクトを介して実施することもでき、したがって操作は、.NET(商標)の言語およびサービスのすべてによって、ならびにその他の分散コンピューティングフレームワークによって、実施、サポート、またはアクセスすることができる。
前述のように、本発明の例示的な実施形態を様々なコンピューティングデバイスおよびネットワークアーキテクチャに関して述べたが、基礎をなす概念は、復旧のアンドゥ段階の間にデータベースへのアクセスを達成するのが望ましい任意のコンピューティングデバイスまたはシステムに適用することができる。したがって、本発明の実施形態に関して述べた方法およびシステムは、様々なアプリケーションおよびデバイスに適用することができる。本発明では、様々な選択肢の代表として例示的なプログラミング言語、名前、例が選択されているが、これらの言語、名前、例は限定的なものではない。本発明の実施形態によって達成されるのと同じまたは同様のまたは等価なシステムおよび方法を達成するオブジェクトコードを提供する方法が多数あることは、当業者なら理解するであろう。
本明細書に述べた様々な技法は、ハードウェアまたはソフトウェア、あるいは適切な場合はこれらの組合せに関して実施することができる。したがって、本発明の方法および装置、あるいはそのいくつかの態様または部分は、フロッピー(登録商標)ディスケット、CD‐ROM、ハードドライブ、またはその他の任意の機械可読記憶媒体など、有形の媒体に組み入れられたプログラムコード(すなわち命令)の形をとることができ、プログラムコードがコンピュータなどのマシンによってロードされ実行されると、マシンは本発明を実施するための装置になる。プログラムコードがプログラム可能コンピュータ上で実行される場合、コンピューティングデバイスは一般に、プロセッサと、プロセッサによって読取り可能な記憶媒体(揮発性と不揮発性のメモリおよび/または記憶素子を含む)と、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを備えることになる。例えばデータ処理APIなどを使用して本発明の実施形態を利用することのできる1つまたは複数のプログラムは、コンピュータと通信するために高レベルのプロシージャ指向またはオブジェクト指向プログラミング言語で実施されることが好ましい。ただしプログラムは、望むならアセンブリ言語または機械語で実施することもできる。いずれの場合も、言語はコンパイルまたは解釈される言語とすることができ、ハードウェア実装形態と組み合わせることができる。
様々な図の好ましい実施形態に関して本発明の態様を述べたが、本発明と同様の機能を実施するために、本発明を逸脱することなく他の同様の実施形態を使用することもでき、述べた実施形態に修正および追加を施すこともできることを理解されたい。さらに、特に無線ネットワーク化デバイスの数が増加し続けているため、ハンドヘルドデバイスオペレーティングシステムおよびその他の特定用途向けオペレーティングシステムを含めて、様々なコンピュータプラットフォームが企図されることも強調しておくべきである。したがって、特許請求される本発明は、どんな単一の実施形態にも限定すべきではなく、添付の特許請求の範囲に従った幅および範囲で解釈すべきである。
典型的なデータベース復旧のタイムラインの図である。 本発明の第1の実施形態のアーキテクチャを示すブロック図である。 本発明のロック/解除態様の方法を示す流れ図である。 本発明のミラーデータベース態様を示すブロック図である。 本発明の第2の実施形態のアーキテクチャを示すブロック図である。 本発明のリドゥバージョン読取り態様の方法を示す流れ図である。 本発明の態様を実施することのできる例示的なコンピューティング環境を示すブロック図である。

Claims (7)

  1. データベース復旧中にデータベースにクエリする方法であって、コンピュータに記憶されたコンピュータ実行可能命令を前記コンピュータが実行することによって実施される該方法は、
    記憶装置に記憶された、ログファイル・トランザクションを含むログファイルを読み取ることであって、前記ログファイル・トランザクションは、コミットされていない不完全なトランザクションを含むこと、
    前記ログファイル・トランザクションを、前記データベース中で反映されているトランザクションと比較して、未入力トランザクションを見つけること、
    前記未入力トランザクションを前記データベース中で反映すること、
    前記不完全なトランザクションに関連する前記データベース中のデータ項目に対してロックを有効にすること、
    前記不完全なトランザクションを削除することであって、前記不完全なトランザクションを削除することによって、前記不完全なトランザクションに関連する前記データ項目に対する前記ロックが解除されること、
    前記不完全なトランザクションの削除と同時に、ユーザから与えられた前記データベースのクエリを実行することであって、前記クエリに対応するデータ項目に対して前記ロックが検出された場合は、前記データベース中に保持された前記データ項目の古いバージョンを読み取ること
    を含むことを特徴とする方法。
  2. 前記ロックを有効にすることは、行、ページ、テーブル、インデックスのうちの少なくとも1つに対するロック有効にすることを含むことを特徴とする請求項1記載の方法。
  3. 前記ロックを有効にすることは、リドゥーロックを有効にすることを含むことを特徴とする請求項1記載の方法。
  4. データベースの復旧中に前記データベースにクエリするシステムであって、
    記憶装置に記憶された、ログファイル・トランザクションを含むログファイルを読み取る手段であって、前記ログファイル・トランザクションは、コミットされていない不完全なトランザクションを含む手段と
    前記ログファイル・トランザクションを、前記データベース中で反映されているトランザクションと比較して、未入力トランザクションを見つける手段と
    前記未入力トランザクションを前記データベース中で反映する手段と
    前記不完全なトランザクションに関連する前記データベース中のデータ項目に対してロックを有効にする手段と、
    前記不完全なトランザクションを削除する手段であって、前記不完全なトランザクションを削除することによって、前記不完全なトランザクションに関連する前記データ項目に対する前記ロックが解除される手段と
    前記不完全なトランザクションの削除と同時に、ユーザから与えられた前記データベースへのクエリを実行する手段であって、前記クエリに対応するデータ項目に対して前記ロックが検出された場合は、前記データベース中に保持された前記データ項目の古いバージョンを読み取る手段と
    備えたことを特徴とするシステム。
  5. 前記ロックは、行、ページ、テーブル、インデックスのうちの少なくとも1つに対して有効にされることを特徴とする請求項記載のシステム。
  6. クエリ結果を見るための表示装置を更に備えることを特徴とする請求項記載のシステム。
  7. データベースの復旧中に前記データベースにクエリする方法をコンピュータに実施させるためのコンピュータ実行可能命令を記録したコンピュータ読み取り可能な記録媒体であって、
    前記方法は、
    記憶装置に記憶された、ログファイル・トランザクションを含むログファイルを読み取ることであって、前記ログファイル・トランザクションは、コミットされていない不完全なトランザクションを含むこと、
    前記ログファイル・トランザクションを、前記データベース中で反映されているトランザクションと比較して、未入力トランザクションを見つけること、
    前記未入力トランザクションを前記データベース中で反映すること、
    前記不完全なトランザクションに関連する前記データベース中のデータ項目に対してロックを有効にすること、
    前記不完全なトランザクションを削除することであって、前記不完全なトランザクションを削除することによって、前記不完全なトランザクションに関連する前記データ項目に対する前記ロックが解除されること、
    前記不完全なトランザクションの削除と同時に、ユーザから与えられた前記データベースのクエリを実行することであって、前記クエリに対応するデータ項目に対して前記ロックが検出された場合は、前記データベース中に保持された前記データ項目の古いバージョンを読み取ること
    を含むことを特徴とするコンピュータ読み取り可能な記録媒体。
JP2007506125A 2004-03-29 2004-07-29 データベース復旧中のスナップショットクエリのためのシステムおよび方法 Expired - Fee Related JP4598821B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/812,188 US7146386B2 (en) 2004-03-29 2004-03-29 System and method for a snapshot query during database recovery
PCT/US2004/024540 WO2005103880A2 (en) 2004-03-29 2004-07-29 System and method for a snapshot query during database recovery

Publications (2)

Publication Number Publication Date
JP2007531156A JP2007531156A (ja) 2007-11-01
JP4598821B2 true JP4598821B2 (ja) 2010-12-15

Family

ID=34991366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007506125A Expired - Fee Related JP4598821B2 (ja) 2004-03-29 2004-07-29 データベース復旧中のスナップショットクエリのためのシステムおよび方法

Country Status (6)

Country Link
US (1) US7146386B2 (ja)
EP (1) EP1687710A4 (ja)
JP (1) JP4598821B2 (ja)
KR (1) KR101099199B1 (ja)
CN (1) CN100452030C (ja)
WO (1) WO2005103880A2 (ja)

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7293286B2 (en) 2003-02-20 2007-11-06 Bea Systems, Inc. Federated management of content repositories
US7840614B2 (en) 2003-02-20 2010-11-23 Bea Systems, Inc. Virtual content repository application program interface
US7146386B2 (en) 2004-03-29 2006-12-05 Microsoft Corporation System and method for a snapshot query during database recovery
US20050228816A1 (en) * 2004-04-13 2005-10-13 Bea Systems, Inc. System and method for content type versions
US8086580B2 (en) * 2005-01-11 2011-12-27 International Business Machines Corporation Handling access requests to a page while copying an updated page of data to storage
US7627584B2 (en) * 2005-11-30 2009-12-01 Oracle International Corporation Database system configured for automatic failover with no data loss
US7668879B2 (en) * 2005-11-30 2010-02-23 Oracle International Corporation Database system configured for automatic failover with no data loss
US8145947B1 (en) * 2006-09-29 2012-03-27 Emc Corporation User customizable CVFS namespace
US9483525B2 (en) 2007-04-30 2016-11-01 Microsoft Technology Licensing, Llc Reducing update conflicts when maintaining views
US7805632B1 (en) * 2007-09-24 2010-09-28 Net App, Inc. Storage system and method for rapidly recovering from a system failure
US8290966B2 (en) * 2007-11-29 2012-10-16 Sap Aktiengesellschaft System and method for implementing a non-destructive tree filter
TW201011531A (en) * 2008-09-03 2010-03-16 Asustek Comp Inc Computer system and related method of logging BIOS update operation
KR100926098B1 (ko) * 2008-11-18 2009-11-11 주식회사 네오플 스냅샷 데이터베이스를 이용한 정보 복구 방법 및 장치
US8380663B2 (en) * 2008-12-17 2013-02-19 Sybase, Inc. Data integrity in a database environment through background synchronization
WO2010116405A1 (ja) * 2009-04-06 2010-10-14 株式会社日立製作所 不揮発性の主記憶を備えた計算機システム
US8555009B1 (en) * 2009-07-31 2013-10-08 Symantec Corporation Method and apparatus for enabling and managing application input/output activity while restoring a data store
US8793288B2 (en) * 2009-12-16 2014-07-29 Sap Ag Online access to database snapshots
JP5464003B2 (ja) * 2010-03-26 2014-04-09 富士通株式会社 データベース管理装置およびデータベース管理プログラム
CN101814043B (zh) * 2010-04-19 2014-07-16 浪潮电子信息产业股份有限公司 一种使用快照技术进行在线恢复的方法
JP5850224B2 (ja) * 2011-02-28 2016-02-03 株式会社リコー 管理システム、及びプログラム
US8930330B1 (en) 2011-06-27 2015-01-06 Amazon Technologies, Inc. Validation of log formats
CN103034636A (zh) * 2011-09-29 2013-04-10 盛乐信息技术(上海)有限公司 一种非关系型数据库的回滚方法、装置及系统
CN102708166B (zh) * 2012-04-26 2014-07-02 北京星网锐捷网络技术有限公司 数据复制方法、数据恢复方法及装置
CN102708416B (zh) * 2012-05-10 2015-11-25 华为软件技术有限公司 一种用户订购业务的方法、设备和系统
US9146685B2 (en) * 2013-02-11 2015-09-29 International Business Machines Corporation Marking local regions and providing a snapshot thereof for asynchronous mirroring
US9798630B2 (en) 2013-03-08 2017-10-24 Intel Corporation Hardware-supported memory temporal copy
CN104035838B (zh) * 2013-03-08 2018-08-14 英特尔公司 硬件支持的存储日志记录
US9514007B2 (en) 2013-03-15 2016-12-06 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US10180951B2 (en) 2013-03-15 2019-01-15 Amazon Technologies, Inc. Place snapshots
US9501501B2 (en) 2013-03-15 2016-11-22 Amazon Technologies, Inc. Log record management
US9672237B2 (en) 2013-03-15 2017-06-06 Amazon Technologies, Inc. System-wide checkpoint avoidance for distributed database systems
US11030055B2 (en) 2013-03-15 2021-06-08 Amazon Technologies, Inc. Fast crash recovery for distributed database systems
CN103150149B (zh) 2013-03-26 2015-11-25 华为技术有限公司 处理数据库重做数据的方法和装置
US10747746B2 (en) 2013-04-30 2020-08-18 Amazon Technologies, Inc. Efficient read replicas
US9317213B1 (en) 2013-05-10 2016-04-19 Amazon Technologies, Inc. Efficient storage of variably-sized data objects in a data store
US9760596B2 (en) 2013-05-13 2017-09-12 Amazon Technologies, Inc. Transaction ordering
US9208032B1 (en) 2013-05-15 2015-12-08 Amazon Technologies, Inc. Managing contingency capacity of pooled resources in multiple availability zones
US10303564B1 (en) 2013-05-23 2019-05-28 Amazon Technologies, Inc. Reduced transaction I/O for log-structured storage systems
US9305056B1 (en) 2013-05-24 2016-04-05 Amazon Technologies, Inc. Results cache invalidation
CN103336736B (zh) * 2013-05-27 2017-04-12 华为技术有限公司 系统日志获取方法和装置
US9047189B1 (en) 2013-05-28 2015-06-02 Amazon Technologies, Inc. Self-describing data blocks of a minimum atomic write size for a data store
US9659050B2 (en) * 2013-08-06 2017-05-23 Sybase, Inc. Delta store giving row-level versioning semantics to a non-row-level versioning underlying store
US9507843B1 (en) 2013-09-20 2016-11-29 Amazon Technologies, Inc. Efficient replication of distributed storage changes for read-only nodes of a distributed database
US9519664B1 (en) 2013-09-20 2016-12-13 Amazon Technologies, Inc. Index structure navigation using page versions for read-only nodes
US9460008B1 (en) 2013-09-20 2016-10-04 Amazon Technologies, Inc. Efficient garbage collection for a log-structured data store
US10216949B1 (en) 2013-09-20 2019-02-26 Amazon Technologies, Inc. Dynamic quorum membership changes
US9280591B1 (en) 2013-09-20 2016-03-08 Amazon Technologies, Inc. Efficient replication of system transactions for read-only nodes of a distributed database
US10223184B1 (en) 2013-09-25 2019-03-05 Amazon Technologies, Inc. Individual write quorums for a log-structured distributed storage system
US9699017B1 (en) 2013-09-25 2017-07-04 Amazon Technologies, Inc. Dynamic utilization of bandwidth for a quorum-based distributed storage system
US9552242B1 (en) 2013-09-25 2017-01-24 Amazon Technologies, Inc. Log-structured distributed storage using a single log sequence number space
CN103488549B (zh) * 2013-09-29 2017-01-18 北大医疗信息技术有限公司 多镜像数据的回滚处理系统和回滚处理方法
US9489409B2 (en) 2013-10-17 2016-11-08 Sybase, Inc. Rollover strategies in a N-bit dictionary compressed column store
US9760480B1 (en) 2013-11-01 2017-09-12 Amazon Technologies, Inc. Enhanced logging using non-volatile system memory
US10387399B1 (en) 2013-11-01 2019-08-20 Amazon Technologies, Inc. Efficient database journaling using non-volatile system memory
US9880933B1 (en) 2013-11-20 2018-01-30 Amazon Technologies, Inc. Distributed in-memory buffer cache system using buffer cache nodes
US9223843B1 (en) 2013-12-02 2015-12-29 Amazon Technologies, Inc. Optimized log storage for asynchronous log updates
CN103744936B (zh) * 2013-12-31 2017-02-08 华为技术有限公司 一种数据库中的多版本并发控制方法及数据库系统
CN103886109B (zh) * 2014-04-18 2017-04-12 北京搜狐新媒体信息技术有限公司 一种实现数据库行锁的方法及装置
US10303663B1 (en) 2014-06-12 2019-05-28 Amazon Technologies, Inc. Remote durable logging for journaling file systems
KR102253841B1 (ko) * 2014-10-31 2021-05-18 에스케이텔레콤 주식회사 대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체
US10043026B1 (en) * 2015-11-09 2018-08-07 8X8, Inc. Restricted replication for protection of replicated databases
US9830558B1 (en) * 2016-05-03 2017-11-28 Sas Institute Inc. Fast training of support vector data description using sampling
US10572469B2 (en) * 2016-05-31 2020-02-25 Oracle International Corporation Versioning and non-disruptive servicing of in-memory units in a database
CN107885488B (zh) * 2016-09-29 2021-06-01 微软技术许可有限责任公司 意图和具有意图的锁
US10685014B1 (en) * 2016-09-30 2020-06-16 EMC IP Holding Company LLC Method of sharing read-only data pages among transactions in a database management system
CN109032752B (zh) * 2017-06-12 2023-03-10 微软技术许可有限责任公司 基于云平台的操作撤销
US11914571B1 (en) 2017-11-22 2024-02-27 Amazon Technologies, Inc. Optimistic concurrency for a multi-writer database
KR102089291B1 (ko) * 2018-06-19 2020-03-16 주식회사 티맥스데이터 데이터 익스텐트 이동 방법
US11003549B2 (en) * 2018-07-25 2021-05-11 Microsoft Technology Licensing, Llc Constant time database recovery
US11176004B2 (en) * 2019-04-01 2021-11-16 Sap Se Test continuous log replay
CN110096389A (zh) * 2019-04-30 2019-08-06 上海达梦数据库有限公司 一种数据库的启动方法、装置、设备和存储介质
CN111026772B (zh) * 2019-11-26 2020-11-27 中科驭数(北京)科技有限公司 用于保证数据库修改永久性的方法及装置
JP7120985B2 (ja) * 2019-12-16 2022-08-17 ヤフー株式会社 データベース管理システム、データベース管理方法、およびプログラム
CN111176907B (zh) * 2020-01-06 2021-03-05 中科驭数(北京)科技有限公司 硬件数据库回滚方法、软件数据库回滚方法及装置
US11341163B1 (en) 2020-03-30 2022-05-24 Amazon Technologies, Inc. Multi-level replication filtering for a distributed database
CN111930788B (zh) * 2020-09-04 2021-03-23 阿里云计算有限公司 操作请求的处理方法、装置、设备、可读存储介质及系统
KR20230119966A (ko) * 2022-02-08 2023-08-16 삼성전자주식회사 전자 장치에서 데이터베이스 파일을 복구하는 방법
CN115774740B (zh) * 2022-11-21 2023-09-12 本原数据(北京)信息技术有限公司 数据库快照查询方法、系统及存储介质
CN117130871B (zh) * 2023-10-26 2024-04-05 本原数据(北京)信息技术有限公司 数据库日志的并行回放方法及装置、非易失性存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0827755B2 (ja) * 1991-02-15 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション データの単位を高速度でアクセスする方法
US5333303A (en) * 1991-03-28 1994-07-26 International Business Machines Corporation Method for providing data availability in a transaction-oriented system during restart after a failure
DE4216871C2 (de) * 1991-05-21 2001-09-06 Digital Equipment Corp Ausführungsordnen zum Sicherstellen der Serialisierbarkeit verteilter Transaktionen
US5369757A (en) * 1991-06-18 1994-11-29 Digital Equipment Corporation Recovery logging in the presence of snapshot files by ordering of buffer pool flushing
US5701480A (en) * 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
US5530855A (en) * 1992-10-13 1996-06-25 International Business Machines Corporation Replicating a database by the sequential application of hierarchically sorted log records
US5752026A (en) * 1994-04-28 1998-05-12 The United States Of America As Represented By The Secretary Of The Navy Early commit locking computer database protocol
AU763133B2 (en) * 1998-01-26 2003-07-17 Telenor As Database management system and method for conditional conflict serializability of transactions and for combining meta-data of varying degrees of reliability
US6247023B1 (en) * 1998-07-21 2001-06-12 Internationl Business Machines Corp. Method for providing database recovery across multiple nodes
US6564215B1 (en) * 1999-12-16 2003-05-13 International Business Machines Corporation Update support in database content management
JP2001229063A (ja) * 2000-02-17 2001-08-24 Mitsubishi Electric Corp データ管理システム
US7076508B2 (en) * 2002-08-12 2006-07-11 International Business Machines Corporation Method, system, and program for merging log entries from multiple recovery log files
US7146386B2 (en) 2004-03-29 2006-12-05 Microsoft Corporation System and method for a snapshot query during database recovery

Also Published As

Publication number Publication date
CN1842789A (zh) 2006-10-04
EP1687710A4 (en) 2011-10-19
WO2005103880A2 (en) 2005-11-03
KR20070031209A (ko) 2007-03-19
JP2007531156A (ja) 2007-11-01
CN100452030C (zh) 2009-01-14
KR101099199B1 (ko) 2011-12-27
WO2005103880A3 (en) 2006-06-15
EP1687710A2 (en) 2006-08-09
US20050216462A1 (en) 2005-09-29
US7146386B2 (en) 2006-12-05

Similar Documents

Publication Publication Date Title
JP4598821B2 (ja) データベース復旧中のスナップショットクエリのためのシステムおよび方法
JP4960963B2 (ja) データベースミラーからのオンラインページリストア
US8655859B2 (en) Concurrency control for extraction, transform, load processes
CN108664359B (zh) 一种数据库恢复方法、装置、设备及存储介质
JP4049293B2 (ja) 情報システムにおいて一貫性を維持するためのトランザクションシステム及び方法
EP1877906B1 (en) Maintenance of link level consistency between database and file system
US10503699B2 (en) Metadata synchronization in a distrubuted database
JP4598055B2 (ja) データベースバックアップの整合性チェックのためのシステムおよび方法
US6564215B1 (en) Update support in database content management
JP5660693B2 (ja) ハイブリッドoltp及びolap高性能データベースシステム
US8032790B2 (en) Testing of a system logging facility using randomized input and iteratively changed log parameters
JPH0836513A (ja) データ管理方法及びデータ管理エラー回復方法
JP2005301329A (ja) データベースのためのトランザクション整合性のある変更追跡
JP2006072986A (ja) データストアに対して動的に生成されるオペレーションを検証すること
US9652492B2 (en) Out-of-order execution of strictly-ordered transactional workloads
CN110209527B (zh) 数据恢复方法、装置、服务器以及存储介质
US20200364241A1 (en) Method for data synchronization between a source database system and target database system
US8918370B2 (en) Dynamic allocation of program libraries
US8868511B2 (en) Archiving—safe replication of relational data
WO2023111910A1 (en) Rolling back database transaction
US11301341B2 (en) Replication system takeover with handshake
CN111831455A (zh) 工业物联网下分布式事务处理系统及方法
JPS63196958A (ja) 障害回復処理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070730

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100825

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4598821

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131001

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

LAPS Cancellation because of no payment of annual fees