JP2007525765A - データベース内の回復ユニット(recoveryunit)のためのシステムおよび方法 - Google Patents

データベース内の回復ユニット(recoveryunit)のためのシステムおよび方法 Download PDF

Info

Publication number
JP2007525765A
JP2007525765A JP2007500741A JP2007500741A JP2007525765A JP 2007525765 A JP2007525765 A JP 2007525765A JP 2007500741 A JP2007500741 A JP 2007500741A JP 2007500741 A JP2007500741 A JP 2007500741A JP 2007525765 A JP2007525765 A JP 2007525765A
Authority
JP
Japan
Prior art keywords
unit
database
catalog
creating
recovery unit
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.)
Granted
Application number
JP2007500741A
Other languages
English (en)
Other versions
JP2007525765A5 (ja
JP4762972B2 (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 JP2007525765A publication Critical patent/JP2007525765A/ja
Publication of JP2007525765A5 publication Critical patent/JP2007525765A5/ja
Application granted granted Critical
Publication of JP4762972B2 publication Critical patent/JP4762972B2/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
    • 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
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • 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/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)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Exchange Systems With Centralized Control (AREA)

Abstract

データベース内での複数の回復可能ユニットの作成によって、メンテナンスおよび障害の回復操作中、データベースの1つのパーティションを再構築することができる。回復ユニットの作成の方法は、データベースを少なくとも2つの回復ユニットにパーティション分割するステップを含む。テーブル、インデックス、およびファイルグループなど、データベースの論理要素に関連するメタデータの1次カタログが作成される。ページ、ファイル、Bツリー、ログストリームなど、データベースの物理要素に関連するメタデータの2次カタログが回復ユニットごとに作成される。1つのログストリームのみが任意の1つの回復ユニットに関連付けられるように、1次メタデータカタログと2次メタデータカタログがリンクされる。次いで、単一の回復ユニットは、データベースの残りの回復ユニットがオンラインのままである間に、回復操作またはメンテナンス操作を実行するよう働くことができる。

Description

本出願は、参照によりその開示を完全に本明細書に組み込む、2004年2月27日に出願した米国特許出願第10/789,244号明細書の優先権を主張するものである。
本発明は一般にコンピュータデータベースの分野に関する。より詳細には、本発明は、データベース構造での独立した複数の回復可能ユニットの使用に関する。
現代のほとんどのデータベースは、完全に使用可能、または完全に使用不可であるという特徴を示す。メンテナンス方式または障害回復方式では、メンテナンス時または回復時の間、データベースが使用不可になる。こうした方式での可用性の単位は、データベース全体である。図1は、それぞれテーブルA101、テーブルB102、テーブルC103にパーティション分割されている従来技術のデータベース100を示している。各テーブルは、単一のログストリーム105を使用して行および他のデータの変更を記録して、データベースをトランザクション上整合状態に保つ。データベースのサイズが増加し、より多くのテーブルがデータベースに追加されるにつれて、より多くのデータ量がログストリーム105に書き込まれるはずである。ログストリームは、次第にデータベースが存在するハードウェアの限界を超えるようになる、かなりの管理性および性能の問題をもたらす障害となる。最終的には、単一のログストリーム、およびデータベース情報の回復に関するそのアクセス可能性および速度の限界がデータベースの障害となる。
従来技術のこの問題に対する選択肢は、単一のログを複数のログストリームに分割することによってログストリームをよりよく管理することである。図2は、それぞれテーブルD201、テーブルE202、テーブルF203、および共有の、しかし個別のログストリームデータセット207、208、209にパーティション分割されているデータベース200を示している。ログストリームデータセットを追跡し、管理するために、調整機構205が導入されている。しかし、これは、ログストリームデータの障害の問題を解決するが、データベースのサイズが大きくなるにつれて結局調整機構205が遅くなるという別の問題をもたらす。また、単一テーブル、例えばテーブルD201のみの回復は、テーブルDのデータログストリームがすべてのデータログストリームに分散されているため、複数のデータログストリーム207、208、および209の使用を必要とし得る。図2のアーキテクチャは、図1のアーキテクチャの改良であるが、調整機構205の障害のため、依然として速度性能の制限があり、ログデータストリームを含む回復操作中、依然としてデータベース全体が使用不可である。
したがって、性能の障害に関して速度を向上できるアーキテクチャが必要であり、回復動作中にデータベースを少なくとも部分的に使用可能にすることが望ましい。本発明は、本明細書に記載する追加の利点で上記の必要性に対処し、それらを解決する。
データベース内の回復ユニットと呼ばれる回復可能な複数のデータベースパーティションの構築は、他の部分をアクセス可能にしながら、データベースの一部分のみにおいてメンテナンスまたは障害の回復を実行する能力を追加するのに有用である。これは特に、単一のログストリームまたはログストリーム調整機構の障害が回復操作の速度を低下させ得る非常に大きいデータベースで有用である。この方法は、データベースを複数の回復ユニットにパーティション分割し、メタデータの1次および2次カタログを作成するステップを伴う。
1次カタログは、データベース、テーブル、インデックス、ファイルグループ、データ型、制約、ストアドプロシージャ、トリガ、および他の識別可能なデータベース構造への参照を含む、回復ユニットの論理要素を含み得る。2次カタログは、各回復ユニットに関連付けられ、ファイル、ページ、Bツリー、ヒープ、回復ユニット、およびログストリームデータを含む、回復ユニットの物理要素に関するメタデータを含み得る。
1次カタログおよび2次カタログが定義された後、1次カタログと2次カタログとはリンクされ、ある回復ユニットは、他の回復ユニットがデータベースのユーザからアクセス可能である間に、データベースの一部分のみまたは回復ユニットのみでメンテナンスまたは回復操作を行うよう働くことができる。本発明の一実施形態では、回復ユニットを使用して、データベースの一部分を別の部分にコピーし、それによって回復の目的以上にその実用性を拡大することができる。
上記の要約、および以下の好ましい実施形態の詳細な説明は、添付の図面と併せ読めばよりよく理解できる。本発明の実施形態の説明上、図面には本発明の構造例を示しているが、本発明は開示した特定の方法および手段に限定されない。
概要
本発明の一実施形態は、従来技術の障害の問題に対処することができるデータベース内の複数の回復ユニットを提供し、さらに全体的なデータベースの可用性を向上させる機能を提供する。これは、メンテナンスまたは障害の回復のシナリオ中にデータベースの一部分のみを使用不可にすることによって達成することができる。本発明の一態様は、データベースの論理要素と物理要素との間のメタデータの分割を提供する。論理要素は、ユーザが閲覧するデータベース、テーブル、インデックス、テーブルおよびインデックスのパーティション、データ型、制約、ストアドプロシージャ、トリガ、およびファイルグループを含む。物理要素は、エンドユーザからは見えないページ、ファイル、Bツリー、ヒープ、回復ユニット、およびログを含む。データベースの論理要素を表すメタデータは、「1次」回復ユニットに格納され、データベースの物理要素のメタデータは、それぞれの「2次」回復ユニットに格納される。この論理メタデータ対物理メタデータ手法を整合状態に維持することによって、本発明の一実施形態は、単一の論理テーブルまたはインデックスへの更新を個別の物理ログストリームに別々に記録できるようにする。
図3を使用して構成例を説明した後、方法および実施形態を図4〜7との関連で説明する。コンピューティング環境例についても図8との関連で説明する。
本発明の実施形態例
図3は、本発明の一実施形態の機能図を示している。この実施形態は、データが複数のテーブルにパーティション分割されているデータベース300を含む。図3はこうした4つのテーブルを示しているが、本発明をそのように限定する必要はない。このアーキテクチャは、テーブル302、304、306、および308が1つのログデータストリームのみと関連しているところを示している。また、ログストリーム303、305、および307は、互いに独立して機能し得る。したがって、例えばテーブル1(302)は、ログデータストリーム303のみと関連する。テーブル2(304)は、ログデータストリーム305のみと関連する。テーブル3(306)は、ログデータストリーム307のみと関連する。テーブル4(308)は、ログデータストリーム307のみと関連する。図4のテーブル302、304、および306は、データベース300の任意のパーティションでよいことに留意されたい。これらのパーティションは、データベース内の任意のデータのテーブル、テーブルの断片部分、またはインデックスとすることができる。
図3のアーキテクチャは、複数のデータストリームログがデータベース300の回復操作をサポートできるようにする。このアーキテクチャは、個々のテーブルを単一のログのみに関連付けることができるようにする。つまり、単一のテーブルは、1つのログデータストリームのみを使用する。このアーキテクチャは、データベースの他のテーブルをアクセス可能にしたまま、回復を1つのテーブルのみで達成できるようにログデータを使用することによって、単一のテーブルまたはデータベースのパーティションの回復を可能にする。ログストリームの独立性およびそのパーティションまたはテーブルとの密接な関連によって、従来技術にある障害が無くなる。したがって、通常の操作および回復操作の両方で速度が向上する利点がある。さらに、本明細書に詳述するように、図3のアーキテクチャによって、1つまたは複数のデータベースパーティションを別のデータベースに転送することができる。
本発明の一態様は、単一のデータベースを、回復ユニットと呼ばれる複数のデータベースにパーティション分割することである。各回復ユニットは、データファイルおよびログストリームのそれ自体の組を有し、それぞれデータベース内の他の回復ユニットとは無関係に回復することができる。回復ユニットは、同じログを共有するため、トランザクション上整合状態にあるファイルグループ、ファイル、およびログの集まりである。データベースごとの複数のログストリーム間で作業負荷を分けるように、データベース内のテーブルおよびインデックスを異なる回復ユニットに割り当て、またはパーティション分割することができる。データベースがこうした個別の回復ユニットに分割されると、データベースの残りから切り離して個々の回復ユニットを復元し回復する能力によって、データベースの全体的な可用性および性能を向上させることができる。回復中、復元される回復ユニットに存在するデータベース部分のみが使用不可である。データベースの残りは依然として使用可能である。
一実施形態では、回復ユニットの構築の方法は、データベースの論理要素と物理要素との間のメタデータの分離である。論理要素の例は、ユーザが閲覧するデータベース、テーブル、インデックス、データ型、制約、ストアドプロシージャ、トリガ、ファイルグループ、および他のデータベース構造である。物理要素の例は、エンドユーザからは見えないページ、ファイル、Bツリー、ヒープ、回復ユニット、およびログである。一実施形態では、データベースの論理要素を表すメタデータは、「1次」カタログに格納することができ、データベースの物理要素のメタデータはそれぞれ、それ自体の回復ユニットに格納することができる。この論理メタデータ対物理メタデータ手法を整合状態に維持することによって、少なくとも一実施形態は、単一の論理テーブルまたはインデックスへの更新を個別の物理ログストリームに別々に記録することができる。
図4は、本発明の一実施形態内での論理メタデータおよび物理メタデータの分離を示している。実施形態400は、この方式に関連付けられたメタデータをそれぞれ有する論理部分450および物理部分460を有するデータベースを示している。論理層450では、データベース内のすべてのデータベース、インデックス、およびパーティションのファイルおよびファイルグループに関するメタデータを含む1次カタログ402を構成することができる。メタデータは、ファイルおよびファイルグループと対応する回復ユニット識別子との間の関連も含む。例えば、1次カタログは、データベースのテーブルデータ406のテーブルおよびインデックス403に関するメタデータを含み得る。テーブルデータ406は、複数のデータベースパーティション408、410に分割することができ、各データベースパーティションは、テーブル、インデックス、または他の任意のデータまたはメタデータの組とすることができる。1次カタログは、メタデータの形式の中でも、データベースに含まれるデータに関する情報のインデックス404の他の任意の形式を含むこともできる。
1次カタログ402は、データベースパーティション408、410などのデータ構造と、関連の回復ユニットおよびそれぞれの識別子との連係に関するメタデータを含み得る。例えば、データベースパーティション408と対応する回復ユニット1(414)との間の連係409は、1次カタログメタデータ内にあり得る。同様に、本実施形態の論理層450を物理層460の物理回復ユニット416および418にそれぞれ関連付けるための連係411および405も1次カタログメタデータに含まれ得る。
物理層460は、物理的な回復ユニットを含み得る。図4の例では、3つの回復ユニットがあるが、任意の数の回復ユニットを設定することができる。図4の例では、回復ユニット1(414)は、データベースパーティションA408に関連付けられ、回復ユニット2(416)はデータベースパーティションB410に関連付けられ、回復ユニット3は、1次カタログ450の他のインデックス404に関連付けられている。回復ユニット1(414)は、それが参照するデータベースの物理要素のメタデータを含む2次カタログ420を含み得る。例えば、2次カタログは、Bツリー、ファイル、ページ、ヒープ、またはログデータへの参照を含み得る。図4の実施形態例で、2次カタログ420は、Bツリー1(422)およびBツリーを構成するページ424への参照を含む。また、2次カタログは、データベースのデータベースパーティションA408を参照する回復ユニット1のデータへの変更に特に関連付けられているログ1ストリームデータ426への参照メタデータを有する。特定の例として、行セット識別子および回復ユニット識別子は、行セットがデータベース内で開かれると、2次カタログに渡される。1次カタログおよび2次カタログでのこの一意の専用の連係は、データベースの他の回復ユニットとは無関係にファイル、テーブル、インデックス、および他のデータベースデータを回復させるように回復ユニットを働かせることができるものである。
回復ユニットは、データベースの他の部分と対話する必要なく回復操作のREDO部分を行うことができる。例えば、回復ユニット1(414)がデータベースのその部分の側面の回復に使用されている場合、回復ユニット2(416)および回復ユニット3(418)は、回復ユニット1の操作中、オンラインでアクティブのままであり得る。回復ユニットは、対話なしに論理UNDO回復操作のほとんどの部分を行うこともできるが、準備されたトランザクションがコミットされるか、中止されるかを決定するために、他の回復ユニットまたはデータベースに連絡する必要がある。これによって、一部の物理回復ユニットが存在していない、または回復していない場合でさえ、複数の物理回復ユニットから成るデータベースを使用可能にすることができる。他の物理回復ユニットは、データベースがオンラインである間に復元され、回復され得る。
図4に示した実施形態例のアーキテクチャは、データベース間のデータベースパーティションの移動を可能にするフレームワークを提供する。よく知られているように、前および次のページの識別子など、ほとんどのページ上のファイル識別子、およびヒープ行識別子ポインタ(heap row identifier pointer)およびBツリートラバースポインタ(B−Tree traversal pointer)などの多くの行への参照結合のため、ファイルまたはファイルグループをあるデータベースから別のデータベースに移動させることは現在は非現実的である。しかし、本発明の態様によれば、ファイル識別子は、回復ユニット内で一意であればよい。結果として、回復ユニットは、あるデータベースから別のデータベースにコピーまたは移動することができる。図5は、この特徴の例を示している。
データベースx500の回復ユニットb(504)は、図5のデータベースxの多くの回復ユニット502、506のうちの1つである。データ内容を図5のデータベースy510にコピーし、回復ユニット504の要素をデータベースyの一部にすることが望ましい。転送前にデータベースxにはN個の回復ユニットがあり、データベースyには2つしかないため、各データベース内の回復ユニットの数は要因ではないことに留意されたい。つまり、回復ユニットp512およびq514Uは、データベースy510にあらかじめ存在している可能性がある。
本発明の態様を使用して、回復ユニットを転送可能ユニットとして使用することによって、回復ユニット504のデータをデータベースx500からデータベースy510にコピーすることができる。回復ユニット504がデータベースxからデータベースyにコピーされると、その内容は保持されるが、新しいデータベースと互換性がある命名規則を採用し得る。したがって、古い回復ユニットb(504)は、データベースyにいったんコピーされると、その名前がデータベースyと互換性のある回復ユニットr504’となり得る。データベースy内の新しく追加された回復ユニット504’は、その仲間の回復ユニット512および514のものとは異なる名前空間を有する。新しい名前空間は、データベースx内の元の回復ユニット504とも異なり得る。
図6は、本発明の一実施形態の一般の方法のフロー図を示している。ステップ605で、データベースを、回復ユニットとして使用する複数のユニットにパーティション分割することができる。ステップ610で、上述したような1次カタログが作成される。1次カタログは、回復ユニットの論理メタデータ要素を含み得る。1つのログストリームのみが特定の回復ユニットに関連付けられ、しかし複数の回復ユニットは単一のログストリームファイルを共有し得るように、ステップ615で複数のログストリームファイルが作成され得る。一実施形態では、回復ユニットが存在するのと同じだけログストリームファイルが存在するのが好ましい。ステップ620で、2次カタログが作成され得る。作成された2次カタログは、それぞれの回復ユニットの物理メタデータ要素を含み得る。ステップ625で、2つのタイプのカタログが別個の回復ユニットを参照するように、それらをリンクすることができる。したがって回復ユニットのフレームワークを確立することができる。次いでシステムのユーザは、回復ユニットを働かせる必要がある場合、残りの回復ユニットの可用性に影響を与えることなくオフラインで実行することができるように、2次カタログを維持することができる。
このように作成されると、回復ユニットをうまく利用して、同じデータベース内の他の回復ユニットからオフラインでデータベースの部分を維持し、または回復することができる。さらに、回復ユニットのフレームワークは、あるデータベースから別のデータベースへの1つまたは複数の回復ユニットの転送を可能にする。図7は、回復ユニットとして構築されたデータベースの1つまたは複数の部分をあるデータベースから別のデータベースにコピーする方法のフロー図を示している。
最初に、ステップ705で、図6の方法に従って第1のデータベースにおいて1つまたは複数の回復ユニットを作成することができる。次いで、ステップ710で、第2のデータベースにおいて1つまたは複数の回復ユニットを作成することができる。転送を行うために、ステップ715で、どの回復ユニットが第1のデータベースから第2のデータベースに転送されることが求められるかに関する選択を行う必要がある。次いでステップ720で、選択された回復ユニットがコピーされ、したがって第2のデータベースに転送され得る。したがって、第2のデータベースの構造が第1のデータベースのものと一致することを前提に、転送された回復ユニットは、新しいデータベースに結合され、第2のデータベースによるアクセスが可能である。
単一のデータベース内での操作の説明に戻ると、本発明の異なる一実施形態では、複数のファイルグループを同じログに結合することができる。例えば、ユーザは、回復ユニットごとに1つのファイルグループを有し得る。各回復ユニットは、その物理メタデータカタログを含む主要ファイルグループを有し得る。この主要ファイルグループは、回復ユニットおよびファイル管理にアクセスする方法のためのカタログとすることができる。例えば、各データベースは、データベースおよび他の回復ユニットのブートストラップのために使用される1次回復ユニットを有し得る。1次回復ユニットは、すべての物理メタデータ、および起動時に2次回復ユニットを見つけ、起動させるのに十分な物理メタデータを含み得る。2次回復ユニットは、論理メタデータのカタログを含む。一実施形態では、各回復ユニットは、1つの主要ファイルグループを含み、データベースの1次ファイルグループは、主要ファイルグループである。1次ファイルグループは、データベースの単一の論理カタログ、および物理メタデータが2次回復ユニットをブートストラップするのに十分な情報を含み得る。1次ファイルグループは、1次回復ユニット内のみに存在し得る。さらに、1次回復ユニットは、1次ではない、またはより低い層の回復ユニットを見つけるのに必要な新しいカタログエントリを有し得る。主要ファイルグループの名前は、CREATE/ALTER DATABASE構文のアクセスポイントとすることができる。
一実施形態では、本発明を、ワシントン州レドモンドのMicrosoft社から入手可能な構造化照会言語(SQL)環境で使用することができる。その環境で、回復ユニットの状態は、データベースの状態を映すことができ、全体的なデータベースの状態を1次回復ユニットの状態に結合することができる。回復ユニットのロックスペースは、回復ユニットがオンラインのとき、データベースのものと同じであり得る。他の何らかの状態に移動するとき、ロックスペースに移行することが望ましい。この移行は、回復ユニットをオンラインから除くためにデータベース全体の最初の簡単な排他的ロックを必要とする可能性があるが、後でそれをオンラインに戻す必要はない。ほとんどの場合、最初の状態はオンラインではない可能性が高いため、実際にはユーザに見える移行期間はない。一実施形態で、既存のデータベース管理状態から移行フレームワークを利用することはできるが、それをデータベース全体の代わりに回復ユニットに適用することができる。一実施形態では、以下のデータベース状態をデータベースおよび回復ユニットに適用することができる。
Figure 2007525765
SQL環境では、状態の多くはデフォルトまたは移行状態である。RESTORING状態には、回復ユニット内の任意のファイルまたはファイルグループの復元を試みることによって到達する。OFFLINE状態およびEMERGENCY状態の場合、管理者が強制的に状態を変更させることができるための構文を決定する必要があることが好ましい。また、これらが回復ユニットに有用な状態であるかどうかを決定する必要があることも好ましい。「回復ユニット」を参照する構文を一切公開しないことが理想的である。
SQL環境で、長期の回復シナリオ中、データベースは、1次回復ユニットが使用可能になるとすぐに使用可能になる。長期回復が行われている回復ユニットは「Recovering」であり、そのすべてのファイルグループはユーザから使用できない。しかし、データベースの残りが使用可能である間、1次以外の他の回復ユニットは回復し得る。
やり直し/元に戻すの回復は、回復ユニットごとに行うことができ、現在の呼出がデータベースから回復ユニットにリダイレクトされることを必要とすることが好ましい。特殊なケースはなく、一般に回復は、回復ユニットのみと働けばよく、データベースとともに働く必要はない。回復は、異なる回復ユニットおよびチェックポイントでマルチスレッド化される。
SQL環境で、データベースの回復モード(FULL、SIMPLE、BULK_LOGGED)は、すべての回復ユニットに適用され得る。さらに、回復ユニットは、現在のデータベース構成要素へのオーバーヘッドがほとんどない、またはまったくない状態で、データベースごとに複数のログを有する機会を提供し得る。
本発明の一態様では、基本的なフレームワークを活用して、テーブルまたはデータベースのパーティションをあるデータベースまたはサーバから別のデータベースまたはサーバに容易に移動/マージできるようにすることができる。これは、ファイルのコピー/添付または論理メタデータおよび物理メタデータの復元によって達成することができる。この機能を使用して、異なる回復ユニットは、データベース内で一意ではなく回復ユニット内で一意の同じファイル識別子を有し得る。
一実施形態では、データベースへの1つの内部インターフェース、DBTABLEは、核の物理メタデータ以外のほとんどの構成要素について同じままであり得る。物理メタデータの構成要素は、DBTABLEの代わりに回復ユニットを参照し得る。
一実施形態では、ファイル、ファイルグループ、およびログファイルの集まりを回復ユニットで使用することができる。回復ユニットは、CREATE DATABASEステートメントまたはALTER DATABASEステートメントで主要ファイルグループを指定することによって作成することができる。CREATE DATABASEの場合、新しい主要ファイルグループはそれぞれ、前の回復ユニットが指定されたログの後にくることが好ましい。ログファイルは主要ファイルグループごとに指定することができることが好ましい。この実施形態では、CREATE DATABASE構文図を次のように表すことができる。
Figure 2007525765
この実施形態では、回復ユニットの作成には、ファイルグループ名の後にファイルリストを添付できるようにするALTER DATABASE命令の新しい構文が必要である。回復ユニット全体を追加するステートメントは、次のように示される。
Figure 2007525765
データファイルの場合、ファイルを既存の回復ユニットに追加することは、ファイルをファイルグループに追加することと同じである。ログファイルの場合、ADD LOG FILEがファイルグループ名を指定することもできるように、ALTER DATABASE構文への拡張が望まれ得る。そのファイルグループ名は、回復ユニット内の主要ファイルグループとすべきである。
Figure 2007525765
同様に、ファイルグループを回復ユニットに追加するために、その回復ユニットの主要ファイルグループを示す文節を追加することができる。
Figure 2007525765
回復ユニットの状態の変更は、MODIFY FILEGROUP文節を主要ファイルグループ名とともに使用することを除いて、データベースの状態の変更とほぼ同じである。
Figure 2007525765
RESTORE DATABASE構文は、一般に、ファイルまたはファイルグループのオプションをすでに含んでいる。本発明の一態様として、その回復ユニットのログのみが影響を受けるように、ファイルまたはファイルグループのオプションを、RESTORE LOGステートメントに拡張することもできる。
Figure 2007525765
回復ユニット内のファイルグループおよびファイルに割り当てられた数字識別子(ID)は、回復ユニット間で重複することに留意されたい。つまり、各回復ユニットは、その1次データのファイル1およびファイル2およびログファイルを有している。各回復ユニットは、そのシステムテーブルのファイルグループ1を有している。この原理には複数の面がある。
(a)この特徴は、データベースごとに32,767個のファイルの一般に使用可能な限界を拡大する。
(b)現在使用可能なシステムでは、一般の限界は、データベースごとに32,767個のファイルグループである。回復ユニットを使用すると、ファイルグループの最大数×許容される回復ユニット数にすることができる。
(c)回復ユニットは、単独とすることができ、別のデータベースに容易に移動することができる。この移動は、テーブルまたはデータベースのパーティション全体の新しいデータベースまたはサーバへの移動とすることができる。
上記の重複の結果として、行識別子は、もはやデータベース内で一意ではなく、回復ユニットで一意である。ヒープ上の非クラスタ化インデックスは、回復ユニットのインデックスに存在しない行識別子を含み得る。
一実施形態では、2つの回復ユニットを含むデータベースの作成は、次の例のように実施され得る。
回復ユニット1は、1つのファイルグループ、1次回復ユニットのみを有している。回復ユニット2は、2つのファイルグループ、1次(SalesGroup1)および2次(SalesGroup2)を有している。
Figure 2007525765
一実施形態では、テーブルの異なる回復ユニットへの追加は、次の例のように実施され得る。テーブルまたはインデックスを異なるファイルグループに追加するには、ユーザは、CREATE TABLEステートメントまたはCREATE INDEXステートメントへの「ON」文節の追加を指定することができる。例えば、上記で作成された追加データベースで、SalesGroup1回復ユニット上にPurchaseOrderDetailテーブルがあり、しかし1次回復ユニット上に顧客テーブルがあるかもしれない。
Figure 2007525765
一実施形態では、新しいALTER DATABASE構文を使用して、新しい回復ユニットを既存のデータベースに追加することができる。
Figure 2007525765
一実施形態では、ファイルグループの可用性および回復を示す本発明の一態様の例は、次のシナリオから理解できる。データベースFOOは、主要ファイルグループA(1次)、B、C、D、およびEを有する。Cのファイルグループ内にデータファイルを含むドライブが故障したと仮定する。さらに、Eのファイルグループが所有するファイルの物理的なファイル破損がある。データベースの起動時、ファイルグループAは応答しており、したがって最初のデータベース状態はONLINEである。しかし、Cの状態は、ファイルが欠けているため「Recovery Pending」であり、Eは、破損のために回復できず、「Suspect」とマークされている。起動後の状態は、次のように表示される。
Figure 2007525765
Cドライブの問題は、プラグが抜かれた電源ケーブルとして解決される。これは訂正され、ファイルは現在使用可能である。ユーザは、Cをオンラインに設定するためにALTER DATABASEステートメントを使用することができる。
ALTER DATABASE FOO MODIFY FILEGROUP C SET ONLINE
Cドライブは回復し、現在使用可能である。現在、状態は次の通りである。
Figure 2007525765
ファイルグループA、B、およびD内のデータへのユーザのアクセスは、CドライブのONLINEへの移行によって影響を受けた。ドライブDのデータファイルは、物理的に損害を受け、回復する必要がある。ファイルグループはONLINEではないため、RESTORINGへの移行は、他のファイルグループのユーザに影響を与えることなく行われる。ドライブCのログの後部を含めて、データベース全体のログがバックアップされる。
BACKUP LOG foo TO DISK='e:\logtail.dmp'
ドライブCのデータファイルは、最後のデータベースバックアップから復元される。これによってドライブCは、RESTORING状態に移行する。
RESTORE DATABASE FOO C FROM DISK = 'e: \fulldbbackup.dmp' WITH NORECOVERY
Figure 2007525765
ドライブCのログは、障害ポイントまで復元され、ドライブCは回復し、使用可能になる。
Figure 2007525765
コンピューティング装置例
図8および以下の説明は、本発明の実施形態を実施できる適したコンピューティング環境の簡単な概説を提供するためのものである。以下では汎用コンピュータについて説明するが、これは一例にすぎず、本発明の実施形態は、ネットワーク/バスの相互運用性および対話を有するクライアントなど、他のコンピューティング装置により実施することができる。したがって、本発明の実施形態は、例えば機器、他のコンピューティング装置およびオブジェクトなどに配置されているオブジェクトなど、クライアント装置が単にネットワーク/バスへのインターフェースとして働くネットワーク式環境など、非常に小さいまたは最小のクライアントリソースが関与するネットワーク式ホストサービスの環境で実施することができる。本質的に、データを格納できる、またはデータを取り出すことができる場所ならどこでも操作に望ましく、または適した環境である。
必須ではないが、本発明の実施形態は、装置またはオブジェクトのサービスの開発者が使用するように、オペレーティングシステムを介して実施することができ、かつ/またはアプリケーションソフトウェア内に含めることもできる。ソフトウェアは、クライアントワークステーション、サーバ、または他の装置など、1つまたは複数のコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明することができる。一般にプログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。一般に、プログラムモジュールの機能を、様々な実施形態で望まれるように結合し、または分散することができる。さらに、本発明の様々な実施形態を他のコンピュータ構成で実施できることを当業者は理解されよう。使用に適したよく知られている他のコンピューティングシステム、環境、および/または構成には、それだけには限定されないが、パーソナルコンピュータ(PC)、現金自動預け払い機、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能家庭用電化製品、ネットワークPC、機器、電灯、環境制御要素、ミニコンピュータ、メインフレームコンピュータなどがある。また、本発明の実施形態は、タスクが通信ネットワーク/バスまたは他のデータ通信媒体によってリンクされているリモート処理装置によって実行される分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールを、メモリ記憶装置を含むローカルおよびリモートのコンピュータ記憶媒体に置くことができ、クライアントノードはサーバノードとして働くことができる。
したがって図8は、本発明の実施形態を実施に適したコンピューティングシステム環境例800を示しているが、上記で明らかになったように、コンピューティングシステム環境800は、適したコンピューティング環境の一例にすぎず、本発明の実施形態の使用または機能の範囲に関する任意の制限を示唆するものではない。また、コンピューティング環境800を、動作環境800の例に示した構成要素のいずれか1つ、またはその組合せに関連する任意の依存性または必要条件を有しているものと解釈すべきではない。
図8を参照すると、本発明の実施形態を実施するシステムの例は、汎用コンピューティング装置をコンピュータ810の形で含んでいる。コンピュータ810の構成要素は、それだけには限定されないが、処理ユニット820、システムメモリ830、およびシステムメモリを含む様々なシステム構成要素を処理ユニット821に結合するシステムバス820を含む。システムバス821は、様々なバスアーキテクチャのうちの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のうちどんなものでもよい。こうしたアーキテクチャには、それだけには限定されないが一例として、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ電子装置規格化協会(VESA)ローカルバス、および(メザニンバスとしても知られている)周辺部品相互接続(PCI)バスなどがある。
コンピュータシステム810は、一般に様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータシステム810からアクセスできる使用可能な任意の媒体とすることができ、揮発性および不揮発性媒体、取外式および固定式媒体を含む。コンピュータ可読媒体は、それだけには限定されないが一例として、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、他のデータなど、情報を格納するための任意の方法または技術で実施される揮発性および不揮発性の取外式および固定式の媒体がある。コンピュータ記憶媒体には、それだけには限定されないが、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、フラッシュメモリまたは他のメモリ技術、コンパクトディスク読み取り専用メモリ(CD−ROM)、書き換え可能なコンパクトディスク(CD−RW)、デジタル多用途ディスク(DVD)または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または所望の情報の格納に使用でき、コンピュータシステム810からアクセスできる他の任意の媒体などがある。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波または他の移送機構などの変調されたデータ信号に組み込む。これには任意の情報配送媒体がある。「変調されたデータ信号」という用語は、信号に情報を符号化するように1つまたは複数のその特性が設定または変更された信号を意味する。通信媒体には、それだけには限定されないが一例として、有線ネットワーク、直接配線された接続などの有線媒体、および音響、RF、赤外線、その他の無線媒体などの無線媒体がある。また、上記のどんな組合せでもコンピュータ可読媒体の範囲内に含まれるものとする。
システムメモリ830は、読み取り専用メモリ(ROM)831やランダムアクセスメモリ(RAM)832など、揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体を含む。基本入出力システム833(BIOS)は、例えば起動中など、コンピュータシステム810内の要素間での情報の転送を助ける基本ルーチンを含み、一般にROM831に格納されている。RAM832は一般に、処理ユニット820から直接アクセス可能な、かつ/または処理ユニット120が現在処理しているデータおよび/またはプログラムモジュールを含む。図8は、それだけには限定されないが一例として、オペレーティングシステム834、アプリケーションプログラム835、他のプログラムモジュール836、およびプログラムデータ837を示している。
コンピュータシステム810は、他の取外式/固定式、揮発性/不揮発性コンピュータ記憶媒体を含むこともできる。一例にすぎないが、図8は、固定式不揮発性磁気媒体から読み取り、あるいはそこに書き込むハードディスクドライブ841、取外式不揮発性磁気ディスク852から読み取り、あるいはそこに書き込む磁気ディスクドライブ851、およびCD−ROM、CD−RW、DVDや他の光媒体など、取外式不揮発性光ディスク856から読み取り、あるいはそこに書き込む光ディスクドライブ855を示している。動作環境の例で使用できる他の取外式/固定式、揮発性/不揮発性コンピュータ記憶媒体には、それだけには限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体RAM、半導体ROMなどがある。ハードディスクドライブ841は一般に、インターフェース840などの固定式メモリインターフェースを介してシステムバス821に接続され、磁気ディスクドライブ851および光ディスクドライブ855は一般に、インターフェース850などの取外式メモリインターフェースによってシステムバス821に接続される。
上述し、図8に示したドライブおよびその関連のコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータシステム810の他のデータの記憶域を提供する。図8では例えば、ハードディスクドライブ841は、オペレーティングシステム844、アプリケーションプログラム845、他のプログラムモジュール846、およびプログラムデータ847を格納するものとして示されている。これらの構成要素は、オペレーティングシステム834、アプリケーションプログラム835、他のプログラムモジュール836、およびプログラムデータ837と同じであっても、異なっていてもよいことに留意されたい。オペレーティングシステム844、アプリケーションプログラム845、他のプログラムモジュール846、およびプログラムデータ847は少なくとも異なるコピーであることを示すために、ここではそれらに異なる番号を付している。ユーザは、キーボード862、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティング装置861などの入力装置を介してコマンドおよび情報をコンピュータシステム810に入力することができる。他の入力装置(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどがある。これらおよび他の入力装置は、しばしばシステムバス821に結合されているユーザ入力インターフェース860を介して処理ユニット820に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)など他のインターフェースおよびバス構造で接続してもよい。モニタ891または他のタイプの表示装置もまた、ビデオインターフェース890などのインターフェースを介してシステムバス821に接続され、ビデオインターフェース890はビデオメモリ(図示せず)と通信することができる。モニタ891に加えて、コンピュータシステムは、出力周辺インターフェース895を介して接続できるスピーカ897、プリンタ896などの他の周辺出力装置を含むこともできる。
コンピュータシステム810は、リモートコンピュータ880など1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク式環境または分散環境で動作することができる。リモートコンピュータ880は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置、または他の一般のネットワークノードでよく、一般にコンピュータシステム810に関連して上述した多くまたはすべての要素を含むが、図8にはメモリ記憶装置881のみを示している。図8に示した論理接続は、ローカルエリアネットワーク(LAN)871および広域ネットワーク(WAN)873を含むが、他のネットワーク/バスを含んでいてもよい。こうしたネットワーキング環境は、家、オフィス、全社規模のコンピュータネットワーク、イントラネット、およびインターネットではごく一般的である。
LANネットワーキング環境で使用する場合、コンピュータシステム810は、ネットワークインターフェースまたはアダプタ870を介してLAN871に接続される。WANネットワーキング環境で使用する場合、コンピュータシステム810は一般に、モデム872、またはインターネットなどWAN873を介して通信を確立する他の手段を含む。モデム872は、内蔵のものでも外付けのものでもよく、ユーザ入力インターフェース860または他の適切な機構を介してシステムバス821に接続することができる。ネットワーク式環境では、コンピュータシステム810に関連して示したプログラムモジュール、またはその一部をリモートメモリ記憶装置に格納することができる。図8は、それだけには限定されないが一例として、リモートアプリケーションプログラム885をメモリ装置881上に存在するものとして示している。図示したネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段を使用してもよいことは理解されよう。
パーソナルコンピューティングおよびインターネットの集合を考慮して、様々な分散コンピューティングフレームワークが開発されており、また開発されつつある。個人および企業のユーザに一様に、アプリケーションおよびコンピューティング装置用のシームレスに相互運用可能なWeb対応インターフェースが提供され、コンピューティングアクティビティは徐々にWebブラウザまたはネットワーク指向になる。
例えば、Microsoft社から入手可能なMICROSOFT(登録商標)の.NET(商標)プラットフォームは、サーバ、Web対応データ記憶などのビルディングブロックサービス、およびダウンロード可能の装置ソフトウェアを含む。本明細書の実施形態例は、コンピューティング装置に存在するソフトウェアに関して記載しているが、本発明の一実施形態の1つまたは複数の部分は、オペレーティングシステム、アプリケーションプログラミングインターフェース(API)、またはコプロセッサ、表示装置、および要求側オブジェクトのいずれかの間の「仲介」オブジェクトを介して実施することもでき、したがって操作は、すべての.NET(商標)の言語およびサービスによって実行され、サポートされ、またはそれを介してアクセスされ、また他の分散コンピューティングフレーワームでも実行され得る。
上述したように、本発明の実施形態例は、様々なコンピューティング装置およびネットワークアーキテクチャとの関連で記載しているが、基礎を成す概念は、データベースのパーティション分割された回復システムを実施することが望ましい任意のコンピューティング装置またはシステムに適用することができる。したがって、本発明の実施形態との関連で記載した方法およびシステムは、様々なアプリケーションおよび装置に適用することができる。本明細書ではプログラミング言語例、名前、および例を様々な選択の代表として選択しているが、これらの言語、名前、および例は制限的なものではない。本発明の実施形態によって達成される同じ、類似の、または同等のシステムおよび方法を達成するオブジェクトコードを提供する様々な方法があることを当業者であれば理解されよう。
本明細書に記載した様々な技術を、ハードウェア、ソフトウェア、または必要に応じてその組合せとともに実装することができる。したがって、本発明の方法および装置、またはそのいくつかの態様または部分は、フロッピー(登録商標)ディスク、CR−ROM、ハードドライブ、または他の任意のマシン可読記憶媒体など、有形の媒体に組み込まれるプログラムコード(すなわち命令)の形をとることができ、プログラムコードがコンピュータなどのマシンにロードされ、それによって実行されると、そのマシンは本発明を実施する装置となる。プログラム可能コンピュータ上でプログラムコードを実行する場合、コンピューティング装置は一般に、プロセッサ、プロセッサによって読み取り可能な記憶媒体(揮発性および不揮発性メモリおよび/または記憶要素を含む)、少なくとも1つの入力装置、および少なくとも1つの出力装置を含む。例えば、データ処理APIなどの使用を介して本発明の一実施形態の信号処理サービスを使用し得る1つまたは複数のプログラムは、コンピュータと通信するための高レベル手続き型またはオブジェクト指向型のプログラミング言語で実施されることが好ましい。しかし、必要に応じて、プログラムは、アセンブリ言語またはマシン言語で実施することができる。どんな場合でも、言語はコンパイル型またはインタプリタ型言語とすることができ、ハードウェア実装と組み合わせることができる。
本発明の態様を様々な図の好ましい実施形態との関連で説明してきたが、本発明から逸脱することなく本発明の同じ機能を実行するために、他の同様の実施形態を使用したり、記載した実施形態に変更および追加を加えたりすることができることを理解されたい。さらに、特に無線ネットワーク装置の数が増え続けるため、ハンドヘルド装置オペレーティングシステムおよび他のアプリケーション固有のオペレーティングシステムを含む様々なコンピュータプラットフォームが企図されることを強調すべきである。したがって、主張した本発明は、任意の単一の実施形態に限定されるべきではなく、むしろ添付の特許請求の範囲による幅および範囲で解釈すべきである。
パーティション分割された従来技術のデータベースを示すブロック図である。 パーティション分割された従来技術のデータベースを示す別のブロック図である。 本発明のログストリームの態様を示すブロック図である。 本発明のメタデータ構成を示すブロック図である。 本発明の回復ユニットの転送の態様を示すブロック図である。 本発明で具体化される回復ユニットの作成を示すフロー図例である。 データベース間での回復ユニットの転送に使用される本発明の実施形態のフロー図例である。 本発明の態様を実施できるコンピューティング環境例を示すブロック図である。

Claims (17)

  1. データベース内に回復可能ユニットを生成する方法であって、
    前記データベースを第1のユニットおよび第2のユニットにパーティション分割するステップと、
    前記ユニットの論理要素のメタデータを含み、前記ユニットを参照する1次カタログを作成するステップと、
    任意の1つのユニットが1つのログのみに関連付けられるように複数のログを作成するステップと、
    それぞれのユニットに対応し、前記それぞれのユニットの物理要素のメタデータをそれぞれ含む2つの2次カタログを作成するステップと、
    前記1次カタログを前記2次カタログにリンクするステップと、
    前記第1のユニットが前記第2のユニットとは無関係に回復可能であるように前記2次カタログを維持するステップと
    を含むことを特徴とする方法。
  2. 2つの2次カタログを作成するステップは、各カタログが前記それぞれのユニットに対応するログストリームを含む2つの2次カタログを作成するステップをさらに含むことを特徴とする請求項1に記載の方法。
  3. リンクするステップは、前記第2のユニットがアクセスされている間に第1のユニットが前記第2のユニットとは無関係に回復可能であるように前記1次カタログを前記2次カタログにリンクするステップをさらに含むことを特徴とする請求項1に記載の方法。
  4. 1次カタログを作成するステップは、前記データベース、テーブル、インデックス、データ型、制約、ストアドプロシージャ、トリガ、およびファイルグループの中の少なくとも1つのメタデータを含むカタログを作成するステップを含むことを特徴とする請求項1に記載の方法。
  5. 2つの2次カタログを作成するステップは、ページ、ファイル、Bツリー、ヒープ、およびログデータのうちの少なくとも1つのメタデータを含むカタログを作成するステップを含むことを特徴とする請求項1に記載の方法。
  6. 維持するステップは、前記それぞれのユニットへの更新を前記それぞれの2次カタログに別々に記録するステップを含むことを特徴とする請求項1に記載の方法。
  7. データベースを有するシステムであって、
    実行されると
    前記データベースを第1のユニットおよび第2のユニットにパーティション分割するステップと、
    前記ユニットの論理要素のメタデータを含み、前記ユニットを参照する1次カタログを作成するステップと、
    任意の1つのユニットが1つのログのみに関連付けられるように複数のログを作成するステップと、
    それぞれのユニットに対応し、前記それぞれのユニットの物理要素のメタデータをそれぞれ含む2つの2次カタログを作成するステップと、
    前記1次カタログを前記2次カタログにリンクするステップと、
    前記第1のユニットが前記第2のユニットとは無関係に回復可能であるように前記2次カタログを維持するステップと
    を含む前記方法を実行する命令を有するメモリにアクセスできるプロセッサ
    を含むことを特徴とするシステム。
  8. 2つの2次カタログを作成する前記方法ステップは、各カタログが前記それぞれのユニットに対応するログストリームを含む2つの2次カタログを作成するステップをさらに含むことを特徴とする請求項7に記載のシステム。
  9. リンクする前記方法ステップは、前記第2のユニットがアクセスされている間に第1のユニットが前記第2のユニットとは無関係に回復可能であるように前記1次カタログを前記2次カタログにリンクするステップをさらに含むことを特徴とする請求項7に記載のシステム。
  10. 維持する前記方法ステップは、前記それぞれのユニットへの更新を前記それぞれの2次カタログに別々に記録するステップを含むことを特徴とする請求項7に記載のシステム。
  11. 維持する前記方法ステップは、前記それぞれのユニットへの更新を前記それぞれの2次カタログに別々に記録するステップを含むことを特徴とする請求項7に記載のシステム。
  12. 前記データベースを第1のユニットおよび第2のユニットにパーティション分割するステップと、
    前記ユニットの論理要素のメタデータを含み、前記ユニットを参照する1次カタログを作成するステップと、
    任意の1つのユニットが1つのログのみに関連付けられるように複数のログを作成するステップと、
    それぞれのユニットに対応し、前記それぞれのユニットの物理要素のメタデータをそれぞれ含む2つの2次カタログを作成するステップと、
    前記1次カタログを前記2次カタログにリンクするステップと、
    前記第1のユニットが前記第2のユニットとは無関係に回復可能であるように前記2次カタログを維持するステップと
    を含む方法を実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
  13. 2つの2次カタログを作成する前記ステップは、各カタログが前記それぞれのユニットに対応するログストリームを含む2つの2次カタログを作成するステップをさらに含むことを特徴とする請求項12に記載のコンピュータ可読媒体。
  14. リンクする前記ステップは、前記第2のユニットがアクセスされている間に第1のユニットが前記第2のユニットとは無関係に回復可能であるように前記1次カタログを前記2次カタログにリンクするステップをさらに含むことを特徴とする請求項12に記載のコンピュータ可読媒体。
  15. 1次カタログを作成する前記ステップは、前記データベース、テーブル、インデックス、データ型、制約、ストアドプロシージャ、トリガ、およびファイルグループの中の少なくとも1つのメタデータを含むカタログを作成するステップを含むことを特徴とする請求項12に記載のコンピュータ可読媒体。
  16. 2つの2次カタログを作成する前記ステップは、ページ、ファイル、Bツリー、ヒープ、およびログデータのうちの少なくとも1つのメタデータを含むカタログを作成するステップを含むことを特徴とする請求項12に記載のコンピュータ可読媒体。
  17. 維持する前記ステップは、前記それぞれのユニットへの更新を前記それぞれの2次カタログに別々に記録するステップを含むことを特徴とする請求項12に記載のコンピュータ可読媒体。
JP2007500741A 2004-02-27 2004-07-29 データベース内の回復ユニット(recoveryunit)のためのシステムおよび方法 Expired - Fee Related JP4762972B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/789,244 US7334002B2 (en) 2004-02-27 2004-02-27 System and method for recovery units in databases
US10/789,244 2004-02-27
PCT/US2004/024538 WO2005091736A2 (en) 2004-02-27 2004-07-29 System and method for recovery units in databases

Publications (3)

Publication Number Publication Date
JP2007525765A true JP2007525765A (ja) 2007-09-06
JP2007525765A5 JP2007525765A5 (ja) 2007-10-18
JP4762972B2 JP4762972B2 (ja) 2011-08-31

Family

ID=34887231

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007500741A Expired - Fee Related JP4762972B2 (ja) 2004-02-27 2004-07-29 データベース内の回復ユニット(recoveryunit)のためのシステムおよび方法

Country Status (8)

Country Link
US (1) US7334002B2 (ja)
EP (1) EP1721261B1 (ja)
JP (1) JP4762972B2 (ja)
KR (1) KR101137213B1 (ja)
CN (1) CN100461163C (ja)
AT (1) ATE433153T1 (ja)
DE (1) DE602004021431D1 (ja)
WO (1) WO2005091736A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015504218A (ja) * 2012-01-06 2015-02-05 シータス データ ビルギ イスレムレリ トゥカレット アー.エス. モジュール式ブロックおよび関連付けられたログファイルを伴う分散型データベース
US9404756B2 (en) 2011-09-30 2016-08-02 Irobot Corporation Adaptive mapping with spatial summaries of sensor data

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6618822B1 (en) * 2000-01-03 2003-09-09 Oracle International Corporation Method and mechanism for relational access of recovery logs in a database system
US6631374B1 (en) * 2000-09-29 2003-10-07 Oracle Corp. System and method for providing fine-grained temporal database access
US7299239B1 (en) * 2002-12-02 2007-11-20 Oracle International Corporation Methods for partitioning an object
US7149736B2 (en) * 2003-09-26 2006-12-12 Microsoft Corporation Maintaining time-sorted aggregation records representing aggregations of values from multiple database records using multiple partitions
US7624120B2 (en) * 2004-02-11 2009-11-24 Microsoft Corporation System and method for switching a data partition
US7499953B2 (en) * 2004-04-23 2009-03-03 Oracle International Corporation Online recovery of user tables using flashback table
JP2006004031A (ja) * 2004-06-16 2006-01-05 Hitachi Ltd データ処理方法およびシステム並びにストレージ装置方法およびその処理プログラム
US9286346B2 (en) * 2005-02-18 2016-03-15 International Business Machines Corporation Replication-only triggers
US8214353B2 (en) * 2005-02-18 2012-07-03 International Business Machines Corporation Support for schema evolution in a multi-node peer-to-peer replication environment
US8037056B2 (en) * 2005-02-18 2011-10-11 International Business Machines Corporation Online repair of a replicated table
US7376675B2 (en) * 2005-02-18 2008-05-20 International Business Machines Corporation Simulating multi-user activity while maintaining original linear request order for asynchronous transactional events
US20060230048A1 (en) * 2005-04-08 2006-10-12 International Business Machines Corporation Method and apparatus for object discovery agent based mapping of application specific markup language schemas to application specific business objects in an integrated application environment
US8145653B2 (en) * 2005-04-08 2012-03-27 International Business Machines Corporation Using schemas to generate application specific business objects for use in an integration broker
US8458201B2 (en) * 2005-04-08 2013-06-04 International Business Machines Corporation Method and apparatus for mapping structured query language schema to application specific business objects in an integrated application environment
US20080059469A1 (en) * 2006-08-31 2008-03-06 International Business Machines Corporation Replication Token Based Synchronization
US7664766B2 (en) * 2006-09-12 2010-02-16 International Business Machines Corporation System, method and computer program product for managing data
US8589357B2 (en) * 2006-10-20 2013-11-19 Oracle International Corporation Techniques for automatically tracking and archiving transactional data changes
KR100912127B1 (ko) * 2006-12-04 2009-08-13 한국전자통신연구원 메타데이터 관리 시스템 및 메타데이터 관리 방법
US8209294B2 (en) * 2007-06-15 2012-06-26 Oracle International Corporation Dynamic creation of database partitions
US8356014B2 (en) * 2007-06-15 2013-01-15 Oracle International Corporation Referring to partitions with for (values) clause
US8135688B2 (en) * 2007-06-15 2012-03-13 Oracle International Corporation Partition/table allocation on demand
US8140493B2 (en) * 2007-06-15 2012-03-20 Oracle International Corporation Changing metadata without invalidating cursors
US7984023B2 (en) * 2007-10-04 2011-07-19 International Business Machines Corporation Method and utility for copying files from a faulty disk
US8078582B2 (en) * 2009-04-06 2011-12-13 Microsoft Corporation Data change ordering in multi-log based replication
US8402071B2 (en) * 2009-06-19 2013-03-19 Aptare, Inc. Catalog that stores file system metadata in an optimized manner
US8671074B2 (en) 2010-04-12 2014-03-11 Microsoft Corporation Logical replication in clustered database system with adaptive cloning
US8756361B1 (en) 2010-10-01 2014-06-17 Western Digital Technologies, Inc. Disk drive modifying metadata cached in a circular buffer when a write operation is aborted
US8954664B1 (en) 2010-10-01 2015-02-10 Western Digital Technologies, Inc. Writing metadata files on a disk
US8762336B2 (en) 2011-05-23 2014-06-24 Microsoft Corporation Geo-verification and repair
US8756382B1 (en) 2011-06-30 2014-06-17 Western Digital Technologies, Inc. Method for file based shingled data storage utilizing multiple media types
US8612706B1 (en) * 2011-12-21 2013-12-17 Western Digital Technologies, Inc. Metadata recovery in a disk drive
US9659041B2 (en) * 2012-01-30 2017-05-23 Oracle International Corporation Model for capturing audit trail data with reduced probability of loss of critical data
US9846620B2 (en) * 2013-01-11 2017-12-19 Commvault Systems, Inc. Table level database restore in a data storage system
US10963426B1 (en) 2013-02-25 2021-03-30 EMC IP Holding Company LLC Method of providing access controls and permissions over relational data stored in a hadoop file system
US9805053B1 (en) 2013-02-25 2017-10-31 EMC IP Holding Company LLC Pluggable storage system for parallel query engines
US9411692B2 (en) 2013-04-26 2016-08-09 Hewlett Packard Enterprise Development Lp Applying write elision
US9965497B2 (en) 2014-05-29 2018-05-08 Oracle International Corporation Moving data between partitions
KR101593184B1 (ko) * 2014-09-16 2016-02-15 한국전자통신연구원 파일시스템 메타데이터 기반 파티션 복구 방법 및 장치
KR101632389B1 (ko) * 2014-10-08 2016-06-21 (주)섬엔지니어링 IoT 가상 파일 체계를 이용한 IoT 분석시스템
CN104376091B (zh) * 2014-11-20 2017-08-01 厦门市美亚柏科信息股份有限公司 对SQLite中删除的数据进行恢复的方法及装置
CN104462261A (zh) * 2014-11-23 2015-03-25 国云科技股份有限公司 一种仅有mdf文件附加还原数据库的方法
US10114615B1 (en) * 2014-12-16 2018-10-30 United Technologies Corporation Feature based control system for multi-user CAx
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
CN106844089B (zh) * 2015-12-03 2021-01-01 阿里巴巴集团控股有限公司 一种用于恢复树形数据存储的方法与设备
US10002055B2 (en) * 2016-04-29 2018-06-19 Netapp, Inc. Efficient repair of B+ tree databases with variable-length records
CN108509518A (zh) * 2018-03-09 2018-09-07 北京小米移动软件有限公司 信息处理方法及设备
CN111124751B (zh) * 2019-11-12 2023-11-17 华为云计算技术有限公司 数据恢复方法及系统、数据存储节点、数据库管理节点
CN111104259B (zh) * 2019-12-23 2022-08-12 厦门市美亚柏科信息股份有限公司 一种数据库恢复方法、装置及存储介质
TWI750783B (zh) * 2020-08-27 2021-12-21 技嘉科技股份有限公司 基本輸入輸出系統的復原系統及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244604A (ja) * 1994-03-04 1995-09-19 Nippon Telegr & Teleph Corp <Ntt> データベースオンライン復旧方法および装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119128A (en) * 1998-03-30 2000-09-12 International Business Machines Corporation Recovering different types of objects with one pass of the log
US6185663B1 (en) * 1998-06-15 2001-02-06 Compaq Computer Corporation Computer method and apparatus for file system block allocation with multiple redo
US7756818B1 (en) * 1999-07-07 2010-07-13 Computer Associates Think, Inc. Database table recovery system
KR100390853B1 (ko) * 2000-06-07 2003-07-10 차상균 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244604A (ja) * 1994-03-04 1995-09-19 Nippon Telegr & Teleph Corp <Ntt> データベースオンライン復旧方法および装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9404756B2 (en) 2011-09-30 2016-08-02 Irobot Corporation Adaptive mapping with spatial summaries of sensor data
US9952053B2 (en) 2011-09-30 2018-04-24 Irobot Corporation Adaptive mapping with spatial summaries of sensor data
US10962376B2 (en) 2011-09-30 2021-03-30 Irobot Corporation Adaptive mapping with spatial summaries of sensor data
JP2015504218A (ja) * 2012-01-06 2015-02-05 シータス データ ビルギ イスレムレリ トゥカレット アー.エス. モジュール式ブロックおよび関連付けられたログファイルを伴う分散型データベース

Also Published As

Publication number Publication date
EP1721261A2 (en) 2006-11-15
EP1721261A4 (en) 2007-07-04
KR20060121654A (ko) 2006-11-29
WO2005091736A3 (en) 2006-02-09
EP1721261B1 (en) 2009-06-03
CN100461163C (zh) 2009-02-11
US7334002B2 (en) 2008-02-19
KR101137213B1 (ko) 2012-04-19
CN1809828A (zh) 2006-07-26
US20050193035A1 (en) 2005-09-01
WO2005091736A2 (en) 2005-10-06
ATE433153T1 (de) 2009-06-15
DE602004021431D1 (de) 2009-07-16
JP4762972B2 (ja) 2011-08-31

Similar Documents

Publication Publication Date Title
JP4762972B2 (ja) データベース内の回復ユニット(recoveryunit)のためのシステムおよび方法
US10657008B2 (en) Managing a redundant computerized database using a replicated database cache
JP5918243B2 (ja) 分散型データベースにおいてインテグリティを管理するためのシステム及び方法
JP4603755B2 (ja) 複数のスナップショットプロバイダを共通に調整し、管理するための方法およびシステム
US7606842B2 (en) Method of merging a clone file system with an original file system
JP2925931B2 (ja) ファイル・システムの副作用の選択的追加装置
US7546431B2 (en) Distributed open writable snapshot copy facility using file migration policies
US7395389B2 (en) Extending non-volatile storage at a computer system
US9575975B2 (en) Cluster-wide unique ID for object access control lists
US20150381725A1 (en) Service plan tiering, protection, and rehydration strategies
US20030065780A1 (en) Data storage system having data restore by swapping logical units
US7536426B2 (en) Hybrid object placement in a distributed storage system
US20110131183A1 (en) Using a Data Protection Server to Backup and Restore Data on Virtual Servers
US10353872B2 (en) Method and apparatus for conversion of virtual machine formats utilizing deduplication metadata
JP2015534175A (ja) ソフトウェア定義ネットワークアタッチ可能記憶システムおよび方法
CN111078121A (zh) 一种分布式存储系统数据迁移方法、系统、及相关组件
JP2013544386A5 (ja)
US7702757B2 (en) Method, apparatus and program storage device for providing control to a networked storage architecture
US20080294704A1 (en) Information processing apparatus and information processing method
US7181473B1 (en) Identifying files within a namespace
US6496840B1 (en) Method, system and program products for atomically and persistently swapping resource groups
Krogh et al. Pro MySQL NDB Cluster
Junping Analysis of key technologies of distributed file system based on big data [J]
Ingram High-Performance Oracle: Proven Methods for Achieving Optimum Performance and Availability
CN117056127A (zh) 一种基于Zookeeper的数据备份方法及相关产品

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

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100826

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110407

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20110408

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110408

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110428

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

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

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

Free format text: PAYMENT UNTIL: 20140617

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4762972

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

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

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