(57)【特許請求の範囲】
【請求項１】
データベースの増分バックアップを実行するためのメディアサーバによって実行される方法であって、
前記データベースの第１のフルバックアップを実行するステップと、
前記データベースの第２のフルバックアップを実行する要求をデータベースサーバに伝達してバックアップ動作を開始するステップと、
前記第２のフルバックアップを実行する要求に応答して、前記メディアサーバは、
前記データベースのスナップショットを取ることによって前記データベースのコピーを生成するステップであって、前記スナップショットは前記データベースのコピーを含む、ステップと、
前記データベースに関する１以上のマップを前記スナップショットにおいて検索するステップであって、前記１以上のマップは、前記第１のフルバックアップ以来変更されたデータの識別を含むように構成されており、前記１以上のマップは当該第１のフルバックアップを実行する要求以来変更された全てのデータを示すように構成されているビットマップを含む差分変更マップ（ＤＣＭ）を含む、ステップと、
前記ＤＣＭによって示されている前記変更されたデータを前記スナップショットにおいて検索し、
前記変更されたデータを、増分バックアップファイルとして記憶装置に記憶し、
前記増分バックアップファイルに関連する前記１以上のマップを記憶し、
前記第１のフルバックアップ以来変更が発生していないことを前記データベースに関するＤＣＭが示すように当該ＤＣＭをリセットするステップと、
を含み、
前記データベースのスキーマは前記第１のフルバックアップが実行されているときに前記データベースに問い合わせて自動的に生成される、方法。
【請求項２】
前記第２のフルバックアップを実行する要求に応答して、
前記スナップショットを廃棄するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記マップが、割り当てられたデータエクステントに関する情報を含むグローバル割り当てマップ（ＧＡＭ）と、未使用ページを有する混合エクステントに関する情報を含む共有グローバル割り当てマップ（ＳＧＡＭ）と、および／またはテーブルもしくはインデックスが用いるエクステントに関する情報を含むインデックス割り当てマップ（ＩＡＭ）と、を含み、
前記変更されたデータを検索する前に、前記マップを読み出して、変更されたエクステントがテーブル又は他のデータベースオブジェクトに割り当てられるかどうかを決定し、前記変更されたエクステントを、それらがテーブル又は他のデータベースオブジェクトに割り当てられる場合にのみ検索するステップ
をさらに含む、請求項１に記載の方法。
【請求項４】
復元動作を実行するために前記増分バックアップファイルに対応する要求を検出するステップと、
前記増分バックアップファイルに関連する前に記憶されたフルバックアップファイルを識別するステップであって、前記フルバックアップファイルは前記データベースの所定の時点における全てのデータを含む、ステップと、
前記増分バックアップファイルおよび前記増分バックアップファイルに関連する前記フルバックアップファイルを用いて復元動作を実行して、復元データベースを生成するステップと、
前記復元データベースをデータベースサーバに通知するステップと、
をさらに含む、請求項１に記載の方法。
【請求項５】
データベースの増分バックアップを実行するためのプログラム命令を含むコンピュータ可読記憶媒体であって、
前記プログラム命令は、コンピュータにより実行されるときに、当該コンピュータに、
前記データベースの第１のフルバックアップを実行するステップと、
前記データベースの第２のフルバックアップを実行する要求を伝達してバックアップ動作を開始するステップと、
前記第２のフルバックアップを実行する要求に応答して、
前記データベースのスナップショットを取ることによって前記データベースのコピーを生成するステップであって、前記スナップショットは前記データベースのコピーを含む、ステップと、
前記データベースに関する１以上のマップを前記スナップショットにおいて検索するステップであって、前記１以上のマップは、前記第１のフルバックアップ以来変更されたデータの識別を含むように構成されており、前記１以上のマップは前記第１のフルバックアップを実行する要求以来変更された全てのデータを示すように構成されているビットマップを含む差分変更マップ（ＤＣＭ）を含む、ステップと、
前記ＤＣＭによって示されている前記変更されたデータを前記スナップショットにおいて検索し、
前記変更されたデータを増分バックアップファイルとして記憶装置に記憶し、
前記増分バックアップファイルに関連する前記１以上のマップを記憶し、
前記第１のフルバックアップ以来変更が発生していないことを前記データベースに関するＤＣＭが示すように当該ＤＣＭをリセットするステップと、
を実行させ、
前記データベースのスキーマは前記第１のフルバックアップが実行されているときに前記データベースに問い合わせることによって自動的に生成される、
コンピュータ可読記憶媒体。
【請求項６】
前記プログラム命令が、前記第２のフルバックアップを実行する前記要求に応答して、
前記スナップショットを廃棄させるステップをさらにコンピュータに実行させるように構成される、請求項５に記載のコンピュータ可読記憶媒体。
【請求項７】
前記マップが、割り当てられたデータエクステントに関する情報を含むグローバル割り当てマップ（ＧＡＭ）と、未使用ページを有する混合エクステントに関する情報を含む共有グローバル割り当てマップ（ＳＧＡＭ）と、および／またはテーブルもしくはインデックスが用いるエクステントに関する情報を含むインデックス割り当てマップ（ＩＡＭ）と、を含み、
前記プログラム命令が、前記変更されたデータを検索する前に、前記マップを読み出して、変更されたエクステントがテーブル又は他のデータベースオブジェクトに割り当てられるかどうかを決定し、前記変更されたエクステントを、それらがテーブル又は他のデータベースオブジェクトに割り当てられる場合にのみ検索するステップをコンピュータにさらに実行させるように構成される、請求項５に記載のコンピュータ可読記憶媒体。
【請求項８】
前記プログラム命令が、
復元動作を実行するために前記増分バックアップファイルに対応する要求を検出するステップと、
前記増分バックアップファイルに関連する前に記憶されたフルバックアップファイルを識別するステップであって、前記フルバックアップファイルは前記データベースの所定の時点における全てのデータを含む、ステップと、
前記増分バックアップファイルおよび前記増分バックアップファイルに関連する前記フルバックアップファイルを用いて復元動作を実行して、復元データベースを生成するステップと、
前記復元データベースをデータベースサーバに通知するステップと、をさらにコンピュータに実行させるように構成される、請求項５に記載のコンピュータ可読記憶媒体。
【請求項９】
データベースの増分バックアップを実行するためのシステムであって、
データベースサーバと、メディアサーバと、データベースと、記憶装置と、を含み、
前記データベースサーバが、
第２のフルバックアップを実行する要求に応答して、フルバックアップを開始する要求を用いてバックアップ動作を開始するように構成されており、
前記メディアサーバが、
前記データベースの第１のフルバックアップを実行し、
前記データベースの前記第２のフルバックアップを実行する要求を前記データベースサーバに伝達してバックアップ動作を開始し、
前記データベースのスナップショットを取ることによって前記データベースのコピーを生成し、前記スナップショットは前記データベースのコピーを含み、
前記データベースに関する１以上のマップを前記スナップショットにおいて検索し、前記１以上のマップは、前記第１のフルバックアップ以来変更されたデータの識別を含むように構成されており、前記１以上のマップは前記第１のフルバックアップを実行する要求以来変更された全てのデータを示すように構成されているビットマップを含む差分変更マップ（ＤＣＭ）を含み、
前記ＤＣＭによって示されている前記変更されたデータを前記スナップショットにおいて検索し、
前記変更されたデータを、増分バックアップファイルとして記憶装置に記憶し、
前記増分バックアップファイルに関連する前記１以上のマップを記憶し、
前記第１のフルバックアップ以来変更が発生していないことを前記データベースに関するＤＣＭが示すように当該ＤＣＭをリセットするように構成され、
前記データベースのスキーマは前記第１のフルバックアップが実行されているときに前記データベースに問い合わせることによって自動的に生成される、
システム。
【請求項１０】
前記第２のフルバックアップを実行する前記要求に応答して、
前記スナップショットを廃棄するように構成される、請求項９に記載のシステム。
【請求項１１】
前記マップが、割り当てられたデータエクステントに関する情報を含むグローバル割り当てマップ（ＧＡＭ）と、未使用ページを有する混合エクステントに関する情報を含む共有グローバル割り当てマップ（ＳＧＡＭ）と、および／またはテーブルもしくはインデックスが用いるエクステントに関する情報を含むインデックス割り当てマップ（ＩＡＭ）と、を含み、
前記システムが、前記変更されたデータを検索する前に、
前記マップを読み出して、変更されたエクステントがテーブル又は他のデータベースオブジェクトに割り当てられるかどうかを決定し、前記変更されたエクステントを、それらがテーブル又は他のデータベースオブジェクトに割り当てられる場合にのみ検索するように構成される、請求項９に記載のシステム。
【請求項１２】
前記メディアサーバが、
復元動作を実行するために前記増分バックアップファイルに対応する要求を検出し、
前記増分バックアップファイルに関連する前に記憶されたフルバックアップファイルであって前記データベースの所定の時点における全てのデータを含むフルバックアップファイルを識別し、
前記増分バックアップファイルおよび前記増分バックアップファイルに関連する前記フルバックアップファイルを用いて復元動作を実行して、復元データベースを生成し、
前記復元データベースを前記データベースサーバに通知するようにさらに構成される、請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデータベースバックアップに関し、特にＳＱＬサーバデータベースの増分バックアップを実行するための方法およびシステムに関する。
【背景技術】
【０００２】
Ｍｉｃｒｏｓｏｆｔ（登録商標）の構造化照会言語（ＳＱＬ）サーバデータベースシステムなどのデータベースシステムには、様々なソフトウェアアプリケーションによって生成および使用される膨大な量の情報が含まれる。データベースに記憶される情報の重要性ゆえに、データベースシステムは、そのシステムによって管理されるデータベースをバックアップおよび復元するための機構を提供する。バックアップ機構は、データベースの完全なコピーを生成することが可能であり、復元機構は、コピーでデータベースを上書きすることが可能である。データベースシステムはまた、データベースを復元するためにトランザクションを再生することが可能である。かかるデータベースシステムは、全てのトランザクションをログし、これらのトランザクションを用い、周知の以前の状態からスタートしてその状態後に発生したトランザクションを適用することによって、特定の状態にデータベースを復元することが可能である。
【０００３】
データベースシステムはまた、データベースの状態を「スナップショット」に保存できるようにするスナップショット機構を提供し得る。典型的には、スナップショットを取ることは、フルバックアップを実行するための前段階である。スナップショットの実行は、ストリーミングバックアップの実行と比較して、ＳＱＬサーバに対して混乱を最小化する方法である。Ｍｉｃｒｏｓｏｆｔ  ＳＱＬサーバは、スナップショットバックアップおよび復元技術をサポートする。スナップショットバックアップは、ほとんど瞬間的に生成される特殊なバックアップである。スナップショットは、コピーのみのバックアップ、スプリットミラー、記憶装置のコピーを生成する専用ハードウェア、および他の方法を含む様々な周知の技術によって生成してもよい。スナップショットバックアップは、バックアップを達成するために、ＳＱＬサーバの資源の使用を最小化または排除することが可能である。これによって、ＳＱＬサーバの利用可能性が、バックアップ動作の実行によって最低限しか影響されないようにすることが可能である。
【０００４】
データベースシステムは、様々な理由でスナップショットを利用する。スナップショットの１つの典型的な使用は、長期間にわたってデータベースへのアクセスを不可能にせずに、データベースをコピーすることである。スナップショットを実行した後で、次に、データベースシステムは、データベースのスナップショットを活用することによって、データベースをコピーすることができる。したがって、データベースシステムは、主データベースがアクティブなときに主データベースのフルバックアップを実行する。一般に、スナップショットは、ある時点におけるデータベースの状態を記録する。すなわち、スナップショットは、ライブデータベースのある時点のイメージを提供するために用いてもよい。次に、ライブデータベースの性能に影響を及ぼさずに、スナップショットコピーを用いて追加動作を実行することができる。
【０００５】
アクティブＳＱＬサーバデータベースのダウンタイムを低減することに加えて、別の目的は、バックアップ記憶装置の利用を低減することである。この目的を達成するために、フルバックアップの代わりに、差分バックアップが実行されることが多い。差分バックアップの実行は、ＳＱＬサーバデータベースの共通の特徴を利用する。典型的には、データベースにおけるデータの小さな割合だけが、連続バックアップ間に変更される。バックアップ間に実際に変更されるデータ部分だけを用いるので、フルバックアップの代わりに差分バックアップを実行することは、バックアップの効率を向上させる。バックアップを完了するのに必要な時間は、低減されてデータベースのダウンタイムを制限することが可能であり、バックアップにおいて記憶されるデータ量もまた低減されて、バックアップを記憶するのに必要な記憶容量を低減することが可能である。
【０００６】
ＳＱＬサーバは、最後のフルバックアップ以来どのエクステントが変更されたかに関する情報を備えたビットマップを維持する。このビットマップは、差分変更マップ（ＤＣＭ）と呼ばれ、ＳＱＬサーバは、ＤＣＭを用いて差分バックアップを実行する。ＤＣＭは、最後のフルデータベースバックアップ以来変更されたエクステントを追跡する。エクステントは、８つの物理的に連続するページの集合であり、ページを効率的に管理するために使用され得る。ＤＣＭは、各ビットが単一のエクステントを表すビットマップである。ビットマップは、次のように構成される。すなわち、エクステント用のビットが１である場合には、そのエクステントは、最後のフルバックアップ以来修正されており、エクステント用のビットが０である場合には、そのエクステントは修正されなかったというように構成される。
【０００７】
ＳＱＬサーバはまた、データベースにおけるオブジェクトへのエクステントの割り当てを記録するための割り当てマップを維持する。割り当てマップの１つが、インデックス割り当てマップ（ＩＡＭ）である。ＩＡＭには、テーブルまたはインデックスが用いるエクステントに関する情報が含まれる。別の割り当てマップが、グローバル割り当てマップ（ＧＡＭ）である。ＧＡＭには、どのエクステントが割り当てられたかに関する情報が含まれる。別の割り当てマップが、共有グローバル割り当てマップ（ＳＧＡＭ）である。ＳＧＡＭは、少なくとも１つの未使用ページを有する混合エクステントを追跡する。また、ページ空き領域（ＰＦＳ）ページと呼ばれる空き領域を追跡する方法が存在する。ＰＦＳページは、個々のページが割り当てられたかどうかおよび各ページにおける空き領域の量など、各ページの割り当て状態を記録する。
【０００８】
ＳＱＬデータベースを管理するために用いられる共通の技術が、データベースに予め余分なスペースを割り当てて、データベースに拡張する余地を与えることである。データベースファイルがＳＱＬサーバによって実装される場合、およびデータベースファイルのサイズが、新しいトランザクションを収容するために、データベースに割り当てられたサイズを超えて増加する必要がある場合に、データベースのサイズを増加させることは、時間のかかるプロセスである。したがって、ＳＱＬデータベースのサイズが、それが現在記憶するデータ量よりはるかに大きいのは、通例のことである。しかしながら、フルバックアップを実行する場合に、データベースに割り当てられたスペースの全ては、たとえそれが用いられていない場合であってもバックアップされ、かくしてバックアップのサイズを増加させる。また、テーブルまたは他のオブジェクトがデータベースから削除された場合に、フルバックアップは、やはり、削除されたテーブルまたはオブジェクトが占めていた全てのスペースをバックアップする。
【０００９】
バックアップのサイズを低減するために、ＳＱＬサーバによって差分バックアップを用いてもよいが、しかし差分バックアップは、いくつかの欠点がある。例えば、差分バックアップは、データベースのライブインスタンスに復元されなければならず、それは、データベースのダウンタイムに帰着する。ＳＱＬサーバはまた、発生したトランザクションのリストをバックアップするためにログバックアップをサポートする。差分バックアップと同様に、ログバックアップは、復元中にデータベースのライブインスタンスに再生される必要がある。ＳＱＬサーバからのどんな支援も要求せずに、ある時点におけるデータベースファイルのフルコピーを復元用に準備することが好ましいであろう。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
差分またはログバックアップを実行する以外に、データベースバックアップのサイズを低減する別の方法は、増分バックアップを実行することである。しかしながら、ＳＱＬサーバは、現在、データベースの増分バックアップをサポートしていない。したがって、必要なものは、ＳＱＬサーバによって維持されるスナップショットおよびデータ追跡機構を用いて増分バックアップを実行し、一方でまた、高速で効率的な復元を増分バックアップから行う能力を保持することである。
【００１１】
上記を考慮すると、ＳＱＬデータベースの増分バックアップを実行するための方法および機構が望ましい。
【課題を解決するための手段】
【００１２】
ＳＱＬサーバデータベースの増分バックアップを実行するための方法および機構の様々な実施形態を考える。一実施形態において、データベースのフルバックアップを実行してもよい。フルバックアップの後で、続くバックアップは、増分バックアップであってもよい。増分バックアップを実行するために、最初に、データベースのフルバックアップを実行する要求をＳＱＬサーバに伝達してもよい。たとえ実際には増分バックアップが実行されても、ＳＱＬサーバは、まるでデータベースのフルバックアップが実行されているかのように振る舞ってもよい。次に、データベースのスナップショットを取ってもよい。１つまたは複数のマップをスナップショットから検索してもよい。１つまたは複数のマップには、前のフルバックアップ、前のスナップショット、または前の増分バックアップ以来変更されたエクステントを識別する情報を含んでもよい。変更されたエクステントを識別した後で、変更されたエクステントは、スナップショットから検索し、増分バックアップファイルとしてバックアップ記憶装置に記憶してもよい。次に、スナップショットは、廃棄してもよい。データベースのスナップショットが取られた後のあるポイントにおいて、ＳＱＬサーバは、まるでフルバックアップ動作が実行されたかのように、ＤＣＭビットマップのライブコピーをリセットしてもよい。
【００１３】
別の実施形態において、変更されたエクステントを識別した後で、１つまたは複数の割り当てマップを検索し読み出して、変更されたエクステントのそれぞれがテーブルまたは他のオブジェクトに割り当てられるかどうかを決定してもよい。変更されたエクステントが割り当てられない場合には、変更されたエクステントは、増分バックアップの一部としては記憶されない。１つまたは複数のマップはまた、増分バックアップの一部として記憶してもよい。方法には、複数の増分バックアップおよびスナップショット用に上記のステップを繰り返すことがさらに含まれる。
【００１４】
さらなる実施形態において、前に記憶されたフルバックアップは、増分バックアップまたは差分バックアップなどの部分バックアップに変換してもよい。一実施形態において、データベースの記憶されたスナップショットを記憶装置から検索してもよい。記憶されたスナップショットは、データベースに対して実行された前のフルバックアップ動作に対応してもよい。記憶されたフルバックアップは、その特定のバックアップ用の記憶装置使用を低減するために、増分バックアップファイルに変換してもよい。記憶されたスナップショットを増分バックアップファイルに変換するために、変更されたエクステントを識別する１つまたは複数のマップを、スナップショットから検索してもよい。代替として、変更されたエクステントを識別する１つまたは複数のマップは、スナップショットとは別個に記憶してもよい。次に、変更されたエクステントは、記憶されたスナップショットから検索し、増分バックアップファイルとしてバックアップ記憶装置に記憶してもよい。バックアップからの未変更データは、廃棄してもよい。代替として、他の類似の技術を用いて、記憶されたフルバックアップファイルを増分バックアップファイルに変換してもよい。
【００１５】
別の実施形態において、復元動作は、１つまたは複数の増分バックアップに続いて要求してもよい。メディアサーバは、前のフルバックアップファイルをバックアップ記憶装置から検索し、かつ前のフルバックアップファイルを、メディアサーバまたはＳＱＬサーバに関連するディスクまたは他の記憶装置などの記憶装置に書き込んでもよい。メディアサーバは、ＳＱＬサーバからどんな入力も要求せずに、このステップを実行し得る。これによって、ＳＱＬサーバは、新しいトランザクションを処理することなど、データベースにおける通常の機能の一部としての動作を実行し続けることが可能になる。次に、メディアサーバは、１つまたは複数の増分バックアップファイルを検索し、変更されたエクステントを、増分バックアップファイルからフルバックアップファイル内の適切な位置に書き込んでもよい。メディアサーバは、変更されたエクステントを、複数の増分バックアップファイルからフルバックアップファイルに書き込んでもよい。複数の増分バックアップファイルは、フルバックアップ動作に続いて実行された複数の増分バックアップに対応してもよい。メディアサーバはまた、最も古い増分バックアップファイルからの変更されたエクステントが最初に書き込まれ、最新の増分バックアップファイルからの変更されたエクステントが最後に書き込まれるように、増分バックアップファイルが生成された順序で、増分バックアップファイルからの変更されたエクステントを書き込んでもよい。メディアサーバは、増分バックアップ動作の一部として記憶された１つまたは複数のマップを読み出すことによって、変更されたエクステントが、未実装フルバックアップファイルにおいて属する場所を決定してもよい。メディアサーバは、ＳＱＬサーバからどんな入力も要求せずに、変更されたエクステントを未実装フルバックアップファイル内に逆に書き込んでもよい。
【００１６】
これらや他の特徴および利点は、本明細書で提示するアプローチの以下の詳細な説明を考慮すれば、当業者には明らかになろう。
【００１７】
方法および機構の上記のおよびさらなる利点は、添付の図面に関連して以下の説明を参照することによって、よりよく理解することが可能である。
【図面の簡単な説明】
【００１８】
【図１】１つまたは複数の実施形態に従ってデータベースアーカイブシステムを示す図である。
【図２】スナップショットを生成するデータベースサーバを示す。
【図３】１つまたは複数の実施形態に従ってスナップショットイメージを示す。
【図４】１つまたは複数の実施形態に従って、メディアサーバ、および記憶されたデータベースバックアップファイルを備えた記憶装置を示す。
【図５】増分バックアップファイルに変換されている、記憶されたフルバックアップファイルの一実施形態を示す。
【図６】データベースアーカイブシステムの一実施形態を示す。
【図７】フルバックアップファイルおよび増分バックアップファイルから再構成された未実装データベースファイルの一実施形態を示す。
【図８】増分バックアップ動作の一実施形態を示す一般化された流れ図である。
【図９】増分バックアップから後の復元動作の一実施形態を示す一般化された流れ図である。
【発明を実施するための形態】
【００１９】
以下の記載において、本明細書で提示する方法および機構の完全な理解を提供するために多数の特定の詳細が説明される。しかしながら、当業者は、これらの特定の詳細なしに、様々な実施形態を実行可能であることを理解されたい。いくつかの例において、周知の構造、コンポーネント、信号、コンピュータプログラム命令、および技術は、本明細書で説明するアプローチを曖昧にしないように、詳細には示さなかった。図解の単純性および明確性のために、図に示す要素が、必ずしも一定の縮尺で作成されなかったことが理解されよう。例えば、いくつかの要素の寸法は、他の要素に対して誇張されている場合がある。
【００２０】
図１を参照すると、データベースアーカイブシステムにおける一実施形態の一般化されたブロック図が示されている。データベースサーバ１１０およびメディアサーバ１３０は、ネットワーク１２０に接続される。一実施形態において、データベースサーバ１１０は、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬサーバであってもよい。いくつかの実施形態において、データベースサーバ１１０は、Ｍｉｃｒｏｓｏｆｔ（登録商標）ＳｈａｒｅＰｏｉｎｔ（登録商標）サーバなどのアプリケーションサーバ（図示せず）に接続してもよい。
【００２１】
ネットワーク１２０には、イーサネットネットワークおよびファイバチャンネル（ＦＣ）ネットワークなどのローカルエリアネットワーク（ＬＡＮ）と、米国電気電子学会（ＩＥＥＥ）８０２．１１規格（Ｗｉ−Ｆｉ）に基づいた無線ローカルエリアネットワーク（ＷＬＡＮ）と、インターネット、セルラーデータネットワーク、および公衆ネットワーク（例えばインターネット）を通じて実現される仮想プライベートネットワーク（ＶＰＮ）のような他のデータ通信ネットワークなどのワイドエリアネットワーク（ＷＡＮ）と、の組み合わせを含む様々なネットワーク接続を含んでもよい。他のネットワーク接続およびアーキテクチャーが、可能であり考えられる。
【００２２】
メディアサーバ１３０は、バックアップ記憶装置１４０を管理してもよく、かつメディアサーバ１３０は、データベースサーバ１１０から受信したバックアップデータおよびメタデータをバックアップ記憶装置１４０に記憶してもよい。メディアサーバ１３０は、データをバックアップしてデータベースサーバ１１０に復元することに関連するタスクを実行するためのソフトウェアをホストしてもよい。メディアサーバ１３０は、任意の数のメディアサーバ、マスタサーバ、またはネットワーク１２０に接続可能な他のタイプのサーバを代表する。他の実施形態において、メディアサーバ１３０は、マスタサーバ、他のタイプのサーバ、またはデータベースアーカイブシステムにおける１つもしくは複数のサーバのある組み合わせであってもよい。
【００２３】
メディアサーバ１３０は、バックアップ記憶装置１４０に直接接続してもよく、またはメディアサーバ１３０は、ＬＡＮ、ストレージエリアネットワーク（ＳＡＮ）もしくは他のネットワークなどの様々なネットワークのいずれかを通じてバックアップ記憶装置１４０に接続してもよい。一実施形態において、バックアップ記憶装置１４０は、メディアサーバ１３０のバスに直接装着されるアダプタカードであってもよい。メディアサーバ１３０は、データベースサーバ１１０、バックアップ記憶装置１４０、または他の装置からデータを受信し、かつそれらにデータを送信する場合に、データをバッファするために内部メモリ（例えば、ランダムアクセスメモリ（ＲＡＭ））を用いてもよい。バックアップ記憶装置１４０は、任意の数のバックアップ記憶装置を代表し、かつハードディスクドライブ、ディスクボリューム、サーバブレード、フラッシュドライブ、光ドライブ、テープドライブ、テープボリューム、ロボットテープライブラリ、または他の記憶媒体などの様々なタイプの記憶媒体のいずれを含んでもよい。
【００２４】
データベース１５０は、データベースプログラムおよび／またはそこに実現された１つもしくは複数の実際のデータベースの両方を表し得る。データベースプログラムは、データベースを動作させるための実行可能コマンド、ユーザインターフェース、および他のプログラムコードを指す。包含されたデータベースには、複数のデータレコード上で動作するように構成された様々なテーブル、インデックス、関係、問い合わせ、記憶された手順、ファイルシステム、セキュリティ層、ネットワーキングインターフェース等をさらに含んでもよい。
【００２５】
データベース１５０におけるレコードは、テーブル（行および列配列）に配置してもよい。本明細書で用いられるように用語「レコード」は、データベースにおけるエントリを指すものとする。関連するレコードの集合は、データベースにおける「テーブル」として集合的に説明してもよい。レコードは、１つまたは複数のフィールドからなってもよく、これらのフィールドは、他のテーブルにおける他のレコードに対してインデックス（またはキー）として働くことが可能である。例えば、文書管理データベースにおいて、文書テーブルにおける各レコードは、データベースに記憶された文書を表してもよい。一実施形態において、文書は、レコードのフィールド自体に記憶してもよい。いくつかの実施形態において、文書は、記憶位置などの、文書に対する参照記号によってレコードに表してもよい。さらに、データベースは、関係データベースの任意で所与のインプリメンテーションを記憶およびアクセスするための実装データベースファイルを生成および修正してもよい。いくつかの実施形態において、データベース１５０は、ネットワーク１２０介して他のサーバおよびクライアントコンピュータがアクセスするように構成された、データベースサーバ１１０などの専用コンピューティングシステム上で動作してもよい。
【００２６】
データベース１５０には、追加および問い合わせ手順など、関係データベースに関連する様々な種類の機能を含んでもよい。問い合わせ機能は、変更マップ、割り当てマップ、オブジェクト、テーブル、レコード、および他のデータなどの情報をデータベースから検索してもよい。追加機能は、情報をデータベースに記憶してもよい。データベース１５０は、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬサーバデータベースであってもよく、データベース１５０へのアクセスを提供するために用いられるインターフェースは、ＳＱＬを用いてもよい。データは、ページレベルでデータベース１５０に記憶し、そこから検索してもよい。各ページは、８キロバイト（ＫＢ）のサイズを有してもよく、ヘッダおよびデータからなってもよい。ページヘッダには、ページにおけるデータが属するオブジェクトＩＤを含んでもよい。サーバ入力／出力（Ｉ／Ｏ）動作は、データベースサーバ１１０がページ全体を読み出すかまたは書き込むように、ページレベルで実行してもよい。
【００２７】
データベース１５０のフルバックアップが生成されるフルバックアッププロセスの後で、後続の増分バックアッププロセスを用いて増分バックアップを生成し、かつ最も最近のフルバックアップ以来変更されたエクステントだけを捕捉してもよい。増分バックアップの生成は、無期限に継続してもよく、その場合に、連続的な数の後続する増分バックアップを実行および生成してもよく、かつ各増分バックアップには、最も最近実行された増分バックアップ後に変更されたエクステントが含まれる。複数の増分バックアップ動作からの変更されたエクステントは、バックアップ記憶装置１４０に記憶してもよい。
【００２８】
復元動作のために、最も最近生成されたフルバックアップは、バックアップ記憶装置１４０、データベースサーバ１１０の物理メモリ、または他の記憶装置などの記憶装置にデータベースファイルを書き込むプロセスにおいて復元してもよい。次に、第１の増分バックアップファイルに記憶された、変更されたエクステントをデータベースファイル内の適切なメモリ位置に分配して、第１の増分バックアップが開始されたときにデータベース１５０があった状態に、データベースファイルを再インスタンス化してもよい。次に、このプロセスは、一連の増分バックアップが生成された順序で、増分バックアップのそれぞれに対して連続的に繰り返してもよい。プロセスの終わりに、データベースファイルが再構成され、かつデータベース１５０のライブインスタンスとして復元される準備ができていることを、データベースサーバ１１０に通知してもよい。
【００２９】
データベース全体を復元する代わりに、ユーザまたは管理者は、バックアップされたデータベースから１つまたは複数のデータ項目（例えば、ファイル、電子メール、イメージ）を復元したいと思う可能性がある。データベースサーバ１１０は、１つまたは複数の要求されたデータアイテムを、復元されたデータベースファイルから検索し、それらのアイテムをデータベース１５０に復元してもよい。１つまたは複数のデータ項目を復元するプロセスは、きめ細かい復元プロセスと呼ばれる。
【００３０】
図１のメディアサーバ１３０およびデータベースサーバ１１０は、任意のタイプのコンピューティング装置（例えば、サーバ、デスクトップパーソナルコンピュータ（ＰＣ）、ラップトップ、スマートフォン）であってもよく、かつ様々なハードウェアおよびソフトウエアコンポーネントを含んでもよい。ハードウェアコンポーネントには、バスアーキテクチャを介して共に接続される１つまたは複数のプロセッサ、メモリ装置、および入力／出力（Ｉ／Ｏ）装置を含んでもよい。ソフトウエアコンポーネントには、メモリ装置に記憶されるオペレーティングシステムを含んでもよい。オペレーティングシステムは、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ｓｏｌａｒｉｓ（登録商標）またはその他など、様々なタイプのオペレーティングシステムのいずれかであってもよい。オペレーティングシステムは、様々なサービスをユーザに提供するように動作可能であってもよく、かつバックアップアプリケーション、サーバアプリケーション、データベースアプリケーション、ソフトウェアエージェント、または様々な他のアプリケーションのいずれかなどの様々なプログラムの実行をサポートしてもよい。
【００３１】
他の実施形態において、データベースサーバ、データベース、メディアサーバ、ネットワーク、およびバックアップ記憶装置の数およびタイプは、図１に示すものに限定されない。任意の数および組み合わせのメディアサーバ、データベースサーバ、およびデータベースは、モデムバンク、直接ＬＡＮ接続、無線接続、ＷＡＮリンク等の様々な組み合わせ介し、ネットワークアーキテクチャにおいて相互接続してもよい。
【００３２】
ここで図２を参照すると、スナップショットイメージを生成するデータベースサーバの実例が示されている。データベースサーバ２１０はデータベース２２０を管理し、かつデータベースサーバ２１０は、記憶装置２３０に接続してもよい。記憶装置２３０は、任意の数の記憶装置を代表し、かつ記憶装置２３０は、前述の記憶媒体のいずれのタイプであってもよい。代替として、データベースサーバ２１０は、物理メモリまたは他のローカル記憶装置を用いて、スナップショット２４０、およびデータベース２２０に関連する他のデータを記憶してもよい。
【００３３】
図２に示すように、スナップショット２４０は、記憶装置２３０に記憶される。スナップショット２４０は、データベースサーバ２１０によって生成してもよく、かつスナップショット２４０は、データベース２２０のバックアップイメージを表してもよい。スナップショット２４０は、データベース２２０の静的な、ある時点の表現であってもよい。スナップショット２４０は、データベース全体のフルイメージのコピーであってもよく、データベースサーバ２１０は、スナップショットバックアップを実行した後で、スナップショット２４０を記憶装置２３０に記憶してもよい。メディアサーバ（図示せず）は、増分バックアップを実行するためにスナップショット２４０にアクセスしてもよい。代替として、メディアサーバは、フルバックアップを実行するためにスナップショット２４０にアクセスしてもよい。データベースサーバ２１０は、スナップショットバックアップをフルバックアップと見なしてもよく、かつデータベースサーバ２１０は、スナップショットバックアップがフルバックアップと等価だったことを示すために、マップおよび他のメタデータをリセットしてもよい。
【００３４】
ここで図３を参照すると、スナップショットイメージの一実施形態が示されている。スナップショット３１０は、ＳＱＬサーバによるスナップショットバックアップ中に、ＳＱＬデータベースから取られたイメージを表す。スナップショット３１０には、メタデータおよび１つまたは複数のマップを含めて、データベースからのデータの全てを含んでもよい。マップには、差分変更マップ（ＤＣＭ）３２０、グローバル割り当てマップ（ＧＡＭ）３３０、共有グローバル割り当てマップ（ＳＧＡＭ）３４０、インデックス割り当てマップ（ＩＡＭ）３５０、およびオブジェクト３６０を含んでもよい。オブジェクト３６０は、基礎をなすＳＱＬデータベース（ここからスナップショット３１０が生成された）に存在し得る任意の数のオブジェクトを代表する。オブジェクト３６０は、エクステントに組織化してもよく、かつオブジェクト３６０は、テーブル、レコード、文書、項目、リスト、および他のデータを含む、データベースに記憶された任意のタイプのデータを代表してもよい。いくつかの実施形態において、ＳＱＬデータベースは、１つまたは複数のファイルからなってもよく、各ファイルは、それ自体のマップセットを備えている。これらの実施形態において、スナップショット３１０は、多数のＤＣＭ、ＧＡＭ、ＳＧＡＭ、ＩＡＭ等を含んでもよい。
【００３５】
メディアサーバは、スナップショット３１０からＤＣＭ３２０を検索してもよい。次に、メディアサーバは、ＤＣＭ３２０のページを読み出して、前のフルまたは増分バックアップ以来どのエクステントが修正されたかを決定してもよい。メディアサーバは、ＤＣＭを構成するページをスナップショット３１０から検索するために問い合わせを実行してもよい。第１のＤＣＭページは、スナップショット３１０の７番目のページに位置している可能性がある。第２のＤＣＭページは、第１のＤＣＭページから５１２２３２ページをオフセットされて５１２２３９番目のページに位置している可能性がある。第３のページのＤＣＭページは、第１のＤＣＭページから１０２４４６４ページをオフセットされて１０２２４７１番目のページである可能性がある等である。
【００３６】
メディアサーバはまた、スナップショット３１０から１つまたは複数の割り当てマップを検索するために問い合わせを実行してもよい。割り当てマップには、オブジェクトまたはインデックスが用いるエクステントに関する情報を含んでもよい。例えば、割り当てマップには、どのエクステントがそのオブジェクトに使用されているかを示すエクステントのビットマスクを含んでもよい。１つまたは複数の割り当てマップには、ＧＡＭ３３０、ＳＧＡＭ３４０、およびＩＡＭ３５０を含んでもよい。これらの割り当てマップによって、メディアサーバは、変更されたエクステントが割り当てられたかどうかを決定することが可能になる。例えば、あるエクステントは、その対応するオブジェクトが削除されたので変更されたかもしれない。したがって、そのエクステントは、たとえそれが変更されたことをＤＣＭ３２０が示しても、バックアップされる必要のあるどんなデータも実際には含まない可能性がある。割り当てマップをチェックすることによって、メディアサーバは、増分バックアップの一部として記憶される必要のあるエクステントの数を低減してもよい。
【００３７】
メディアサーバは、オブジェクトに割り当てられた、変更されたエクステントだけをスナップショット３１０から検索してもよい。次に、メディアサーバは、検索されたエクステントを記憶装置に記憶してもよい。メディアサーバはまた、増分バックアップの一部として、１つまたは複数のマップを含むメタデータを記憶してもよい。代替として、メディアサーバは、フルバックアップの一部として、スナップショット３１０をその全体においてバックアップすることが可能である。しかしながら、スナップショット３１０のフルバックアップの実行は、増分バックアップを実行するよりはるかに大きな量の記憶スペースを取る可能性がある。変更されたエクステントおよび１つまたは複数のマップが、スナップショット３１０から検索されてバックアップ記憶装置に記憶された後で、スナップショット３１０は、廃棄してもよい。メディアサーバによって実行されるように説明したスナップショット３１０に関する上記のステップはまた、データベースサーバ、他のサーバ、または他のタイプのコンピューティング装置によって実行してもよい。
【００３８】
ここで図４を参照すると、メディアサーバ、および記憶されたデータベースバックアップファイルを備えたバックアップ記憶装置の一実施形態が示されている。メディアサーバ４１０は、データベースのバックアップに関連するファイルをバックアップ記憶装置４２０に記憶してもよい。フルバックアップファイル４２５は、バックアップ記憶装置４２０に記憶され、フルバックアップファイル４２５には、前のフルデータベースバックアップ動作からのデータを含んでもよい。一実施形態において、フルバックアップファイル４２５は、マスタデータファイル（ＭＤＦ）であってもよい。メディアサーバ４１０はまた、バックアップされた内容と共にテーブルおよびインデックス情報のスキーマを生成し、フルバックアップファイル４２５に記憶するように構成してもよい。スキーマは、データベースファイルのデータ構造を指してもよく、かつスキーマは、データベースファイル内で、あるデータ構造を定義するメモリ位置を含んでもよい。スキーマは、広範囲なサーチ動作を実行する必要なく、フルバックアップファイル４２５においてオブジェクトを高速かつ効率的に探し当てるために用いてもよい。スキーマは、データベースのフルバックアップが生成されているときにデータベースに問い合わせることによって生成してもよい。スキーマは、ライブデータベースもデータベースサーバも用いずに、フルバックアップファイル４２５の内容をアクセスまたは復元するために用いてもよい。
【００３９】
増分バックアップファイル４３０および４４０もまた、バックアップ記憶装置４２０に記憶される。増分バックアップファイル４３０および４４０はまた、ブロックレベル増分ファイルと呼んでもよい。増分バックアップファイル４３０および４４０には、データベースの増分バックアップ動作の一部としてバックアップされる変更されたエクステントが含まれる。増分バックアップファイル４３０および４４０は、実行可能な任意の数の増分バックアップ動作に関連する任意の数のファイルを代表する。例えば、１０の増分バックアップが、メディアサーバ４１０に接続されたデータベースに対して実行される場合には、１０の増分バックアップファイルをバックアップ記憶装置４２０に記憶してもよい。
【００４０】
一実施形態において、フルバックアップファイル４２５ならびに／または増分バックアップファイル４３０および４４０は、バックアップ記憶装置４２０のファイルシステムへの標準ファイルＩ／Ｏ呼び出しを用いて順次的にアクセスされるバイナリファイルであってもよい。ファイルシステムは、バックアップ記憶装置４２０に生成されたボリュームにおいてファイルおよびディレクトリに階層的に構成されたデータを参照し記憶する情報システムであってもよい。いくつかの実施形態において、フルバックアップファイル４２５ならびに／または増分バックアップファイル４３０および４４０は、ページまたは割り当てユニットとも呼ばれる、メモリのブロックユニットに構造化してもよい。
【００４１】
メタデータ４３５および４４５もまた、バックアップ記憶装置４２０に記憶され、メタデータ４３５は、増分バックアップファイル４３０に対応し、メタデータ４４５は、増分バックアップファイル４４０に対応する。メタデータ４３５には、増分バックアップファイル４３０に関連する増分バックアップ動作の一部としてバックアップ記憶装置４２０に記憶され得る、１つまたは複数のマップなどの追加データが含まれる。この１つまたは複数のマップには、ＤＣＭ、ＧＡＭ、ＳＧＡＭ、ＩＡＭ、および他のマップを含んでもよい。追加情報もまた、増分バックアップファイル４３０に関連するメタデータ４３５に記憶してもよい。メタデータ４３５は、増分バックアップファイル４３０からの１つまたは複数のデータ項目用の復元動作を容易にするために用いてもよい。別の実施形態において、多数の増分バックアップ動作に関連するメタデータを含む１つのメタデータ記憶装置が、バックアップ記憶装置４２０にあってもよい。さらなる実施形態において、メタデータ４３５は、増分バックアップファイル４３０内に記憶してもよい。メタデータ４３５の上記の特徴はまた、メタデータ４４５にも当てはまり得る。
【００４２】
一実施形態において、新しいフルデータベースバックアップ動作が実行された場合に、メディアサーバ４１０は、古いフルデータベースバックアップファイルをバックアップ記憶装置４２０から削除してもよい。メディアサーバ４１０はまた、そのときに、古いメタデータおよび増分バックアップファイルを削除してもよい。別の実施形態において、メディアサーバ４１０は、新しいフルデータベースバックアップ動作が実行された場合に、１つまたは複数の前のフルデータベースバックアップファイル、増分バックアップファイル、および／またはメタデータファイルを保存してもよい。メディアサーバ４１０は、バックアップ記憶装置４２０において記憶スペースを解放するためにより古いファイルを削除することを含む、メタデータファイル、増分バックアップファイル、およびフルデータベースバックアップファイルに関する保存ポリシーを有してもよい。
【００４３】
別の実施形態において、フルバックアップファイル４２５は、フルバックアップファイル４２５に関連する記憶装置使用を低減するために、増分バックアップファイル（または差分バックアップファイル）に変換してもよい。フルバックアップファイル４２５が、スナップショットバックアップに対応する場合に、前のバックアップと比較して変更されたデータを識別する１つまたは複数のマップを、フルバックアップファイル４２５から検索してもよい。代替として、（エクステントとして識別可能な）変更されたデータを識別するマップは、フルバックアップファイル４２５とは別個に記憶してもよく、これらのマップは、この別個のファイルまたは位置から検索してもよい。マップが検索され、かつ変更されたデータが識別された後で、変更されたデータは、フルバックアップファイル４２５から検索し、増分バックアップファイルとしてバックアップ記憶装置４２０に記憶してもよい。代替として、異なるアルゴリズムを用いて、フルバックアップファイル４２５を増分バックアップファイルに変換してもよい。フルバックアップファイル４２５が、増分バックアップファイルに変換された後で、フルバックアップファイル４２５は、バックアップ記憶装置４２０から廃棄してもよい。新しく生成された増分バックアップが対応する、前のバックアップの識別もまた、記憶してもよい。
【００４４】
フルバックアップファイル４２５が変換増分バックアップファイルに圧縮されるために、フルバックアップファイル４２５に先立って生成された前のフルバックアップファイルは、バックアップ記憶装置４２０に記憶される必要があり得る。前のフルバックアップファイルは、どんな潜在的な復元動作も容易にするために、変換増分バックアップファイルによって（さもなければそれに関連して）参照され得る。次に、さらなる復元動作は、前のフルバックアップファイルおよび変換増分バックアップファイルの両方を利用してもよい。
【００４５】
ここで図５を参照すると、前に記憶されたフルバックアップファイルを圧縮するための方法およびシステムの実例が示されている。この例において、記憶されたフルバックアップファイルは、部分的（例えば増分）バックアップファイルに変換される。メディアサーバ５１０は、バックアップ記憶装置５２０に接続され、バックアップ記憶装置５２０は、フルバックアップファイル５３０、５４０、５５０および５６０を記憶する。フルバックアップファイル５３０−５６０は、バックアップ記憶装置５２０に記憶し得る任意の数のフルバックアップファイルを代表する。
【００４６】
フルバックアップファイル５３０−５６０は、フルバックアップ動作間に実行されるどんな増分または差分バックアップ動作もなしに前に（例えば連続的に）実行されたフルバックアップ動作に対応してもよい。フルバックアップファイル５３０−５６０を記憶するために用いられる記憶スペースは、フルバックアップファイル５３０−５６０の１つまたは複数を変換増分バックアップファイルに圧縮することによって低減してもよい。
【００４７】
前に生成されたフルバックアップファイルを部分バックアップファイルに変換する場合に、前に記憶されたフルバックアップファイルは、変換されることになる後のフルバックアップファイル用のアンカーまたは開始点／基準として用いてもよい。図５に示す例において、フルバックアップファイル５３０は、アンカーフルバックアップファイルとして用いてもよい。アンカーファイルに続いて次に記憶されたフルバックアップファイル（すなわち、フルバックアップファイル５４０）は、変更されたデータを識別する１つまたは複数のマップを読み出し、変更されたデータをフルバックアップファイル５４０から検索し、かつ変更されたデータを増分バックアップファイルとして記憶することによって、変換増分バックアップファイル（すなわち、変換増分バックアップファイル５４５）に圧縮してもよい。変換増分バックアップファイル５４５が生成された後で、フルバックアップファイル５４０は、廃棄してもよい。他の実施形態において、異なる方法を用いて、フルバックアップファイルを増分バックアップファイルに変換してもよい。このプロセスは、フルバックアップファイル５５０および５６０を、変換増分バックアップファイル５５５および５６５にそれぞれ圧縮することによって継続してもよい。その後、フルバックアップファイル５５０および５６０は、廃棄してもよい。このプロセスは、記憶されるバックアップファイル用の記憶装置使用の著しい低減に帰着し得る。アンカーフルバックアップファイル（すなわち、フルバックアップファイル５３０）および変換増分バックアップファイル５４５−５６５は、クラウドベースの記憶位置もしくはテープ装置に移動するか、またはバックアップ記憶装置５２０に残してもよい。フルバックアップファイル５３０、および変換増分バックアップファイル５４５−５６５の１つまたは複数を用いて、フルまたはきめ細かい復元を実行してもよい。
【００４８】
ここで図６を見ると、データベースアーカイブシステムの一実施形態が示されている。データベースサーバ６１０は、ネットワーク６８０およびデータベース６３０に接続される。メディアサーバ６７０は、ネットワーク６８０および記憶装置６２０に接続される。別の実施形態において、記憶装置６２０は、データベースサーバ６１０に直接接続してもよく、メディアサーバ６７０は、ネットワーク６８０を通じて記憶装置６２０にアクセスしてもよい。ユーザまたは管理者は、特定の増分バックアップに関連する特定の時点へデータベースを復元することを要求してもよい。代替として、ユーザまたは管理者は、特定の時点から１つまたは複数のデータ項目を復元することを要求してもよい。メディアサーバ６７０は、データベース６３０のバックアップを記憶してもよく、かつメディアサーバ６７０は、１つまたは複数のデータ項目の復元動作の一部として、フルバックアップファイルを１つまたは複数の増分バックアップファイルとマージしてもよい。
【００４９】
未実装データベースファイル６６０には、フルバックアップファイル６４０および増分バックアップファイル６５０が含まれる。本明細書で用いられるように用語「未実装データベースファイル」は、内容管理アプリケーションのライブインスタンス上で現在アクティブにされていない、内容管理アプリケーション用のデータを包含するデータベースを含むように意味されている。フルバックアップファイル６４０は、ユーザによって選択された時点の前に実行されたデータベース６３０の最も最近のフルバックアップに対応してもよい。フルバックアップファイル６４０には、フルバックアップ動作が実行されたときにおけるデータベース６３０からのデータの全てを含んでもよい。増分バックアップファイル６５０は、選択された時点で行われた増分バックアップに対応してもよい。増分バックアップファイル６５０は、フルバックアップファイル６４０に対応するフルバックアップ動作に続いて、かつ選択された時点の前に実行された任意の数の増分バックアップを代表する。
【００５０】
データベースサーバ６１０には、特定のオブジェクトまたはレコードを未実装データベースファイル６６０からデータベース６３０に追加するためのきめ細かい復元機能を含んでもよい。きめ細かい復元機能にはまた、復元のために１つもしくは複数のレコードまたはオブジェクトを選択するための手段を含んでもよい。一実施形態において、レコードまたはオブジェクトを選択および復元するためのユーザインターフェースを、きめ細かい復元動作の一部として提供してもよい。きめ細かい復元によって、管理者またはユーザは、ファイル全体を復元する必要なしに、必要なレコードまたはオブジェクトだけを未実装データベースファイル６６０から選択することが可能になる。いくつかの実施形態において、オブジェクトは、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ（登録商標）、Ｅｘｃｅｌ（登録商標）、ＰｏｗｅｒＰｏｉｎｔ（登録商標）、ポータブルドキュメントフォーマット（ＰＤＦ）などの文書、ビデオ、オーディオファイル、およびその他であってもよい。他の実施形態において、オブジェクトには、サイト、サブサイト、リスト、およびリスト項目を含んでもよい。
【００５１】
一実施形態において、オブジェクトは、未実装データベースファイル６６０からデータベース６３０のワーキングコピーに、またはデータベース６３０の別のコピーに復元してもよい。別の実施形態において、オブジェクトは、データベース６３０のワーキングコピーに復元される前に、データベースサーバ６１０におけるメモリにバッファしてもよい。さらなる実施形態において、オブジェクトは、未実装データベースファイル６６０から、記憶媒体、データベースサーバ６１０、メディアサーバ６７０、他のサーバ、クライアント、または他のコンピューティング装置上のファイルシステムに復元してもよい。さらなる実施形態において、オブジェクトは、内部ポータルアプリケーションまたは他のソフトウェアアプリケーションに復元してもよい。
【００５２】
ユーザは、フルおよび増分バックアップと同様に差分およびログバックアップを実行してもよい。差分およびログバックアップは、フルおよび増分バックアップと混合してもよい。本明細書で説明する方法および機構はまた、増分バックアップを実行し、かつデータベースを増分バックアップに復元するために、一方で差分およびログバックアップを実行し、かつ差分およびログバックアップから復元するために用いてもよい。例えば、ユーザは、フルバックアップ、増分バックアップ、２つの差分バックアップ、および次にログバックアップを実行してもよい。次に、ユーザは、ログバックアップ後にデータベースが存在したような状態にデータベースを復元したいと思う可能性がある。フルバックアップファイルを記憶装置に書き込んでもよく、次に、増分バックアップファイルをフルバックアップファイル上に重ね合わせてもよい（すなわち、論理的にマージする）。次に、第２の差分バックアップファイルを、フル＋増分ファイル上に復元してもよい。最後に、ログバックアップを、復元されたデータベースファイル上で再生してもよい。フル、増分、差分、およびログバックアップの他のシーケンスを、本明細書で説明する方法および機構に従って実行してもよい。
【００５３】
ここで図７を参照すると、フルバックアップファイルおよび増分バックアップファイルから再構成された未実装データベースファイルにおける一実施形態のブロック図が示されている。未実装データベースファイル６６０、フルバックアップファイル６４０、および増分バックアップファイル６５０は、図６の同じファイルに対応する。フルバックアップファイル６４０には、任意の数の記憶されたデータベースオブジェクトを代表するオブジェクト７１１−７１９が含まれる。オブジェクト７１１−７１９は、テーブル、レコード、文書、項目、リスト、および他のデータなどを含む、データベースに記憶された任意のタイプのデータを代表してもよい。増分バックアップファイル６５０には、フルバックアップファイル６４０が生成された時間と、増分バックアップファイル６５０が生成された時間との間に変更された任意の数のオブジェクトを代表し得るオブジェクト７２２および７２９が含まれる。オブジェクト７２２および７２９は、増分バックアップファイル６５０を生成した増分バックアップ動作において収集された、変更されたエクステントに対応する。また、フルバックアップファイル６４０および増分バックアップファイル６５０に表示されたオブジェクトには、オブジェクトを記述するメタデータを含んでもよい。
【００５４】
図７は、復元動作の一実施形態を示す。復元アプリケーションは、フルバックアップファイル６４０から未実装データベースファイル６６０にオブジェクト７１１−７１９を書き込んでもよい。次に、復元アプリケーションは、増分バックアップファイル６５０から未実装データベースファイル６６０にオブジェクト７２２および７２９を書き込んでもよい。復元アプリケーションは、増分バックアップファイル６５０と共に記憶された１つもしくは複数の割り当てマップおよび／または他のメタデータを用いて、オブジェクト７２２および７２９を未実装データベースファイル６６０に書き込むための適切な位置を決定してもよい。オブジェクト７１２および７１９は、オブジェクト７２２および７２９によってそれぞれ上書きされてもよい。オブジェクト７２２および７２９が、増分バックアップファイル６５０から未実装データベースファイル６６０に書き込まれた後で、復元アプリケーションは、未実装データベースファイル６６０が再構成され、かつデータベースのライブコピーに復元される準備ができていることをＳＱＬサーバに通知してもよい。復元アプリケーションは、データベースサーバ、メディアサーバ、または他のコンピューティング装置上で動作してもよい。
【００５５】
別の実施形態において、復元アプリケーションは、フルバックアップファイル６４０を、復元アプリケーション用の開始点として用いてもよい。復元アプリケーションは、増分バックアップファイル６５０（および実行されたさらなる増分バックアップ動作に対応する任意の追加増分バックアップファイル）からフルバックアップファイル６４０にオブジェクトを書き込み、変更されたオブジェクトが元のオブジェクトを上書きしてもよい。さらなる実施形態において、復元アプリケーションは、フルバックアップファイル６４０および増分バックアップファイル６５０を、逆にデータベースのワーキングコピー上に、またはデータベースの別のコピーに書き込んでもよい。さらなる実施形態において、オブジェクトは、データベースのワーキングコピーに復元される前に、メモリにバッファしてもよい。さらなる実施形態において、オブジェクトは、フルバックアップファイル６４０および差分バックアップファイル６５０から、記憶媒体、ＳＱＬサーバ、メディアサーバ、他のサーバ、または他のコンピューティング装置上のファイルシステムに復元してもよい。さらなる実施形態において、オブジェクトは、内部ポータルアプリケーションまたは他のソフトウェアアプリケーションに復元してもよい。
【００５６】
図７における未実装データベースファイル６６０、フルバックアップファイル６４０、および増分バックアップファイル６５０の図解は、これらのファイルの論理的表現である。これらのファイルの実際の構造および組織は、それらが図７において見える様子とは異なってもよい。例えば、追加データは、増分バックアップファイル６５０に添付してもよい。フルバックアップファイル６４０が生成された後で新しいオブジェクトがデータベースに追加された場合に、新しいオブジェクトを記述するメタデータは、増分バックアップファイル６５０の終わりに追加してもよい。また、フルバックアップファイル６４０が生成された後でオブジェクトがデータベースから削除された場合に、削除されたオブジェクトを記述するメタデータは、増分バックアップファイル６５０に添付してもよい。復元アプリケーションは、メタデータを用いて、どのオブジェクトを未実装データベースファイル６６０に追加すべきか、また、そこからどのオブジェクトを削除すべきかを決定してもよい。
【００５７】
復元アプリケーションは、データベースの異なる時点のインスタンスに対応する複数の未実装データベースファイルを生成してもよい。復元アプリケーションは、ユーザが、複数の時点のデータベースインスタンスにアクセスし、そこから選択するためのユーザインターフェースを生成してもよい。ユーザは、特定の時点におけるデータベースのバックアップコピーから１つまたは複数のオブジェクトを復元したいと思ってもよい。代替として、ユーザは、特定の時点のデータベース全体を復元したいと思ってもよい。復元アプリケーションによって提供されるユーザインターフェースは、復元動作を考えた場合にユーザが選択する基となる複数のバックアップを表示してもよい。ある時点のバックアップは、バックアップが実行された日付または時間に従ってリストしてもよい。ある時点のバックアップのリスト化および組織化の他の方法が可能であり考えられる。
【００５８】
ここで図８を参照すると、データベースの増分バックアップを実行するための方法の一実施形態が示されている。説明のために、この実施形態のステップは、順次的に示されている。以下で説明する方法の様々な実施形態において、説明される要素の１つまたは複数は、図示とは異なる順序で同時に実行してもよく、または完全に省略してもよいことに留意されたい。必要に応じて、他の追加要素もまた実行してもよい。
【００５９】
方法８００は、ブロック８１０で開始し、次に、ブロック８２０で、データベースのフルバックアップを実行する要求を伝達してもよい。要求は、ユーザまたは管理者によって作成し、データベースサーバに伝達してもよい。代替として、要求は、事前に決定されたバックアップスケジュールに従って、データベースサーバ、メディアサーバ、または他のコンピューティング装置によって自動的に作成してもよい。データベースサーバは、たとえ実際には増分バックアップファイルだけが実行されても、まるでフルデータベースバックアップが実行されているかのように振る舞ってもよい。次に、ブロック８３０で、データベースのスナップショットを取得してもよい。スナップショットは、データベースサーバによって実行してもよい。データベースのスナップショットが取られた後のあるポイントで、データベースサーバは、まるでフルバックアップ動作が実行されたかのように、ＤＣＭビットマップのライブコピーをリセットしてもよい。ＤＣＭビットマップのライブコピーのリセットは、変更されたデータ／エクステントインジケータの全てをビットマップからクリアし、データベースサーバが、スナップショットが取られた後に発生する変更だけを追跡できるようにする。
【００６０】
ブロック８３０の後で、１つまたは複数のマップをスナップショットから検索してもよい（ブロック８４０）。マップには、ＤＣＭ、ＧＡＭ、ＳＧＡＭ、ＩＡＭ、および／または他のマップを含んでもよい。マップを読み出して、どのエクステントが、前のバックアップに続いて変更されたかを決定してもよい（ブロック８５０）。また、マップを用いて、変更されたエクステントが割り当てられるかどうかを決定してもよい。前のバックアップは、フルバックアップ、スナップショットバックアップ、または増分バックアップであった可能性がある。
【００６１】
ブロック８５０の後で、変更されたエクステントをスナップショットから検索してもよい（ブロック８６０）。１つまたは複数のマップを用いて、スナップショット内の変更されたエクステントを見つけてもよい。一実施形態において、オブジェクトに割り当てられる変更されたエクステントだけを検索してもよい。次に、変更されたエクステントは、増分バックアップファイルとして記憶装置に記憶してもよい（ブロック８７０）。また、１つまたは複数のマップおよび任意の追加メタデータを記憶装置に記憶してもよい。次に、スナップショットは、ブロック８８０において廃棄してもよい。ブロック８８０の後で、方法８００は、ブロック８９０において終了してもよい。
【００６２】
ここで図９を見ると、増分バックアップから復元動作を実行するための方法の一実施形態が示されている。説明のために、この実施形態のステップは、順次的に示されている。以下で説明する方法の様々な実施形態において、説明される要素の１つまたは複数は、図示とは異なる順序で同時に実行してもよく、または完全に省略してもよいことに留意されたい。必要に応じて、他の追加要素もまた実行してもよい。
【００６３】
方法９００は、ブロック９１０で開始し、次に、データベースのバックアップバージョンから復元動作を実行する要求を、ブロック９２０で検出してもよい。復元動作は、ユーザまたは管理者が要求してもよく、かつ復元動作は、前のバックアップ動作に対応するデータベースの特定の時点に基づいて要求してもよい。前のバックアップ動作は、データベースのフル、増分、差分、またはログバックアップであった可能性がある。次に、ブロック９３０で、前のフルデータベースバックアップファイルを検索してもよい。前のフルデータベースバックアップファイルは、ユーザによって要求された特定の時点における、またはその前の、データベースの最も最近のフルバックアップ動作に対応してもよい。次に、前のフルデータベースバックアップファイルは、記憶装置に記憶してもよい（ブロック９４０）。一実施形態において、記憶装置は、フルデータベースバックアップファイルを含むバックアップ記憶装置と別個の記憶装置であってもよい。別の実施形態において、記憶装置は、フルデータベースバックアップファイルを含むバックアップ記憶装置と同じであってもよい。さらなる実施形態において、記憶装置は、データベースのライブインスタンスに関連するデータベースサーバに装着された１つまたは複数の記憶装置であってもよい。
【００６４】
ブロック９４０の後で、増分バックアップ動作に対応する変更されたエクステントをバックアップ記憶装置から検索してもよい（ブロック９５０）。また、増分バックアップ動作に関連する１つまたは複数の記憶されたマップも、バックアップ記憶装置から検索してもよい。１つまたは複数の記憶されたマップには、ＤＣＭ、ＧＡＭ、ＳＧＡＭ、ＩＡＭ、および／または他のマップを含んでもよい。変更されたエクステントに関連する追加メタデータもまた、バックアップ記憶装置から検索してもよい。次に、変更されたエクステントは、前のフルデータベースバックアップファイル内の適切な位置に書き込んでもよい（ブロック９６０）。１つまたは複数のマップを用いて、前のフルデータベースバックアップファイル内の適切な位置を決定してもよい。次に、データベースサーバに、再構成されたデータベースバックアップファイルを通知してもよい（ブロック９７０）。再構成されたデータベースファイルが、復元される準備ができていることを、データベースサーバに通知してもよい。データベースサーバは、再構成されたファイル全体を復元してもよく、またはデータベースサーバは、再構成されたファイルから１つまたは複数のオブジェクトを復元してもよい。ブロック９７０の後で、方法９００は、ブロック９８０で終了してもよい。
【００６５】
上記の実施形態がソフトウェアを含んでもよいことが注目される。かかる実施形態において、説明したシステムおよび／または方法を表すプログラム命令および／またはデータベース（これらの両方とも、「命令」と呼んでもよい）は、コンピュータ可読記憶媒体に記憶してもよい。一般的に言えば、コンピュータ可読記憶媒体には、命令および／またはデータをコンピュータに供給するために、使用中にコンピュータによってアクセス可能な任意の記憶媒体を含んでもよい。例えば、コンピュータ可読記憶媒体には、磁気または光媒体などの記憶媒体、例えばディスク（固定もしくは取り外し可能）、テープ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷまたはブルーレイを含んでもよい。記憶媒体は、さらに、ＲＡＭ（例えば、シンクロナスダイナミックＲＡＭ（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３等）ＳＤＲＡＭ、低消費電力ＤＤＲ（ＬＰＤＤＲ２等）ＳＤＲＡＭ、Ｒａｍｂｕｓ  ＤＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ））、ＲＯＭ、ＵＳＢインターフェースのような周辺インターフェースを介してアクセス可能な不揮発性メモリ（例えばフラッシュメモリ）などの揮発性または不揮発性メモリ媒体を含んでもよい。記憶媒体には、微小電気機械システム（ＭＥＭＳ）と同様に、ネットワークおよび／または無線リンクなどの通信媒体を介してアクセス可能な記憶媒体を含んでもよい。
【００６６】
様々な実施形態において、本明細書で説明する方法および機構の１つまたは複数の部分は、クラウドコンピューティング環境の一部を形成してもよい。かかる実施形態において、資源は、１つまたは複数の様々なモデルによるサービスとしてインターネットを通じて提供してもよい。かかるモデルには、サービスとしてのインフラストラクチャ（ＩａａＳ）、サービスとしてのプラットホーム（ＰａａＳ）、およびサービスとしてのソフトウェア（ＳａａＳ）を含んでもよい。ＩａａＳにおいて、コンピュータインフラストラクチャは、サービスとして提供される。かかる場合において、コンピューティング設備は、一般に、サービスプロバイダによって所有され操作される。ＰａａＳモデルにおいて、ソフトウェアソリューションを開発するために開発者によって用いられるソフトウェアツールおよび基礎設備は、サービスとして提供され、サービスプロバイダによってホストされてもよい。ＳａａＳには、典型的には、オンデマンドサービスとして、サービスプロバイダがソフトウェアをライセンス供与することが含まれる。サービスプロバイダは、ソフトウェアをホストしてもよく、または所与の期間にわたってソフトウェアをカスタマに配布してもよい。上記のモデルの多数の組み合わせが可能であり考えられる。
【００６７】
アプローチのいくつかの実施形態を示し説明したが、説明したようなアプローチに対して多くの改変、修正または変更をなし得ることが、当業者には明らかであろう。したがって、改変、修正および変更は、本明細書で説明する方法および機構の範囲として見なすべきである。上記の実施形態が、インプリメンテーションの単に非限定的な例であることを強調しなければならない。
【符号の説明】
【００６８】
１１０  データベースサーバ
１２０  ネットワーク
１３０  メディアサーバ
１４０  バックアップ記憶装置
１５０  データベース
２１０  データベースサーバ
２２０  データベース
２３０  記憶装置
２４０  スナップショット
３１０  スナップショット
３２０  差分変更マップ
３３０  グローバル割り当てマップ
３４０  共有グローバル割り当てマップ
３５０  インデックス割り当てマップ
３６０  オブジェクト
４１０  メディアサーバ
４２０  バックアップ記憶装置
４２５  フルバックアップファイル
４３０  増分バックアップファイル
４３５  メタデータ
４４０  増分バックアップファイル
４４５  メタデータ
５１０  メディアサーバ
５２０  バックアップ記憶装置
５３０  フルバックアップファイル
５４０  フルバックアップファイル
５４５  変換増分バックアップファイル
５５０  フルバックアップファイル
５５５  変換増分バックアップファイル
５６０  フルバックアップファイル
５６５  変換増分バックアップファイル
６１０  データベースサーバ
６２０  記憶装置
６３０  データベース
６４０  フルバックアップファイル
６５０  増分バックアップファイル
６６０  未実装データベースファイル
６７０  メディアサーバ
６８０  ネットワーク
７１１−７１９  オブジェクト
７２２  オブジェクト
７２９  オブジェクト
【図１】
0006495568.tif 000002
【図２】
0006495568.tif 000003
【図３】
0006495568.tif 000004
【図４】
0006495568.tif 000005
【図５】
0006495568.tif 000006
【図６】
0006495568.tif 000007
【図７】
0006495568.tif 000008
【図８】
0006495568.tif 000009
【図９】
0006495568.tif 000010