JP4638905B2 - データベースのデータ復旧システムおよびその方法 - Google Patents

データベースのデータ復旧システムおよびその方法 Download PDF

Info

Publication number
JP4638905B2
JP4638905B2 JP2007500740A JP2007500740A JP4638905B2 JP 4638905 B2 JP4638905 B2 JP 4638905B2 JP 2007500740 A JP2007500740 A JP 2007500740A JP 2007500740 A JP2007500740 A JP 2007500740A JP 4638905 B2 JP4638905 B2 JP 4638905B2
Authority
JP
Japan
Prior art keywords
database
snapshot
file
source
data
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
JP2007500740A
Other languages
English (en)
Other versions
JP2007524173A5 (ja
JP2007524173A (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 JP2007524173A publication Critical patent/JP2007524173A/ja
Publication of JP2007524173A5 publication Critical patent/JP2007524173A5/ja
Application granted granted Critical
Publication of JP4638905B2 publication Critical patent/JP4638905B2/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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • 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/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (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)

Description

本発明は、一般にデータベースに関し、より詳細にはデータベース復元技術に関する。
データベースシステムが、今日の世界において非常に普及している。データベースは、迅速な照会を実行し簡単に使用できるような方法で、大量の情報を記憶する。例えば、従来のリレーショナルデータベース(relational database)においては、情報は、レコード、テーブル、インデックスなどのオブジェクトとして構成することができる。データベースエンジンは、ユーザによるクエリ(query)の仕様に応じてデータベーステーブルからデータを検索し操作するメカニズムを提供する。クエリは、一般的にSQL(Structured Query Language構造化照会言語)などの何らかの照会言語によって表される。クエリは、1つもしくは複数のテーブル、ならびに、検索し、また他の方法で操作すべきそのテーブル中の行および列を指定することができる。適切なクエリの仕様に応じて、データベースエンジンは、データを検索し、指定された任意のオペレーションを実施し、結果テーブルを生成する。データベースは、少なくとも部分的にはその大量のデータを記憶する機能のために人気があり、有用であり、このデータは、単にクエリの仕様を決めることによって効率的に検索し、操作することができる。
残念ながら、ユーザエラーは、データベースシステムにおける共通の問題になっている。通常、このようなエラーは、データベースアプリケーションもしくはユーザが誤ってデータを変更または削除するときに発生し、このデータベースシステムは、このコマンドに正確に従い、即座にデータを変更または削除してしまう。これについては、当技術分野においてクイックフィンガ削除問題(quick finger delete problem)と呼ばれている。例えば、ユーザが、テーブルを削除するコマンドを発行し、「WHERE」節を指定するのを忘れて、意図した以上に多くのデータを削除してしまう可能性がある。さらに、ユーザが、このユーザの気が付かない内にデータベースを修正する新しいアプリケーションをインストールしてしまうこともある。従来、この問題には、いくつかの解決方法が存在する。一般に、最も一般的な解決方法は、ユーザエラーの発生に先立つポイントインタイム(point in time)までデータベース全体を復元することである。復元された後に、このデータベースは、オンラインになり、このユーザエラーを含めてすべての変更が失われる可能性がある。しかしながら、データベース全体の復元には長時間かかり、時には、完了するのに数日かかってしまうこともある。
代わりに、うっかりと修正されてしまったデータは、復元データベースから関連情報を抽出し、この情報を元のデータベースに戻してマージすることによって修復することもできる。この仕組みの変形は、ログシッピング(log shipping)と呼ばれる。
ログシッピングとは、他の二次サーバ上のデータベースのコピーを復元状態に保つものであるが、元のサーバからある一定の遅延が存在する。ログバックアップは、ある遅延(例えば、24時間)後に初めてこの二次データベースに適用される。ユーザエラーが元のデータベース上で発生し、データベース管理者が、この遅延時間内にこのエラーに気付く場合には、二次サーバが、すでにこのエラーに先立つポイントインタイムにおけるこのデータベースを含んでいるので、このデータベース管理者は、この二次サーバ上へと復帰させる(revert to)ことができる。残念ながら、ログシッピングは、複雑であり、多くの追加のリソースおよびスペースを必要とする。
従来のシステムおよび方法を利用したデータベースの復元は、かなり大きな遅延時間を必要としている。したがって一般的には、最後の手段としてのオプションである。さらに、ログシッピングでは、追加のハードウェアが必要になり、データベースシステムが複雑になってしまう。エラーを緩和することは、データベースシステムにおける大きな重要な課題である。したがって、とりわけ、高速でありしかも簡単でもあるデータベースを復元する新しいシステムおよび方法が、当技術分野において必要になっている。
本発明の一部態様についての基本的な理解をもたらすために、本発明の簡略化された概要を以下に示している。この概要は、本発明の広範囲にわたる概説ではない。ここで、本発明の主要/クリティカルな要素を特定し、あるいは、本発明の範囲を示す意図はない。その唯一の目的は、以降に提示されるより詳細な説明に対する前置きとして、簡略化した形式で本発明の一部の概念を示すことにある。
本発明は、データベーススナップショット(database snapshot)の作成および使用に関する。本発明は、データベースを復元することに関連する問題を軽減する。データベースを復元することは、一般的に追加のハードウェアを必要としデータベースシステムを複雑にしてしまうログシッピングと同様に、時間がかかり、また一般に最後の手段としての選択肢になっている。データベーススナップショットへと復帰させることにより、これらの問題の一部が軽減される。本発明の一態様によれば、DBSS(database snapshotデータベーススナップショット)は、別の(ソース)データベースの読取り専用ポイントインタイムコピー(read only, point in time copy)のように見えるデータベースである。DBSSは、必ずしもソースデータベースの完全なコピーであるとは限らない。すなわち、これら2つのデータベースは、両者に共通のデータを共有しており、これによって、DBSSを高速に作成できるようになり、スペースが効率的になっている。ソースデータベースが修正されるときに、この元のデータは、DBSSが使用するためのスペース効率の良いストレージにコピーされて、ソースデータベースのポイントインタイムビュー(point in time view)が保持される。ユーザエラーが、ソースデータベース上で発生し、このエラー以前にDBSSが作成されている場合には、データベース管理者は、DBSSデータベース全体を復帰させるオプションを有し、このDBSSは、このユーザエラー以前の時点(ポイントインタイムにおけるものである。ユーザエラーを含めて、ソースデータベースに対するすべての変更が、失われる。さらに、この復帰は、一般に通常の復元に比べてずっと高速であり、ログシッピングが必要とする二重のリソースを必要とはしない。
本発明の一態様によれば、データベーススナップショットへの復帰は、ソースデータベースすなわち一次データベース上でデータベーススナップショットファイルページをコピーすること、一次データベースを切り取ること、このデータベースにオープンなコミットされていないトランザクションを適用すること、並びに、データベースログを利用してユーザエラーなどのイベントに集束させることを含むことが可能である。
本発明の一態様によれば、ユーザまたはデータベース管理者は、様々な時点における1つまたは複数のデータベーススナップショットを作成することができる。例えば、ユーザがテストを実施しようとしている場合、このユーザは、データベーススナップショットを作成して、以前のデータベース状態またはデータベースビューへの復帰を可能にすることができる。しかし、本発明の別の態様によれば、モニタコンポーネント(monitor component)を使用して一次データベースを監視し、ある種の出来事に応じてすぐに、データベーススナップショットを自動的に作成することができる。例えば、このモニタが、新しいアプリケーションがインストールされようとしていることを検出し、または推測することができる場合に、このモニタは、データベーススナップショットの作成を開始して、この新しいアプリケーションによる変更に先立ってこのデータベースの状態を保存することができる。
本発明のさらに他の態様によれば、ミラーデータベース(mirror database)を自動的にアップデートして、復帰に応じてすぐに一次データベースに対してなされた変更を反映することができる。したがって、従来行われているような非常に長い全体の復元を利用することなく、ミラーデータベースをアップデートして同期させることができる。
前述の目的および関連した目的を達成するために、以下の説明および添付図面とともに、本発明のある種の例示の態様について本明細書中において説明している。これらの態様は、本発明を実行することができる様々な方法を示しており、これらのすべてが本発明によって包含されることを意図している。これらの図面と併せ考えるときに本発明の以下の詳細なる説明から、本発明の他の利点および新規性のある特徴が明らかとなろう。
本発明の前述および他の態様については、以下の詳細なる説明および以下に簡単に説明している添付図面から明らかになるはずである。
尚、本発明は、参照により本明細書に組み込まれている、2004年2月25日に出願した「DATABASE DATA RECOVERY SYSTEM AND METHOD」という名称の米国仮出願第60/547,641号と、2004年4月28日に出願した「DATABASE DATA RECOVERY SYSTEM AND METHOD」という名称の米国非仮出願第10/833,541号の恩典を請求している。さらに、本発明は、やはり参照により本明細書に組み込まれている、2003年6月30日に出願した「TRANSACTION CONSISTENT COPY-ON-WRITE DATABASES」という名称の米国特許出願第10/611,774号の部分継続出願である。
次に本発明について添付図面を参照しながら説明する。図面中で、同一の番号は、全体を通して同一の要素を示している。しかし、これらの図面、およびこれらの図面に対する詳細な説明は、開示の特定の形態に本発明を限定することを意図してはいない。そうではなくて、本発明は、本発明の趣旨および範囲内に含まれるすべての変更形態、等価形態、および代替形態を包含することを意図している。
本出願において使用しているように、用語「コンポーネント」および「システム」は、コンピュータ関連エンティティ、すなわちハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、もしくは実行中のソフトウェアを意味することが意図されている。例えば、コンポーネントは、それだけには限定されないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータであってもよい。例としては、サーバ上で実行されるアプリケーションもサーバも共に、コンポーネントとすることができる。1つまたは複数のコンポーネントは、プロセスおよび/または実行スレッド内に存在することができ、1つのコンポーネントは、1台のコンピュータ上に配置することができ、または複数台のコンピュータ間に分散することができ、あるいはその両方を行うことができる。
さらに、本発明は、方法、装置、あるいはソフトウェア、ファームウェア、ハードウェア、またはその任意の組合せを生成する標準のプログラミング技法および/またはエンジニアリング技法を使用した製品として実装することができる。本明細書中において使用される用語「製品」(または、代替的に「コンピュータプログラム製品」)は、任意のコンピュータ読取り可能デバイス、コンピュータ読取り可能キャリア、またはコンピュータ読取り可能媒体からアクセス可能なコンピュータプログラムを包含することが意図されている。例えば、コンピュータ読取り可能媒体は、それだけには限定されないが、磁気ストレージデバイス(例えば、ハードディスク、フロッピー(登録商標)ディスク、磁気ストリップ...)、光ディスク(例えば、CD(コンパクトディスク)、DVD(デジタル多用途ディスク)...)、スマートカード、およびフラッシュメモリデバイス(例えば、カード、スティック)を含むことができる。もちろん、本発明の範囲または趣旨を逸脱することなく、多くの変更をこの構成に対して行うことができることが、当業者には理解されよう。
復元システム
最初に図1を参照すると、データ復元システム100が示されている。データ復元システム100は、ソースデータベース110、スナップショットコンポーネント120、スナップショットデータベース130、および復元コンポーネント140を含んでいる。(以降において、一次データベースとも呼ばれる)ソースデータベース110は、クエリおよび他の使用を実施することができるように系統的な方法で大量のデータを格納する。ソースデータベース110は、それだけには限定されないが、リレーショナルデータベースまたは多次元データベースを含めてどのような種類のデータベースともすることが可能である。スナップショットコンポーネント120は、このソースデータベース110に部分的に基づいて、(またデータベーススナップショットの代わりにDBSSと本明細書中で呼ばれている)1つ(または複数)のスナップショットデータベース130を生成する。この1つ(または複数)のスナップショットデータベース130により、ユーザは、その完全コピーを作成することなく、既存のソースデータベース110のトランザクションと矛盾しないビューを作成することができるようになる。ソースデータベース110が、スナップショットデータベース130とは異なったものになるときに、スナップショットコンポーネント120は、スナップショットデータベース130が、例えばページ単位で修正される以前にデータのコピーを取得するようにする。換言すれば、ソースデータベースページが文字「A」を含んでおり、「A」を「B」に変更するトランザクションが実行された場合には、この対応するスナップショットデータベースページが書き込まれることになり、したがってこの文字「A」を記憶する。本発明の一態様によれば、スナップショットデータベース130は、ソースデータベース110の読取り専用ポイントインタイムコピーとすることができる。DBSSは、必ずしもソースデータベース110の完全なコピーであるとは限らない。これら2つのデータベースは、両者に共通のデータを共有することができ、これにより、DBSSは、作成するのに高速となり、またスペース効率も良くなる。ソースデータベース110が修正されるときに、元のデータをこのDBSSで使用するために、スペース効率の良いストレージにコピーしてソースデータベース110のそのポイントインタイムビューを保持することができる。さらに、複数の復帰ポイントを提供できるようにするために、ソースに関連する複数のスナップショットデータベース130が存在しうることを理解されたい。さらに、スナップショットデータベース130は、一時的または永続的なものとすることが可能である。一時的なスナップショットは、クラッシュ、障害、またはシャットダウンの後に破壊される内部揮発性コピーである。永続的なスナップショットは、他のアプリケーションによって使用するための、ストレージデバイス上により安全に保持することができるパブリックコピーである。
復元コンポーネント140は、スナップショットデータベース130を利用して、このソースデータベース110をイベントに先立つ時点まで復元する。本発明の一態様によれば、このイベントは、クイックフィンガ削除などのユーザエラーに対応する可能性があり、ここでは、ユーザは、うっかりとこのソーステーブルからデータを削除してしまう。代わりに、イベントは、システムクラッシュ、ロックアップ、あるいはデータがその他の方法で失われ、または操作される他の任意の状況もしくはシナリオに対応する可能性もある。あるイベントがソースデータベース110上で発生し、スナップショットデータベース130がこのエラー以前に作成されている場合には、データベース管理者は、復元コンポーネント140を使用して、このイベント以前の時点におけるスナップショットデータベース130まで全体のソースデータベース110を復帰させるというオプションを有する。復元コンポーネント140は、スナップショットデータベース130中に存在するデータを利用して、このイベント以前の前回の時点までソースデータベース110を復元することができる。例えば、対応するロケーションにある現在のソースデータベース値に、このスナップショットデータベースデータを上書きすることができる。代わりに、スナップショットデータベース130に、共有データを用いて入力し、スナップショットデータベース130が、新しいソースデータベースになることも可能である。全体を復元するのでなくて、スパースファイル(sparse file)だけをこのソースデータベースにコピーする必要しかないので、この復元プロセスは、一般的に従来の復元技術に比べてずっと高速であることを理解されたい。さらに、この復元プロセスは、例えばログシッピングが必要とする二重のリソースを必要としていない点で、より効率的でもある。
図2は、本発明の一態様による復元コンポーネント140を示している。詳細には、復元コンポーネントは、復帰コンポーネント(revert component)210およびアンドゥコンポーネント(undo component)220を含んでいる。復帰コンポーネント210は、本発明による復元における主要機能を提供するが、アンドゥコンポーネント220は、エラーなどのイベントに集束させるきめ細かく細分化された復元を実施する。データベーススナップショットが、イベントの発生に先立って作成されている場合には、復帰コンポーネント210は、このデータベーススナップショット中のスパースファイルを利用して、このイベントに先立つ時刻までソースデータベースを復元することができる。スナップショットの作成後に変更されているデータファイルまたはページは、スナップショットデータベースに記憶された古い値をソースデータベースにコピーすることにより、このスナップショットの時刻におけるそれらの状態まで戻すことができる。これにより、例えばこのスナップショットが作成された時刻からこの復帰オペレーションまでのエラーを含めたデータ損失が発生する結果となる。例えば、スナップショットデータベースが作成された時刻にソースデータベースが、「A」、「B」および「C」を含んでおり、次いで「B」が「D」に変更された場合、スナップショットデータベースは、「B」を含むはずであり、ソースデータベースは、「A」、「D」、「」を含むはずである。次いで、復帰コンポーネントは、単に「B」を「D」上にコピーすることにより、スナップショットの時刻におけるその値までデータベースを復元することができる。しかし、データベーススナップショットが作成された時刻において、まだコミットされていない進行中のトランザクションが存在することもある。これらのトランザクションは、データベーススナップショットによっては捕捉されない。したがって、ソースデータベースがデータベーススナップショットに復帰させられた後に、これらのトランザクションは、失われ、このトランザクションの結果として行われるオペレーション(例えば、挿入、アップデート、削除)は、実行されないことになる。
とりわけ、このアンドゥコンポーネント220を使用して、復帰するとすぐに、この不正確な表現を補償することができる。例えば、アンドゥコンポーネント220は、スナップショットデータベースの作成の時刻におけるすべてのオープンなトランザクションを記憶することができ、このトランザクションは、このスナップショットの作成以前に開始され、それ以降に終了されるすべてのトランザクションを含んでいる。これらの記憶済みのトランザクションをその後に利用して、この復元される一次データベースをロールフォワード(roll forward)してこれらのオープンなトランザクションを捕捉し、復元イベントに集束させる。さらにアンドゥコンポーネント220は、定期的な周期で、または管理者のコマンドに応じてデータベースの変化を捕捉する従来のデータベースログを利用して、エラーなどのイベントにさらに近く集束させる。それによって「良好な」トランザクションの損失を最小にすることができる。したがって、本発明では、従来において達成することができるのと少なくとも同様にデータベースの復旧を実施するが、より少ないシステムリソースを利用してずっと高速に実行している。
図3を参照すると、さらに明快にするために、本発明の態様によるデータベース復元オペレーションに関して、時系列300が示されている。時間は、この時系列300上で左から右へと進む。換言すれば、より右側に配置されたイベントは、より左側にあるイベントよりも時間的に後になって発生する。310において、このデータベーススナップショット(DBSS)が作成される。ある期間(数分、数時間、数日...)が経過し、あるイベントが320において発生する。例えば、このイベントは、ユーザが、うっかりあるテーブル一式を削除してしまうか、もしくは、ページデータを修正してしまうことに対応することができる。その後、例えば、復元オペレーションを、データベース管理者によって開始することが可能である。その結果、本発明の復帰コンポーネント210(図2)を使用して、データベーススナップショットが作成された時点310までデータベースを復元することができる。本発明の一態様によれば、これは、ソースデータベース中の対応するデータ上にスナップショットデータベースからのスパースファイルデータをコピーし、それによりこのソースデータベースを320におけるイベントの影響がない一貫した安定状態にすることによって、達成することができる。次いで、アンドゥコンポーネント220(図2)を使用してソースデータベースをイベント320に向かって進めて、このイベントによって引き起こされたデータを取り除きながら、もしくは変更しながら、「良好な」データを保持することができるようになる。これについては、アンドゥファイルに記憶されたオープントランザクションを、復元されたデータベースおよび/またはデータベースログファイルに適用することによって達成することができる。
図4は、本発明の一態様によるデータベーススナップショットシステム400を示している。このDBSSシステム400は、スナップショットコンポーネント120、ソースデータベース110、スナップショットデータベース130、カタログコンポーネント(catalog component)410、およびモニタコンポーネント420を含んでいる。前述したように、ソースデータベース110は、復元しようとすることができる主要なデータベースまたは一次データベースである。スナップショットコンポーネント120は、ソースデータベース110を利用してデータベーススナップショット130を生成する。データベーススナップショット(DBSS)130は、読取り専用のポイントインタイムデータベースとすることが可能である。このDBSSは、ソースデータベース130とスペースを共有するので、スペース効率が良い。この共有されたスペースは、2つのデータベースにおいて同一であるすべてのデータページである。例示の一実装形態によれば、このDBSSは、以下のシンタックスを用いて作成することができる。
Figure 0004638905
ソースデータベース110中のデータファイルごとに、DBSS130用の別のファイルが作成される。これらの新しいファイルは、スパースファイルである。ページがソースデータベース110中で変更されると、これらのページは、まずスパースファイルにコピーされる。カタログコンポーネント410を使用して、DBSS130中のページが、ソースデータベース110と共有されているかどうか、もしくは、このページがそのスパースファイルにコピーされているかどうかを追跡するログ、もしくはログファイルを生成する。本発明の一態様によれば、ログはソースデータベース110中に記憶されて、このログに対する簡単なアクセスがスムーズに実行される。
復元は、それを読み出し可能になる以前にDBSS130上において実行して、この復元を一貫した状態にすることができることを理解されたい。最新の(current)オープントランザクションは、ロールバック(roll back)されて、一部のこの元のページが、このロールバックのためにこれらのスパースファイルにおそらくコピーされる。本発明の一態様によれば、DBSSは、ログを有していない。作成された後に、DBSS130は、永続的な場合、そのデータベース管理者によって削除されるまで存在し続けることが可能であり、永続的でない場合には、エラーまたはシステムシャットダウンに応じてすぐに削除することができる。
1つのソースデータベース110について、複数のDBSS130が、異なるポイントインタイムにおいて存在することができる。本発明の一態様によれば、復帰され、または復元されるスナップショット以外のすべてのスナップショットを、消去することができる。あるいは、復帰される対象のスナップショットよりも後の時点に存在するすべてのスナップショットを消去することもできるが、それより前の時点に発生しているスナップショットは、保存することができる。復帰すべきまたは復帰しようとしている対象のスナップショットの後に取られたソースデータベースのスナップショットは、あまり価値のあるものではない。さらに、例えばデータベーススナップショットを利用して復元された後に、新しいスナップショットをこのソースから取ることができる。復元のために使用されるスナップショット以前に取られたスナップショットは、以前のスナップショットによって捕捉された特定のポイントインタイムまで、依然として復帰させることができるので、より高い価値があることになる。
DBSS130は、ユーザが、そこへの復帰を可能にする1つの「安全な」ポイントインタイムを望む場合、定期的または臨機応変に作成し、削除することができる。例えば、ユーザは、新しいアプリケーションのインストレーションのすぐ後で、またはテスト中にスナップショットを作成したいと望むこともある。DBSS130への復帰は、以下のコマンドを利用して発行することができる。
Figure 0004638905
スナップショットコンポーネント120がモニタコンポーネント420を利用して、このソースデータベースに関してトランザクションを観察し、データベーススナップショットの自動生成を開始することもできる。例えば、モニタコンポーネント420が、このソースデータベースをかなり変更する可能性のある新しいアプリケーションのインストレーションを検出または推測する場合、このモニタコンポーネントは、データベーススナップショットの作成を開始することができる。このような機能をスムーズに実施するために、本発明は、それだけには限定されないが、ルールベースのエキスパートシステム、ベイジアンネットワーク(Bayesian network)、およびニューラルネットワークを含めて、人工知能システムおよび人工知能の方法を使用することができることを理解されたい。
データベースを復元するために、ソースデータベースが閉じられ、このソースデータベースに対するすべての接続が閉じられる。その結果、ソースは、このプロセス中においてトランザクションに対して使用可能ではないことになる。データベースに、RESTORE(復元中)とマークを付けて、外部の観察者(viewer)にこのデータベースが使用できないことを通知することができる。次いで、サーバは、ソースデータベースファイル中の(このDBSSが作成されたときの)元の位置にこのスパースファイル中のページをコピーするように進むことができる。ほとんどの場合、変更されたページをコピーすることは、バックアップからの復元に比べてかなり高速である。これらのページがコピーされた後に、データベースについてのログを再構築することができる。ソースデータベースは、今度はこのDBSSが作成された時点に戻っている。DBSSが作成されて以来のすべての変更は、除去されている。アンドゥファイルが作成されている場合には、このログチェーンは中断されておらず、ソースデータベースから取られたデータログバックアップ(data log backup)を適用してソースデータベースをロールフォワードすることができる。
アンドゥファイルを使用してこの復元後のロールフォワードをサポートする仕組みについては、以下のように要約することができる。このDBSSを作成するとすぐ、DBSSが作成されたときに、このDBSSの復旧により影響を受けるすべてのページの元の値は、別々のアンドゥファイル中に「プリイメージ(pre−image)」として保存することができる。復帰するとすぐ、前述のようにこのソースデータベースにDBSSページをコピーすることができる。これらのプリイメージは、別々のアンドゥファイルからコピーすることができる。このポイントにおいて、このデータベースはまさしく、このDBSSが作成されたときの状態になっている。その後、データベースログを使用して、このユーザエラーが発生する直前のポイントインタイムまで、この復元済みのDBSSをロールフォワードすることにより、失われたデータ量を最小にすることができる。
図5を参照すると、本発明の一態様による例示的なデータベース復元500が示されている。ソースデータベース110は、2つのデータベースファイル510および520を含んでいる。データベースファイル510もデータベースファイル520も共に、それぞれ8ページの様々なデータを含んでいる。このソースデータベースのスナップショットが、生成される。これに応じて、データベーススナップショット130が作成される。このスナップショットデータベース130は、それぞれファイル510および520に対応する2つのスナップショットデータベーススパースファイル530およびスナップショットデータベーススパースファイル540を有することができる。このスナップショットが作成される時刻においては、これらのソースファイルは、これらがソースファイル510およびソースファイル520とすべてのデータを共有することができるので、単にシェル(shell)であり得る。スナップショットの作成後のあるポイントにおいて、ソースデータベース中の値を変更することができる。ここで、変更され値は、ファイル510中のページ3およびページ7と、ファイル2のページ4に存在している。具体的には、ページ3は、「C」から「Z」に変更されており、ページ7は、「G」から「Y」に変更されており、ページ4は、「L」から「Z」に変更されている。したがって、この変更に先立つ元の値は、スパースファイル530およびスパースファイル540に保存されており、ここでは、「C」、「G」、および「L」となっている。復元するとすぐ、スパースファイル中のページ、ここではファイル530からのページ3およびページ7と、ファイル540からのページ3は、このソースデータベースすなわち一次データベース110中のアップデートされたページ上にコピーバックをすることができる。
これらのページをコピーすることは、単にこの修正されたページをコピーバックすること、あるいはファイルを追加または削除すること、一次データベースファイルをスパースファイルのサイズに拡大または縮小すること、これらのページを追加または削除すること(すなわち、この一次データベースに追加されページを追跡し、その結果、復元する際にそれらを取り除くことができるようにする)等のような、より複雑なシナリオを含むいくつかのシナリオを含んでいる。ファイルの追加および削除では、ソースデータベースと、データベーススナップショットの両者のファイルリストを比較し、これらを同期させることができる。ページの追加では、ソースが、スナップショットまたはレプリカ(replica)よりも大きい場合、追加されページは、本発明の一態様に従ってこのソースの末尾に追加されるので、このソースは、このレプリカのサイズに合わせていくぶん末尾を切り落とし、または切り取ることができる。レプリカの方が大きい場合には、これは、ページが、一次ソースから削除されことを意味する。したがって、ソースのサイズを増大させることができ、この範囲では、すべてのページがすでにこのスナップ中にあることになり、したがってこれらのページを通常のコピー操作によってその上にコピーすることになる。
これらのページをコピーバックする素朴なアルゴリズムは、これらのページを1ページごとにコピーすることである。しかし、本発明の一態様によれば、非同期コピーオペレーション実装形態を使用することができる。例えば、1つのスレッドおよび3つのキュー、読取りキュー、書込みキュー、ならびに空のバッファキューを利用することができる。コピーバックする際に、そのページがそのソース中に存在する(例えば、そのページが変更されていることを意味する)か、または、そのページがそこに存在しない(例えば、そのページが削除されたことを意味する)場合、そのページを単にそのソースにコピーすることが可能である。しかし、この一次ソース中に過剰なページが存在する場合には、これらのページは、そのファイルの末尾に追加されているはずであり、このファイルについては、そのレプリカのサイズに合わせてこのファイルを切り取ることによって修復することができる。最後に、このソースをアンロックしてこの復元を完了することができる。
本発明の他の態様によれば、ソースデータベースに関連するログバックアップは、復元の後に消去することができる。したがって、ログバックアップは、完全バックアップまたはファイルバックアップが行われるまで、この復帰データベース上で失敗することになる。この復帰データベースは、それが作成されたときと同じ復旧モデルを保持することができる。したがって、本発明のシステムでは、(1)この復帰を開始すること、(2)データを操作すること、(3)このログを再構築すること、および(4)このデータベースを再開することをサポートすることができる。
本発明のさらに他の態様によれば、新しいソースデータベースは、この元のソースデータベースからのデータをコピーすることにより、このスナップショットデータベースから作成することができる。このデータベース作成中のどのようなエラーも、例えばこのサーバが使用可能になった後に、DBA(database administratorデータベース管理者)が、このオペレーションを再開することを必要とすることもある。このデータベースが作成された後に、このDBAは、このソースデータベースを削除し、この復帰データベースにリネームすることができる。例えばデータミラーリングに関して、このようなシステムを使用することができる。
図6を参照すると、本発明の一態様に従って例示的なデータミラーリングシステム600が示されている。システム600は、2つのデータベース、すなわちソースデータベース110およびミラーデータベース610と、1つ(または複数)のデータベーススナップショット130と、復元コンポーネント140を含んでいる。ソースデータベース110は、一次データベースである。ミラーデータベース610は、ソースデータベース110のほとんどビットごとのレプリカを含む別個のデータベースである。したがって、ソースデータベース110に対して変更が行われるときに、これらの変更はネットワーク上で例えばミラーデータベース610に送信することができる。ミラーリングの背後にあるアイデアは、この一次ソースデータベース110が、例えば電源故障に起因して故障するか、または使用できなくなる場合に、ミラーデータベース610がトランザクションに関しての新しいソースデータベースになることが可能であり、それによって冗長性を介してのデータの高い可用性を容易とすることができる。前述の本発明の一態様によれば、ソースデータベース610は、それに関連する、ポイントインタイム復帰をスムーズに実施する1つ(または複数)のスナップショットデータベーススナップショット130を有することができる。したがって、データベース管理者は、データベーススナップショット130および復元コンポーネント140を利用して、ソースデータベース110を以前のポイントインタイムまで復帰させることができる。復帰が、ソースデータベース110上で実施される場合、このミラーデータベース610もまた、この変更を反映すべきである。従来においては、時間のかかるバックアップおよび完全復元が、このミラーデータベース610をアップデートし再同期させるために必要とされた。本発明の一態様によれば、ミラーデータベース610は、このソースを用いて自動的にアップデートし同期化することができる。このソースに対する変更が自動的にこのミラーデータベース中で反映されるので、この復元中のこのソースに対する変更は、この復元がこのソース上で完了された後に、同時にまたは非同期式にこのミラーに対してこの復元を渡すこともできる。
図7を参照すると、本発明の一態様に従って、スナップショットを用いてデータベースをミラーリングするための例示的なシステム700が示されている。図7に示すように、システム700は、DB1_LSと名前のつけられたベースデータベースまたは宛先データベース710を含んでいる。アプリケーション720は、データベース710からデータを閲覧しようとする。特に、アプリケーション720は、DB1_001、DB1_002およびDB1_003と名前のつけられたスナップショット730と対話することができる。第1のスナップショットDB1_001を作成し、例えばDB1を参照することができる。
Figure 0004638905
続いて、第2のスナップショットDB1_002を作成することができる。依然としてDB1_001を使用しているユーザは、これを使用し続ける。
Figure 0004638905
その後、第3のスナップショットを作成し、DB1を参照することができる。依然としてDB1_001またはDB1_002を使用しているユーザは、これらを使用し続ける。
Figure 0004638905
さらに、本発明の一態様によれば、データベース上で一貫性チェックを行うためにデータベーススナップショットを利用することができる。例えば、DBCC CHECKDB()コマンドをデータベース上で実行することができる。結果として、バッキングストレージ(backing storage)をもつデータベースの内部スナップショットを既存のデータベースファイルの副次ストリーム中で作成することができる。次いでこれらのページをこの一貫性チェックのために読み取ることができ、このシステムは、これらのページが修正されていない場合、このベースデータベースから、あるいはこれらのページが修正されている場合には、副次ストリームからこれらのページを読み取ることができる。
図示してはいないが、本発明は1つまたは複数のGUI(graphical user interfaceグラフィックユーザインターフェース)を使用することができることも理解されたい。これらのGUIを利用して、スナップショットの管理をサポートすることができる。例えば、それだけには限定されないが、テキストボックス、ボタン、タブ、ドロップダウンメニュー、およびスクロールバーを含めて、複数のテキストコンポーネントおよびグラフィックコンポーネントを使用してスナップショットを作成し、その後、そのスナップショットにデータベースを復帰させることができる。
さらに、このデータベーススナップショットも、これに関連するソースデータベースも従来の意味でバックアップすることができる。例えば、管理者は、このスナップショットから個々のファイルまたはファイルグループをバックアップすることができる。これらのバックアップは、復元されるときに、普通のデータベースとして復元される。このソースのバックアップオペレーションに際して、このユーザは、このバックアップと共にどのスナップショットを取るべきかを指定することができる。復元に際して、ユーザは同様に、どのスナップショットを復元すべきかを指定することができる。
(コピーオンライト(Copy−On−Write)データベースとしても知られている)データベーススナップショット
一般的に、データベースは、2種類のファイル、すなわちデータファイルおよびログファイルから構成される。ログファイルは、一連のログレコードを含んでいる。ログレコードは、LSN(log sequence numberログシーケンス番号)を用いて識別することができる。図8に示すように、本発明の一態様によれば、一次データベース800は、1組のデータファイル802およびログファイル810を含んでいる。データファイル802は、ページと呼ばれるストレージのブロックまたはユニットに分割することができる。
以前のポイントインタイムにおける既存のデータベースのトランザクションの一貫したビューを提供する、データベースについてのデータベーススナップショットは、このデータベースの完全なコピーを作成することなく作成することができる。このデータベースに関するデータベーススナップショットは、以前の時刻におけるこのデータベースのコピーを作成するために必要なすべての情報を含んでいる。しかし、データベーススナップショットは、それ自体の内部にすべての情報を含んではおらず、したがってフルコピーよりもサイズを小さくすることができる。さらに、修正はこのデータベースに対して行われるので、スナップショットを実行中に作成することができ、これにより、そのコスト(時間コストおよび処理コスト)を時間軸上で分散することができるようになる。コピーが、以前の時刻におけるデータベーススナップショットからなる場合には、時間コストおよび処理コストは、一時に集中されるはずである。さらに、データベーススナップショットは、アップデートアクティビティが、このデータベース上で継続される間、作成することができる点で有利である。この一次データベースは、使用され、1つまたは複数のデータベーススナップショットが作成されるデータベースである。
前述のように、データベーススナップショットは、一次データベースとともに、以前の時刻における一次データベースの内容を決定するために必要とされるすべての情報を含んでいる。データベーススナップショットは、一次データベース中の各ファイルに対応するサイドファイルを含むことができる。サイドファイルは、対応するデータファイルからのすべてのデータのコピーを含んでおり、この対応するデータファイルは、データベーススナップショットが作成されてから変更されている。本発明の一態様によれば、サイドファイル中のページから一次ファイル中のページへのマッピングテーブルに対する必要性を回避するために、これらのサイドファイルは、スパースファイル中に記憶される。スパースファイルにおいては、実際に書込みが行われるファイルの一部分だけしかストレージスペースを必要としない。このファイルの他のすべての領域は、非割当て領域とすることが可能である。しかし、スパースファイル中にサイドファイルを記憶することは、本発明の要件ではなく、他のストレージシステムおよび他のストレージ方法も、本発明の範囲内に含まれると考えられることに留意されたい。
本発明の他の態様によれば、このスパースファイルメカニズムは、標準の領域サイズと共に動作する。1つの域内のデータがこのスパースファイルに書き込まれる場合には、たとえこのデータが全体領域を満たさないとしても、この全体領域に対してスペースを割り当てることができる。このスペースは、割り当てられかつ読み取ることができるので、有効なデータで満たされた領域の区域と、スパースファイルの細分性のために、この領域内にいくらかのストレージ必要とされ場合に、割り当てられるべきある種のサイズの領域が要請されるという理由で存在しているこの領域の区域との間で、区別を行うことができる。
データベーススナップショットは、このデータベーススナップショットが作成されて以来、一次データベース中で変更されすべてのデータの元の値を含んでいるので、データベーススナップショットの作成の時刻におけるデータベースデータをこのスナップショットから読み取ることができる。このデータベーススナップショットからのデータを求める要求に応答するために、これらのサイドファイルがこの要求からのデータを含んでいる場合には、これらのデータベーススナップショットのサイドファイルからデータを読み取ることができる。サイドファイルの中に存在してない読み取られるべきファイルはデータバーススナップショットが作成されてから変更されておらず、一次データベースから読み取ることができる
本発明のさらに他の態様によれば、これらのサイドファイルは、一次データベースからのデータのページを含んでいる。一次データベースのいずれかのページ上のいずれかのデータが変更される場合このデータのページは、サイドファイルの中に記憶される。本発明は、一次データベース中のデータ単位としてページを参照しながら説明をしている。しかし、一次データベースからのデータの他の単位を利用することもできることが企図されている。
どのデータがこのサイドファイルに書き込まれており、どのデータをこの一次データベースへと読み取るべきかを決定するためには、このサイドファイル中の有効なデータの存在を確認すべきである。ある場合においては、有効なデータが存在するかどうかを直接に確認するために読み取ることが可能である。本発明の他の態様によれば、所与のページが存在し有効であるかどうかに関するデータを記憶するサイドページテーブルを作成することができる。
一次データベース中のページごとに、サイドページテーブルは、ページが変化していないことを示していて一次データベースからこのページを読み取るべきかどうかに関する情報、または、ページが変化してしまっていサイドファイルからこのページを読み取るべきかどうかに関する情報を記憶することができる。サイドページテーブルにより、所与のページがサイドファイル中に存在するかどうかについての速やかな決定が可能になる。
本発明の他の態様によれば、このサイドファイルおよびこのスパースファイルメカニズムは共に、同じページ/領域サイズを使用する。すなわち、このサイドファイルがこの一次データベースから記憶するページは、任意のメモリがこのスパースファイルに書き込まれるときにこのスパースファイルが記憶するこれらの領域と同じサイズである。例えば、このスパースファイル領域が8KBであり、この一次データベースから記憶されるページもまた8KBである場合に、このページサイズとこの領域サイズは等しい。この場合には、満たされるどの領域も一次データベースから読み取られたページによって完全に満たされることになり、無効なデータがこの領域に記憶される可能性はない。
本発明の他の態様によれば、いくつかのサイドファイル領域は、まさしく各ページに対応することができる。例えば、これらのスパースファイル領域が8KB(キロバイト)であり、この一次データベースから記憶されるページが16KBである場合には、このサイドファイルに記憶される各ページが2つの領域を満たすことになる。この場合には、同様に満たされるどの領域も、この一次データベースから読み取られるページからの内容によって完全に満たされることになる。この場合にもまた、無効データがこの領域に含まれる可能性はない。
本発明のこれらの態様では、このサイドページテーブルは、このサイドファイル中のページごとに情報の1ビットを保持する、メモリ中のビットマップを含んでいる。このサイドファイル中のページごとに、この対応するビットは、このページがこのサイドファイル中に存在するかどうかを示す。
本発明の他の態様によれば、このサイドファイル領域中の細分性は、この一次データベースから記憶されるページの細分性よりも大きい。例えば、このサイドファイルの各領域が64KBであり、これらのページのサイズが8KBである場合には、このサイドファイル中の領域の存在が、必ずしもこの領域中のすべての情報がこの一次データベースからの有効データであることを示すとは限らない。この実施例において、たった1ページしかこのサイドファイルにコピーされない場合には、この割り当てられた領域中において、64KBのうちの8KBしか有効データを含まないことになる。他の実施形態においては、一部のサイドファイルページは、これらの領域にまたがって分散される。
これらの態様では、このサイドページテーブルは、2つのメモリ中のビットマップを含んでおり、これらのビットマップは、このサイドファイル中のページごとに、発明者らがビット1およびビット2と呼ぶことにする2ビットの情報を保持する。このサイドファイル中のページごとに、これらの対応するビットは、このページがこのサイドファイル中に確実に存在するかどうか(ビット1)を示し、またこのページがこのサイドファイル中にもしかすると存在する可能性があるかどうか(ビット2)を示す。ビット2は、このページがこのサイドファイル中に記憶されるはずである領域が割り当てられていることを示すものと考えることもできる。しかし、以下で説明するように、一実施形態においては、このビット2は、このサイドページテーブルが再構築されるときにのみ設定される。
これらのビットマップは、メモリ中に保持され、したがって永続的でないこともある。これらが消去される場合、これらのビットマップは、このスパースファイル情報から再構築される。このスパースファイルは調べられ、ページごとにこのサイドファイルには、このページが配置される領域用のスペースが割り当てられる場合に、ビット2は、このページがこのサイドファイル中に存在する可能性があることを示すために設定される。ページごとに、ビット1は、このページがこのサイドファイル中に存在することが確実ではないことを示すために最初に設定される。
このサイドページテーブルが、永続的であるようにして保持される場合には、これらの領域およびこれらのページの細分性は、無視することができ、この1ビットサイドページテーブルを使用することができる。しかし、一実施形態においては、データベースサーバが再起動した後に永続的なデータベースビューをサポートするために、この2ビットページテーブルが使用される。
本発明の一態様によれば、これらのサイドファイルでは、ページテーブルが作成されない。この場合には、このデータベーススナップショット中のページについてのコピーが行われているかどうかを判定する必要がある場合にはいつでも、このデータベーススナップショットが調べられる。本発明では、1ビットまたは2ビットのページテーブルが存在する本発明の一態様に関して以下で説明することにするが、ページテーブルが存在せず、データベースビューがこの一次データベースからコピーされたページを含むかどうかを判定するために、このデータベースビューを調べる必要がある、本発明の他の実施形態についてもまた企図している。
図9に示すように、一次データベース800についてのデータベーススナップショット920は、サイドファイル925から構成されている。一次データベース800中の各データファイル802は、データベーススナップショット920中の対応するサイドファイル925を有している。さらに、サイドページテーブルデータ930は、データベーススナップショット920用のメモリに記憶される。本発明の一態様によれば、サイドページテーブルデータ930は、1つのサイドページテーブルであり、このサイドページテーブルは、すべてのサイドファイル925をカバーする。本発明の他の態様によれば、別のサイドページテーブルが、サイドファイル925ごとに存在することができる。
データベースにおいて、このトランザクションログは最後にバックアップされているので、このトランザクションログは、このデータベースに対して実施されているすべてのトランザクションのシリアルレコードである。このトランザクションログを使用して失敗のポイントまでこのデータベースを復旧する。本発明の一態様によれば、このトランザクションログは、巡回キュー(circular queue)としてモデル化される。トランザクションログは、このログの非アクティブ部分を削除することによって切り取ることができる。この非アクティブ部分は、少なくともこれらのトランザクションが反映する変化がこれらのデータファイルに持続して残っているので復旧する必要がない完了したトランザクションを含んでいる。逆に、このトランザクションログのアクティブ部分は、完了したトランザクションも、依然として実行されつつありまだ完了していないトランザクション(アクティブトランザクション)も共に含んでいる。切り取りを行って、トランザクションログが継続して、大きくなり、より多くのスペースを使うことを可能にする代わりに、このトランザクションログ中の非アクティブなスペースを最小にすることができる。
アクティブトランザクションが、トランザクションの非一貫性を引き起こすこともある。アクティブトランザクションでは、データファイルの一部修正がそのバッファキャッシュからそのデータファイルに書き込まれていないこともあり、またこのデータファイル中の未完了のトランザクションからの一部の修正が存在することもあり得る。このログファイル810を使用して、このデータベースの復旧がトランザクションと一貫しているようにすることができる。これは、ARIES(Algorithms for Recovery and Isolation Exploiting Semantics復旧および分離活用セマンティックスのアルゴリズム)スタイルの復旧を使用して行うことができる。このデータファイルに書き込まれていないこともあるログ中に記録されたすべての修正が、このデータベースに対する修正を実施することによってロールフォワードされる。このデータベースの保全性を確保するために、このトランザクションログ中で見出されたすべての未完了のトランザクションは、このデータベースに対する修正を元に戻すことによってロールバックされる。
データベーススナップショットを作成するために、データベースビューの物理構造(サイドファイルおよびページテーブル)を初期化する必要がある。第1に、サイドファイル925は、この一次データベース800中のデータファイル802ごとに作成される。前述のように、サイドファイルは、スパースファイルであってもよく、または他の実施形態においては、データファイル802と同じサイズの非スパースファイルであってもよい。サイドファイル925は、この一次データベース800中のデータファイル802に関連連づけられる。
トランザクションが連続的に発生しつつあり、このデータベースビューがトランザクションと一貫しているので、このトランザクションログは、データベーススナップショットの作成中に使用されるべきである。このデータベースビューについて使用すべきトランザクションに関する情報が廃棄されないようにするために、ログトランザクションは(それが存在する場合に)一次データベース800上で無効にされる。
本発明の一態様によれば、サイドページテーブル930は、このデータベーススナップショットについて初期化される。最初に、サイドページテーブル930は、サイドファイル925中にページが存在しないことを示すために、また2ビットサイドページテーブルの場合には、サイドファイル925中にページが、もしかすると存在しない可能性があるか、あるいは確実に存在しないことを示すために設定される。
この初期化が完了するときに、このデータベーススナップショットは、「オンライン」に進む準備が整う。このデータベーススナップショットは、今や一次データベース800に並行して実行されていることになり、修正が実施されるときに、この修正されたページの元の値(すなわち、このアップデートが実施される以前のこのページの内容)のコピーがこのデータベーススナップショットに記憶されることになる。データベースのトランザクションに一貫したスナップショットを実装するための例示的な方法は、このトランザクションログ上のスプリットポイント(split point)を決定する工程を含むことができる。このスプリットは、このデータベーススナップショットが表すポイントインタイムに対応することになる。一次データベース800上のこのログの終わりのLSNは、このデータベーススナップショットが作成されるときに取得することができる。このLSNは、一次データベース800とデータベーススナップショット820が、分岐を開始することになる「スプリットポイント」である。次いで一次データベース800にマークを付け、その結果データベーススナップショット処理が必要とされるようにすることができる。以下に説明するように、一次データベース800において、データベーススナップショットサポートが開始される。
このデータベーススナップショットを一貫したものにするために、このスプリットポイントに先立つ一次データベース800のログを解析してどのトランザクションがこのスプリットの時刻においてアクティブであったかを判定する必要がある。このログ中の(このスプリットポイントの時点における)最も古いアクティブトランザクションが識別される。ログの切取りは、この最も古いアクティブトランザクション以前で有効にされる。
ARIES(Algorithms for Recovery and Isolation Exploiting Semantics)スタイルの復旧と同様な方法によって、このスプリットポイントに先立つ最も古いアクティブトランザクションからの一次データベース800のログにおけるすべてのオペレーションが、このデータベーススナップショットに対して実施される。図10は、本発明の一態様による一実施例のトランザクションログ、すなわちログファイル810のブロック図である。ログファイル810中のログエントリは、ログエントリ1000、1010、1020、1030、1040、1050、1060、1070、1080、1090、および1099を含んでいる。スプリットポイント1075が決定される。トランザクションは、このログに書き込まれ続けるが、切取りは無効にされる。このログファイル810が調べられ、この最も古いアクティブトランザクションからこのスプリットポイントまで(図10の実施例においてはログエントリn 1000からログエントリn+7まで)のトランザクションの結果、このデータベースに対する任意の修正が、サイドファイル925に対して実施される。これらの各トランザクションにおける修正の結果が、サイドファイル925に記憶される。次いで、これらのトランザクションが検査される。ログエントリn 1000、ログエントリn+2 1020、ログエントリn+6など、このログ中の任意のアクティブトランザクションによってこのログファイルに書き込まれた修正は、サイドファイル925中で元に戻される。
しかし、一部のトランザクションが、まだコミットされていないこともある。したがって、このログ中におけるこのスプリットポイントまでのアクティブトランザクションについては、その所在を突き止め、元に戻すべきである。本発明の一態様によれば、未完了のトランザクションが、このデータベース中のあるロケーションについての値を変更する場合に、以上でこのサイドファイルに追加されている変更が、このサイドファイルから取り除かれる。代わりに、トランザクションのアンドゥ(undoing)は、このデータベーススナップショットを修正することにより、すなわち以下で詳述するように、このサイドファイル中のデータを設定してこのスプリットポイントの時点におけるこのデータベース中のデータにマッチングさせることによって、実現することもできる。
このようにして、このログからのこの完了済みのトランザクションだけが、このデータベーススナップショット中に反映される。このログに対するトランザクションがこのデータベーススナップショット中において反映されるときに、このスプリットポイントが発生したときにアクティブな、元に戻されているトランザクションを除いて、ログの切取りが、一次データベース800上で有効にされる。データベーススナップショット処理が、有効にされているので、変更が一次データベース800に対して行われるときにこのデータベーススナップショットは、アップデートされることになり、したがってこのデータベーススナップショットを使用して、このスプリットポイントの時刻における一次データベース800の内容を決定することができる。
データベースサーバが、(正常または異常に)遮断された後に再起動するときに、このデータベーススナップショットは、再初期化されるべきである。それを行うためには、メモリ中に記憶されているサイドページテーブルが、再初期化される必要がある。
2ビットのサイドページテーブル実装形態においては、割り当てられているサイドページテーブル中における領域ごとにこのサイドページテーブルを再初期化するためには、割り当てられている領域中におけるページごとにこのサイドページテーブル中のデータ(ビット2)を設定して、このページが、もしかするとサイドファイル925に書き込まれている可能性があることを示す。他のすべてのページについては、このサイドページテーブル中のデータを設定して、このページがサイドファイル925に書き込まれている可能性がないことを示す。しかし、このページがサイドファイル925に書き込まれたことは確実ではなく、したがってビット1は、最初に設定されてはいない。
代わりに、2ビットのサイドページテーブル実装形態において、または1ビットのサイドページテーブル実装形態において、サイドファイル925を検査して、前述のように、ページごとに、サイドファイル925中のページが有効であるかどうかを判定することもできる。このページテーブルを設定して、存在するページごとに、このページがサイドファイル925中に実際に存在することを示す。他のすべてのページを設定して、このページが、サイドファイル925中に存在しないことを示す。
このデータが上書きされる前に、このデータベーススナップショットが一次データベース800からの情報を記憶するために、一次データベース800は、データベーススナップショットの作成をサポートする必要がある。この一次データベース800が修正を行うページごとに、このページがこのデータベーススナップショット中に存在するかどうかについての判定を行う必要がある。このページがこのデータベーススナップショット中に存在する場合には、このページは、正しいバージョンのページである。例えば、以前の修正が一次データベース800中のページに対して行われているときに、このようになることもある。このページが一次データベース800中で再び変更される場合には、このデータベースビュー中のバージョンは、変化しないはずである。
ページが変更されつつあるという情報が一次データベース800から受け取られたときに、このページがサイドファイル925中に存在する場合、何も行われないはずである。このページがサイドファイル925中に存在しない場合には、このページは、サイドファイル925に書き込まれるはずであり、この正しいビットがこのサイドページテーブル中に設定されるはずである。2ビットのページテーブルが存在する場合には、以下の表1によって示されるように、このページのビット1およびビット2について、3つの可能性が存在する。
Figure 0004638905
本発明の一態様によれば、ビット1が、このページが確実にサイドファイル925中に存在することを示すときに、ビット2は、無視される。したがって、表1に示すように、ビット1が、このページが確実にサイドファイル925中に存在することを示す場合には、このページは、たとえビット2が何を示しているとしても、サイドファイル925中に存在するものと想定される。代替的な実施形態においては、ビット1が、このページが確実にサイドファイル925中に存在することを示すように設定されるときに、ビット2は、このページがもしかするとサイドファイル925中に存在する可能性があることを示すように設定され、またこの代替的な実施形態においては、ビット1が、このページが確実にサイドファイル925中に存在することを示すが、ビット2が、このページが確実にサイドファイル925中に存在しないことを示すときには、このケースは無効であり、エラーに遭遇している。
一次データベース800が、ページが変更されつつあることを示すとき、2ビットページテーブルでは、以上でリストアップしたケースについて取るべきアクションは、以下のようである。
ケース1:何もしない。
ケース2:このページがサイドファイル925中に存在するかどうかを判定し、存在していない場合には、このページをサイドファイル925に書き込む。
ケース3:このページをサイドファイル925に書き込む。
このページがサイドファイル925に書き込まれるときに、ケース1またはケース2のいずれかにおいて、一次データベース800中のこの古いバージョン(一次データベース800によって今や修正されつつあるバージョン)のページが、サイドファイル925に書き込まれる。さらに、このページテーブルは、このページが今やサイドファイル925中にあって、その結果、このページに対する後続するどのような書込みも、ケース1に従って処理されることになり、またこのデータベースビューについての正しいページがサイドファイル925中に記憶されたままになることを示すように設定される。
ケース2において、このページが、サイドファイル925中に存在するかどうかを判定するためには、このページに対応するデータがサイドファイル925から読み取られる。このデータが有効である場合には、このページの以前のバージョンは、サイドファイル925中に存在し、この場合には、このページは、上書きされているはずがない。一実施形態においては、このページに対応するページテーブルビット1は、このページが確実にサイドファイル925中に存在し、したがってこのページに対する将来の書込みが、ケース1の下で処理されることを示すように設定される。
データの無効性を、新しく割り当てられた領域中に配置されたデータによって示して、有効なデータがまだこの領域に書き込まれていないことを示すことができる。例えば、このデータベースのページが、絶対にオールゼロを含むことにはならないことが知られている場合には、オールゼロを新しく割り当てられた領域に書き込むことができる。このケースに該当する場合には、サイドファイル925中におけるこのページの存在は、割り当てられた領域の一部分であり、ある非ゼロデータを含んでいる、サイドファイル925中における対応するページによって示される。
表1中に詳述したケースはまた、データベーススナップショットに記憶されたデータの読取りを実施するためにも有用である。ページ中のデータが、データベースビューから読み取られつつあるときに、このページがサイドファイル925中に存在する場合には、このページは、サイドファイル925から読み取られるべきである。存在しない場合には、このページは、一次データベース800から読み取られるべきである。2ビットページテーブルシステムにおいては、これらの3つのケースについて取るべきアクションは、以下のようである。
ケース1:サイドファイル925からこのページを読み取る。
ケース2:このページがサイドファイル925中に存在するかどうかを判定し、存在する場合、このページをサイドファイル925から読み取り、存在していない場合には、このページを一次データベース800から読み取る。
ケース3:一次データベース800からこのページを読み取る。
このデータベーススナップショットは、以前のポイントインタイムにおけるデータベースの状態を表す。ユーザは、データベーススナップショットをデータベースとして使用するように選択することができる。例えば、このユーザは、このデータベーススナップショット上でアクションを実施するように選択して、まるでこのアクションが、この以前のポイントインタイムにおけるデータベーススナップショット上で実施されているかのようにこのデータベースのデータベーススナップショットを作成することができる。さらに、初期化中には、以上で詳述したようにトランザクションをこのデータベーススナップショット上で実施し、元に戻すことができる。
このデータベーススナップショットを修正するためには、この修正は、このデータベーススナップショット中のデータに基づいているべきであり、この結果ページは、このデータベーススナップショットに記憶されるべきである。このページについてのデータベーススナップショット中にデータが存在しない場合には、この修正は、一次データベース800中のデータに基づいているべきであり、この結果ページは、このデータベーススナップショットに記憶されるべきである。
2ビットページテーブルシステムにおいては、これらの3つのケースについて取るべきアクションは、以下のようである。
ケース1:サイドファイル925からこのページを読み取り、修正を実施し、このページをサイドファイル925に書き込む。
ケース2:このページがサイドファイル925中に存在するかどうかを判定し、存在する場合、ケース1のように進み、存在していない場合には、ケース3のように進む。
ケース3:一次データベース800からこのページを読み取り、サイドファイル925にこのページを書き込み、このページがサイドファイル925中に存在することを示すようにこのページテーブルを設定する。このページに対する修正を実施し、適切な場合には、この修正済みのページをサイドファイル925に書き込む。
前述の1つ(または複数)の例示のシステムを考慮することにより、本発明に従って実装することができる方法は、図11〜図13のフローチャートを参照すればさらに良く理解されよう。説明を簡単にするために、この方法は、一連のブロックとして示し、説明しているが、本発明によれば、一部のブロックが本明細書中に示し説明している順序と異なる順序で、または他のブロックと同時に、あるいはその両方で行うことができるように、本発明は、これらのブロックの順序によって限定されることがないことを理解し認識されたい。さらに、本発明による方法を実装するためには、必ずしもすべての図示されたブロックが必要とされるとは限らないこともある。
追加して、これ以降および本明細書の全体を通して開示されるこれらの方法は、製造業者の製品上に記憶してかかる方法のコンピュータへの移植および転送を実施することが可能であることをさらに理解されたい。使用される用語、すなわち製造業者の製品は、どのようなコンピュータ読取り可能デバイス、コンピュータ読取り可能キャリア、またはコンピュータ読取り可能媒体からもアクセスすることが可能なコンピュータプログラムを包含することが意図されている。例示的で非限定的なものとして、この製造業者の製品は、コンピュータ読取り可能命令、データ構造、スキーマ、プログラムモジュールなどを実施することができる。
図11は、本発明の一態様による、スナップショットデータベースを確立するための方法1100を示している。スナップショットデータベースは、その作成の時点からのソースデータベースに対する変更に関するデータを保持している。1110において、このソースデータベースまたは一次データベース中のデータを改変する要求を受け取る。例えば、要求を行って1ページのデータを変更または改変することができる。1120において、この新しいデータによって置き換えることになるソースデータベース中のデータのコピーは、このソースデータベースの修正に対応するこのスナップショットデータベースのファイルおよびページにコピーされる。1130において、この新しいデータは、このソースデータベース中の古いデータ上にコピーされ、古いデータと置き換えられる。最終的には、1140において、カタログをアップデートして、このデータベースに対する変更およびこのスナップショットデータベースへのエントリについて記録することができる。
図12は、本発明の一態様によるデータ復元方法1200を示している。1210において、このスナップショットデータベースに記憶された各ページのデータは、この一次データベース中の対応するロケーション中のデータに上書きすることができる。さらに、このデータベース中の一次ファイルを必要に応じて拡大してスナップショットデータの受け取りを可能にすることができることを理解されたい。1220において、スナップショットデータベースまたはその中のファイルのサイズを識別し、この一次データベースまたはその中の対応するファイルのサイズと比較することができる。このスナップショットデータベースまたはその中のファイルが、この一次データベースまたはその中のファイルよりも小さくて、これらのファイルがこの復元済みのデータベース中に存在するはずがないことを示す場合には、この一次データベースを切り取って、この追加されたデータページを取り除くことができる。本発明の一態様によれば、新しく追加されたデータは、ファイルの末尾に追加されるので、これは、ファイル中の最後のページのデータを取り除くことに対応する。1230において、このスナップショットが作成された時刻にコミットされていないオープンなトランザクションをストレージから検索し、復元されつつあるこの一次データベースに適用することができる。その後に、1240において、データベースログを検索し、この復元済みのデータベースに適用して、このイベントが発生するまで、しかも発生する以前に多数の「良好な」トランザクションとして保存することができるようにこの復元を必要とするイベントにこのデータベースをさらに近づけて進めることができる。
図13を参照すると、本発明の一態様に従って、データ復元方法1300が示されている。1310において、データベーススナップショットが作成され、保持される。このデータベーススナップショットは、いつでもユーザが作成することができる。さらに、複数のスナップショットを作成して、長い間に複数の復帰ポイントを提供することができるようになる。このスナップショットデータベースは、自動的に作成することもできる。例えば、モニタコンポーネントは、このソースデータベースまたは一次データベースに関してアクションを観察し、このデータベースを著しく改変し得るアクションを検出および/または推測することができる。例えば、新しいアプリケーションのインストレーションを検出するとすぐに、スナップショットを自動的に作成することができる。本発明の一態様によれば、このデータベーススナップショットは、このソースデータベースに対する変更を記憶することができる。したがって、このデータベーススナップショットを保持することは、それに対する変更をコピーすることに対応する。本発明の他の態様によれば、このスナップショットは、スパースファイルを含むことができ、それによって対応するページに対する変更のみを記憶し、この一次データベースと他のすべてのデータを共有することができる。1320において、それだけには限定されないがユーザエラー(例えば、クイックフィンガ削除)を含めてイベントが発生するとすぐに、スナップショットによってマーク付けされた以前のポイントインタイムまでこのデータベースを復帰させることができる。復帰または復元は、とりわけこのスナップショットデータベースからのページをこの一次データベース中のページにコピーすること、この一次データベースを切り取ること、スナップショット作成の時刻におけるコミットされていないオープンなトランザクションをこのデータベースに対して適用すること、および、データベースログ情報をこの一次データベースに適用してこのイベントに集束させることを含むことができる。
例示の動作環境
本発明の様々な態様についての環境を提供するために、図14ならびに以下の説明では、本発明の様々な態様を実施することができる適切なコンピューティング環境の簡潔な一般的な説明を行うことを意図している。本発明は、以上では1台のコンピュータおよび/または複数台のコンピュータ上で実行されるコンピュータプログラムのコンピュータ実行可能命令の一般的な文脈で説明してきたが、本発明は、他のプログラムモジュールと組み合わせて実装することもできることが当業者には理解されよう。一般に、プログラムモジュールは、個々のタスクを実施し、または個々の抽象データ型を実装し、あるいはその両方を行うルーチン、プログラム、コンポーネント、データ構造などを含んでいる。さらに、本発明の方法は、シングルプロセッサまたはマルチプロセッサのコンピュータシステム、ミニコンピューティングデバイス、メインフレームコンピュータ、ならびにパーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベースのまたはプログラマブルなコンシューマ電子製品などを含めて、他のコンピュータシステム構成を用いて実行することができることが当業者には理解されよう。本発明の例示の態様はまた、分散コンピューティング環境中で実行することもでき、この分散コンピューティング環境中では、タスクは、通信ネットワークを介してリンクされるリモート処理デバイスによって実施される。しかし、本発明の全部ではなくても一部の態様は、スタンドアローンコンピュータ上で実行することができる。分散コンピューティング環境においては、プログラムモジュールは、ローカルメモリストレージデバイス中にもリモートメモリストレージデバイス中にも配置することができる。
図14を参照すると、本発明の様々な態様を実施するための例示の環境1410は、コンピュータ1412を含んでいる。コンピュータ1412は、処理装置1414、システムメモリ1416、およびシステムバス1418を含んでいる。このシステムバス1418は、それだけには限定されないがシステムメモリ1416を含めてシステムコンポーネントを処理装置1414に結合する。処理装置1414は、使用可能な様々なプロセッサのうちのどれにすることも可能である。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャもまた処理装置1414として使用することができる。
システムバス1418は、メモリバスまたはメモリコントローラ、ペリフェラルバスまたは外部バス、および/またはそれだけには限定されないが、11−ビットバス、ISA、MCA、EISA、IDE、VLB、PCI、USB、AGP、PCMCIAバス、およびSCSIを含めて使用可能な様々な任意のバスアーキテクチャを使用したローカルバスを含む、様々なタイプの1つ(または複数)のバス構造のうちのどれにもすることが可能である。
システムメモリ1416は、揮発性メモリ1420および不揮発性メモリ1422を含んでいる。起動中などコンピュータ1412内のエレメント間で情報を転送する基本ルーチンを含むBIOS(basic input/output system基本入出力システム)は、不揮発性メモリ1422に記憶される。例証として限定するものではないが、不揮発性メモリ1422は、ROM(read only memory読取り専用メモリ)、PROM(programmable ROMプログラム可能ROM)、EPROM(electrically programmable ROM電気的プログラム可能ROM)、EEPROM(electrically erasable ROM電気的に消去可能ROM)またはフラッシュメモリを含むことが可能である。揮発性メモリ1420は、RAMを含んでおり、このRAMは外部キャッシュメモリとしての役割を果たす。例証として限定するものではないが、RAMは、SRAM、DRAM、SDRAM、DDR SDRAM、ESDRAM、SLDRAM、DRRAMなど多くの形態で使用可能である。
コンピュータ1412はまた、着脱可能/着脱不能な、揮発性/不揮発性のコンピュータストレージ媒体も含んでいる。図14は、例えばディスクストレージ1424を示している。ディスクストレージ1424は、それだけには限定されないが、磁気ディスクドライブ、フロッピー(登録商標)ディスクドライブ、テープドライブ、Jazドライブ、Zipドライブ、LS−100ドライブ、フラッシュメモリカード、またはメモリスティックのようなデバイスを含んでいる。さらにディスクストレージ1424は、それだけには限定されないが、CD−ROMデバイス、CD−Rドライブ、CD−RWドライブ、またはDVD−ROMドライブなどの光ディスクドライブを含めて他のストレージ媒体と別々の、または組み合わせたストレージ媒体を含むことができる。ディスクストレージデバイス1424のシステムバス1418に対する接続をスムーズに実施するために、インターフェース1426など着脱可能または着脱不能なインターフェースが、一般的に使用される。
図14は、適切な動作環境1410中に記述されたユーザと基本的なコンピュータリソースとの間の仲介手段としての役割を果たすソフトウェアを記述していることを理解されたい。かかるソフトウェアは、オペレーティングシステム1428を含んでいる。ディスクストレージ1424上に記憶することができるオペレーティングシステム1428は、コンピュータシステム1412のリソースを制御し割り付ける機能を果たす。システムアプリケーション1430は、プログラムモジュール1432を介したオペレーティングシステム1428によるリソースの管理と、システムメモリ1416またはディスクストレージ1424に記憶されるプログラムデータ1434とを利用している。さらに、本発明は、様々なオペレーティングシステムまたはオペレーティングシステムの組合せを用いて実装することができることを理解されたい。
ユーザは、1つ(または複数)の入力デバイス1436を介してコンピュータ1412にコマンドまたは情報を入力する。入力デバイス1436は、それだけには限定されないが、マウス、トラックボール、スタイラス、タッチパッド、タッチスクリーンなどのポインティングデバイス、キーボード、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、TVチューナカード、デジタルカメラ、デジタルビデオカメラ、ウェブカメラなどを含んでいる。これらおよび他の入力デバイスは、システムバス1418を介して1つ(または複数)のインターフェースポート1438を経由して処理装置1414に接続される。1つ(または複数)のインターフェースポート1438は、例えばシリアルポート、パラレルポート、ゲームポート、およびUSBを含んでいる。1つ(または複数)の出力デバイス1440は、1つ(または複数)の入力デバイス1436と同じタイプのポートのうちの一部のポートを使用している。したがって、例えば、USBポートを使用して、コンピュータ1412に対する入力を提供し、コンピュータ1412から出力デバイス1440へと情報を出力することができる。出力アダプタ1442は、専用のアダプタを必要とする他の出力デバイス1440のうちに、モニタ、スピーカ、およびプリンタのような一部の出力デバイス1440が存在することを示すように提供される。出力アダプタ1442は、例として限定するものではないが、出力デバイス1440とシステムバス1418の間の接続の手段を提供するビデオカードおよびサウンドカードを含んでいる。1台(または複数台)のリモートコンピュータ1444など、他のデバイスおよび/またはデバイスのシステムは、入力機能も出力機能も共に提供することに留意されたい。
コンピュータ1412は、1台(または複数台)のリモートコンピュータ1444など、1台または複数台のリモートコンピュータに対する論理接続を使用して、ネットワーク環境中で動作することができる。この1台(または複数台)のリモートコンピュータ1444は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサベースの家庭電気製品、ピアデバイス、または他の共通ネットワークノードなどとすることが可能であり、一般的にコンピュータ1412に対して説明したエレメントのうちの多くまたはすべてを含んでいる。簡潔に示すために、メモリストレージデバイス1446だけしか、1台(または複数台)のリモートコンピュータ1444と共に示していない。1台(または複数台)のリモートコンピュータ1444は、ネットワークインターフェース1448を介してコンピュータ1412に論理的に接続され、次いで通信接続1450を経由して物理的に接続される。ネットワークインターフェース1448は、LANやWANなどの通信ネットワークを包含している。LAN技術は、FDDI、CDDI(Copper Distributed Data Interface銅配線分散データインターフェース)、イーサネット(登録商標)/IEEE802.3、トークンリング/IEEE802.5などを含んでいる。WAN技術は、それだけには限定されないが、ポイントツーポイントリンク、ISDNおよびその変形のような回路交換網、パケット交換網、およびDSLを含んでいる。
1つ(または複数)の通信接続1450は、ネットワークインターフェース1448をバス1418に接続するために使用されるハードウェア/ソフトウェアを意味する。通信接続1450は、分かりやすく図示するためにコンピュータ1412の内部に示しているが、コンピュータ1412の外部に存在することも可能である。このネットワークインターフェース1448に接続するために必要なハードウェア/ソフトウェアは、例示の目的にすぎないが、通常の電話品質のモデム、ケーブルモデム、DSLモデム、パワーモデム(power modem)、ISDNアダプタ、およびイーサネット(登録商標)カードを含むモデムなど内蔵または外付けの技術を含んでいる。
図15は、本発明が相互作用することができるコンピューティング環境の一例1500の概略ブロック図である。このシステム1500は、1つまたは複数のクライアント1510を含んでいる。1つ(または複数)のクライアント1510は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)とすることができる。システム1500はまた、1つ(または複数)のサーバ1530も含んでいる。1つ(または複数)のサーバ1530もまた、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)とすることができる。サーバ1530は、スレッドを格納して、例えば本発明を使用することによって変換を実施することができる。クライアント1510とサーバ1530の間の可能な通信は、複数のコンピュータプロセス間で伝送されるようになっているデータパケットの形態とすることができる。システム1500は、1つ(または複数)のクライアント1510と1つ(または複数)のサーバ1530との間の通信を実施するために使用することができる通信フレームワーク1550を含んでいる。1つ(または複数)のクライアント1510は、この1つ(または複数)のクライアント1510にローカルな情報を記憶するために使用することができる1つ(または複数)のクライアントデータ記憶域1560に動作可能に接続される。同様に、1つ(または複数)のサーバ1530は、このサーバ1530にローカルな情報を記憶するために使用することができる1つ(または複数)のサーバデータ記憶域1540に動作可能に接続される。
以上で説明してきた内容は、本発明の実施例を含んでいる。本発明を説明するためにコンポーネントおよび方法のあらゆる考え得る組合せについて説明することは、もちろん可能ではないが、本発明のさらに多くの組合せおよび置換が可能であることが当業者には理解されよう。したがって、本発明では、添付の特許請求の範囲の趣旨および範囲内に含まれるかかるすべての変更形態、修正形態、および変形形態を包含することが意図されている。さらに、用語「含む(includes)または有する(having)」が、この詳細なる説明または特許請求の範囲において使用される限りでは、「含む(comprising)」が、使用される際に特許請求項中における移行語として解釈されるので、かかる用語は、この用語「含む(comprising)」と同様にして包含することを意図している。
本発明の一態様によるデータ復元システムの概略ブロック図である。 本発明の一態様による復元コンポーネントの概略ブロック図である。 本発明の様々な態様を示す時系列図である。 本発明の一態様によるデータベーススナップショットシステムの概略ブロック図である。 本発明の一態様によるデータベース復元の一例を示す図である。 本発明の一態様によるデータベースミラーリングシステムの一例の概略ブロック図である。 本発明の一態様によるミラーリングシステムの一例の概略ブロック図である。 本発明の一態様による一次データベースの概略ブロック図である。 本発明の一態様によるデータベーススナップショットシステムの概略ブロック図である。 本発明の一態様によるトランザクションログの一例の概略ブロック図である。 本発明の一態様によるスナップショットデータベースを確立する方法を示すフローチャート図である。 本発明の一態様による復元方法を示すフローチャート図である。 本発明の一態様によるデータ復元方法のフローチャート図である。 本発明の一態様による適切な動作環境を示す概略ブロック図である。 本発明が相互作用するサンプルコンピューティング環境の概略ブロック図である。

Claims (20)

  1. ソースデータベースからある時点におけるスナップショットデータベースを生成するよう構成されたスナップショットコンポーネントであって、前記スナップショットデータベースは、トランザクションによる前記ソースデータベースへの修正の結果として、置き換えられたデータを記憶するスパースファイルを格納しており、前記トランザクションは前記スナップショットの生成後に前記ソースデータベースの前記スパースファイルをコミットしており、前記スナップショットデータベースは前記ソースデータベースとスペースを共有し、前記共有されたスペースは前記スナップショットデータベースおよび前記ソースデータベースにおいて同一なすべてのデータページであるスナップショットコンポーネントと、
    前記スナップショットデータベース中のページが、前記ソースデータベースと共有されているかどうか、および、前記ソースデータベース中のページが前記スナップショットデータベースへコピーされているかどうかを追跡するよう構成されたカタログコンポーネントと、
    スナップショットデータベースファイルを関連付けられたソースデータファイル上にコピーすることによって、前記スナップショットデータベースを利用して前記ソースデータベースをイベントに先立つ時点まで復元する復元コンポーネントと
    を備えことを特徴とするデータ復元システム。
  2. 前記イベントは、ユーザエラーに対応することを特徴とする請求項1に記載のシステム。
  3. 前記復元コンポーネントは、スナップショットデータベースデータを前記ソースデータベースへコピーする復帰コンポーネントを含むことを特徴とする請求項2に記載のシステム。
  4. 前記復元コンポーネントは、スナップショットデータベースの作成中にオープンなトランザクションを記憶し、前記オープンなトランザクションを復元されたソースデータベースに追加するアンドゥコンポーネントを含むことを特徴とする請求項3に記載のシステム。
  5. 前記アンドゥコンポーネントは、データベースログファイルを利用して前記エラーに集束させることを特徴とする請求項4に記載のシステム。
  6. 前記スナップショットコンポーネントは、前記ソースデータベースを観察し、前記ソースデータベースを特定の程度まで修正する可能性のあるイベントが発生するとすぐにスナップショットの作成を開始するモニタコンポーネントを含むことを特徴とする請求項1に記載のシステム。
  7. 前記復元コンポーネントは、自動的にかつ前記ソースデータベースの復元と同時に1つ以上のミラーデータベースをアップデートし、および同期させることを特徴とする請求項1に記載のシステム。
  8. 前記スナップショットデータベースの前記スパースファイルは、変更される前の前記ソースデータベースの元の値を表していることを特徴とする請求項1に記載のシステム。
  9. 前記スナップショットデータベースおよび前記ソースデータベースは、前記スナップショットデータベースの作成以来変更されていないデータを共有していることを特徴とする請求項8に記載のシステム。
  10. 中央処理装置(CPU)、メモリおよび入出力装置を少なくとも含むコンピュータによって実行されるデータ復元方法において、前記コンピュータは、データベースを記憶した少なくとも1つの記憶媒体と関連付けられており、前記入出力装置を経由してデータベースを修正するトランザクションが実行され、前記方法は、前記CPUによって実行される、
    前記少なくとも1つの記憶媒体上に、ある時点における、ソースデータベースに対するスナップショットデータベースを作成するステップであって、前記スナップショットデータベースは、トランザクションによる前記ソースデータベースへの修正の結果として、置き換えられたデータを記憶するスパースファイルを格納しており、前記トランザクションは前記スナップショットの生成後に前記ソースデータベースの前記スパースファイルをコミットしているステップと、
    前記入出力装置を経由した入力に関連付けられたイヴェントが発生した場合に、スパースデータベースファイルからのページを対応するソースデータベースページ上にコピーすることによって、前記スナップショットが作成された前記時点における前記データベースの状態まで復帰させるステップであって、カタログコンポーネントが、前記スナップショットデータベース中のページが前記ソースデータベースと前記スナップショットデータベースとの間で共有されているかどうか、および、前記ソースデータベース中のページが前記スナップショットデータベースへコピーされているかどうかを追跡するのに利用されるステップと
    を備えることを特徴とするデータ復元方法。
  11. 前記イベントは、ユーザエラーに対応することを特徴とする請求項10に記載の方法。
  12. スナップショットが作成された前記時点における前記データベースの状態に復帰させる前記ステップは、グラフィックユーザインターフェースを利用してデータベースアドミニストレータによって開始されることを特徴とする請求項11に記載の方法。
  13. スナップショットが作成された時間におけるコミットされていないトランザクションを捕捉するステップをさらに含むことを特徴とする請求項10に記載の方法。
  14. 前記コミットされていないトランザクションを前記ソースデータベースに適用するステップをさらに備えることを特徴とする請求項13に記載の方法。
  15. 前記イベントの発生の直前における前記データベースへの変更を反映するために、データベースログを検索し、および前記データベースを時間的にロールフォワードして前記ログを前記データベースに適用するステップをさらに備えることを特徴とする請求項14に記載の方法。
  16. 前記ソースデータベースの復帰後すぐに、1つ以上のミラーデータベースを自動的にアップデートするステップをさらに備えることを特徴とする請求項10に記載の方法。
  17. 前記スナップショットは、データベースを大幅に変更する可能性があるイベントを検出するとすぐに自動的に作成されることを特徴とする請求項10に記載の方法。
  18. 前記イベントは、新しいアプリケーションのインストレーションに対応することを特徴とする請求項17に記載の方法。
  19. 前記スナップショットデータベースの前記スパースファイルは、前記スナップショットが作成された時間における前記データベースの構造を表すことを特徴とする請求項10に記載の方法。
  20. 請求項10乃至19いずれかに記載の方法を実行するためのコンピュータ実行可能命令をその上に記憶していることを特徴とするコンピュータ読取り可能記憶媒体。
JP2007500740A 2004-02-25 2004-07-27 データベースのデータ復旧システムおよびその方法 Expired - Fee Related JP4638905B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US54764104P 2004-02-25 2004-02-25
US10/833,541 US8095511B2 (en) 2003-06-30 2004-04-28 Database data recovery system and method
PCT/US2004/024048 WO2005086032A1 (en) 2004-02-25 2004-07-27 Database data recovery system and method

Publications (3)

Publication Number Publication Date
JP2007524173A JP2007524173A (ja) 2007-08-23
JP2007524173A5 JP2007524173A5 (ja) 2010-10-14
JP4638905B2 true JP4638905B2 (ja) 2011-02-23

Family

ID=34922676

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007500740A Expired - Fee Related JP4638905B2 (ja) 2004-02-25 2004-07-27 データベースのデータ復旧システムおよびその方法

Country Status (5)

Country Link
US (2) US8095511B2 (ja)
EP (1) EP1602042B1 (ja)
JP (1) JP4638905B2 (ja)
KR (1) KR101086116B1 (ja)
WO (1) WO2005086032A1 (ja)

Families Citing this family (201)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095511B2 (en) * 2003-06-30 2012-01-10 Microsoft Corporation Database data recovery system and method
CA2472887A1 (en) * 2003-06-30 2004-12-30 Gravic, Inc. Methods for ensuring referential integrity in multithreaded replication engines
WO2005050386A2 (en) 2003-11-13 2005-06-02 Commvault Systems, Inc. System and method for performing a snapshot and for restoring data
US20050278397A1 (en) * 2004-06-02 2005-12-15 Clark Kevin J Method and apparatus for automated redundant data storage of data files maintained in diverse file infrastructures
US20060031267A1 (en) * 2004-08-04 2006-02-09 Lim Victor K Apparatus, system, and method for efficient recovery of a database from a log of database activities
US7814367B1 (en) * 2004-11-12 2010-10-12 Double-Take Software Canada, Inc. Method and system for time addressable storage
US8959299B2 (en) 2004-11-15 2015-02-17 Commvault Systems, Inc. Using a snapshot as a data source
US7831639B1 (en) * 2004-12-22 2010-11-09 Symantec Operating Corporation System and method for providing data protection by using sparse files to represent images of data stored in block devices
US8296271B1 (en) * 2005-03-28 2012-10-23 Federal Home Loan Mortgage Corporation System and method for optimizing data recovery in a parallel database
US7440979B2 (en) * 2005-03-30 2008-10-21 Sap Ag Snapshots for instant backup in a database management system
US7519636B2 (en) * 2005-03-30 2009-04-14 Sap Ag Key sequenced clustered I/O in a database management system
US8195624B2 (en) * 2005-06-30 2012-06-05 Phoenix Technologies Ltd. Shared file system management between independent operating systems
US8250030B2 (en) 2005-09-21 2012-08-21 Infoblox Inc. Provisional authority in a distributed database
US8533169B1 (en) 2005-09-21 2013-09-10 Infoblox Inc. Transactional replication
US8290910B2 (en) * 2005-09-21 2012-10-16 Infoblox Inc. Semantic replication
US7490108B2 (en) * 2005-10-19 2009-02-10 Hewlett-Packard Development Company, L.P. Data consolidation
EP1952283A4 (en) * 2005-10-28 2010-01-06 Goldengate Software Inc DEVICE AND METHOD FOR GENERATING A REAL-TIME DATABASE DUPLICATE
CN1859379B (zh) * 2005-12-07 2011-02-09 华为技术有限公司 一种可扩展标记语言文档管理方法及***
US7606844B2 (en) 2005-12-19 2009-10-20 Commvault Systems, Inc. System and method for performing replication copy storage operations
US8661216B2 (en) 2005-12-19 2014-02-25 Commvault Systems, Inc. Systems and methods for migrating components in a hierarchical storage network
US7651593B2 (en) 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
AU2006331932B2 (en) 2005-12-19 2012-09-06 Commvault Systems, Inc. Systems and methods for performing data replication
US7962709B2 (en) 2005-12-19 2011-06-14 Commvault Systems, Inc. Network redirector systems and methods for performing data replication
JP4927408B2 (ja) * 2006-01-25 2012-05-09 株式会社日立製作所 記憶システム及びそのデータ復元方法
US7693883B2 (en) * 2006-01-30 2010-04-06 Sap Ag Online data volume deletion
US8112396B2 (en) * 2006-06-07 2012-02-07 Emc Corporation Backup and recovery of integrated linked databases
US8726242B2 (en) 2006-07-27 2014-05-13 Commvault Systems, Inc. Systems and methods for continuous data replication
US8626557B2 (en) * 2006-09-26 2014-01-07 International Business Machines Corporation System and method of providing snapshot to support approval of workflow changes
US7765361B2 (en) * 2006-11-21 2010-07-27 Microsoft Corporation Enforced transaction system recoverability on media without write-through
US20080140963A1 (en) * 2006-12-11 2008-06-12 Thomason Ronald G Methods and systems for storage system generation and use of differential block lists using copy-on-write snapshots
US20080154842A1 (en) * 2006-12-20 2008-06-26 International Business Machines Corporation Enhanced relational database management system and method
US8290808B2 (en) 2007-03-09 2012-10-16 Commvault Systems, Inc. System and method for automating customer-validated statement of work for a data storage environment
US8069141B2 (en) * 2007-03-12 2011-11-29 Microsoft Corporation Interfaces for high availability systems and log shipping
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US8156084B2 (en) * 2008-01-17 2012-04-10 International Business Machines Corporation Transfer of data from positional data sources to partitioned databases in restartable environments
US8521682B2 (en) * 2008-01-17 2013-08-27 International Business Machines Corporation Transfer of data from transactional data sources to partitioned databases in restartable environments
US7933873B2 (en) * 2008-01-17 2011-04-26 International Business Machines Corporation Handling transfer of bad data to database partitions in restartable environments
CN101681312B (zh) * 2008-02-29 2012-05-23 株式会社东芝 存储器***
US8732386B2 (en) * 2008-03-20 2014-05-20 Sandisk Enterprise IP LLC. Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory
US8229945B2 (en) * 2008-03-20 2012-07-24 Schooner Information Technology, Inc. Scalable database management software on a cluster of nodes using a shared-distributed flash memory
JP2009251764A (ja) * 2008-04-02 2009-10-29 Nec Corp ジョブ管理システム、ジョブ制御方法、及びジョブ制御プログラム
US8407448B1 (en) * 2008-05-06 2013-03-26 Emc Corporation Shared storage I/O elimination through mapping client integration into a hypervisor
WO2010002408A1 (en) * 2008-07-02 2010-01-07 Hewlett-Packard Development Company, L.P. Verification of remote copies of data
US8028194B2 (en) * 2008-07-25 2011-09-27 Inmage Systems, Inc Sequencing technique to account for a clock error in a backup system
US9501368B2 (en) * 2008-09-30 2016-11-22 Veritas Technologies Llc Backing up and restoring selected versioned objects from a monolithic database backup
KR100926098B1 (ko) * 2008-11-18 2009-11-11 주식회사 네오플 스냅샷 데이터베이스를 이용한 정보 복구 방법 및 장치
US8315983B1 (en) * 2008-11-24 2012-11-20 Symantec Corporation Method and apparatus for performing granular restoration of data objects from machine images stored on sequential backup media
US9495382B2 (en) 2008-12-10 2016-11-15 Commvault Systems, Inc. Systems and methods for performing discrete data replication
US8204859B2 (en) * 2008-12-10 2012-06-19 Commvault Systems, Inc. Systems and methods for managing replicated database data
US9705888B2 (en) 2009-03-31 2017-07-11 Amazon Technologies, Inc. Managing security groups for data instances
US9207984B2 (en) 2009-03-31 2015-12-08 Amazon Technologies, Inc. Monitoring and automatic scaling of data volumes
US8713060B2 (en) 2009-03-31 2014-04-29 Amazon Technologies, Inc. Control service for relational data management
US8332365B2 (en) * 2009-03-31 2012-12-11 Amazon Technologies, Inc. Cloning and recovery of data volumes
JP5412995B2 (ja) * 2009-06-30 2014-02-12 富士通株式会社 プログラムモデル検査におけるデータベース制御装置、データベース制御方法、データベース制御プログラム
US8352937B2 (en) * 2009-08-03 2013-01-08 Symantec Corporation Streaming an application install package into a virtual environment
US8433682B2 (en) * 2009-12-31 2013-04-30 Commvault Systems, Inc. Systems and methods for analyzing snapshots
US9135283B2 (en) 2009-10-07 2015-09-15 Amazon Technologies, Inc. Self-service configuration for data environment
US8676753B2 (en) 2009-10-26 2014-03-18 Amazon Technologies, Inc. Monitoring of replicated data instances
KR101587995B1 (ko) * 2009-10-28 2016-01-22 삼성전자주식회사 적응적 로깅 장치 및 방법
US8793288B2 (en) * 2009-12-16 2014-07-29 Sap Ag Online access to database snapshots
US8504517B2 (en) 2010-03-29 2013-08-06 Commvault Systems, Inc. Systems and methods for selective data replication
US8352422B2 (en) 2010-03-30 2013-01-08 Commvault Systems, Inc. Data restore systems and methods in a replication environment
US8725698B2 (en) 2010-03-30 2014-05-13 Commvault Systems, Inc. Stub file prioritization in a data replication system
US8504515B2 (en) 2010-03-30 2013-08-06 Commvault Systems, Inc. Stubbing systems and methods in a data replication environment
US8677055B2 (en) 2010-04-12 2014-03-18 Sandisk Enterprises IP LLC Flexible way of specifying storage attributes in a flash memory-based object store
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
US8868487B2 (en) 2010-04-12 2014-10-21 Sandisk Enterprise Ip Llc Event processing in a flash memory-based object store
US9047351B2 (en) 2010-04-12 2015-06-02 Sandisk Enterprise Ip Llc Cluster of processing nodes with distributed global flash memory using commodity server technology
KR101108217B1 (ko) * 2010-05-24 2012-01-31 한국항공우주산업 주식회사 임무파일백업시스템
US8489656B2 (en) 2010-05-28 2013-07-16 Commvault Systems, Inc. Systems and methods for performing data replication
US11449394B2 (en) 2010-06-04 2022-09-20 Commvault Systems, Inc. Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources
KR101651204B1 (ko) 2010-06-15 2016-08-26 삼성전자주식회사 스냅샷 이미지의 동기화 장치 및 방법
US8954385B2 (en) 2010-06-28 2015-02-10 Sandisk Enterprise Ip Llc Efficient recovery of transactional data stores
JP2012018449A (ja) * 2010-07-06 2012-01-26 Fujitsu Ltd スナップショット取得処理プログラム、スナップショット取得処理方法、スナップショット・パティシパント・コンピュータ、スナップショット・コーディネータ・コンピュータ
US8417672B2 (en) * 2010-10-11 2013-04-09 Microsoft Corporation Item level recovery
CN101976254B (zh) * 2010-10-26 2013-01-09 青岛海信移动通信技术股份有限公司 一种基于移动通信终端的数据库修复方法及装置
US8396832B2 (en) 2010-12-08 2013-03-12 International Business Machines Corporation Independent fileset generations in a clustered redirect-on-write filesystem
US8626713B2 (en) * 2010-12-08 2014-01-07 International Business Machines Corporation Multiple contexts in a redirect on write file system
US8694733B2 (en) 2011-01-03 2014-04-08 Sandisk Enterprise Ip Llc Slave consistency in a synchronous replication environment
CN102693169B (zh) * 2011-03-25 2015-01-28 国际商业机器公司 在多租户环境下恢复租户数据的方法、设备和数据库***
US8463746B2 (en) * 2011-03-30 2013-06-11 International Business Machines Corporation Method and system for replicating data
US8938429B1 (en) * 2011-03-31 2015-01-20 Emc Corporation Resynchronization of nonactive and active segments
US8818954B1 (en) * 2011-03-31 2014-08-26 Emc Corporation Change tracking
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
US8667033B1 (en) 2011-05-14 2014-03-04 Gopivotal, Inc. Persistent file system objects for management of databases
US10387267B2 (en) * 2011-06-08 2019-08-20 International Business Machines Corporation Fast copy using file system block mappings
US8849777B1 (en) 2011-06-30 2014-09-30 Emc Corporation File deletion detection in key value databases for virtual backups
US8949829B1 (en) 2011-06-30 2015-02-03 Emc Corporation Virtual machine disaster recovery
US9158632B1 (en) * 2011-06-30 2015-10-13 Emc Corporation Efficient file browsing using key value databases for virtual backups
US9229951B1 (en) * 2011-06-30 2016-01-05 Emc Corporation Key value databases for virtual backups
US9311327B1 (en) 2011-06-30 2016-04-12 Emc Corporation Updating key value databases for virtual backups
US8843443B1 (en) 2011-06-30 2014-09-23 Emc Corporation Efficient backup of virtual data
US9104614B2 (en) 2011-09-16 2015-08-11 Apple Inc. Handling unclean shutdowns for a system having non-volatile memory
CN103034636A (zh) * 2011-09-29 2013-04-10 盛乐信息技术(上海)有限公司 一种非关系型数据库的回滚方法、装置及***
US20130138615A1 (en) * 2011-11-29 2013-05-30 International Business Machines Corporation Synchronizing updates across cluster filesystems
KR101352959B1 (ko) * 2011-12-09 2014-01-21 주식회사 알티베이스 메인메모리 데이터베이스 관리 시스템의 액티브 노드 및 스탠바이 노드의 데이터베이스 관리 장치 및 방법
US8700678B1 (en) * 2011-12-21 2014-04-15 Emc Corporation Data provenance in computing infrastructure
US9223805B2 (en) * 2012-01-30 2015-12-29 Memsql, Inc. Durability implementation plan in an in-memory database system
US8527462B1 (en) * 2012-02-09 2013-09-03 Microsoft Corporation Database point-in-time restore and as-of query
US9298715B2 (en) 2012-03-07 2016-03-29 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9471578B2 (en) 2012-03-07 2016-10-18 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9135064B2 (en) 2012-03-07 2015-09-15 Sandisk Enterprise Ip Llc Fine grained adaptive throttling of background processes
US9218252B1 (en) * 2012-03-27 2015-12-22 Emc Corporation Techniques for performing data validation
US9342537B2 (en) 2012-04-23 2016-05-17 Commvault Systems, Inc. Integrated snapshot interface for a data storage system
US9501486B1 (en) * 2012-07-06 2016-11-22 Veritas Technologies Llc Systems and methods for preventing unintended data loss during data restoration
US9015526B2 (en) * 2012-10-05 2015-04-21 Hitachi, Ltd. Restoring method and computer system
US10346369B2 (en) 2012-10-11 2019-07-09 Delphix Corp. Retrieving point-in-time copies of a source database for creating virtual databases
CN103064882B (zh) * 2012-12-03 2016-05-04 国家电网公司 适用于电力调度自动化***的商用库故障隔离方法
CN103870478B (zh) * 2012-12-12 2018-09-25 腾讯科技(深圳)有限公司 一种恢复同步数据的方法及装置
KR101451807B1 (ko) * 2012-12-24 2014-10-22 주식회사 케이티 NoSQL 메타 데이터의 백업 및 복원장치 및 방법
US20140201140A1 (en) 2013-01-11 2014-07-17 Commvault Systems, Inc. Data synchronization management
US9886346B2 (en) 2013-01-11 2018-02-06 Commvault Systems, Inc. Single snapshot for multiple agents
CN104216916B (zh) * 2013-06-04 2018-07-03 腾讯科技(深圳)有限公司 数据还原方法及装置
US9110847B2 (en) 2013-06-24 2015-08-18 Sap Se N to M host system copy
GB2515501A (en) 2013-06-25 2014-12-31 Ibm Replication for on-line hot-standby database
WO2015047271A1 (en) * 2013-09-26 2015-04-02 Hewlett-Packard Development Company, L.P. Undoing changes made by threads
US9311311B2 (en) 2013-09-27 2016-04-12 International Business Machines Corporation Archival management of database logs
US9372743B1 (en) 2013-09-30 2016-06-21 Emc Corporation System and method for storage management
US9418100B1 (en) * 2013-09-30 2016-08-16 Emc Corporation System and method for storage management
US11023434B2 (en) 2013-09-30 2021-06-01 Hewlett Packard Enterprise Development Lp No rollback threshold for audit trail
JP2015072629A (ja) * 2013-10-03 2015-04-16 富士通株式会社 データ処理プログラム及びデータ処理方法
US9690791B1 (en) * 2013-11-18 2017-06-27 EMC IP Holding Company LLC Snapshot history map
US9612910B2 (en) * 2013-12-23 2017-04-04 Veritas Technologies Systems and methods for generating catalogs for snapshots
US9495251B2 (en) 2014-01-24 2016-11-15 Commvault Systems, Inc. Snapshot readiness checking and reporting
US9753812B2 (en) 2014-01-24 2017-09-05 Commvault Systems, Inc. Generating mapping information for single snapshot for multiple applications
US9639426B2 (en) 2014-01-24 2017-05-02 Commvault Systems, Inc. Single snapshot for multiple applications
US9632874B2 (en) 2014-01-24 2017-04-25 Commvault Systems, Inc. Database application backup in single snapshot for multiple applications
US10332182B2 (en) 2014-02-28 2019-06-25 Vmware, Inc. Automatic application layer suggestion
US10241773B2 (en) * 2014-02-28 2019-03-26 Vmware, Inc. Automatic application layer capture
US20170132095A1 (en) * 2014-03-28 2017-05-11 Hewlett Packard Enterprise Development Lp Data restoration
US9606870B1 (en) 2014-03-31 2017-03-28 EMC IP Holding Company LLC Data reduction techniques in a flash-based key/value cluster storage
US9785510B1 (en) 2014-05-09 2017-10-10 Amazon Technologies, Inc. Variable data replication for storage implementing data backup
US9529880B2 (en) 2014-05-28 2016-12-27 International Business Machines Corporation Synchronizing a disaster-recovery system of a database
US10108496B2 (en) 2014-06-30 2018-10-23 International Business Machines Corporation Use of replicated copies to improve database backup performance
US9734021B1 (en) 2014-08-18 2017-08-15 Amazon Technologies, Inc. Visualizing restoration operation granularity for a database
US10042716B2 (en) 2014-09-03 2018-08-07 Commvault Systems, Inc. Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent
US9774672B2 (en) 2014-09-03 2017-09-26 Commvault Systems, Inc. Consolidated processing of storage-array commands by a snapshot-control media agent
US10025843B1 (en) 2014-09-24 2018-07-17 EMC IP Holding Company LLC Adjusting consistency groups during asynchronous replication
US10387447B2 (en) * 2014-09-25 2019-08-20 Oracle International Corporation Database snapshots
US10042870B2 (en) * 2014-10-08 2018-08-07 International Business Machines Corporation Supporting transient snapshot with coordinated/uncoordinated commit protocol
US9558078B2 (en) 2014-10-28 2017-01-31 Microsoft Technology Licensing, Llc Point in time database restore from storage snapshots
US9648105B2 (en) 2014-11-14 2017-05-09 Commvault Systems, Inc. Unified snapshot storage management, using an enhanced storage manager and enhanced media agents
US9448731B2 (en) 2014-11-14 2016-09-20 Commvault Systems, Inc. Unified snapshot storage management
US9959178B2 (en) 2014-11-25 2018-05-01 Sap Se Transactional and parallel log replay for asynchronous table replication
US10140189B2 (en) * 2015-04-28 2018-11-27 International Business Machines Corporation Database recovery and index rebuilds
JP6481489B2 (ja) * 2015-04-30 2019-03-13 富士通株式会社 修正適用情報作成プログラム、修正適用情報作成装置及び修正適用情報作成方法
US9588848B2 (en) * 2015-06-19 2017-03-07 AO Kaspersky Lab System and method of restoring modified data
WO2017023342A1 (en) * 2015-07-31 2017-02-09 Hewlett Packard Enterprise Development Lp Backup changes in transaction log file
US10567500B1 (en) 2015-12-21 2020-02-18 Amazon Technologies, Inc. Continuous backup of data in a distributed data store
US10423493B1 (en) 2015-12-21 2019-09-24 Amazon Technologies, Inc. Scalable log-based continuous data protection for distributed databases
US10152527B1 (en) * 2015-12-28 2018-12-11 EMC IP Holding Company LLC Increment resynchronization in hash-based replication
US10503753B2 (en) 2016-03-10 2019-12-10 Commvault Systems, Inc. Snapshot replication operations based on incremental block change tracking
US10310951B1 (en) 2016-03-22 2019-06-04 EMC IP Holding Company LLC Storage system asynchronous data replication cycle trigger with empty cycle detection
US10324635B1 (en) 2016-03-22 2019-06-18 EMC IP Holding Company LLC Adaptive compression for data replication in a storage system
US10705907B1 (en) 2016-03-24 2020-07-07 EMC IP Holding Company LLC Data protection in a heterogeneous random access storage array
US10101934B1 (en) 2016-03-24 2018-10-16 Emc Corporation Memory allocation balancing for storage systems
US10324782B1 (en) 2016-03-24 2019-06-18 Emc Corporation Hiccup management in a storage array
CN105843707B (zh) * 2016-03-28 2019-05-14 上海上讯信息技术股份有限公司 数据库快速恢复方法及设备
US10095428B1 (en) 2016-03-30 2018-10-09 EMC IP Holding Company LLC Live migration of a tree of replicas in a storage system
US9959073B1 (en) 2016-03-30 2018-05-01 EMC IP Holding Company LLC Detection of host connectivity for data migration in a storage system
US10565058B1 (en) 2016-03-30 2020-02-18 EMC IP Holding Company LLC Adaptive hash-based data replication in a storage system
US9959063B1 (en) 2016-03-30 2018-05-01 EMC IP Holding Company LLC Parallel migration of multiple consistency groups in a storage system
US10585876B2 (en) * 2016-04-07 2020-03-10 International Business Machines Corporation Providing snapshot isolation to a database management system
US10048874B1 (en) 2016-06-29 2018-08-14 EMC IP Holding Company LLC Flow control with a dynamic window in a storage system with latency guarantees
CN106326041A (zh) * 2016-08-31 2017-01-11 杭州沃趣科技股份有限公司 一种用于数据库秒级恢复的方法
US10671800B2 (en) * 2016-09-15 2020-06-02 Oracle International Corporation Providing way to store process data object state as snapshots at different points of process
US10983951B1 (en) * 2016-09-29 2021-04-20 EMC IP Holding Company LLC Recovery processing for persistent file data cache to reduce data loss
US10152371B1 (en) 2016-09-30 2018-12-11 EMC IP Holding Company LLC End-to-end data protection for distributed storage
US10223008B1 (en) 2016-09-30 2019-03-05 EMC IP Holding Company LLC Storage array sizing for compressed applications
US10255172B1 (en) 2016-09-30 2019-04-09 EMC IP Holding Company LLC Controlled testing using code error injection
US11749312B2 (en) * 2017-03-24 2023-09-05 Adobe Inc. Timeline creation of electronic document creation states
US10599524B2 (en) * 2017-04-28 2020-03-24 Veritas Technologies Llc Backup performance after backup failure
WO2018203377A1 (ja) * 2017-05-01 2018-11-08 株式会社Murakumo データベースシステム、方法およびプログラム
US11210184B1 (en) * 2017-06-07 2021-12-28 Amazon Technologies, Inc. Online restore to a selectable prior state for database engines
US10990581B1 (en) 2017-09-27 2021-04-27 Amazon Technologies, Inc. Tracking a size of a database change log
US10754844B1 (en) 2017-09-27 2020-08-25 Amazon Technologies, Inc. Efficient database snapshot generation
US11182372B1 (en) 2017-11-08 2021-11-23 Amazon Technologies, Inc. Tracking database partition change log dependencies
US11269731B1 (en) 2017-11-22 2022-03-08 Amazon Technologies, Inc. Continuous data protection
US11042503B1 (en) 2017-11-22 2021-06-22 Amazon Technologies, Inc. Continuous data protection and restoration
KR102005727B1 (ko) * 2018-01-22 2019-07-31 한국교통대학교산학협력단 파일 시스템의 변경 연산 가로채기 기법을 기반으로 한 다중 스냅샷 방법
US10740022B2 (en) 2018-02-14 2020-08-11 Commvault Systems, Inc. Block-level live browsing and private writable backup copies using an ISCSI server
US10554615B2 (en) * 2018-03-08 2020-02-04 Semperis Directory service state manager
US10621049B1 (en) 2018-03-12 2020-04-14 Amazon Technologies, Inc. Consistent backups based on local node clock
US11151161B2 (en) * 2018-07-06 2021-10-19 Snowflake Inc. Data replication and data failover in database systems
US11126505B1 (en) 2018-08-10 2021-09-21 Amazon Technologies, Inc. Past-state backup generator and interface for database systems
US11042454B1 (en) 2018-11-20 2021-06-22 Amazon Technologies, Inc. Restoration of a data source
US11372991B1 (en) 2018-11-27 2022-06-28 Amazon Technologies, Inc. Database operational continuity
US11860743B1 (en) 2018-11-27 2024-01-02 Amazon Technologies, Inc. Database operational compatibility safeguards
CN110032541A (zh) * 2019-04-12 2019-07-19 苏州浪潮智能科技有限公司 一种可写快照实现方法及***
US11442821B2 (en) 2019-07-10 2022-09-13 Micro Focus Llc Backup data restoration without user intervention
US11042318B2 (en) 2019-07-29 2021-06-22 Commvault Systems, Inc. Block-level data replication
KR102281901B1 (ko) * 2019-08-13 2021-07-23 건국대학교 산학협력단 블록체인을 이용한 데이터 관리 장치 및 이를 위한 방법
WO2021158710A1 (en) 2020-02-04 2021-08-12 Grav1Ty Inc. Selective synchronization of database objects
US11409605B2 (en) 2020-10-20 2022-08-09 Sap Se Failover system for database unavailability
KR102369655B1 (ko) * 2020-10-28 2022-03-03 주식회사 마크베이스 스냅샷 기반의 데이터 복제 및 복구 방법
US20230136274A1 (en) * 2021-11-04 2023-05-04 Softiron Limited Ceph Media Failure and Remediation
US20230195582A1 (en) * 2021-12-16 2023-06-22 International Business Machines Corporation Rolling back a database transaction
US11809285B2 (en) 2022-02-09 2023-11-07 Commvault Systems, Inc. Protecting a management database of a data storage management system to meet a recovery point objective (RPO)
US11656955B1 (en) 2022-03-23 2023-05-23 Bank Of America Corporation Database table valuation
US11797393B2 (en) 2022-03-23 2023-10-24 Bank Of America Corporation Table prioritization for data copy in a multi-environment setup

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002318717A (ja) * 2001-04-19 2002-10-31 Ricoh Co Ltd データベースシステム

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5175849A (en) * 1988-07-28 1992-12-29 Amdahl Corporation Capturing data of a database system
CA1329432C (en) * 1988-11-02 1994-05-10 William Davy Method of memory and cpu time allocation for a multi-user computer system
US5317731A (en) * 1991-02-25 1994-05-31 International Business Machines Corporation Intelligent page store for concurrent and consistent access to a database by a transaction processor and a query processor
US5261102A (en) * 1991-03-28 1993-11-09 International Business Machines Corporation System for determining direct and indirect user access privileges to data base objects
US5455946A (en) * 1993-05-21 1995-10-03 International Business Machines Corporation Method and means for archiving modifiable pages in a log based transaction management system
US6604118B2 (en) * 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
US5495607A (en) * 1993-11-15 1996-02-27 Conner Peripherals, Inc. Network management system having virtual catalog overview of files distributively stored across network domain
US6453325B1 (en) * 1995-05-24 2002-09-17 International Business Machines Corporation Method and means for backup and restoration of a database system linked to a system for filing data
US5870758A (en) * 1996-03-11 1999-02-09 Oracle Corporation Method and apparatus for providing isolation levels in a database system
US5857208A (en) * 1996-05-31 1999-01-05 Emc Corporation Method and apparatus for performing point in time backup operation in a computer system
US5905988A (en) * 1996-11-13 1999-05-18 Imaginon Method and apparatus for database transformation and adaptive playback
US6067550A (en) * 1997-03-10 2000-05-23 Microsoft Corporation Database computer system with application recovery and dependency handling write cache
US5884328A (en) * 1997-08-29 1999-03-16 Tandem Computers, Inc. System and method for sychronizing a large database and its replica
US6223269B1 (en) * 1997-09-27 2001-04-24 Emc Corporation Stacked mapped storage system
US6105030A (en) * 1998-02-27 2000-08-15 Oracle Corporation Method and apparatus for copying data that resides in a database
US6065018A (en) * 1998-03-04 2000-05-16 International Business Machines Corporation Synchronizing recovery log having time stamp to a remote site for disaster recovery of a primary database having related hierarchial and relational databases
US6362870B2 (en) * 1998-10-26 2002-03-26 Hewlett-Packard Company Image copier having enhanced duplex capabilities; method of printing a copy of a document to produce a duplex copy product
US6920537B2 (en) * 1998-12-31 2005-07-19 Emc Corporation Apparatus and methods for copying, backing up and restoring logical objects in a computer storage system by transferring blocks out of order or in parallel
US7107395B1 (en) * 1998-12-31 2006-09-12 Emc Corporation Apparatus and methods for operating a computer storage system
US8121828B2 (en) * 1999-01-28 2012-02-21 Ati Technologies Ulc Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions
US20010011265A1 (en) * 1999-02-03 2001-08-02 Cuan William G. Method and apparatus for deploying data among data destinations for website development and maintenance
US6438749B1 (en) * 1999-03-03 2002-08-20 Microsoft Corporation Method and system for restoring a computer to its original state after an unsuccessful patch installation attempt
US6618851B1 (en) * 1999-08-31 2003-09-09 Autodesk, Inc. Method and apparatus for state-reversion
US6487677B1 (en) * 1999-09-30 2002-11-26 Lsi Logic Corporation Methods and systems for dynamic selection of error recovery procedures in a managed device
US6434681B1 (en) * 1999-12-02 2002-08-13 Emc Corporation Snapshot copy facility for a data storage system permitting continued host read/write access
US6618822B1 (en) * 2000-01-03 2003-09-09 Oracle International Corporation Method and mechanism for relational access of recovery logs in a database system
US6769074B2 (en) * 2000-05-25 2004-07-27 Lumigent Technologies, Inc. System and method for transaction-selective rollback reconstruction of database objects
US6532527B2 (en) * 2000-06-19 2003-03-11 Storage Technology Corporation Using current recovery mechanisms to implement dynamic mapping operations
US6553388B1 (en) * 2000-07-20 2003-04-22 International Business Machines Corporation Database deltas using Cyclic Redundancy Checks
US6795895B2 (en) * 2001-03-07 2004-09-21 Canopy Group Dual axis RAID systems for enhanced bandwidth and reliability
US20020178146A1 (en) * 2001-05-24 2002-11-28 International Business Machines Corporation System and method for selective object history retention
US6996602B2 (en) * 2001-06-18 2006-02-07 Ford Global Technologies, Llc Server-side page table framework for client application definition and execution
WO2003001405A1 (en) * 2001-06-25 2003-01-03 Nokia Corporation Method and system for performing concurrency control in a relational database
US7305421B2 (en) * 2001-07-16 2007-12-04 Sap Ag Parallelized redo-only logging and recovery for highly available main memory database systems
US6948038B2 (en) * 2001-07-24 2005-09-20 Microsoft Corporation System and method for backing up and restoring data
US6662198B2 (en) * 2001-08-30 2003-12-09 Zoteca Inc. Method and system for asynchronous transmission, backup, distribution of data and file sharing
US6799189B2 (en) * 2001-11-15 2004-09-28 Bmc Software, Inc. System and method for creating a series of online snapshots for recovery purposes
US6877109B2 (en) * 2001-11-19 2005-04-05 Lsi Logic Corporation Method for the acceleration and simplification of file system logging techniques using storage device snapshots
JP3785361B2 (ja) * 2001-12-25 2006-06-14 株式会社ルネサステクノロジ Δςモジュレータ、a/dコンバータおよびd/aコンバータ
US20030220948A1 (en) * 2002-01-22 2003-11-27 Columbia Data Products, Inc. Managing snapshot/backup collections in finite data storage
US7043503B2 (en) * 2002-02-15 2006-05-09 International Business Machines Corporation Ditto address indicating true disk address for actual data blocks stored in one of an inode of the file system and subsequent snapshot
US7216135B2 (en) * 2002-02-15 2007-05-08 International Business Machines Corporation File system for providing access to a snapshot dataset where disk address in the inode is equal to a ditto address for indicating that the disk address is invalid disk address
US6829617B2 (en) * 2002-02-15 2004-12-07 International Business Machines Corporation Providing a snapshot of a subset of a file system
US7010553B2 (en) * 2002-03-19 2006-03-07 Network Appliance, Inc. System and method for redirecting access to a remote mirrored snapshot
DE60334752D1 (de) * 2002-03-19 2010-12-16 Network Appliance Inc System und Verfahren zur Bestimmung und Übertragung von Änderungen in Schnappschüssen
US7051050B2 (en) * 2002-03-19 2006-05-23 Netwrok Appliance, Inc. System and method for restoring a single file from a snapshot
US6898608B2 (en) * 2002-04-26 2005-05-24 Oracle International Corporation Techniques for managing what-if analysis of data managed by a relational database system
US20030208511A1 (en) * 2002-05-02 2003-11-06 Earl Leroy D. Database replication system
US20030220935A1 (en) * 2002-05-21 2003-11-27 Vivian Stephen J. Method of logical database snapshot for log-based replication
US7844577B2 (en) * 2002-07-15 2010-11-30 Symantec Corporation System and method for maintaining a backup storage system for a computer system
US6976022B2 (en) * 2002-09-16 2005-12-13 Oracle International Corporation Method and mechanism for batch processing transaction logging records
US6910106B2 (en) * 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
US20040117437A1 (en) * 2002-12-16 2004-06-17 Exanet, Co. Method for efficient storing of sparse files in a distributed cache
US8209680B1 (en) * 2003-04-11 2012-06-26 Vmware, Inc. System and method for disk imaging on diverse computers
US7263590B1 (en) * 2003-04-23 2007-08-28 Emc Corporation Method and apparatus for migrating data in a computer system
US7577692B1 (en) * 2003-04-25 2009-08-18 Netapp, Inc. System and method for reserving space to guarantee file writability in a file system supporting persistent consistency point images
US7181476B2 (en) * 2003-04-30 2007-02-20 Oracle International Corporation Flashback database
US20040268068A1 (en) * 2003-06-24 2004-12-30 International Business Machines Corporation Efficient method for copying and creating block-level incremental backups of large files and sparse files
US7567991B2 (en) * 2003-06-25 2009-07-28 Emc Corporation Replication of snapshot using a file system copy differential
US7395278B2 (en) 2003-06-30 2008-07-01 Microsoft Corporation Transaction consistent copy-on-write database
US8095511B2 (en) * 2003-06-30 2012-01-10 Microsoft Corporation Database data recovery system and method
US7277905B2 (en) * 2004-03-31 2007-10-02 Microsoft Corporation System and method for a consistency check of a database backup
US7386663B2 (en) * 2004-05-13 2008-06-10 Cousins Robert E Transaction-based storage system and method that uses variable sized objects to store data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002318717A (ja) * 2001-04-19 2002-10-31 Ricoh Co Ltd データベースシステム

Also Published As

Publication number Publication date
US20120101997A1 (en) 2012-04-26
EP1602042A4 (en) 2009-01-21
US8095511B2 (en) 2012-01-10
US8521695B2 (en) 2013-08-27
KR101086116B1 (ko) 2011-11-25
US20040267835A1 (en) 2004-12-30
JP2007524173A (ja) 2007-08-23
EP1602042B1 (en) 2010-04-07
KR20060122677A (ko) 2006-11-30
EP1602042A1 (en) 2005-12-07
WO2005086032A1 (en) 2005-09-15

Similar Documents

Publication Publication Date Title
JP4638905B2 (ja) データベースのデータ復旧システムおよびその方法
US11740974B2 (en) Restoring a database using a fully hydrated backup
US9940205B2 (en) Virtual point in time access between snapshots
US9262281B2 (en) Consolidating analytics metadata
US7096250B2 (en) Information replication system having enhanced error detection and recovery
US8145603B2 (en) Method and apparatus for data recovery using storage based journaling
US7650341B1 (en) Data backup/recovery
US8666942B2 (en) Systems and methods for managing snapshots of replicated databases
US8214685B2 (en) Recovering from a backup copy of data in a multi-site storage system
US7552358B1 (en) Efficient backup and restore using metadata mapping
US7194487B1 (en) System and method for recording the order of a change caused by restoring a primary volume during ongoing replication of the primary volume
US7987158B2 (en) Method, system and article of manufacture for metadata replication and restoration
US20060224636A1 (en) Page recovery using volume snapshots and logs
EP3451173B1 (en) Restoring a database using a fully hydrated backup
US8375181B1 (en) System and method for performing replication based on change tracking information
CN1784676A (zh) 数据库数据恢复***和方法
US8677088B1 (en) Systems and methods for recovering primary sites after failovers to remote secondary sites
US10671488B2 (en) Database in-memory protection system
WO2003003209A1 (en) Information replication system having enhanced error detection and recovery

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100528

A524 Written submission of copy of amendment under section 19 (pct)

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20100827

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

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