JP4638908B2 - データベースまたはファイルシステムを自動的に保守および修復するシステムおよび方法 - Google Patents

データベースまたはファイルシステムを自動的に保守および修復するシステムおよび方法 Download PDF

Info

Publication number
JP4638908B2
JP4638908B2 JP2007511346A JP2007511346A JP4638908B2 JP 4638908 B2 JP4638908 B2 JP 4638908B2 JP 2007511346 A JP2007511346 A JP 2007511346A JP 2007511346 A JP2007511346 A JP 2007511346A JP 4638908 B2 JP4638908 B2 JP 4638908B2
Authority
JP
Japan
Prior art keywords
page
database
level
recovery
repair
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
JP2007511346A
Other languages
English (en)
Other versions
JP2007536623A (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 JP2007536623A publication Critical patent/JP2007536623A/ja
Application granted granted Critical
Publication of JP4638908B2 publication Critical patent/JP4638908B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、一般には、データベースおよびファイルシステムに関し、より詳細には、データベースおよびファイルシステムを自動的に保守および修復することでデータの信頼性を保証する方法に関する。
(本発明のさまざまな態様は、あらゆる型のデータページについてデータページレベルのデータ破損に対応し、訂正する方法、およびインデックスページの破損(クラスタ化されているかどうかを問わない)、データページの破損、ログファイルのページ破損を含むがそれらに限定されないさまざまなシナリオでの回復(再作成または復元の操作を含む)に関する。)
(関連出願)
(本出願は、参照によりその開示全体が本明細書に組み込まれている2004年5月3日に出願された米国特許出願第10/837,932号の優先権を主張するものである。)
(本出願は、参照によりその開示全体が本明細書に組み込まれている同一出願人による出願、すなわち2003年8月21日に出願された米国特許出願第10/647,058号(米国弁護士側管理番号MSFT-1748)、"SYSTEMS AND METHODS FOR REPRESENTING UNITS OF INFORMATION MANAGEABLE BY A HARDWARE/SOFTWARE INTERFACE SYSTEM BUT INDEPENDENT OF PHYSICAL REPRESENTATION"、2003年8月21日に出願された米国特許出願第10/646,941号(米国弁護士側管理番号MSFT-1749)、"SYSTEMS AND METHODS FOR SEPARATING UNITS OF INFORMATION MANAGEABLE BY A HARDWARE/SOFTWARE INTERFACE SYSTEM FROM THEIR PHYSICAL ORGANIZATION"、2003年8月21日に出願された米国特許出願第10/646,940号(米国弁護士側管理番号MSFT-1750)、"SYSTEMS AND METHODS FOR THE IMPLEMENTATION OF A BASE SCHEMA FOR ORGANIZING UNITS OF INFORMATION MANAGEABLE BY A HARDWARE/SOFTWARE INTERFACE SYSTEM"、2003年8月21日に出願された米国特許出願第10/646,632号(米国弁護士側管理番号MSFT-1751)、"SYSTEMS AND METHODS FOR THE IMPLEMENTATION OF A CORE SCHEMA FOR PROVIDING A TOP-LEVEL STRUCTURE FOR ORGANIZING UNITS OF INFORMATION MANAGEABLE BY A HARDWARE/SOFTWARE INTERFACE SYSTEM"、2003年8月21日に出願された米国特許出願第10/646,645号(米国弁護士側管理番号MSFT-1752)、"SYSTEMS AND METHOD FOR REPRESENTING RELATIONSHIPS BETWEEN UNITS OF INFORMATION MANAGEABLE BY A HARDWARE/SOFTWARE INTERFACE SYSTEM"、2003年8月21日に出願された米国特許出願第10/646,575号(米国弁護士側管理番号MSFT-2733)、"SYSTEMS AND METHODS FOR INTERFACING APPLICATION PROGRAMS WITH AN ITEM-BASED STORAGE PLATFORM"、2003年8月21日に出願された米国特許出願第10/646,646号(米国弁護士側管理番号MSFT-2734)、"STORAGE PLATFORM FOR ORGANIZING, SEARCHING, AND SHARING DATA"、2003年8月21日に出願された米国特許出願第10/646,580号(米国弁護士側管理番号MSFT-2735)、"SYSTEMS AND METHODS FOR DATA MODELING IN AN ITEM-BASED STORAGE PLATFORM"に、主題によって関連付けられる。)
クライアントデータベースのプラットフォーム(すなわち、家庭や企業のデスクトップコンピュータ)ではサーバーのプラットフォームよりはるかに低品質のハードウェアを使用しているが、サーバークラスのハードウェア(コントローラ、ドライバ、ディスクなど)でも、データが破損したために、アプリケーションでデータストアに書き込んだデータを読み出し操作によって取り出せない場合がある。もちろん、これはクライアントデータベースのプラットフォームにとって大きな問題であるのは明らかである(サーバーデータベースのプラットフォームとは対称的に)。こうした状況の原因として、クライアントマシンは予期しない停電によって書き込み操作中に突然電源が切れ、結果として、ページの断裂やデータベースの破損を招く確率が高いことが挙げられるが、限定はされないさまざまな原因がある(サーバーのデータベースシステムでは、無停電電源装置(UPS)を使用して停電による問題を軽減するのがきわめて一般的である)。媒体の老朽化はデータベース破損のもう1つの原因である。物理記憶媒体は、時間の経過に伴って実際に摩耗する。信頼性に関する問題のさらにもう1つの原因は、不注意(たとえばバグ)と悪意(たとえばウィルス)の両方によるソフトウェアエラーから発生した破損の検出と回復である。
従来、データベースの保守と修復はデータベースマネージャなど、データベースシステムに関する熟練したスキルセットと十分な知識のある者、あるいは少なくともデータベースシステムになじみが深く、日常的にこれを使用しており、多くはデータベース技術についてある程度のスキルを備えている者に任されている。他方で、オペレーティングシステムやアプリケーションプログラムを利用する家庭や企業の一般的なエンドユーザーは、滅多にデータベースを操作せず、データベースの保守や修復の問題を処理するには不適切である。
これまで、こうした2つのグループ間にスキルレベルの差があることは大きな問題であったが、本明細書の「相互参照」の項にすでに示した米国特許出願に関連して開示されたオペレーティングシステムなどのオペレーティングシステムのデータベースを実装するファイルシステムでは、このようにスキルの不十分なエンドユーザーは自分ではほとんど解決できないデータベースの保守や修復の問題に直面する状況が発生する。このように、企業用/家庭用のデータベースを実装するオペレーティングシステムのファイルシステム、すなわち短縮して「データベースファイルシステム」(DBFS)は、破損を検出し、データベースをトランザクション的に整合性がある状態に回復できなければならない。また、失われたデータを回復できない場合、DBFSは前記データへの変更の極小の単位が維持されるレベル(つまり、アイテムベースのデータベースでは「アイテム」レベル)でデータの整合性を保証する必要がある。さらに、デフォルトでレイジーコミットモード(lazy commit mode)で動作するDBFSの場合は、異常なシャットダウンの直前にコミットされたトランザクションの持続性は保証されないので、これを考慮に入れて訂正する必要がある。
さらに、企業/家庭のエンドユーザーはDBFSの保守と回復を自動化することで多大な恩恵を被るが、データベースマネージャやデータベースに関するスキルの高い者にとっても一般的なデータベース保守および修復の技術的なソリューションによるメリットがある。データベース管理者がデータベースツール(たとえば、SQL Server 2000が提供するDatabase Tuning Advisor)を利用するのはこの領域では一般的であるが、こうしたツールは信頼性の問題には直接対応せず、データベースのバックアップを管理する手段を提供する。また、自動ではなく、データベース管理者が大いに介入する必要がある(特に、データベースバックアップを利用できない場合や、他の修復の問題が発生する場合)。したがって、データベースの信頼性の問題に対応する自動のソリューションは、データベース管理者や他のスキルのあるデータベースユーザーにとっても有益である。本発明は、まさにこうしたソリューションを提供する。
本発明のさまざまな実施形態は、DBFSのデータ信頼性システム(DRS:data reliability system)を目的としており、DRSはエンドユーザーの直接的な介入をほとんどまたは一切必要とせずにデータベース管理(DBA:database administration)タスクを自動的に実行するためのフレームワークとポリシーセットを備えている(したがって、本質的に前記エンドユーザーには透過である)。いくつかの実施形態において、DRSフレームワークは、エラーやイベントの通知を差し込むメカニズム、ポリシー、エラー/イベントを処理するアルゴリズムを実装している。より詳細には、こうした実施形態では、DRSはDBFSの保守と修復をバックグラウンドで実行するバックグラウンドスレッドである。したがって、DRSはDBFSの全体的な状態を最高のレベルで保護し、保守している。
本発明のさまざまな実施形態において、DRSは、(1)あらゆるページ型についてページレベルのデータの破損に応答し、これを訂正する機能、(2)(a)インデックスページの破損(クラスタリングの有無を問わない)、(b)データページの破損、(c)ログファイルページの破損に対して第2レベルの回復(再作成または復元)を試みる機能を備えている。
本発明の特定の実施形態は、(i)データ破損ケースの修復/復元を行う機能、(ii)(iii)システムの信頼性と可用性を向上する機能、(iv)スキルのあるサードパーティーがデータベースエンジンまたはストレージエンジンの問題をトラブルシューティングするためのDRSのエラー/イベント履歴テーブルを維持する機能を含むがそれらに限定されないDRS専用の機能をさらに備えている。
以上の課題を解決するための手段と後述の発明を実施するための最良の形態を、添付の図面を参照しながら読むことにより、本発明をより深く理解できる。本発明を説明するために本発明の例示的な構成を図示するが、本発明は開示されたこの特定の方法および手段には限定されない。
本主題について、法に定める要件を満たすために具体的に説明する。ただし、説明自体に本特許の範囲を限定する意図はない。むしろ、発明者は、特許請求の範囲に示す主題が、本明細書で説明するステップと同様の別のステップまたはステップの組み合わせを含めた別の方法によっても、現在または将来の他の技術と組み合わせても実施できることを意図している。さらに、本明細書において「ステップ」という用語は採用された方法のさまざまな要素を示しており、個々のステップの順序が明示的に示された場合を除き、この用語がここに開示するさまざまなステップ間の順序を示していると解釈してはならない。
前述の解決手段では、本発明の機能の概要を示している。本発明の1つの実施形態に関する詳細な説明を以下に示す。以下で説明するさまざまな実施形態では、MICROSOFT SQL SERVERデータベースシステム(本明細書では簡単に「SQL」と呼ぶこともある)に単独で実装された本発明の機能、あるいは次世代パーソナルコンピュータオペレーティングシステム(一般に「Windows(登録商標)Longhorn」、または簡単に「Longhorn」と呼ぶ)のMICROSOFT WinFSファイルシステムに組み込みの形で実装された本発明の機能について説明する。後者は、前述の相互参照に示す特許出願の多くの最も重要な主題である。前述のように、SQL SERVERにはMICROSOFT .NET Common Language Runtime(CLR)が組み込まれているので、管理されたコードを記述して実行し、SQL SERVERデータベースのデータストアを操作することができる。以下で説明する実施形態はこのコンテクストで動作するが、本発明がSQL SERVER製品への実装には決して限定されないことは言うまでもない。むしろ、本発明は、オブジェクト指向のデータベースシステムやオブジェクトリレーショナル拡張を伴うリレーショナルデータベースシステムなど、データベースストア上で動作するオブジェクト指向のプログラミングコードの実行をサポートする任意のデータベースシステムに実装できる。したがって、本発明が以下で説明する特定の実施形態に限定されず、前述の請求項で定義する本発明の精神と範囲を逸脱しないすべての変更を対象とすることは言うまでもない。
(コンピュータ環境)
本発明の多くの実施形態は、コンピュータ上で実行できる。図1と以下の説明は、本発明を実装できる適切なコンピューティング環境を簡単かつ一般的に説明することを目的としている。必須ではないが、本発明について、プログラムモジュールのようなコンピュータ実行可能命令がクライアントワークステーションやサーバーなどのコンピュータで実行されるという一般的なコンテクストで説明する。一般に、プログラムモジュールには、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などがあり、特定のタスクを実行するものや、特定の抽象データ型を実装するものがある。さらに、本発明が、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどを含むその他のコンピュータシステム構成でも実施できることは言うまでもない。本発明は、通信ネットワークを介してリンクするリモート処理装置でタスクを実行する分散コンピューティング環境でも実施できる。分散コンピューティング環境では、プログラムモジュールはローカルとリモートの両方のメモリ記憶装置内に配置できる。
図1に示すように、例示的な汎用コンピューティングシステムには、処理ユニット21、システムメモリ22、およびシステムメモリからプロセッサユニット21までのさまざまなシステムコンポーネントを接続するシステムバス23を含む従来のパーソナルコンピュータ20または同等のものが含まれる。システムバス23は、さまざまなバスアーキテクチャの任意の1つを使用したメモリバスまたはメモリコントローラ、周辺バス、ローカルバスを含む各種バス構造のいずれでもよい。システムメモリには、読み取り専用メモリ(ROM:read only memory)24とランダムアクセスメモリ(RAM:random access memory)25が含まれる。起動時などにコンピュータ20内のエレメント間の情報転送を支援する基本ルーチンを含む基本入出力システム26(BIOS:basic input/output system)は、ROM 24に格納される。パーソナルコンピュータ20には、さらにハードディスク(図示せず)に対する読み出しまたは書き込みを行うハードディスクドライブ27、取り外し可能な磁気ディスク29に対する読み出しまたは書き込みを行う磁気ディスクドライブ28、CD−ROM、または他の光媒体のような取り外し可能な光ディスク31に対する読み出しまたは書き込みを行う光ディスクドライブ30が含まれる。ハードディスクドライブ27、磁気ディスクドライブ28、および光ディスクドライブ30は、それぞれハードディスクドライブインターフェース32、磁気ディスクドライブインターフェース33、および光ディスクドライブインターフェース34を介してシステムバス23に接続する。ドライブと各ドライブに接続するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュールなど、パーソナルコンピュータ20のデータを保存する不揮発性記憶装置として利用できる。ここに記載する例示的な環境では、ハードディスク、取り外し可能な磁気ディスク29、および取り外し可能な光ディスク31を使用しているが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク(DVD:digital video disk)、ベルヌーイカートリッジ(Bernoulli cartridges)、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)などのように、コンピュータからアクセス可能なデータを保存できる他の種類のコンピュータ可読媒体も例示的な動作環境に使用できることは言うまでもない。
オペレーティングシステム35、1つまたは複数のアプリケーションプログラム36、その他のプログラムモジュール37、およびプログラムデータ38を含む多くのプログラムモジュールは、ハードディスク、磁気ディスク29、光ディスク31、ROM 24、またはRAM 25に保存できる。ユーザーは、キーボード40やポインティングデバイス42などの入力装置を使用してコンピュータ20にコマンドや情報を入力できる。他の入力装置(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディスク、スキャナなどを含めてもよい。これらの入力装置および他の入力装置は、多くの場合、システムバスに接続するシリアルポートインターフェース46を介して処理ユニット21に接続するが、パラレルポート、ゲームポート、USB(universal serial bus)のような他のインターフェースで接続してもよい。モニター47または他の種類の表示装置も、ビデオアダプタ48のようなインターフェースを介してシステムバス23に接続される。パーソナルコンピュータには、一般にモニター47以外にもスピーカーやプリンタなどの周辺出力装置(図示せず)が接続されている。図1に示す例示的なシステムには、ホストアダプタ55、SCSI(Small Computer System Interface)バス56、およびSCSIバス56に接続する外付けの記憶装置62も含まれている。
パーソナルコンピュータ20は、リモートコンピュータ49のような1台または複数台のリモートコンピュータへの論理接続を使用してネットワーク環境で動作できる。リモートコンピュータ49は、もう1台のパーソナルコンピュータ、サーバー、ルータ、ネットワークPC、ピアデバイス、または他の一般のネットワークノードでよい。通常は、パーソナルコンピュータ20に関連して上で説明したエレメントの多くまたはすべてが含まれるが、図1にはメモリ記憶装置50のみを示す。図1に示す論理接続には、ローカルエリアネットワーク(LAN:local area network)51とワイドエリアネットワーク(WAN:wide area network)52を含めてもよい。このようなネットワーキング環境は、職場、企業規模のコンピュータネットワーク、イントラネット、およびインターネットではごく一般的である。
LANネットワーキング環境で使用した場合、パーソナルコンピュータ20はネットワークインターフェースまたはアダプタ53を介してLAN 51に接続する。WANネットワーキング環境で使用する場合、コンピュータ20は一般にインターネットなどのワイドエリアネットワーク(WAN)52を介して通信を確立するためのモデム54またはその他の手段を備えている。モデム54(内蔵または外付け)は、シリアルポートインターフェース46を介してシステムバス23に接続できる。ネットワーク環境では、パーソナルコンピュータ20またはその一部に関連して説明したプログラムモジュールをリモートメモリ記憶装置に格納できる。図示されたネットワーク接続が例示的なものであり、コンピュータ間の通信リンクを確立する他の手段を使用してもよいことは言うまでもない。
本発明の多くの実施形態はコンピュータシステムに特に適していると考えられるが、本明細書のいかなる部分にも、本発明をこうした実施形態に限定する意図はない。逆に、ここで使用する「コンピュータシステム」という用語は、装置の特性が電子的、機械的、論理的、仮想的のいずれかにかかわらず、情報を格納および処理できる、かつ/または格納された情報を使用して装置自体の動作または実行を制御できる任意かつすべての装置を含むものとする。
(データ信頼性システム(DRS)の概要)
本発明の複数の実施形態において、データ信頼性システム(DRS)はバックグラウンドでデータベースを保守および修復するスレッドであり、データベースファイルシステム(DBFS)の全般的な状態を監視する。図2は、DBFS内のDRSの構造を示すブロック図である。この図で、複数のアプリケーション212、214、216にオペレーティングシステムレベルのサービスを提供するオペレーティングシステム202は、持続性のデータストア232に論理的に接続するDBFS 222を備えている。オペレーティングシステム202は、持続性のデータストア232の複数のページ234、236、238の中にページエラー240が検出され、DRS 242がページエラー240に応答して修復操作を行う場合に必ずDBFS 222から呼び出される244 DRS 242をさらに備えている。
本発明のさまざまな実施形態では、DRSは、(1)あらゆるページ型についてページレベルのデータの破損に応答し、これを修復する機能、(2)(a)インデックスページの破損(クラスタリングの有無を問わない)、(b)データページの破損、(c)ログファイルページの破損に対して第2レベルの回復(再作成または復元)を試みる機能を備えていてもよい。本発明の特定の実施形態は、(i)データ破損ケースの修復/復元を行う機能、(ii)システムの信頼性と可用性を向上する機能、(iii)スキルのあるサードパーティーがデータベースエンジンまたはストレージエンジンの問題をトラブルシューティングするためのDRSのエラー/イベント履歴テーブルを維持する機能を含むがそれらに限定されないDRS専用の機能をさらに備えている。
本発明の特定の実施形態では、DBFSがリリースされた後に回復ポリシーや検出メカニズムが更新される場合があるので、拡張可能なDRSが提供される。いくつかの実施形態では、DBFSデータベースがオンラインに維持されている間に修復を実行するDRSを目的としている。他の実施形態は、DBFSストアへの完全なアクセス権(すなわちシステム管理者権限)で実行することを意図している。さらに他の実施形態では、リアルタイムで障害を検出し、これに対処する機能を備えている。いくつかの実施形態では、DRSの修復は前記データへの変更の単位が維持されるレベル(つまり、アイテムベースのDBFSでは「アイテム」レベル)でトランザクション的に適切である。最後に、さまざまな実施形では、修復によってアイテム完全に回復するか、その変更が取り消される。DRSでは、プロセスの途中で再起動が発生しても、回復/復元作業を継続する機能を備えている。
本発明のいくつかの実施形態では、DRSはSQLイベントに登録しているので、SQLが一般的なイベントを起動すると、DRSはこれを中断し、対処することができる(823/824のイベントを含むがこれに限定されない)。さらに、本発明の別の態様により、データベースエンジンはDRSが特に処理するエラー状態について、DRSに固有のイベントを送信するように変更できる。
本発明のさまざまな実施形態では、DBFSがディスクページの読み出しと書き込みを行うたびに破損を検出する。この場合は、SQLが破損の種類によってエラーのホストの1つを生成し、固有のDRSイベントを起動し、固有のエラー状態について通知する。DRSはこうしたエラーを受信し、入力キューに入れて処理する。
本発明のいくつかの実施形態では、ページが破損しているかどうかの確認を、(a)ページのチェックサムを調べてチェックサムが無効な場合はページが破損していると見なす方法、または(b)ログシリアル番号(LSN)を調べてこれがログファイルの終わりを超えているかを確認する方法(LSNはトランザクションごとに増分される整数なので、ログの最後のトランザクションはLSN 432の場合に、これを上回るLSNが検出されるページは、書き込みエラーが発生している)を含むがこれらに限定されないさまざまな方法で実行する。この点に関して、DBFSの動作に影響を及ぼし得る主要な4種類のページ破損がある(バグなど、その他の原因以外に)。こうした4種類には、ページの断裂、媒体の老朽化、ハードウェア障害、不適切な順序による書き込みが含まれる。ページの断裂は、データページへの極小の書き込みが適切でなかった場合に発生する。すなわち、書き込み中にページの一部のセクターのみがディスクに作成され、その後にたとえば電源障害やセクター書き込みエラーのような障害イベントが発生すると、ページに破損した部分が存在する可能性がある。媒体の老朽化は、物理的な媒体の老朽化によってデータページのビットが破損する場合に発生する。ハードウェア障害は、バス、コントローラ、ハードディスク装置に関連するさまざまな原因で発生する。不適切な順序による書き込みに関して、IDEドライブではディスクに書き込む順序を保証できないという事実によってこうしたエラーが発生する。特にIDEドライブではライトキャッシュが有効化されており、このためにデータストアへの書き込みは不適切な順序で発生する恐れがある。たとえば、不適切な順序による書き込みの一部が行われたが、電源障害によって中断された場合は、たとえば関連のログエントリが書き込まれる前にデータページがディスクに書き込まれるなど、いくつかのエラーが発生する可能性がある。不適切な順序エラーはログシーケンス番号(LSN)を調べることで検出できるが、各ページを読み出す以外にこれを簡単に実行する方法はない。
(ページの分類)
本発明の目的に関して、すべてのページは以下に示すページのいずれかのクラスに分類される。
・データページ:データページはユーザーデータを記載するページであり、クラスタ化されたインデックスリーフページが含まれる。
・インデックスページ:このページには、インデックス情報のみが記載されており、クラスタ化されていないインデックスページと、クラスタ化されたインデックスページの非リーフページの両方が含まれる。
・システムページ:このページには、GAM、SGAM、起動ページが含まれ、DRSがこうしたページに固有の復元サポートを提供しなくても、DRSはこうしたページに対してページレベルの復元を試みることができる。イベントが発生した場合に、ページレベルの復元がエラーになると、DRSは緊急修復(emergency repair)(本明細書で後述)を試みる。
・回復不可能なページ:PFS(Page Free Space)ページまたは5つのシステムテーブル(Sysrowsetcolumns、Sysrowsets、Sysallocunits、Syshobtcolumns、Syshobts)のページは、このクラスのページを含み、この場合、DRSはデータベース全体を復元する。
・ログページ:このページはトランザクションログに含まれており、このページが破損している場合にDRSは緊急修復を試みる(本明細書で後述)。
(破損の分類)
本発明のいくつかの実施形態では、DRSは破損が検出されるタイミングによって定義された3つの異なるカテゴリ、すなわち、(1)データベース接続中、(2)標準のオンライン操作中、(3)トランザクションロールバック中のデータページ破損を解決するように設計されている。
(データベース接続中の破損検出:)
図3Aは、データベースFPMによるデータストアのDBFSへの接続を示すブロック図である。図3Bは、データベース接続操作の間に破損したページを検出し、訂正するプロセスを示すフロー図である。一般に、DBFPM(database file property manager)302は、DBFSストア304、306、308の接続と切断を管理する。ステップ352で、DBFPM 302がストア、たとえばDBFSストア304に接続すると、ステップ354でSQLはクラッシュ回復を実行し、ステップ356でトランザクションログ314内にクラッシュ時のアクティブトランザクション324(たとえば未完のトランザクション)があるかどうかを確認する。トランザクションがある場合、ステップ358でSQLはデータベースのクラッシュ回復を実行し、処理を継続する。クラッシュ回復中に、SQLは一般に、(a)トランザクションログの最終チェックポイントより後の部分を分析し、(b)ディスクへの書き込みが検出されない操作がログ内にあればこれを再実行し、(c)完了していないトランザクションがあれば取り消す。ステップ360で回復中にエラーが検出されない場合は、ステップ362でデータベースは正常に接続する。しかし、ステップ360でクラッシュ回復中にエラーが検出された場合は、ステップ364でSQLはデータベース接続に失敗する。
この「データベース接続」のシナリオはストアを接続するたびに呼び出されるので重要である。オペレーティングシステム(たとえば、Windowオペレーティングシステム)が起動するたび、および外付けのドライブ(たとえば、Firewire、USBなど)をコンピュータに接続またはコンピュータから切断するたびに、ストアが接続される。データベース接続のシナリオでは、クラッシュ回復と、ひいてはページの断裂(未完の書き込み)の検出が呼び出される。ユーザーはハードウェアを物理的に取り外す可能性があるので、DRSでこうしたケースを処理するのが望ましい。
しかし、本発明のさまざまな実施形態によるDRSを利用する場合に、動作は図4Aのフロー図に示すものとは若干異なる。まず、ステップ402でDBFPMはDBFSデータベースを接続し、ステップ404でSQLはクラッシュ回復を実行し、ステップ408でさらにデータベースをオンラインに戻そうとする。ステップ410でクラッシュ回復のエラーが発生せずにデータベースが接続する場合は、SQLが正常に戻り、ステップ452でデータベースが接続する(オンラインになる)。しかし、エラーが発生する場合は、ステップ412でDRSはデータベースを評価し、データベースにトランザクションの整合性があるかどうかを確認する。
データベースに整合性がないのは、トランザクションロールバック中のエラー、つまり物理的または論理的な取り消しエラーが発生する場合、またはクラッシュ回復中に不明なエラーが発生する場合のみである。ステップ412でデータベースにトランザクションの整合性がある場合は、ステップ414でDRSは回復操作が完了するまで修復を遅延する。換言すれば、DRSはデータベースの状態をデータベース接続のための整合性がある(「success」)と宣言し、回復が完了した後の破損の検出まで修復の開始を遅らせる。ステップ452でデータベースを接続し、クラッシュ回復との競合を回避する。
回復が完了し、ステップ452で接続が成功すると、ステップ478で遅延された修復がある場合はステップ480でDRSが修復を開始し、ステップ482で破損に対してまずページレベルの復元の呼び出しを試みる。ステップ484でページレベルの復元に失敗した場合、またはページレベルの復元が不可能な場合は、ステップ486でDRSはその原因がインデックスページのエラーであるかどうかを確認し、そうである場合はステップ488でDRSはインデックスを再作成する。他方で、ステップ490でデータページにエラーがある場合は、ステップ492でDRSはデータページの復元を試みる。しかし、ステップ490でデータベースに整合性がないこと、すなわち不明なエラー/サポートしないエラーがあることをDRSが確認した場合は、DRSは直ちにデータベースをオフラインにし(これで回復操作を終了する)、ステップ494でデータベースを「suspect」とマークし、ステップ496で緊急修復を試みる。
図4Bは、データベース接続中にDRSで処理するエラーを示すテーブルである。
(オンライン操作中の破損検出:)
図5Aは、クエリーエンジンが本発明のさまざまな実施形態のエラーを検出するオンライン操作におけるDRSの利用を示すフロー図である。このシナリオは、たとえばエンドユーザーがオペレーティングシステムシェルを使用してDBFSに対する比較的複雑なクエリーを実行し、このクエリー実行中にクエリーエンジンはエラーを報告する場合のように、DBFSの通常の実行時利用におけるものである。こうしたオンライン操作の状況において、エラーが発生する場合は、ステップ502でDRSがトランザクションを中止してエラーを修正しようとする。ステップ504で、DRSはまずページレベルの復元を試みる。しかし、ステップ506でデータページレベルの復元が不可能な場合または失敗した場合は、ステップ508でDRSは失敗したページの型を決定する。ステップ510でインデックスページエラーの場合は、ステップ512でDRSはインデックスの回復を試みる。ステップ514でデータページのエラーの場合は、ステップ516でDRSはデータページの復元を試みる。ステップ518でシステムまたはログページエラーの場合は、ステップ520でDRSは緊急修復を試みる。ステップ518で回復不可能なエラー(5つのシステムテーブルまたはPFSページ)の場合は、ステップ522でDFSは自動的にデータベース全体を復元するか、あるいはエンドユーザーがデータベース全体を復元するようにプロンプトを表示する。
図5Bは、オンライン操作中にDRSで処理するエラーを示すテーブルである。
(トランザクションロールバック中の破損検出:)
トランザクションロールバック中にエラーが発生する場合、DRSはデータベースをオフラインにし、suspectとしてマークし、データベースを再起動してクラッシュ回復を呼び出す。このプロセスでは、本明細書で前述したクラッシュ回復中の破損検出が再び呼び出される。
(回復技術)
当事業者には周知であり、すでに明らかなように、トランザクションの整合性はコミットされたデータのみを表示する(または使用可能にする)ことと、正しいデータのみをコミットする(持続性のストアに書き込んでトランザクションログを記録する)ことに関連する。この点に関して、クラッシュ回復中のやり直しと取り消しのすべての要求が適切に実行される限り、データベースはトランザクションに関して整合性がある。したがって、データページおよびインデックスページにはさまざまな破損が存在し得るが、依然としてトランザクション的には整合性がある。
本発明のさまざまな実施形態では、こうしたトランザクションの多くをオンラインで実行するのは望ましくないこと認識しているので、こうした実施形態ではデータベースがオフラインの間にすべての修復を実行しようとする。
SQLエラーが発生すると、DRSはページIDとデータベースIDのみを受け取る。この情報から、DRSはページに問い合わせてページの型を正確に特定する。こうした実施形態は、データページとインデックスの破損の回復メカニズムを備えており、DRSはこのメカニズムを使用して該当する破損によって失われたDBFSアイテムを回復しようとする。しかし、GAM、SGAM、PFS、起動ページなどを含めて、データベース内で失われる可能性のあるページは他にも多くの型がある。このような型のページについて、一般的なDBFSは専用のバックアップと回復のメカニズムを備えていないが、DRSはページレベルの復元を呼び出そうとする。
破損したページに対して、DRSはページレベルの復元を試みる。ページレベルの復元は音声を伴わない。失われたデータはコミットされていないことをユーザーに対して保証できるためである。任意のテーブルのページに対して同じ技術が適用される。本方法は、復元するページまたはテーブルの型によって変化しない。ページレベルの復元は、ページが最新のスナップショット内に存在する場合にのみ実行できる。有効なトランザクションログも入手できる必要がある。ページが最新のスナップショット内にない場合は、当事業者には周知のアイテムレベルの復元技術(たとえばバックアップ操作からの復元)を使用してページを回復する必要がある。
ページが最新のスナップショット内に存在し、有効なトランザクションログがある場合、DRSは図6に示す操作を実行してページを復元する。つまり、(1)ステップ602で、破損したページのPagelDを決定し、(2)ステップ604で、DBFSストアの最新のスナップショットで破損したページを検出してコピーし、(3)ステップ606で、ページに適用するトランザクションをロールフォワードしてオンディスクのトランザクションログ(on−disk transaction log)をページに適用し、(4)ステップ608で、復元されたページをオンラインデータベースに適用し、さらに、(5)ステップ610で、復元するページに関する延期されたトランザクションがある場合は、ステップ612でデータベースを再起動する必要がある(クラッシュ回復を実行し、延期されたトランザクションをクリアする)。ない場合はステップ614に進む。
前述のスナップショットに関して、当事業者には周知のとおり、VSS(Volume Shadowcopy Service)は特定のボリューム(たとえばNTFSボリューム)のタイムスナップショット内のポイントを保守する方法を提供する。VSSスナップショットは、書き込みのコピーを使用してボリュームのシャドウコピーを保守する。つまり、ディスクページが変更されるたびに、そのページのプリイメージ(pre−image)が最新のスナップショットのスナップショット記憶領域に書き込まれる。マシン上でTimeWarpが有効な場合(これは特定のDBFSと対応するオペレーティングシステムのデフォルトである)、スナップショットはデフォルトの1日2度の頻度で作成され、最大63スナップショットが保持される。スナップショットに格納されたプリイメージを利用するために、最新のスナップショットが作成された時刻からログが保持され、ログトランザクションはTimeWarpスナップショットでのみ作成されるので、いつでも使用可能な最終のスナップショット以降のログが存在する。ページの破損が存在し、最新のスナップショット内のページが使用できる場合、スナップショットからそのページの現在の時点までのログを再生することでページを復元できる。
TimeWarpスナップショット処理中に、スナップショット上のDBFSストアが回復される。これで、スナップショットデータベースの回復によって影響を受けたページについては、ページレベルの復元が不可能になる。この問題を回避するために、SQL Serverの視点はスナップショットボリューム上のデータベースにとられ、次いでこのデータベースが回復される。つまり、DRSはスナップショットボリューム内のデータベース上に回復されていない視点を有し、ページレベルの復元のために常にその視点内のページを使用することができる。
システム、ログ、不明なページを修復する場合、つまりログの破損が発生した場合、またはDRSで訂正できない障害がある場合は(たとえばデータまたはインデックス)、DRSはユーザーに対して、(a)データベース(ストア)全体の復元オプションと、(b)緊急モードによるデータベースの回復オプションを提供する。
データベースを緊急モードで修復するには、まずトランザクションログの破損や回復不可能なデータベースの状況から回復するDBCCの新しい機能を理解することが重要である。そのとき、データベースが回復できず、利用できるバックアップがない場合は、図7に示す以下の一連の操作が、本発明のいくつかのDRS実施形態に対してデータベースをオンラインに戻す。つまり(a)ステップ702でデータベースを緊急モードに設定し、(b)ステップ704で‘DBCC CHECKDB(database,REPAIR_ALLOW_DATA_LOSS)’を実行し、(c)これでデータベースは物理的に整合性がとれており、ステップ706でDSRはストア全体のCCを実行する。ただし、操作(b)は緊急モードでは特殊な意味をもつ。つまり、(i)エラーが発生してもデータベースの回復を強制的に進める(ログからできるだけ多くの情報を取得するが、データベースはトランザクション的に不整合なままである)。(ii)破損したログファイルを破棄して新しいログファイルを作成する。(iii)データベース全体の修復を実行し、構造的に整合性のある状態にする。これは、ロールバックまたは取り消しができない「極小」で一方向の操作であり、こうした状況でファイルを手作業で編集せずにデータベースを回復する唯一の方法である。以上のステップが正常に実行されると、データ(アイテムベースのDBFSではアイテム)に整合性があることが保証されるが、特定のアプリケーションではトランザクション的に整合性がない場合もあることを意味する。
インデックスページの型は、クラスタ化されていないページとクラスタ化された非リーフページの2つがある。データを伴うインデックスページ(クラスタ化されたインデックスリーフページ)はデータページと見なされる。このことを考慮して、回復可能なインデックス障害が発生した場合に、DRSはオフラインのインデックス再作成を使用してインデックスを修復しようとする(この修復中にデータベースがオンラインの場合は、インデックスのみがオフラインになる)。修復に失敗した場合、DRSはインデックスを破棄し、インデックスの再作成を試みる。ここで、再作成にも失敗した場合、DRSはインデックス全体を廃棄するか、またはインデックスを無効にして後で再作成を試みる(恐らく成功するまで無期限に実行する)。
データページの回復に関して、DRSは処理されたエラーの1つを受け取り、このページがデータページであることを確認した場合は、その回復を試みる。これは、SQLサーバーの任意の動作状態(DB接続、オンライン操作、ロールバック)で発生する可能性がある。図8に示すように、ステップ802でDRSがデータページのエラーを検出し、ステップ804でページレベルの復元を試み、ステップ806でこれが失敗した場合に、DRSは、(a)ステップ808で破損したページのPagelDを受け取り、前述のようにページの型を決定することで、破損したページの型を確認し(データページの破損が発生した場合に、DRSはこのページにアクセスしようとする他のトランザクションに対処する必要はない)、(b)ステップ810で、失われたItemIDの範囲を取得し(Txを起動してDBCC CHECKTable(table,REPAIR ALLOW DATA_LOSS)を実行する。これは、ItemIdを含む、クラスタ化されたキーに一致しないクラスタ化されていないインデックスのすべてのインデックスキーと、クラスタ化されていないインデックスキーを返すので、DRSはこれらを抽出し、これらを内部テーブルに書き込む)、さらに(c)ステップ812で、ItemIdとテーブル名のリストをWCCに渡す(ここで、WCCはこうしたItemIDを修復し、さらにストアの他の部分をチェックして、DBFSの整合性を保証し、TxをコミットしてDRSがこうした回復を中止したり再試行したりできるようにする)。複数のページが破損している場合は、DRSは破損したすべてのページのすべてのItemIDを特定し、それを次の処理(たとえば、バックアップから前記ページを復元する)に渡す。
DRSでは、ページレベルの復元が動作する場合はユーザーデータが失われないことを保証できるので、DRSに要求されるのは名目的なユーザーへの通知のみである。これは、ページレベルの復元が行われている場合は、ユーザーが予想より応答に時間がかかることに気付く可能性が高いためである。特定の実施形態において、ユーザーは一切通知を受け取らない(これには最大で数秒かかるので)。しかし、他の実施形態では、DRSがページを復元した事実を把握するために、DRSは「イベント」ログエントリを作成する。ページの復元を妨げるアクティブトランザクションが存在する最悪のシナリオでは、データベースを切断して再起動する必要があるので(クラッシュ回復を実行するために)、データベースへの接続はすべて終了する。アプリケーションは、このような可能性をあらかじめ考慮した上で設計する必要がある。ただし、設計が不適切な場合は、アプリケーションが「ハング」する可能性がある。したがって、本発明の特定の実施形態ではまさにこうしたイベントが発生する可能性があるという状況についてユーザーに通知し、ユーザーがこうしたアプリケーションをすべて閉じて望ましくない結果を回避できるようにしている。
(エンドユーザーの体験の例)
DRSの動作を説明するために、ユーザーの体験とユーザーの目に見えないところでDRSが実行している操作について、概要を明らかにするいくつかの状況を以下に示す。
(インデックスの破損:)
Abbeyは、WinFSクエリーを実行して先週自分が変更したすべての文書を検索しようとしている。このクエリー実行中に、WinFSはこれには通常より若干時間がかかることを通知する。事実、後続のいくつかクエリーも若干時間がかかっている。ここで、Abbeyはタスクバー上に表示された小さなバルーンに気付く。このバルーンは、Abbeyのマシンで信頼性の問題が検出されたので、Windows(登録商標)がこのエラーを修復するために時間がかかることを伝えている。まもなく別のバルーンが表示され、インデックスが正常に再作成されたことをAbbeyに通知する。これで、Abbeyはコンピュータの動作が改善されたことを知って安心する。
Abbeyの目に見えないところで、DRSはインデックスの破損を検出し、修復していた。このためには、インデックスをオフラインにし(したがってパフォーマンスが低下した)、インデックスを再作成し、さらにインデックスをオンラインに戻すという操作が必要であった。
(断裂したページの書き込み:)
Tobyは雷雨の最中に宿題のAdam Smith(アダムスミス)に関するエッセイを書いており、定期的に保存している。エッセイの約90%を書いたところで、Tobyの家全体が停電した。Tobyが使用しているのはラップトップではないので、バッテリのバックアップはない。Tobyにとって幸いなことに、約30分後に電力は復旧する。Tobyはコンピュータにログオンし、エッセイを開こうとする。Tobyは普段より時間がかかるような気がして困惑する。
Tobyの目に見えないところで起こっていたのはTobyのエッセイの文書アイテムの破損であり、停電が発生したときのハードディスクドライブの書き込みによるページの断裂によるものである。DBFSが再起動すると、DRSはこのデータページの破損を検出し、データを回復しようとした。DRSは自動のスナップショットから自動的にデータページの復元を試みた。Tobyは自分の作業を定期的に保存していたので、最新のスナップショットにエッセイのコピーが存在していた。したがって、DBFSは破損したページを自動的に復元できた。
(ビットの故障)とセクターの破損:
Susanはこれまでデジタルカメラを愛用しており、最近の2年間には自分の子供たちの写真5800枚を撮っていた。Susanは、この5800枚の中から3000枚を超える写真を自分のコンピュータのWinFSに保存していた。Susanにとって残念なことに、こうした大切な写真を保存するハードディスクドライブでディスクの一部のセクターが破損したこの破損したセクターには、Susanの破損した写真10枚が保存されている。Susanがこうした写真を表示しようとするとオペレーティングシステムのエラーが発生し、バックアップから写真を復元するようにというプロンプトが表示される。Susanはプロンプトに従ってバックアップ媒体(zipドライブ)を検索し、ディスクからアイテムを復元する。
Susanの目に見えないところでDBFSはページレベルの復元を試みている。しかし、こうした写真は変更されていないので(これまでに)、最新のスナップショット内には存在しない。したがって、この特定の実施形態ではSusanに独自のバックアップ(こうしたアイテムのみ)を取り込むように指示するプロンプトを表示する必要がある。
(結論)
本明細書で説明するさまざまなシステム、方法、技術は、ハードウェアまたはソフトウェア、あるいは必要に応じて両者の組み合わせによって実装できる。したがって、本発明の方法および装置、あるいは本発明の特定の態様または部分は、フロッピー(登録商標)ディスク、CD−ROM、ハードドライブ、または他の任意のマシン可読の記憶媒体などの物理的な媒体内に実装されたプログラムコード(すなわち命令)の形をとってもよい。この場合、プログラムコードがコンピュータなどのマシンにロードされて実行されると、このマシンは本発明を実施する装置となる。プログラム可能なコンピュータでプログラムコードを実行する場合に、コンピュータは一般にプロセッサ、プロセッサ可読の記憶媒体(揮発性と不揮発性のメモリおよび/またはストレージエレメントを含む)、少なくとも1つの入力装置、少なくとも1つの出力装置を備えている。1つまたは複数のプログラムは、コンピュータシステムと通信するハイレベルの手続き的またはオブジェクト指向のプログラミング言語で実装されるのが好ましい。ただし、プログラム(1つ以上)は必要に応じてアセンブリ言語や機械語で実装してもよい。いずれの場合も、言語はコンパイラ言語でもインタープリタ言語でもよく、ハードウェアによる実装と組み合わせてもよい。
本発明の方法および装置は、電気的な配線またはケーブル、光ファイバ、あるいは他の形の送信など、送信媒体を介して送信されるプログラムコードの形で実装してもよい。この場合、プログラムコードが受信され、EPROM、ゲートアレイ、プログラム可能な論理デバイス(PLD)、クライアントコンピュータ、ビデオレコーダなどのマシンにロードされて実行されると、このマシンは本発明を実施する装置となる。汎用プロセッサに実装する場合に、プログラムコードはプロセッサとの組み合わせにより、本発明のインデックス作成機能を実施する独自の装置を提供する。
本発明について、さまざまな図面に示す好ましい実施形態に関連付けながら説明してきたが、本発明の同じ機能を実行し、本発明の範囲を逸脱しない限り、本発明の他の同様の実施形態を利用できること、あるいは説明した実施形態への変更や追加が可能であることを理解されたい。たとえば、本発明の例示的な実施形態について、パーソナルコンピュータの機能をエミュレーシするデジタルデバイスのコンテクストで説明するが、本発明が本出願で説明するこうしたデジタルデバイスに限定されず、ゲームコンソール、ハンドヘルドコンピュータ、ポータブルコンピュータなど、無線か有線かを問わず、任意の数の既存のまたは新しいまたはコンピューティング環境に適用でき、さらに通信ネットワーキングを介して接続された任意の数のこうしたコンピューティングデバイスに適用でき、ネットワークを介して対話できることは、当事業者には言うまでもない。さらに、特に無線ネットワーク用のデバイスの数が増大を続けているので、本明細書では、ハンドヘルドデバイス向けのオペレーティングシステムおよび他のアプリケーションに固有のハードウェア/ソフトウェアインターフェースシステムを含むさまざまなコンピュータプラットフォームを対象としていることを強調する必要がある。したがって、本発明は特定の実施形態に限定されず、添付の特許請求の範囲に従うものとする。
本発明の態様を組み込むことができるコンピュータシステムの例を示すブロック図である。 本発明のいくつかの実施形態を代表するデータベースファイルシステム(DBFS)のデータ信頼性システム(DRS)の構造を示すブロック図である。 データベースFPMによるデータストアのDBFSへの接続を示すブロック図である。 本発明のいくつかの実施形態による、データベース接続操作の間に破損したページを検出し、訂正するプロセスを示すフロー図である。 本発明のさまざまな実施形態による、起動/クラッシュ回復のコンテクストにおけるDRSの利用を示すフロー図である。 データベース接続中にDRSで処理するエラーを示す図である。 本発明のさまざまな実施形態による、クエリーエンジンがエラーを検出するオンライン操作におけるDRSの利用を示すフロー図である。 オンライン操作中にDRSで処理するエラーを示す図である。 最新のスナップショット内にページが存在せず、有効なトランザクションログが存在する場合に、復元を実行するDRSを示すフロー図である。 本発明による特定のDRSの実施形態でデータベースを回復できず、利用可能なバックアップが存在しない場合に、データベースをオンラインに戻す方法を示すフロー図である。 本発明の1つの態様に従ってDRSでデータページを回復しようとする方法を示すフロー図である。

Claims (27)

  1. データベースファイルシステム(以下、DBFSという)に対して、少なくとも一部はコンピュータ処理装置により実装される自動データ信頼性システム(以下、DRSという)であって、
    ポリシーセットに基づいてデータベース管理(以下、DBAという)タスクを実行する手段と、
    ページレベルの一連のデータ破損に応答する手段と、
    破損したページの修復を試みることによって第1のレベルの回復を実行する手段と、
    破損したページを修復できない場合に、前記破損したページの再作成または復元を試みることによって第2のレベルの回復を実行する手段と、
    前記DBFSに関連付けられたデータベースを検証して、トランザクションロールバック中のエラーが発生しているとデータベースにトランザクションの整合性がないとして、前記データベースにトランザクションの整合性があるかどうかを決定する手段と、
    前記データベースにトランザクションの整合性がある場合、SQLによるクラッシュ回復が完了するまで修復を遅延させ、そうでない場合には遅延なしに修復を続行する手段
    を備えたことを特徴とするシステム。
  2. 前記第2のレベルの回復を実行する手段は、インデックスページを再作成する手段を備えたことを特徴とする請求項1に記載のシステム。
  3. 前記第2のレベルの回復を実行する手段は、データページの復元を試みる手段を備えたことを特徴とする請求項1に記載のシステム。
  4. 前記第2のレベルの回復を実行する手段は、ログファイルページの破損に対してDBCCによる緊急修復を試みる手段を備えたことを特徴とする請求項1に記載のシステム。
  5. エラーとイベントの通知、ポリシー、およびエラー/イベント処理アルゴリズムを含む機能グループの中の少なくとも1つの機能を追加、削除、変更するためのインターフェースをさらに備えたことを特徴とする請求項1に記載のシステム。
  6. 前記DRSはバックグラウンドのスレッドとして動作することを特徴とする請求項1に記載のシステム。
  7. データベースファイルシステム(以下、DBFSという)のデータストアを接続し、オンラインにするシステムであって、
    前記データストアを接続する手段と、
    SQLによるクラッシュ回復を実行して前記データストアをオンラインにしようとする手段であって、一連のデータ破損がページレベルにおいて起こると、第一のレベルの回復が破損したページを修復しようとし、前記破損したページが修復できない場合に第二のレベルの回復が破損したページを再作成または復元しようとする、手段と
    前記データストアのオンライン化が失敗したかどうかを決定する手段と、
    前記データストアに関連付けられたデータベースを検証して、トランザクションロールバック中のエラーが発生しているとデータベースにトランザクションの整合性がないとして、前記データベースにトランザクションの整合性があるかどうかを決定する手段と、
    前記データベースにトランザクションの整合性がある場合に前記クラッシュ回復が完了するまで修復を遅延させ、そうでない場合には遅延なしに修復を続行する手段
    を備えたことを特徴とするシステム。
  8. ページレベルの復元を試み、前記ページレベルの復元が失敗した場合に、前記失敗がインデックスページによるかどうかを確認し、インデックスページの復元の失敗によるのであれば、前記インデックスページを再作成する手段をさらに備えたことを特徴とする請求項7に記載のシステム。
  9. 前記データストアのオンライン化の試みが成功しなかった場合、および前記データベースにトランザクションの整合性がない場合に、データベースをオフラインにし、DBCCによる緊急修復を試みる手段をさらに備えたことを特徴とする請求項7に記載のシステム。
  10. データベースファイルシステム(以下、DBFSという)用の自動データ信頼性システム(以下、DRSという)を少なくとも一部はコンピュータ処理装置により実装される方法であって、
    ポリシーセットに基づいてデータベース管理(以下、DBAという)タスクを実行するステップと、
    あらゆるページ型についてページレベルの一連のデータ破損に応答するステップと、
    破損したページの修復を試みることによって第1のレベルの回復を実行するステップと、
    破損したページを修復できない場合に、前記破損したページの再作成または復元を試みることによって第2のレベルの回復を実行するステップと、
    前記DBFSに関連付けられたデータベースを検証して、トランザクションロールバック中のエラーが発生しているとデータベースにトランザクションの整合性がないとして、前記データベースにトランザクションの整合性があるかどうかを決定するステップと、
    前記データベースにトランザクションの整合性がある場合、SQLによるクラッシュ回復が完了するまで修復を遅延させ、そうでない場合には遅延なしに修復を続行するステップと
    を備えたことを特徴とする方法。
  11. 前記第2のレベルの回復を実行するステップは、インデックスページを再作成するステップを含むことを特徴とする請求項10に記載の方法。
  12. 前記第2のレベルの回復を実行するステップは、データページの復元を試みるステップを含むことを特徴とする請求項10に記載の方法。
  13. 前記第2のレベルの回復を実行するステップは、ログファイルページの破損に対してDBCCによる緊急修復を試みるステップを含むことを特徴とする請求項10に記載の方法。
  14. エラーとイベントの通知、ポリシー、およびエラー/イベント処理アルゴリズムを含む機能グループの中の少なくとも1つの機能を追加、削除、変更するステップをさらに備えたことを特徴とする請求項10に記載の方法。
  15. 前記DRSはバックグラウンドスレッドとして動作することを特徴とする請求項10に記載の方法。
  16. データベースファイルシステム(以下、DBFSという)のデータストアを接続し、オンラインにする方法であって、
    前記データストアを接続するステップと、
    SQLによるクラッシュ回復を実行して前記データストアをオンラインにしようとするステップであって、一連のデータ破損がページレベルにおいて起こると、第一のレベルの回復が破損したページを修復しようとし、前記破損したページが修復できない場合に第二のレベルの回復が破損したページを再作成または復元しようとする、ステップと
    前記データストアのオンライン化が失敗したかどうかを決定するステップと、
    前記データストアに関連付けられたデータベースを検証して、トランザクションロールバック中のエラーが発生しているとデータベースにトランザクションの整合性がないとして、前記データベースにトランザクションの整合性があるかどうかを決定するステップと、
    前記データベースにトランザクションの整合性がある場合に前記クラッシュ回復が完了するまで修復を遅延させるステップと
    を備えたことを特徴とする方法。
  17. 前記データストアのオンライン化が成功せず、前記データベースにトランザクションの整合性があり、前記クラッシュ回復が完了するまで前記修復が遅延された場合に、ページレベルの復元を試み、前記ページレベルの復元が失敗した場合に、前記失敗がインデックスページによるかどうかを確認し、インデックスページの復元の失敗によるのであれば、前記インデックスページを再作成するステップをさらに備えたことを特徴とする請求項16に記載の方法。
  18. 前記データストアのオンライン化が成功せず、前記データベースにトランザクションの整合性がない場合に、データベースをオフラインにし、DBCCによる緊急修復を試みるステップをさらに備えたことを特徴とする請求項16に記載の方法。
  19. データベースファイルシステム(以下、DBFSという)の自動データ信頼性システム(以下、DRSという)に対するコンピュータ可読命令を含む少なくとも1つの実在する媒体を有するコンピュータ読取可能な記憶媒体におけるコンピュータ可読命令であって、
    ポリシーセットに基づいてデータベース管理(以下、DBAという)タスクを実行するステップと、
    あらゆるページ型についてページレベルの一連のデータ破損に応答するステップと、
    破損したページの修復を試みることによって第1のレベルの回復を実行するステップと、
    破損したページを修復できない場合に、前記破損したページの再作成または復元を試みることによって第2のレベルの回復を実行するステップと、
    前記DBFSに関連付けられたデータベースを検証して、トランザクションロールバック中のエラーが発生しているとデータベースにトランザクションの整合性がないとして、前記データベースにトランザクションの整合性があるかどうかを決定するステップと、
    前記データベースにトランザクションの整合性がある場合、SQLによるキャッシュ回復が完了するまで修復を遅延させ、そうでない場合には遅延なしに修復を続行するステップと
    を行うことを特徴とするコンピュータ可読命令。
  20. 前記第2のレベルの回復を実行するステップは、インデックスページを再作成するステップを含むことを特徴とする請求項19に記載のコンピュータ可読命令。
  21. 前記第2のレベルの回復を実行するステップは、データページの復元を試みるステップを含むことを特徴とする請求項19に記載のコンピュータ可読命令。
  22. 前記第2のレベルの回復を実行するステップは、ログファイルページの破損に対してDBCCによる緊急修復を試みるステップを含むことを特徴とする請求項19に記載のコンピュータ可読命令。
  23. エラーとイベントの通知、ポリシー、およびエラー/イベント処理アルゴリズムを含む機能グループの中の少なくとも1つの機能を追加、削除、変更するステップをさらに行うことを特徴とする請求項19に記載のコンピュータ可読命令。
  24. 前記DRSはバックグラウンドスレッドとして動作する命令をさらに行うことを特徴とする請求項19に記載のコンピュータ可読命令。
  25. データベースファイルシステム(以下、DBFSという)のデータストアを接続し、オンラインにするコンピュータ可読命令を含む少なくとも1つの実在する媒体を有するコンピュータ読取可能な記憶媒体におけるコンピュータ可読命令であって、
    前記データストアを接続するステップと、
    SQLによるクラッシュ回復を実行して前記データストアをオンラインにしようとするステップであって、一連のデータ破損がページレベルにおいて起こると、第一のレベルの回復が破損したページを修復しようとし、前記破損したページが修復できない場合に第二のレベルの回復が破損したページを再作成または復元しようとする、ステップと
    前記データストアのオンライン化が失敗したかどうかを決定するステップと、
    前記データストアに関連付けられたデータベースを検証して、トランザクションロールバック中のエラーが発生しているとデータベースにトランザクションの整合性がないとして、前記データベースにトランザクションの整合性があるかどうかを判断するステップと、
    前記データベースにトランザクションの整合性がある場合に前記クラッシュ回復が完了するまで修復を遅延させるステップと
    を行うことを特徴とするコンピュータ可読命令。
  26. 前記データストアのオンライン化が成功せず、前記データベースにトランザクションの整合性がある場合に、ページレベルの復元を試み、前記ページレベルの復元が失敗した場合に、前記失敗がインデックスページによるかどうかを確認し、インデックスページの復元の失敗によるのであれば、前記インデックスページを再作成するステップをさらに行うことを特徴とする請求項25に記載のコンピュータ可読命令。
  27. 前記データストアのオンライン化が成功せず、前記データベースにトランザクションの整合性がない場合に、データベースをオフラインにし、DBCCによる緊急修復を試みるステップをさらに行うことを特徴とする請求項25に記載のコンピュータ可読命令。
JP2007511346A 2004-05-03 2004-07-29 データベースまたはファイルシステムを自動的に保守および修復するシステムおよび方法 Expired - Fee Related JP4638908B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/837,932 US7143120B2 (en) 2004-05-03 2004-05-03 Systems and methods for automated maintenance and repair of database and file systems
PCT/US2004/024565 WO2005111867A2 (en) 2004-05-03 2004-07-29 Systems and methods for automatic database or file system maintenance and repair

Publications (2)

Publication Number Publication Date
JP2007536623A JP2007536623A (ja) 2007-12-13
JP4638908B2 true JP4638908B2 (ja) 2011-02-23

Family

ID=35394801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007511346A Expired - Fee Related JP4638908B2 (ja) 2004-05-03 2004-07-29 データベースまたはファイルシステムを自動的に保守および修復するシステムおよび方法

Country Status (7)

Country Link
US (2) US7143120B2 (ja)
EP (1) EP1629407B1 (ja)
JP (1) JP4638908B2 (ja)
KR (1) KR101044849B1 (ja)
CN (4) CN101604335B (ja)
ES (1) ES2605936T3 (ja)
WO (1) WO2005111867A2 (ja)

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US7346751B2 (en) 2004-04-30 2008-03-18 Commvault Systems, Inc. Systems and methods for generating a storage-related metric
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7366740B2 (en) * 2004-05-03 2008-04-29 Microsoft Corporation Systems and methods for automatic maintenance and repair of enitites in a data model
US7970740B1 (en) * 2004-09-23 2011-06-28 Oracle America, Inc. Automated service configuration snapshots and fallback
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US20060136508A1 (en) * 2004-12-16 2006-06-22 Sam Idicula Techniques for providing locks for file operations in a database management system
US7627574B2 (en) * 2004-12-16 2009-12-01 Oracle International Corporation Infrastructure for performing file operations by a database server
US7548918B2 (en) * 2004-12-16 2009-06-16 Oracle International Corporation Techniques for maintaining consistency for different requestors of files in a database management system
US7716260B2 (en) * 2004-12-16 2010-05-11 Oracle International Corporation Techniques for transaction semantics for a database server performing file operations
US20060184528A1 (en) * 2005-02-14 2006-08-17 International Business Machines Corporation Distributed database with device-served leases
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
US7676845B2 (en) * 2005-03-24 2010-03-09 Microsoft Corporation System and method of selectively scanning a file on a computing device for malware
US8145686B2 (en) * 2005-05-06 2012-03-27 Microsoft Corporation Maintenance of link level consistency between database and file system
US7493347B2 (en) * 2005-06-02 2009-02-17 International Business Machines Corporation Method for condensing reported checkpoint log data
US7809675B2 (en) * 2005-06-29 2010-10-05 Oracle International Corporation Sharing state information among a plurality of file operation servers
US7552147B2 (en) * 2005-09-02 2009-06-23 International Business Machines Corporation System and method for minimizing data outage time and data loss while handling errors detected during recovery
US7475277B1 (en) * 2005-11-10 2009-01-06 Storage Technology Corporation Automated repair of damaged objects
US7610304B2 (en) * 2005-12-05 2009-10-27 Oracle International Corporation Techniques for performing file operations involving a link at a database management system
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US20110010518A1 (en) 2005-12-19 2011-01-13 Srinivas Kavuri Systems and Methods for Migrating Components in a Hierarchical Storage Network
US20080059469A1 (en) * 2006-08-31 2008-03-06 International Business Machines Corporation Replication Token Based Synchronization
CN100430902C (zh) * 2006-12-13 2008-11-05 天津理工大学 一种支持边服务边恢复的分布式实时数据库故障恢复方法
US7921267B1 (en) * 2006-12-20 2011-04-05 Network Appliance, Inc. Method and system for fixing a mirror of a dataset
US20080249988A1 (en) * 2007-04-06 2008-10-09 International Business Machines Corporation Computer programming method and system for performing a reversal of selected structured query language operations within a database transaction
US20080298276A1 (en) * 2007-05-31 2008-12-04 Microsoft Corporation Analytical Framework for Multinode Storage Reliability Analysis
US8001075B2 (en) * 2007-06-01 2011-08-16 Microsoft Corporation Log file amnesia detection
EP2174222A4 (en) * 2007-07-26 2010-10-27 Ab Initio Technology Llc TRANSACTIONAL GRAPH-BASED CALCULATION WITH ERROR HANDLING
BRPI0815619A2 (pt) * 2007-08-21 2015-02-18 Thomson Licensing Método e sistema para o reparo de sistemas de arquivos danificados do disco rígido
US8244671B2 (en) * 2007-10-11 2012-08-14 Microsoft Corporation Replica placement and repair strategies in multinode storage systems
US8074103B2 (en) 2007-10-19 2011-12-06 Oracle International Corporation Data corruption diagnostic engine
US8631203B2 (en) 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US8176017B2 (en) * 2007-12-14 2012-05-08 Microsoft Corporation Live volume access
US8108356B2 (en) * 2007-12-24 2012-01-31 Korea Advanced Institute Of Science And Technology Method for recovering data in a storage system
US7805412B1 (en) * 2008-01-11 2010-09-28 Panasas, Inc. Systems and methods for parallel reconstruction of files and objects
US8892831B2 (en) * 2008-01-16 2014-11-18 Apple Inc. Memory subsystem hibernation
US20090198952A1 (en) * 2008-02-04 2009-08-06 Apple Inc Memory Mapping Architecture
US8380679B2 (en) * 2008-02-11 2013-02-19 Infosys Technologies Limited Method of handling transaction in a service oriented architecture environment
US20090307409A1 (en) * 2008-06-06 2009-12-10 Apple Inc. Device memory management
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
KR100926098B1 (ko) * 2008-11-18 2009-11-11 주식회사 네오플 스냅샷 데이터베이스를 이용한 정보 복구 방법 및 장치
US8521776B2 (en) * 2008-12-05 2013-08-27 International Business Machines Corporation Accessing data in a multi-generation database
US8468293B2 (en) * 2009-07-24 2013-06-18 Apple Inc. Restore index page
US8516219B2 (en) * 2009-07-24 2013-08-20 Apple Inc. Index cache tree
JP2011060217A (ja) * 2009-09-14 2011-03-24 Toshiba Corp データ蓄積装置及びデータ書込み/読出し方法
US8326902B2 (en) * 2009-10-07 2012-12-04 Oracle International Corporation Online database modeling
US8621267B2 (en) 2010-12-15 2013-12-31 Microsoft Corporation Extended page patching
US8667323B2 (en) * 2010-12-17 2014-03-04 Microsoft Corporation Proactive error scan and isolated error correction
US8621276B2 (en) 2010-12-17 2013-12-31 Microsoft Corporation File system resiliency management
US20130054533A1 (en) * 2011-08-24 2013-02-28 Microsoft Corporation Verifying a data recovery component using a managed interface
US8527462B1 (en) 2012-02-09 2013-09-03 Microsoft Corporation Database point-in-time restore and as-of query
CN103309768B (zh) * 2012-03-16 2015-03-11 腾讯科技(深圳)有限公司 系统文件修复方法和装置
US10346369B2 (en) 2012-10-11 2019-07-09 Delphix Corp. Retrieving point-in-time copies of a source database for creating virtual databases
US10379988B2 (en) 2012-12-21 2019-08-13 Commvault Systems, Inc. Systems and methods for performance monitoring
WO2014120137A1 (en) 2013-01-30 2014-08-07 Hewlett-Packard Development Company, L.P. Recovering pages of a database
US9292373B2 (en) * 2013-03-15 2016-03-22 International Business Machines Corporation Query rewrites for data-intensive applications in presence of run-time errors
CA2932763C (en) 2013-12-05 2022-07-12 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
US9400817B2 (en) * 2013-12-31 2016-07-26 Sybase, Inc. In-place index repair
CN104915336B (zh) * 2014-03-12 2021-03-23 腾讯科技(深圳)有限公司 文档翻译的方法及装置
CN104331463B (zh) * 2014-10-30 2018-07-17 深圳市锐明技术股份有限公司 一种文件系统多线程实现的方法及装置
US10102214B2 (en) * 2015-01-30 2018-10-16 International Business Machines Corporation Analyzing and correcting corruption which caused filesystem checker failure so that the filesystem checker will run without error
US10528530B2 (en) 2015-04-08 2020-01-07 Microsoft Technology Licensing, Llc File repair of file stored across multiple data stores
US10275320B2 (en) 2015-06-26 2019-04-30 Commvault Systems, Inc. Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation
US10176036B2 (en) * 2015-10-29 2019-01-08 Commvault Systems, Inc. Monitoring, diagnosing, and repairing a management database in a data storage management system
US11727288B2 (en) 2016-10-05 2023-08-15 Kyndryl, Inc. Database-management system with artificially intelligent virtual database administration
CN106502825B (zh) * 2016-10-13 2020-02-14 中国联合网络通信集团有限公司 数据处理方法及装置
US10909106B2 (en) * 2016-11-11 2021-02-02 Walmart Apollo, Llc Systems and methods for creating and maintaining referential integrity of data across multiple server systems
CN107016296B (zh) * 2017-01-18 2020-05-26 阿里巴巴集团控股有限公司 一种数据索引构建、数据读取的方法、装置及电子设备
CN107402843A (zh) * 2017-06-19 2017-11-28 阿里巴巴集团控股有限公司 数据库损坏的恢复方法、装置和设备
US10936441B2 (en) * 2017-12-15 2021-03-02 Microsoft Technology Licensing, Llc Write-ahead style logging in a persistent memory device
US10831591B2 (en) 2018-01-11 2020-11-10 Commvault Systems, Inc. Remedial action based on maintaining process awareness in data storage management
US11238017B2 (en) 2018-01-30 2022-02-01 Salesforce.Com, Inc. Runtime detector for data corruptions
CN108459925B (zh) * 2018-02-10 2022-05-31 深圳市先河系统技术有限公司 私有云设备及其数据库的修复方法、具有存储功能的装置
US11481376B2 (en) * 2018-06-19 2022-10-25 Salesforce, Inc. Platform for handling data corruptions
US20200192572A1 (en) 2018-12-14 2020-06-18 Commvault Systems, Inc. Disk usage growth prediction system
CN110222035A (zh) * 2019-06-10 2019-09-10 天津神舟通用数据技术有限公司 一种基于异或校验与日志恢复的数据库页面高效容错方法
US10915418B1 (en) 2019-08-29 2021-02-09 Snowflake Inc. Automated query retry in a database environment
US11604761B2 (en) 2020-01-30 2023-03-14 Rubrik, Inc. Utilizing a tablespace to export from a foreign database recovery environment
US11609828B2 (en) 2020-01-30 2023-03-21 Rubrik, Inc. Utilizing a tablespace to export to a native database recovery environment
US11467925B2 (en) 2020-01-30 2022-10-11 Rubrik, Inc. Exporting a database to a native database recovery environment
US11360860B2 (en) 2020-01-30 2022-06-14 Rubrik, Inc. Exporting a database from a foreign database recovery environment
US11934377B2 (en) * 2021-02-25 2024-03-19 Microsoft Technology Licensing, Llc Consistency checking for distributed analytical database systems
CN116662059B (zh) * 2023-07-24 2023-10-24 上海爱可生信息技术股份有限公司 MySQL数据库CPU故障诊断及自愈方法及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0594353A (ja) * 1991-10-02 1993-04-16 Hokkaido Nippon Denki Software Kk データベース管理方式
JPH06236351A (ja) * 1993-02-10 1994-08-23 Hitachi Ltd オンラインシステムのバックアップリストア装置

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4945474A (en) * 1988-04-08 1990-07-31 Internatinal Business Machines Corporation Method for restoring a database after I/O error employing write-ahead logging protocols
US5900870A (en) * 1989-06-30 1999-05-04 Massachusetts Institute Of Technology Object-oriented computer user interface
US5764877A (en) * 1991-06-25 1998-06-09 Digital Equipment Corporation Media recovery with time-split B-trees
US6078925A (en) * 1995-05-01 2000-06-20 International Business Machines Corporation Computer program product for database relational extenders
US5734887A (en) * 1995-09-29 1998-03-31 International Business Machines Corporation Method and apparatus for logical data access to a physical relational database
US5754782A (en) * 1995-12-04 1998-05-19 International Business Machines Corporation System and method for backing up and restoring groupware documents
US5806074A (en) * 1996-03-19 1998-09-08 Oracle Corporation Configurable conflict resolution in a computer implemented distributed database
US6112024A (en) * 1996-10-02 2000-08-29 Sybase, Inc. Development system providing methods for managing different versions of objects with a meta model
US5897638A (en) * 1997-06-16 1999-04-27 Ab Initio Software Corporation Parallel virtual file system
US6240414B1 (en) * 1997-09-28 2001-05-29 Eisolutions, Inc. Method of resolving data conflicts in a shared data environment
US6108004A (en) * 1997-10-21 2000-08-22 International Business Machines Corporation GUI guide for data mining
US6018746A (en) * 1997-12-23 2000-01-25 Unisys Corporation System and method for managing recovery information in a transaction processing system
US6205527B1 (en) * 1998-02-24 2001-03-20 Adaptec, Inc. Intelligent backup and restoring system and method for implementing the same
US6263342B1 (en) * 1998-04-01 2001-07-17 International Business Machines Corp. Federated searching of heterogeneous datastores using a federated datastore object
US6314433B1 (en) * 1998-06-12 2001-11-06 Hewlett-Packard Company Frame-based heroic data recovery
US6714935B1 (en) * 1998-09-21 2004-03-30 Microsoft Corporation Management of non-persistent data in a persistent database
US6519597B1 (en) * 1998-10-08 2003-02-11 International Business Machines Corporation Method and apparatus for indexing structured documents with rich data types
US6338056B1 (en) * 1998-12-14 2002-01-08 International Business Machines Corporation Relational database extender that supports user-defined index types and user-defined search
US6640278B1 (en) * 1999-03-25 2003-10-28 Dell Products L.P. Method for configuration and management of storage resources in a storage network
US6381605B1 (en) * 1999-05-29 2002-04-30 Oracle Corporation Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets
US6370534B1 (en) * 1999-06-01 2002-04-09 Pliant Technologies, Inc. Blocking techniques for data storage
US6247099B1 (en) * 1999-06-03 2001-06-12 International Business Machines Corporation System and method for maintaining cache coherency and data synchronization in a computer system having multiple active controllers
US6199195B1 (en) * 1999-07-08 2001-03-06 Science Application International Corporation Automatically generated objects within extensible object frameworks and links to enterprise resources
JP5113967B2 (ja) * 1999-08-05 2013-01-09 オラクル・インターナショナル・コーポレイション インターネットファイルシステム
US6370541B1 (en) * 1999-09-21 2002-04-09 International Business Machines Corporation Design and implementation of a client/server framework for federated multi-search and update across heterogeneous datastores
US6556983B1 (en) * 2000-01-12 2003-04-29 Microsoft Corporation Methods and apparatus for finding semantic information, such as usage logs, similar to a query using a pattern lattice data space
US6694336B1 (en) * 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
US6671757B1 (en) * 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US6633978B1 (en) * 2000-03-31 2003-10-14 Hewlett-Packard Development Company, L.P. Method and apparatus for restoring computer resources
US6718361B1 (en) * 2000-04-07 2004-04-06 Network Appliance Inc. Method and apparatus for reliable and scalable distribution of data files in distributed networks
US6820088B1 (en) * 2000-04-10 2004-11-16 Research In Motion Limited System and method for synchronizing data records between multiple databases
US6671699B1 (en) * 2000-05-20 2003-12-30 Equipe Communications Corporation Shared database usage in network devices
US6999956B2 (en) * 2000-11-16 2006-02-14 Ward Mullins Dynamic object-driven database manipulation and mapping system
US6721739B1 (en) * 2000-12-05 2004-04-13 Silicon Graphics, Inc. System and method for maintaining and recovering data consistency across multiple pages
US6871271B2 (en) * 2000-12-21 2005-03-22 Emc Corporation Incrementally restoring a mass storage device to a prior state
US6877111B2 (en) * 2001-03-26 2005-04-05 Sun Microsystems, Inc. Method and apparatus for managing replicated and migration capable session state for a Java platform
US6697818B2 (en) * 2001-06-14 2004-02-24 International Business Machines Corporation Methods and apparatus for constructing and implementing a universal extension module for processing objects in a database
US6772178B2 (en) * 2001-07-27 2004-08-03 Sun Microsystems, Inc. Method and apparatus for managing remote data replication in a distributed computer system
US6898609B2 (en) * 2002-05-10 2005-05-24 Douglas W. Kerwin Database scattering system
US7065527B2 (en) * 2002-06-26 2006-06-20 Microsoft Corporation Systems and methods of optimizing metadata publishing system updates by alternating databases
US6941310B2 (en) * 2002-07-17 2005-09-06 Oracle International Corp. System and method for caching data for a mobile application

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0594353A (ja) * 1991-10-02 1993-04-16 Hokkaido Nippon Denki Software Kk データベース管理方式
JPH06236351A (ja) * 1993-02-10 1994-08-23 Hitachi Ltd オンラインシステムのバックアップリストア装置

Also Published As

Publication number Publication date
EP1629407B1 (en) 2016-09-14
CN1707481A (zh) 2005-12-14
US7143120B2 (en) 2006-11-28
CN1784682A (zh) 2006-06-07
EP1629407A4 (en) 2008-05-21
CN100570599C (zh) 2009-12-16
US20050278394A1 (en) 2005-12-15
ES2605936T3 (es) 2017-03-17
CN101604335B (zh) 2012-07-18
JP2007536623A (ja) 2007-12-13
WO2005111867A3 (en) 2006-01-05
CN1707481B (zh) 2012-05-02
EP1629407A2 (en) 2006-03-01
CN101604335A (zh) 2009-12-16
CN101430703A (zh) 2009-05-13
KR20070006542A (ko) 2007-01-11
WO2005111867A2 (en) 2005-11-24
CN101430703B (zh) 2013-05-01
KR101044849B1 (ko) 2011-06-28
US20070073764A1 (en) 2007-03-29

Similar Documents

Publication Publication Date Title
JP4638908B2 (ja) データベースまたはファイルシステムを自動的に保守および修復するシステムおよび方法
JP4874569B2 (ja) データモデル内のエンティティの自動的な保守および修復のためのシステムおよび方法
JP4960963B2 (ja) データベースミラーからのオンラインページリストア
US8145607B1 (en) System and method for online backup and restore of MS exchange server
US9830223B1 (en) Methods for repairing a corrupted database to a new, correct state
US6651077B1 (en) Backup and restoration of data in an electronic database
US7634679B2 (en) Remote location failover server application
EP1594062A2 (en) Real-time and non disruptive file system repairs
US9804935B1 (en) Methods for repairing a corrupted database to a new, correct state by selectively using redo and undo operations
US11221927B2 (en) Method for the implementation of a high performance, high resiliency and high availability dual controller storage system
US6816984B1 (en) Method and system for verifying and storing documents during a program failure
KR102049417B1 (ko) Nvdimm을 이용한 인-메모리 데이터베이스 기반의 데이터 저장 및 복원 방법
US8868979B1 (en) Host disaster recovery system
WO2003003209A1 (en) Information replication system having enhanced error detection and recovery
Meshram et al. Maintaining consistency of file system by monitoring file system parameters at runtime using consistency checking rules
Bednar et al. Oracle Database Backup and Recovery Basics, 10g Release 2 (10.2) B14192-02
Bednar et al. Oracle Database Backup and Recovery Basics, 10g Release 2 (10.2) B14192-03
JPH0830473A (ja) プロセス復旧方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100908

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

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

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

Free format text: PAYMENT UNTIL: 20131203

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4638908

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

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