(57)【要約】  データベースの差分バックアップからデータベースの個別復元動作を実行するためのシステム及び方法である。ビットマスクを差分バックアップの際に生成し、且つ、差分バックアップファイルと共に保存する。ユーザーが個別復元動作を要求した際に、異なる時点において存在していたデータベースの画面をユーザーに対して提示してもよい。ユーザーが復元することを所望するオブジェクトを画面のうちの１つから選択してもよい。次いで、ビットマスクを読み取ることにより、オブジェクトを差分バックアップファイルから取得するのか又はフルバックアップファイルから取得するのかを判定してもよい。最後に、オブジェクトを適切なファイルからデータベースに復元してもよい。
2013542513.tif 000002
【特許請求の範囲】
【請求項１】
データベースの差分バックアップから個別復元動作を実行する方法であって、
データベースを復元するための要求を検出するステップと、
前記データベースに対応したフルバックアップを識別するステップと、
前記データベースに対応した部分的バックアップを識別するステップと、
前記フルバックアップ及び前記部分的バックアップに基づいて、前記データベースの合成フルバックアップ画面の少なくとも一部分を提示するステップと、
復元対象である前記合成フルバックアップ画面内のオブジェクトのユーザーによる選択を検出するステップと、
前記オブジェクトが前記フルバックアップに対応しているという判定に応答して前記フルバックアップから前記オブジェクトを復元するステップと、
前記オブジェクトが前記部分的バックアップに対応しているという判定に応答して前記部分的バックアップから前記オブジェクトを復元するステップと、
を有する方法。
【請求項２】
前記合成フルバックアップ画面を生成する前記ステップは、
前記フルバックアップと関連するメタデータにアクセスするステップと、
前記部分的バックアップと関連するメタデータにアクセスするステップと、
前記フルバックアップと関連する前記メタデータと前記部分的バックアップと関連する前記メタデータのマージに基づいて前記データベースの合成フルバックアップ画面を提示するステップと、
を有する請求項１に記載の方法。
【請求項３】
前記復元動作を実行するための前記要求を検出するステップの前に、
前記データベースのフルバックアップを実行し、且つ、前記フルバックアップから取得したデータを保存するステップと、
前記データベースの部分的バックアップを実行するステップと、
を有し、
部分的バックアップを実行する前記ステップは、
前記データベースの部分的バックアップを実行するための要求を検出するステップと、
前記部分的バックアップから取得したデータを保存するステップと、
前記データベース内のいずれのオブジェクトが、前記フルバックアップに続いて変更され、且つ、前記部分的バックアップの一部として保存されたのかを規定するインジケータを含むビットマスクファイルを作成するステップと、
前記ビットマスクファイルを保存するステップと、
を有する請求項１に記載の方法。
【請求項４】
部分的バックアップを実行する前記ステップは、
前記データベースのバックアップを実行するための要求を検出するステップと、
バックアップ手順を開始するステップと、
カスタマイズされた問合せを前記データベースに対して実行し、最後のフルバックアップ以降の前記データベース内の変更されたオブジェクトを識別するステップと、
前記変更されたオブジェクトを識別する変更マップを保存するステップと、
前記バックアップ手順において複数のデータオブジェクトを取得するステップと、
前記複数のデータオブジェクトのうちのオブジェクトを前記変更マップ内において識別されているオブジェクトと比較するステップと、
特定のオブジェクトが変化していると前記変更マップが通知しているという判定に応答して、前記複数のデータオブジェクトのうちの前記特定のオブジェクトを前記部分的バックアップの一部として保存するステップと、
を有する請求項１に記載の方法。
【請求項５】
前記オブジェクトが前記フルバックアップに対応しているのか又は前記部分的バックアップに対応しているのかを判定する前記ステップは、前記オブジェクトと関連するヘッダ内に含まれている識別子を前記ビットマスクファイル内に保存されている識別子と比較するステップを有する請求項３に記載の方法。
【請求項６】
前記ビットマスクファイルは、ＳＱＬサーバー内のデータに基づいて生成される請求項３に記載の方法。
【請求項７】
前記データベースは、Ｍｉｃｒｏｓｏｆｔ  ＳｈａｒｅＰｏｉｎｔコンテンツデータベースを有する請求項１に記載の方法。
【請求項８】
差分バックアップから個別復元動作を実行するためのプログラム命令を有するコンピュータ可読ストレージ媒体であって、実行された際に、前記プログラム命令は、方法１乃至７のいずれかを実行するように動作可能である、媒体。
【請求項９】
差分バックアップから個別復元動作を実行するための演算システムであって、
プロセッサと、
メモリと、
サーバーと、
を有し、
前記サーバーは、
データベースを復元するための要求を検出し、
前記データベースに対応したフルバックアップを識別し、
前記データベースに対応した部分的バックアップを識別し、
前記フルバックアップ及び前記部分的バックアップに基づいて前記データベースの合成フルバックアップ画面の少なくとも一部分を提示し、
復元対象の前記合成フルバックアップ画面内のオブジェクトのユーザーによる選択を検出し、
前記オブジェクトが前記フルバックアップに対応しているという判定に応答して前記フルバックアップから前記オブジェクトを復元し、且つ、
前記オブジェクトが前記部分的バックアップに対応しているという判定に応答して前記部分的バックアップから前記オブジェクトを復元する、
ように構成されている、システム。
【請求項１０】
前記サーバーは、
前記フルバックアップと関連するメタデータにアクセスし、
前記部分的バックアップと関連するメタデータにアクセスし、且つ、
前記フルバックアップと関連する前記メタデータと前記部分的バックアップと関連する前記メタデータのマージに基づいて前記データベースの合成フルバックアップ画面を提示する、
ように更に構成されている請求項９に記載のコンピュータシステム。
【請求項１１】
個別復元動作を実行するための要求を検出する前に、前記サーバーは、
前記データベースのフルバックアップを実行し、且つ、前記フルバックアップから取得したデータを保存し、且つ、
前記データベースの部分的バックアップを実行する、
ように更に構成されており、
部分的バックアップを実行することは、
前記データベースの部分的バックアップを実行するための要求を検出することと、
前記部分的バックアップから取得したデータを保存することと、
前記データベース内のいずれのオブジェクトが、前記フルバックアップの後に、変更され、且つ、前記部分的バックアップの一部として保存されたのかを規定するインジケータを含むビットマスクファイルを作成することと、
前記ビットマスクファイルを保存することと、
を有する請求項９に記載のコンピュータシステム。
【請求項１２】
差分バックアップを実行するために、前記サーバーは、
前記データベースのバックアップを実行するための要求を識別し、
バックアップ手順を開始し、
カスタマイズされた問合せを前記データベースに対して実行することにより、前記データベース内の変更されたオブジェクトを識別し、
前記変更されたオブジェクトを識別する変更マップを保存し、
前記バックアップ手順において複数のデータオブジェクトを取得し、
前記複数のデータオブジェクトのうちのオブジェクトを前記変更マップ内において識別されているオブジェクトと比較し、
変化していると識別された前記複数のデータオブジェクトのうちのオブジェクトを保存し、且つ、
変化していると識別されてはいない前記複数のデータオブジェクトのうちのオブジェクトを廃棄する、
ように更に構成されている請求項９に記載のコンピュータシステム。
【請求項１３】
前記オブジェクトが前記フルバックアップに対応しているのか又は前記部分的バックアップに対応しているのかを判定するために、前記サーバーは、前記オブジェクトと関連するヘッダ内に含まれている識別子を前記ビットマスクファイル内に保存されている識別子と比較するように構成されている請求項１１に記載のコンピュータシステム。
【請求項１４】
前記データベースは、Ｍｉｃｒｏｓｏｆｔ  ＳｈａｒｅＰｏｉｎｔコンテンツデータベースを有する請求項９に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、データベースのバックアップに関し、且つ、更に詳しくは、差分バックアップからのデータベースの個別復元の実行に関する。
【背景技術】
【０００２】
データベースのバックアップ及びリカバリは、企業のデータベースの成長とそのオンライン可用性に対する需要の増大に伴って、バックアップ及びリカバリ動作に利用可能な時間が制限されることにより、益々困難になっている難しいプロセスである。Ｍｉｃｒｏｓｏｆｔ（登録商標）  ＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）データベースなどのデータベースは、しばしば、データベースのためのすべてのテーブル、レコード、及びインデックス付け情報を収容する単一のモノリシックなデータベースファイルとしてバックアップされている。しかしながら、データベース全体のバックアップは、大量のストレージメモリ、処理サイクル、及びネットワーク帯域幅を消費することになろう。
【０００３】
データベースの全体をバックアップする代わりに、差分バックアップを実行することにより、データベースのダウンタイムと、ネットワーク上において送信されると共にバックアップストレージ媒体内に保存されるデータ量と、を低減してもよい。差分バックアップを実行する前に、少なくとも一度だけ、データベースのフルバックアップを実行する。フルバックアップの後の後続のバックアップは、差分バックアップであってよい。差分バックアップは、最後のフルバックアップ以降にデータベースに対して実行された変更のみを含むものであってよい。データベースは、しばしば、規則的なスケジュールによってバックアップされ、且つ、連続的なバックアップの間において変化するのは、通常、データベース内の少量のデータのみであるため、これは、データベースをバックアップするための効率的な方法である。
【０００４】
データベースのバックアップが保存されたら、ユーザーは、必要に応じて、データベース又はデータベースの１つ又は複数の項目の復元を所望することになろう。ユーザーがデータベース全体の復元を必要としている場合には、データベースをホスティングしているサーバーにデータベースの全体を復元してもよい。但し、ユーザーが、データベースへのいくつかのオブジェクトの復元のみを所望している際にも、個別復元を実現する適切なメカニズムが存在していなければ、データベース全体を復元することが必要となろう。
【０００５】
差分バックアップを実行した後には、バックアップストレージ媒体内に保存されているデータは、差分バックアップと最後のフルバックアップに分割されることになり、従って、個別復元を実行する際にこれらの２つのバックアップのうちのいずれからデータを引き出すべきであるのかに関する判定は、低速且つ非効率的なプロセスになる可能性がある。現在使用されている１つの技法は、フルバックアップの全体を復元した後に差分バックアップから変更を再現するステップを必要としている。データベースのうちのいくつかの項目の復元しか必要としていない際には、これは、非効率的且つ低速の技法である。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以上の状況に鑑み、差分バックアップからデータベース項目の個別復元を実行するための改善された方法及びメカニズムが望ましい。
【課題を解決するための手段】
【０００７】
データベースの差分バックアップからデータベースの個別復元動作を実行するための方法及びメカニズムの様々な実施形態が想定される。一実施形態においては、データベースの差分バックアップを実行する際に、ビットマスクを生成すると共に差分バックアップファイルと共に保存してもよい。ユーザーが個別復元動作を要求した際には、差分バックアップファイルをフルバックアップファイルと論理的にマージすることにより、特定の時点において存在していたデータベースをユーザーに対して提示してもよい。次いで、ユーザーは、データベースに復元するためのオブジェクトをユーザーインターフェイスから選択してもよい。ビットマスクをメモリ内に読み込むと共に読み取ることにより、選択された項目が存在している場所、即ち、差分バックアップファイル内であるのか、或いは、フルバックアップファイル内であるのか、を判定してもよい。次いで、項目を正しい場所から取得すると共にデータベースに復元してもよい。
【０００８】
これらの及びその他の特徴及び利点については、本明細書に提示されている方法に関する以下の詳細な説明に鑑み、当業者に明らかとなろう。
【０００９】
方法及びメカニズムの上述の及び更なる利点については、添付図面との関連において以下の説明を参照することにより、更に十分に理解することができよう。
【図面の簡単な説明】
【００１０】
【図１】１つ又は複数の実施形態によるネットワークアーキテクチャを示す図である。
【図２】データベースアーカイブシステムの一実施形態を示す。
【図３】フルバックアップファイル、ビットマスク、及び差分バックアップファイルの一実施形態を示す。
【図４】データベースアーカイブのリストから選択するためのユーザーインターフェイスの一実施形態を示す。
【図５】復元対象の特定のレコード又はオブジェクトを選択するためのユーザーインターフェイスの一実施形態を示す。
【図６】複数のオブジェクトをデータベースに復元するための方法の一実施形態を示す一般化されたフローチャートである。
【図７】差分バックアップを実行するための方法の一実施形態を示す一般化されたフローチャートである。
【発明を実施するための形態】
【００１１】
以下の説明においては、本明細書において提示されている方法及びメカニズムについて十分に理解することができるように、多数の特定の詳細事項について記述している。しかしながら、当業者は、これらの特定の詳細事項を伴うことなしに、様々な実施形態を実施してもよいことを認識するであろう。いくつかの状況においては、周知の構造、コンポーネント、信号、コンピュータプログラム命令、及び技法については、本明細書に記述されている方法を曖昧にすることを避けるべく、詳細に示してはいない。図示の簡便性及び明瞭性を目的として、図面に示されている要素は、必ずしも、正確な縮尺で描かれてはいないことを理解されたい。例えば、要素のうちのいくつかの要素の寸法は、その他の要素との関係において誇張されている場合がある。
【００１２】
図１を参照すれば、ネットワークアーキテクチャ１００の一実施形態が示されている。メディアサーバー１５０は、ネットワーク１１０を通じて、クライアントコンピュータシステム１２０、クライアントコンピュータシステム１３５、及びデータベースサーバー１２５に接続されている。メディアサーバー１５０は、少なくとも１つのプロセッサ又は中央処理装置と、その他のシステムハードウェアと、ソフトウェアアプリケーションを保存するためのストレージ媒体と、を含んでもよい。又、メディアサーバー１５０は、オペレーティングシステムを含んでもよく、且つ、オペレーティングシステムは、ＭＳ−ＤＯＳ（登録商標）、ＭＳ−ＷＩＮＤＯＷＳ（登録商標）、ＯＳ／２（登録商標）、ＵＮＩＸ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ｓｏｌａｒｉｓ（登録商標）、又はその他の既知のオペレーティングシステムを含む様々なタイプのうちのいずれかであってよい。オペレーティングシステムは、システムハードウェアとソフトウェアアプリケーションの間のインターフェイスとして機能してもよい。
【００１３】
メディアサーバー１５０は、１つ又は複数のソフトウェアアプリケーションをホスティングすることにより、データベース１３０及び１４０のバックアップを実行すると共にその動作を復元してもよい。メディアサーバー１５０は、データベース１３０及び１４０のバックアップをバックアップストレージ装置１５５内に保存してもよい。データベース１３０及び１４０のバックアップは、フルバックアップ及び／又は差分バックアップであってよい。データベースの差分バックアップは、最後のフルバックアップ以降においてデータベースに対して実施された変更のすべてを収容してもよい。又、増分バックアップ、トランザクションログ、及びその他のものを含むその他のタイプのデータベース１３０及び１４０のバックアップをバックアップストレージ装置１５５内に保存してもよい。又、メディアサーバー１５０は、個別復元動作（ｇｒａｎｕｌａｒ  ｒｅｓｔｏｒｅ  ｏｐｅｒａｔｉｏｎ）を実行し、データオブジェクトをバックアップストレージ装置１５５からデータベース１３０及び１４０に復元してもよい。
【００１４】
バックアップストレージ装置１５５は、１つ又は複数のハードディスク、テープドライブ、サーバーブレード、又は専用の装置から構成されるいくつかの様々なストレージを含むか又はこれらに対して更に結合されてもよく、且つ、ＲＡＭ、フラッシュＲＡＭ、ＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍ）ストレージ、電池バックアップ型のＲＡＭ、及び／又は不揮発性ＲＡＭ（ＮＶＲＡＭ））などの様々なメモリ装置を含んでもよい。この代わりに、別の実施形態においては、メディアサーバー１５０は、別のストレージ媒体、別のコンピュータシステム、又はネットワーク１１０を介して接続された別のサーバー（図示されてはいない）などの別の装置上にバックアップを保存してもよい。
【００１５】
ネットワーク１１０は、ＥｔｈｅｒｎｅｔネットワークなどのＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＦＤＤＩ（Ｆｉｂｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）ネットワーク、トークンリングネットワーク、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）  ８０２．１１規格（Ｗｉ−Ｆｉ）に基づいたＷＬＡＮ（ｗｉｒｅｌｅｓｓ  ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、インターネットなどのＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、セルラーデータネットワーク、及びその他のデータ通信ネットワークの組合せを含む様々なネットワーク接続を有してもよい。
【００１６】
ネットワークアーキテクチャ１００の様々な実施形態においては、クライアントコンピュータシステム１２０及び１３５は、サーバー、デスクトップＰＣ、ラップトップ、ハンドヘルドコンピュータ、スマートフォンなどの任意の数の固定又は移動可能なコンピュータを表している。クライアント１２０及び１３５は、少なくとも単一のプロセッサ又は中央処理装置と、その他のシステムハードウェアと、ソフトウェアアプリケーションを保存するためのストレージ媒体と、を含んでもよい。いくつかの実施形態においては、クライアント１２０及び１３５は、上記にて列挙した様々なタイプのオペレーティングシステムを含んでもよい。オペレーティングシステムは、システムハードウェアとソフトウェアアプリケーションの間のインターフェイスとして機能してもよい。
【００１７】
クライアント１２０及び／又はクライアント１３５は、イントラネットポータルアプリケーションをホスティングしてもよい。イントラネットポータルアプリケーションは、複数のシステムユーザー用のウェブサイトを構成する複数のウェブページ及び電子文書を管理及び維持するように動作可能であってもよい。ウェブサイトデータは、データベース１３０及び／又はデータベース１４０内に保存してもよい。一実施形態においては、イントラネットポータルアプリケーションは、Ｍｉｃｒｏｓｏｆｔ（登録商標）  ＳｈａｒｅＰｏｉｎｔ（登録商標）  Ｓｅｒｖｅｒ又は類似のエンタープライズ情報ポータルプログラムであってもよい。別の実施形態においては、イントラネットポータルアプリケーションは、その他のウェブサイト開発ソフトウェアを有してもよい。バックアップストレージ装置１５５上にウェブサイトのコピーを保存するイントラネットポータルアプリケーションのためのデータベースのバックアップを実行してもよい。ウェブサイト情報は、テーブル、レコード、項目のリスト、対応するグローバルに一意の識別子、及びサイト内のウェブページの画面をユーザーに対して提示するために使用されるその他のデータを含んでもよい。
【００１８】
又、イントラネットポータルアプリケーションは、リスト、項目、及びレコードを保存するためのカプセル化されたバージョンのデータベースを含んでもよい。一実施形態においては、イントラネットポータルアプリケーションは、データベースの「ユーザー」になるように構成してもよい。別の実施形態においては、Ｍｉｃｒｏｓｏｆｔ（登録商標）  ＳＱＬサーバー、ＭｉｃｒｏＳｏｆｔ  Ｓｈａｒｅｐｏｉｎｔサーバー、又はその他のデータベースサーバーシステムによってデータベースを実施している。１つ又は複数のその他のクライアントコンピュータをネットワークを介してクライアント１２０又はクライアント１３５に結合することにより、これらのクライアントシステムが中心に１つ又は複数のウェブページを介してイントラネットポータルアプリケーションにアクセスできるようにしてもよく、これには、データベースに対するアクセスも含まれることに更に留意されたい。
【００１９】
データベース１３０及び１４０は、ネットワーク１１０に接続された任意の数及びタイプのデータベースを表してもよい。データベースサーバー１２５は、データベース１３０に結合されており、且つ、データベース１３０には、データベースサーバー１２５を介してアクセスしてもよい。クライアントコンピュータシステム１３５は、データベース１４０に結合されており、且つ、データベース１４０には、クライアント１３５を通じてアクセスしてもよい。データベース１３０及び１４０は、データベースプログラム及び／又はその内部に実装された１つ又は複数の実際のデータベースの両方を表してもよい。データベースプログラムとは、実行可能なコマンド、ユーザーインターフェイス、及びデータベースを動作させるためのその他のプログラムコードを意味している。含まれているデータベースは、複数のデータレコードに対して働き掛けるように構成された様々なテーブル、インデックス、関係、問合せ、保存された手順、ファイルシステム、セキュリティ層、ネットワークインターフェイスなどを更に有してもよい。
【００２０】
データベース１３０及び１４０がリレーショナルデータベースである一実施形態においては、レコードをテーブル（行及び列構成）として構成してもよい。本明細書において使用されている「レコード」という用語は、データベース内のエンティティを意味している。関連するレコードの集合体を集合的にデータベース内の「テーブル」として記述してもよい。レコードは、１つ又は複数のフィールドから構成してもよく、これらのフィールドは、その他のテーブル内のその他のレコードに対するインデックス（又は、キー）として機能してもよい。例えば、文書管理データベース内においては、文書テーブル内のそれぞれのレコードは、データベース内に保存されている文書を表してもよい。一実施形態においては、文書をレコード自体のフィールド内に保存してもよい。いくつかの実施形態においては、メモリの場所などの文書に対する参照情報により、レコード内の文書を表してもよい。更には、データベースは、任意の所与の実装形態のリレーショナルデータベースを保存するか又はこれにアクセスするためのマウントされたデータベースファイルを生成及び変更してもよい。いくつかの実施形態においては、データベース１３０及び１４０は、通信ネットワークを介したその他のサーバー及びクライアントコンピュータによるアクセスのために構成されたデータベースサーバー１２５又はクライアント１３５などの専用の演算システム上において稼働してもよい。
【００２１】
データベース１３０及び１４０は、追加及び問合せ手順などのリレーショナルデータベースと関連する様々な種類の機能を含んでもよい。問合せ機能は、変更マップ、割当マップ、オブジェクト、テーブル、レコード、及びその他のデータなどの情報をデータベースから取得してもよい。追加機能は、情報をデータベース内に保存してもよい。データベース１３０及び１４０は、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒデータベースであってもよく、且つ、データベース１３０及び１４０に対するアクセスを提供するために使用されるインターフェイスは、ＳＱＬを使用してもよい。データは、ページレベルにおいて、保存してもよく、且つ、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒから取得してもよい。それぞれのページは、８キロバイト（ＫＢ）のサイズを有してもよく、且つ、ヘッダ及びデータから構成してもよい。ページヘッダは、ページ内のデータが属するオブジェクトＩＤを含んでもよい。サーバー入出力（Ｉ／Ｏ）動作は、ＳＱＬ  Ｓｅｒｖｅｒがページの全体を読み取るか又は書き込むように、ページレベルにおいて実行してもよい。
【００２２】
一実施形態においては、変更マップは、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒデータベース内に保存されたＤＣＭ（ｄｉｆｆｅｒｅｎｔｉａｌ  ｃｈａｎｇｅｄ  ｍａｐ）であってもよい。ＤＣＭは、最後のフルデータベースバックアップ以降の変化したエクステントを追跡してもよい。エクステントは、８つの物理的に連続したページの集合体であってもよく、且つ、効率的にページを管理するために使用されてもよい。ＤＣＭは、それぞれのビットが単一のエクステントを表すビットマップであってもよい。ビットマップは、エクステント用のビットが１である場合には、エクステントが最後のフルバックアップ以降に変更されているように、且つ、エクステント用のビットが０である場合には、エクステントが変更されていないように、編成してもよい。いくつかの実施形態においては、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  ｓｅｒｖｅｒは、ＤＣＭページを読み取ることにより、いずれのエクステントが変更されているのかを判定してもよい。次いで、このサーバーは、変更されているそれらのエクステントを差分バックアップの一部としてメディアサーバー１５０に送信してもよい。
【００２３】
メディアサーバー１５０は、マウントされたデータベース１３０及び／又はマウントされたデータベース１４０からＤＣＭを構成するページを取得するための問合せを実行してもよい。本明細書において使用されている「マウントされたデータベース」とは、読み込まれると共にサーバー又はクライアントコンピュータの認可されたユーザーがアクセス可能であるデータベースを意味している。第１ＤＣＭページは、マウントされたデータベースの第７ページに配置してもよい。第２ＤＣＭページは、第１ＤＣＭページから５１２２３２ページだけオフセットされた状態において、第５１２２３９番目のページに配置してもよい。第３ページＤＣＭページは、第１０２２４７１番目ページにおいて、第１ＤＣＭページから１０２４４６４ページだけ、オフセットさせてもよく、以下同様である。一実施形態においては、メディアサーバー１５０は、取得したＤＣＭページをビットマスクファイルとして保存してもよい。
【００２４】
又、メディアサーバー１５０は、マウントされたデータベース１３０及び／又はマウントされたデータベース１４０から１つ又は複数の割当マップを取得するための問合せを実行してもよい。割当マップは、オブジェクト又はインデックスが使用するエクステントに関する情報を含んでもよい。例えば、割当マップは、いずれのエクステントがそのオブジェクトについて使用中であるかを示すエクステントのビットマスクを含んでもよい。一実施形態においては、割当マップのうちの１つは、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  ｓｅｒｖｅｒデータベースからのインデックス割当マップであってもよい。
【００２５】
その他の実施形態においては、クライアント、データベース、及びメディアサーバー、並びに、ストレージ装置の数及びタイプは、図１に示されているものに限定されるものではない。ネットワークアーキテクチャ１００においては、モデムバンク、直接ＬＡＮ接続、無線接続、ＷＡＮリンクなどの様々な組合せを介して、ほとんど任意の数及び組合せのサーバー、ストレージ装置、並びに、固定及び移動可能クライアントを相互接続してもよい。又、１つ又は複数のクライアントは、様々な時点において、オフライン状態において稼働してもよい。更には、動作の際には、ネットワークアーキテクチャ１００に接続する、これから接続切断する、且つ、これに再接続する場所から場所にモバイルユーザーが移動するのに伴って、個々のクライアントの接続タイプが変化してもよい。
【００２６】
図２を参照すれば、データをデータベースにバックアップ及び復元するためのシステムの一実施形態のブロックダイアグラムが示されている。左側には、データベース２１０が示されている。一実施形態においては、データベース２１０は、オブジェクト指向のデータベースであってもよい。別の実施形態においては、データベース２１０は、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒデータベースなどの保護されたＲＤＢＭＳ（ｒｅｌａｔｉｏｎａｌ  ｄａｔａｂａｓｅ  ｍａｎａｇｅｍｅｎｔ  ｓｙｓｔｅｍ）であってもよい。ＲＤＢＭＳは、リレーショナルデータベースプログラムとその内部に実装された１つ又は複数の実際のデータベースの両方であってもよい。リレーショナルデータベースプログラムとは、実行可能なコマンド、ユーザーインターフェイス、及びデータベース２１０を動作させるためのその他のプログラムコードを意味している。データベース２１０内に含まれている複数のデータベースは、「データベース」を構成するレコード又はエンティティとも呼ばれる複数のデータレコードに対して機能するように構成された様々なテーブル、インデックス、関係、問合せ、保存された手順、ファイルシステム、セキュリティ層、ネットワークインターフェイスなどを更に含んでもよい。レコードは、行及び列から構成されたテーブルとして構成してもよい。更には、データベース２１０は、任意の所与の実装形態のリレーショナルデータベースを保存すると共にこれに対してアクセスするためのマウントされたデータベースファイルを生成及び変更してもよい。
【００２７】
メディアサーバー２２０は、インターフェイス２３０を介してデータベース２１０にアクセスしてもよい。インターフェイス２３０は、ローカル又はリモートネットワークインターフェイスを含んでもよく、且つ、データベース２１０と通信するためのネットワーク及び／又はソフトウェアドライバ層を含んでもよい。一実施形態においては、インターフェイス２３０は、ＳＱＬを使用することにより、データベース２１０に対するアクセスを提供してもよい。
【００２８】
メディアサーバー２２０は、データベース２１０のコンテンツのバックアップを実行するように構成してもよい。メディアサーバー２２０は、データベース２１０のバックアップをＭＤＦ（ｍａｓｔｅｒ  ｄａｔａ  ｆｉｌｅ）として保存してもよい。又、メディアサーバー２２０は、マウントされていないフルデータベースバックアップファイル２８０内のバックアップされたコンテンツと共に、テーブル及びインデックス情報のスキーマを生成及び保存するように構成してもよい。一実施形態においては、スキーマとは、データベースファイルのデータ構造を意味してもよい。スキーマは、データベースファイル内の特定のデータ構造を規定するメモリの場所を含んでもよい。スキーマを使用することにより、大掛かりなサーチ動作の実行を要することなしに、データベースファイル内のオブジェクトを迅速且つ効率的に見出してもよい。スキーマは、データベースのバックアップが生成されている際に、データベース２１０に対して問い合わせることにより、生成してもよい。マウントされていないフルデータベースバックアップファイル２８０は、データベース２１０によって予め生成されたマウントされたデータベースファイルの同一のインスタンスであってもよい。スキーマを使用することにより、データベース２１０を使用することなしに、フルデータベースバックアップファイル２８０のコンテンツにアクセスするか又はこれを復元してもよい。
【００２９】
メディアサーバー２２０は、オブジェクト及びレコードのコピーをデータベース２１０からバックアップストレージ２５０に保管するように動作可能であってもよい。バックアップストレージ２５０は、様々なタイプのストレージ媒体のうちのいずれかであってよい。或いは、この代わりに、選択されたオブジェクト及びレコードは、ネットワークインターフェイスを通じて、データベース２１０からリモートアーカイブストレージに転送してもよい。又、様々な実施形態においては、メディアサーバー２２０は、オブジェクト、レコード、又はデータベース２１０に対する以前のアーカイブ動作から取得されたその他のデータを復元してもよい。又、メディアサーバー２２０は、必要に応じて、Ｓｙｍａｎｔｅｃ（登録商標）社のＢａｃｋｕｐ  Ｅｘｅｃ（商標）製品が提供する様々な機能などのその他の既知の保管機能を提供するように構成してもよい。一実施形態においては、メディアサーバー２２０は、バックアップシステムエージェントソフトウェアを含んでもよい。バックアップシステムエージェントは、既定のイベントの検出を待つと共にそれが検出された際に１つ又は複数の動作を実行するソフトウェアルーチンであってもよい。バックアップシステムエージェントは、１つ又は複数のバックアップ及び復元機能を実行するように構成されたソフトウェアであってもよい。
【００３０】
メディアサーバー２２０は、アーカイブ用のコンテンツを選択及び取得するためのインターフェイス２４０を介して、バックアップストレージ２５０にアクセスしてもよい。インターフェイス２４０は、バックアップストレージ２５０上に存在するファイルシステムに対するメディアサーバー２２０によるファイルアクセスを表してもよい。一実施形態においては、インターフェイス２４０は、リモートストレージ媒体に対するネットワーク接続を含んでもよい。別の実施形態においては、インターフェイス２４０は、ＳＡＮ（ｓｔｏｒａｇｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）に対するストレージアクセスを表してもよく、ＳＡＮは、分散した共有ストレージ環境であってもよい。
【００３１】
メディアサーバー２２０は、差分バックアップ動作の際にデータベース２１０に対して実施された変更を識別するデータを受信してもよく、且つ、変更を差分バックアップファイル２７０内に保存してもよい。又、メディアサーバー２２０は、データベース２１０のいずれのオブジェクト又はレコードが、変化しており、且つ、復元動作の際に差分バックアップファイル２７０から取得されるべきであるかを通知するためのビットマスク２６０を作成してもよい。これらのオブジェクトは、様々なサイズのバイナリオブジェクト、テーブル、レコード、レコードのフィールド内に保存されたデータ、文書、項目、リスト、及びその他のデータを含んでもよい。
【００３２】
一実施形態においては、メディアサーバー２２０は、データベース２１０に問い合わせてデータベース２１０内の第１の変更されたページを取得することにより、差分バックアップを実行してもよい。次いで、メディアサーバー２２０は、データベース２１０に問い合せることにより、データベース２１０内の第１の変更されたページのページ番号と第２の変更されたページのページ番号の間の差を含むオフセット値を取得してもよい。メディアサーバーは、データベース２１０に問い合わせることにより、複数のオフセット値を取得してもよく、それぞれのオフセット値は、データベース２１０の変更されたページのページ番号の間の差を含む。複数のオフセットを取得した後に、メディアサーバー２２０は、オフセット値を使用することにより、データベース２１０の最後のフルバックアップ以降に変更された複数のページを取得してもよい。
【００３３】
更には、メディアサーバー２２０は、特定のオブジェクト又はレコードをフルデータベースバックアップファイル２８０又は差分バックアップファイル２７０からデータベース２１０に追加するための個別復元機能を含んでもよい。又、個別復元機能は、復元のために１つ又は複数のレコード又はオブジェクトを選択するための手段を含んでもよい。一実施形態において、レコード又はオブジェクトを選択及び復元するためのユーザーインターフェイスを個別復元動作の一部として提供してもよい。個別リカバリにより、管理者又はユーザーは、データベース全体のリカバリを要することなしに、バックアップコピーから必要とされるレコード又はオブジェクトのみを選択することができよう。いくつかの実施形態においては、オブジェクトは、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ（登録商標）、Ｅｘｃｅｌ（登録商標）、ＰｏｗｅｒＰｏｉｎｔ（登録商標）、ＰＤＦ、ビデオＷＡＶファイル、及びその他のものなどの文書であってもよい。その他の実施形態においては、オブジェクトは、サイト、サブサイト、リスト、及びリスト項目を含んでもよい。
【００３４】
又、メディアサーバー２２０は、フルバックアップファイル２８０から及び差分バックアップファイル２７０からデータを読み取ってもよい。一実施形態においては、メディアサーバー２２０は、フルバックアップファイル２８０から又は差分バックアップファイル２７０からオブジェクト又はレコードを取得してもよい。別の実施形態においては、メディアサーバー２２０は、ビットマスク２６０を参照することにより、最新のオブジェクト又はレコードが存在している場所―差分バックアップファイル２７０内であるのか又はフルデータベースバックアップファイル２８０内であるのか―を判定してもよい。様々な実施形態においては、メディアサーバー２２０は、データベース２１０、フルデータベースバックアップファイル２８０、差分バックアップファイル２７０、及びビットマスク２６０の間におけるデータのバックアップ及び復元に関連する様々な機能を実行するのに伴って、データをストレージ媒体内に一時的に保存してもよい。又、メディアサーバー２２０は、図２には示されていない更なるインターフェイスを使用することにより、ストレージ媒体にアクセスしてもよい。
【００３５】
一実施形態においては、フルデータベースバックアップファイル２８０及び／又は差分バックアップファイル２７０は、バックアップストレージ２５０のファイルシステムに対する標準的なファイルＩ／Ｏ呼出しを使用することによってシーケンシャルにアクセスされるバイナリファイルである。このファイルシステムは、バックアップストレージ２５０上において生成されたボリューム内のファイル又はディレクトリ内に階層的に編成されたデータを参照及び保存する情報システムであってもよい。
【００３６】
いくつかの実施形態においては、フルバックアップデータベースファイル２８０及び／又は差分バックアップファイル２７０は、ページ又は割当単位とも呼ばれるメモリのブロックを単位として構築してもよい。データベース２１０のタイプに応じて、ページサイズは、ある程度の数のバイトであってもよい。いくつかの実施形態においては、データベース２１０は、８ＫＢのページサイズを有するＭｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒであってもよい。従って、データベースファイル２８０及び／又は差分バックアップファイル２７０内のメモリアドレスに対する内部参照情報は、ページを単位として付与してもよい。
【００３７】
時点２６１は、差分バックアップが実行された特定の時点におけるデータベース２１０の状態を表している。メディアサーバー２２０は、差分バックアップが時点２６１に対応した特定の時点において実行された際のビットマスク２６０及び差分バックアップファイル２７０を生成及び保存してもよい。一実施形態においては、ビットマスク２６０及び差分バックアップファイル２７０は、バックアップストレージ２５０内の同一のフォルダ内に保存してもよい。時点２６２及び時点２６３は、差分バックアップが実行された際のその他の特定の時点に対応してもよい。時点２６２及び２６３について、保存された差分バックアップファイル及びビットマスクが存在してもよい。任意の数の時点に対応した任意の数のビットマスク及び差分バックアップファイルをバックアップストレージ２５０内に保存してもよい。又、フルデータベースバックアップファイル２８０は、データベース２１０の最後のフルバックアップが実行された際に対応する異なる時点（図示されてはいない）に対応していてもよい。
【００３８】
差分バックアップ動作が実行されるたびに、メディアサーバー２２０は、差分バックアップファイル及びビットマスクを保存してもよい。一実施形態においては、新しいフルバックアップ動作が実行された際に、メディアサーバー２２０は、バックアップストレージ２５０から古いフルデータベースバックアップファイルを削除してもよい。又、メディアサーバー２２０は、その時点において、古いビットマスク及び差分バックアップファイルを削除してもよい。別の実施形態においては、メディアサーバー２２０は、新しいフルバックアップ動作が実行された際に、１つ又は複数の先行するフルデータベースバックアップファイルを保持してもよい。メディアサーバー２５０は、古いファイルを削除することによってバックアップストレージ２５０内のストレージ空間を解放することに関連するビットマスク、差分バックアップファイル、及びフルデータベースバックアップファイルに関する保持ポリシーを有してもよい。
【００３９】
次に図３を参照すれば、フルバックアップファイル３０５、ビットマスク３０６、及び差分バックアップファイル３０７の一実施形態のブロックダイアグラムが示されている。フルバックアップファイル３０５は、任意の数の保存されているデータベースオブジェクトを表すオブジェクト３１１〜３２３を含む。オブジェクト３１１〜３２３は、テーブル、レコード、文書、項目、リスト、及びその他のデータを含むデータベース内に保存されている任意のタイプのデータを表してもよい。差分バックアップファイル３０７は、オブジェクト３５２及び３５９を含み、これらのオブジェクト３５２及び３５９は、フルバックアップファイル３０５が生成された以降に変化した任意の数のオブジェクトを表してもよい。又、フルバックアップファイル３０５及び差分バックアップファイル３０７内に表示されているオブジェクトは、オブジェクトと、そのオブジェクトについて記述するメタデータと、を有してもよい。
【００４０】
データベースをフルバックアップとして保存した後の後続のバックアップは、差分バックアップであってもよく、差分バックアップは、最後のフルバックアップ以降にデータベースに対して実施された変更を保存してもよい。差分バックアップに含まれる変化は、差分バックアップファイル３０７内に保存してもよい。又、差分バックアップが実行された際に、ビットマスク３０６を生成することにより、いずれのデータベースオブジェクトが、最後のフルバックアップ以降に、変化し、且つ、差分バックアップファイル３０７内に保存されたか、を示してもよい。復元動作を実行する際には、復元アプリケーションは、ビットマスク３０６を使用し、特定のオブジェクトをフルバックアップファイル３０５から引き出すのか又は差分バックアップファイル３０７から引き出すのかを判定してもよい。一実施形態においては、オブジェクトをフルバックアップファイル３０５及び／又は差分バックアップファイル３０７からデータベースの作業コピーに又はデータベースの別のコピーに復元してもよい。別の実施形態においては、オブジェクトは、データベースの作業コピーに復元する前に、メモリ内においてバッファリングしてもよい。更なる実施形態においては、オブジェクトは、フルバックアップファイル３０５及び／又は差分バックアップファイル３０７から、ストレージメディアサーバー、クライアント、又はその他の演算装置上のファイルシステムに復元してもよい。更なる実施形態においては、オブジェクトは、内部ポータルアプリケーション又はその他のソフトウェアアプリケーションに復元してもよい。
【００４１】
ビットマスク３０６は、少なくとも部分的にＤＣＭ及び／又は１つ又は複数の割当マップなどの変更マップから取得した情報を使用することにより、作成してもよい。又、ビットマスク３０６は、少なくとも部分的にデータベースの差分バックアップから取得した変化したページ及びそれらのページについて記述するメタデータなどの情報に基づいて作成してもよい。ビットマスク３０６を生成するために使用される情報は、差分バックアップの際に取得した変更されたページ及び／又はオブジェクト並びにこれらの変更されたページ及び／又はオブジェクトについて記述するメタデータであってよい。ビットマスク３０６は、差分バックアップの時点において生成してもよく、或いは、ビットマスク３０６は、復元動作が検出された時点において生成してもよい。復元動作が検出された際にビットマスク３０６が生成される場合には、ビットマスク３０６を生成するために必要とされる情報は、差分バックアップファイル３０７から引き出してもよい。又、ビットマスク３０６は、データベースから取得したその他の情報に基づいて作成してもよい。
【００４２】
一実施形態においては、ビットマスク３０６は、フルバックアップファイル３０５に対するポインタ又は差分バックアップファイル３０７に対するポインタを有するように作成してもよい。別の実施形態においては、ビットマスク３０６は、データベースのオブジェクト用のバイナリデータを保存してもよい。例えば、ビットマスク３０６は、オブジェクトが、最後のフルバックアップ以降に変化しており、且つ、差分バックアップファイル３０７から取得するべきである場合には、そのオブジェクトについて「１」を保存してもよい。ビットマスク３０６は、オブジェクトが、最後のフルバックアップ以降に変化しておらず、且つ、フルバックアップファイル３０５から取得するべきである場合には、そのオブジェクトについて「０」を保存してもよい。更なる実施形態においては、ビットマスク３０６は、オブジェクトが差分バックアップファイル３０７内に保存されているのか又はフルバックアップファイル３０５内に保存されているのかを判定するためのＴＲＵＥ又はＦＡＬＳＥの値を有するブーリアン型のフィールドを含んでもよい。ビットマスク３０６を編成するその他の方法も、可能であると共に想定される。
【００４３】
図３のフルバックアップファイル３０５、ビットマスク３０６、及び差分バックアップファイル３０７の図は、これらのファイルの論理的な表現である。これらのファイルの実際の構造及び編成は、図３に示されているものと異なってもよい。例えば、更なるデータを差分バックアップファイル３０７の末尾に追加してもよい。フルバックアップファイル３０５が生成された後にデータをデータベースに追加する場合には、その新しいデータは、差分バックアップファイル３０７の末尾に追加してもよい。更には、新しいデータに対応するポインタ又はバイナリデータをビットマップ３０６の末尾に追加してもよい。又、フルバックアップファイル３０５が生成された後にオブジェクトを削除する場合には、削除されたオブジェクトについて記述するメタデータを差分バックアップファイル３０７に追加してもよく、且つ、削除されたデータに対応するポインタ又はバイナリデータをビットマップ３０６に追加してもよい。
【００４４】
又、本明細書に記述されている方法及びメカニズムは、増分バックアップと共に使用してもよい。一般に、増分バックアップは、最後の増分バックアップ又は最後のフルバックアップ以降のデータベースに対するすべての変更を保存してもよい。例えば、フルバックアップを実行してもよく、且つ、次いで、任意の数の増分バックアップを実行してもよい。上述のように、増分バックアップのそれぞれからのメタデータをフルバックアップのメタデータとマージしてもよい。或いは、この代わりに、増分バックアップのメタデータを単一のファイルとして１つにマージしてもよく、次いで、この単一のファイルをフルバックアップのメタデータとマージしてもよい。すべての増分バックアップのメタデータを単一のファイルとして１つにマージすることにより、差分バックアップファイルに類似したファイルを生成してもよい。単一のマージされたファイルは、差分バックアップファイルのフォーマットとマッチングするように、異なる方式によって再フォーマット又は編成する必要があろう。ビットマスクは、保存されている差分バックアップファイルからビットマスクを生成する方式と同様に、単一ファイル内のデータについて記述するメタデータから生成してもよく、且つ、次いで、マージされたファイルは、本明細書に記述されている方法において、差分バックアップファイルの代わりとして機能してもよい。上述の方法を使用することにより、データベースの１回又は複数回の増分バックアップに続いて、個別復元動作を実行してもよい。本明細書において使用されている「部分的バックアップ」とは、差分又は増分バックアップを意味してもよい。
【００４５】
次に図４を参照すれば、データベースアーカイブのリストから選択するための、バックアップアプリケーションが提示してもよい、ユーザーインターフェイス４００の一実施形態が示されている。バックアップアプリケーション４１０は、メディアサーバー、データベースサーバー、クライアントコンピュータ、又はその他の演算装置上において稼働してもよい。バックアップアプリケーション４１０は、データベースの複数の保存されている時点バックアップにアクセスすると共にこれらから選択するためのユーザーインターフェイス４００をユーザーに対して提示してもよい。ユーザーインターフェイス４００は、ドロップダウンメニュー、ナビゲーションバー、アドレスフィールド、並びに、ウェブページ及びＧＵＩ（ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）のその他の一般的な機能などの機能を含んでもよい。ユーザーは、管理者、ソフトウェア開発者、又はその他のユーザーであってもよい。ユーザーは、特定の時点におけるデータベースのバックアップコピーからの１つ又は複数のオブジェクトの復元を所望する場合がある。或いは、この代わりに、ユーザーは、特定の時点におけるデータベース全体の復元を所望する場合もある。図４に示されているように、ユーザーインターフェイス４００は、復元動作を検討する際にユーザーが選択するための複数のバックアップを表示してもよい。これらの時点バックアップは、バックアップを実行した日付又は時刻に従って、一覧表示してもよい。時点バックアップを一覧表示及び編成するその他の方法も、可能であると共に想定される。
【００４６】
ユーザーインターフェイス４００の「時点バックアップ」ペイン４０５内には、２０１０年６月１日のバックアップ４１０、６月１日の朝又はＡＭのバックアップ（４２０）、６月１日の午後又はＰＭのバックアップ（４３０）、６月２日のバックアップ４４０、６月３日のバックアップ４５０、６月４日のバックアップ４６０、及び６月５日のバックアップ４７０というバックアップが表示されている。「時点バックアップ」ペイン４０５内に表示されている特定の日付は、いずれも、その特定の日付における複数のバックアップを有してもよい。「時点アックアップ」ペイン４０５内に表示されているバックアップは、バックアップアプリケーション４１０のユーザーインターフェイス４００の一部として表示してもよい任意の数のバックアップを表している。
【００４７】
ユーザーは、オブジェクトを復元するための特定の時点バックアップについて、「時点バックアップ」ペイン４０５内のリストをサーチしてもよい。その特定の時点において実行されたバックアップは、フルバックアップ又は差分バックアップであってもよい。一実施形態においては、ペイン４０５は、フルバックアップからのバックアップと差分バックアップからのバックアップを弁別しなくてもよい。別の実施形態においては、「時点バックアップ」ペイン４０５は、フルバックアップと差分バックアップについて異なるシェーディングを表示してもよく、或いは、いずれのタイプのバックアップがその時点において実行されたのかをユーザーが理解できるように、通知を付与してもよい。いずれのケースにおいても、ユーザーは、特定の時点におけるバックアップがフルであったのか又は差分であったのかを知らなくてもよく、ユーザーは、そのような知識を伴うことなしに、特定の時点におけるオブジェクトを復元してもよい。ユーザーは、オブジェクトを復元するための特定の時点バックアップを選択した後に、「開く」ボタンを選択してバックアップを展開させることにより、その時点において存在していたデータベースのオブジェクトを観察してもよい。ユーザーインターフェイス４００は、図４に示されているもの以外の形態を有してもよく、或いは、それ以外の形態において時点バックアップを表示してもよい。
【００４８】
次に図５を参照すれば、復元対象の特定のレコード又はオブジェクトを選択するための、バックアップアプリケーション５１０が提示してもよい、ユーザーインターフェイス５００の一実施形態が示されている。ユーザーインターフェイス５００は、ドロップダウンメニュー、ナビゲーションバー、アドレスフィールド、並びに、ウェブページ又はＧＵＩのその他の一般的な機能などの機能を含んでもよい。ユーザーインターフェイス５００は、説明を目的として提示されているものに過ぎず、ユーザーインターフェイスのその他の表現も、可能であると共に想定される。別の実施形態においては、ユーザーインターフェイス５００は、復元のために選択してもよいサイト、サブサイト、リスト、及び／又は項目などのその他のタイプのオブジェクトを示してもよい。図５においては、ユーザーインターフェイス５００は、特定の時点バックアップにおけるレコード及びオブジェクトをどのように提示するのかに関する画面を示しており、この場合には、特定の時点バックアップは、６月４日のバックアップ４６０である。６月４日のバックアップ４６０は、複数の時点バックアップをユーザーに対して提示する図４に示されているものなどの以前のユーザーインターフェイス上において選択されたものであってよい。
【００４９】
ユーザーインターフェイス５００の「レコード」ペイン５０４内には、レコード及びオブジェクトの階層的な一覧を提示してもよい。「レコード」ペイン５０４内には、レコード５１０のオブジェクト５１１〜５１４を伴って、レコード５１０が表示されている。又、「レコード」ペイン５０４内には、レコード５２０、５３０、５４０、及び５５０も、表示されており、且つ、オブジェクト５５１〜５５が、レコード５５０のリストとして表示されている。「レコード」ペイン５０４内に示されている一覧は、データベースの６月４日のバックアップ４６０内に保存されているレコード及びオブジェクトの一部に過ぎなくてもよい。６月４日のバックアップ４６０のエントリを検討することにより、ユーザーインターフェイス５００内に表示されているレコード及びオブジェクトに到達したものであってもよい。「レコード」ペイン５０４内の一覧からレコード及びオブジェクトを選択し、且つ、「追加」ボタンを使用することにより、「オブジェクトの復元」ペイン５０５に追加してもよい。「除去」ボタンを使用することにより、「オブジェクトの復元」ペイン５０５からレコード及びオブジェクトを選択及び除去してもよい。図５に示されているように、オブジェクト５１４及び５５１が「オブジェクトの復元」ペイン５０５内の復元フォルダ５６０の下に表示されており、これにより、オブジェクト５１４及び５５１が復元のためにユーザーによって選択されていることを通知している。
【００５０】
一実施形態においては、フルデータベースバックアップファイルからのメタデータを６月４日の時点バックアップに対応した差分バックアップファイルからのメタデータとマージすることにより、ユーザーインターフェイス５００内に示されている画面を生成してもよい。この意味において、この画面は、６月４日の時点バックアップ（即ち、部分的バックアップ）の代わりに実行された場合に表示されるであろうフルバックアップの画面を提示するという点において、「合成フルバックアップ画面」であると見なしてもよい。別の実施形態においては、差分バックアップファイルを最新のフルバックアップファイルと論理的にマージすることにより、ユーザーインターフェイス５００に示される画面を生成してもよい。更なる実施形態においては、ビットマスクを使用することにより、ユーザーインターフェイス５００に示される画面を生成してもよい。ユーザーインターフェイス５００の画面は、特定の時点におけるデータベースの基礎をなすデータ構造の仮想的な表現である。又、オブジェクトをページに且つページをオブジェクトに変換するマップを使用することにより、ユーザーインターフェイス５００の画面を提示してもよい。ユーザーインターフェイス５００は、オブジェクトを表示し、且つ、差分バックアップファイル、ビットマスク、及びフルデータベースバックアップファイルは、ページに従って編成してもよい。変換マップを使用することにより、バックアップファイルのページ構造をユーザーインターフェイス５００のオブジェクト画面に変換してもよい。又、変換マップを使用することにより、ユーザーインターフェイス５００においてユーザーが復元のために選択したオブジェクトを差分バックアップファイル及びフルデータベースバックアップファイルのページ構造内において見出してもよい。
【００５１】
差分バックアップファイル、最後のフルバックアップファイル、及び／又はビットマスクをバックアップストレージからメディアサーバーの物理メモリに読み込むことにより、図５に示されている画面を提示してもよく、且つ、ファイルは、ユーザーが復元用のオブジェクトを選択した後にオブジェクトが迅速に取得されるように、メモリ内に留まってもよい。図５のユーザーインターフェイス５００内に示されている６月４日のバックアップ４６０の画面は、差分バックアップが６月４日において実行された時点において存在していたデータベースを示してもよい。その他の実施形態においては、ユーザーインターフェイス５００は、異なるタイプの画面を提示してもよい。例えば、データベースがウェブサイトを保存している場合には、ユーザーインターフェイス５００は、過去の特定の時点において観察されるウェブサイトの画面を提示してもよい。
【００５２】
次に図６を参照すれば、複数のオブジェクトをデータベースに復元するための方法６００の一実施形態が示されている。説明を目的として、この実施形態におけるステップは、シーケンシャルな順序において示されている。後述する方法の様々な実施形態においては、記述されている要素のうちの１つ又は複数は、同時に実行されてもよく、図示のものとは異なる順序で実行されてもよく、或いは、完全に省略されてもよいことに留意されたい。又、必要に応じて、その他の更なる要素を実行してもよい。
【００５３】
方法６００は、ブロック６１０において始まり、次いで、ブロック６２０において、複数のオブジェクトをデータベースに復元するための要求を検出している。次いで、それぞれのオブジェクトごとに（ブロック６３０）、以下のステップを実行してもよい。ブロック６４０において、ビットマスクファイルを読み取ることにより、オブジェクトが差分バックアップファイル内に保存されているのかどうかを判定してもよい。オブジェクトが差分バックアップファイル内に存在している場合には（条件判定ブロック６５０）、オブジェクトを差分バックアップファイルから取得してもよい（ブロック６７０）。オブジェクトが差分バックアップファイル内に存在していない場合には（条件判定ブロック６５０）、オブジェクトをフルバックアップファイルから取得してもよい（ブロック６６０）。ブロック６６０又はブロック６７０の後に、オブジェクトをデータベースに復元してもよい（ブロック６８０）。次いで、ブロック６８０において復元されたオブジェクトが最後のオブジェクトである場合には（条件判定ブロック６９０）、方法６００は、ブロック６９５において終了してもよい。最後のオブジェクトではない場合には（条件付きブロック６９０）、方法６００は、ブロック６３０に戻り、次のオブジェクトを復元してもよい。
【００５４】
次に図７を参照すれば、差分バックアップを実行するための方法７００の一実施形態が示されている。説明を目的として、この実施形態におけるステップは、シーケンシャルな順序において示されている。後述する方法の様々な実施形態においては、記述されている要素の１つ又は複数は、同時に実行されてもよく、図示のものとは異なる順序において実行されてもよく、或いは、完全に省略されてもよいことに留意されたい。又、必要に応じて、その他の更なる要素を実行してもよい。
【００５５】
方法７００は、ブロック７０５において始まり、且つ、次いで、データベースバックアップを実行するための要求を検出してもよい（ブロック７１０）。次いで、カスタマイズされた問合せを実行することにより、データベースから変更マップを見出すと共に取得してもよい（ブロック７２０）。一実施形態においては、変更マップは、ＤＣＭ（ｄｉｆｆｅｒｅｎｔｉａｌ  ｃｈａｎｇｅｄ  ｍａｐ）であってよい。次いで、変更マップをバックアップアプリケーションによって保存してもよい（ブロック７３０）。次いで、データベースバックアップのページを読み取り、且つ、保存されている変更マップと比較してもよい（ブロック７４０）。次いで、変更マップによって示されている変更を含むページを収集し、且つ、差分バックアップファイルとして保存してもよい（ブロック７５０）。ブロック７５０の後に、方法７００は、ブロック７６０において終了してもよい。この方法においては、フルバックアップをクライアントの観点から実行してもよいが、メディアサーバーは、差分バックアップが実行されたかのように、データベースに対する変更を保存するのみであってもよい。
【００５６】
上述の実施形態は、ソフトウェアを有してもよいことに留意されたい。そのような一実施形態においては、記述されているシステム及び／又は方法を表すプログラム命令及び／又はデータベース（これらは、いずれも、「命令」と呼称してもよい）をコンピュータ可読ストレージ媒体上に保存してもよい。一般に、コンピュータ可読ストレージ媒体は、命令及び／又はデータをコンピュータに提供するために使用の際にコンピュータによってアクセス可能な任意のストレージ媒体を含んでもよい。例えば、コンピュータ可読ストレージ媒体は、例えば、ディスク（固定又は着脱自在）、テープ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、又はＢｌｕ−Ｒａｙなどの磁気又は光学媒体などのストレージ媒体を含んでもよい。ストレージ媒体は、ＵＳＢインターフェイスなどの周辺インターフェイスを介してアクセス可能なＲＡＭ（例えば、ＳＤＲＡＭ（ｓｙｎｃｈｒｏｎｏｕｓ  ｄｙｎａｍｉｃ  ＲＡＭ）、ダブルデータレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３など）ＳＤＲＡＭ、低電力ＤＤＲ（ＬＰＤＤＲ２など）ＳＤＲＡＭ、ＲＤＲＡＭ（Ｒａｍｂｕｓ  ＤＲＡＭ）、ＳＲＡＭ（ｓｔａｔｉｃ  ＲＡＭ））、ＲＯＭ、フラッシュメモリ、不揮発性メモリ（例えば、フラッシュメモリ）などの揮発性又は不揮発性メモリ媒体を更に含んでもよい。ストレージ媒体は、ＭＥＭＳ（ｍｉｃｒｏ−ｅｌｅｃｔｒｏ−ｍｅｃｈａｎｉｃａｌ  ｓｙｓｔｅｍ）と、ネットワーク及び／又は無線リンクなどの通信媒体を介してアクセス可能なストレージ媒体と、を含んでもよい。
【００５７】
様々な実施形態においては、本明細書において記述されている方法及びメカニズムの１つ又は複数の部分は、クラウド演算環境の一部を構成してもよい。そのような実施形態においては、１つ又は複数の様々なモデルに従って、リソースをサービスとしてインターネット上において提供してもよい。そのようなモデルは、ＩａａＳ（Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）、ＰａａＳ（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）、及びＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）を含んでもよい。ＩａａＳにおいては、コンピュータインフラストラクチャがサービスとして供給される。このような場合には、演算機器は、一般に、サービスプロバイダによって所有され、且つ、操作されている。ＰａａＳモデルにおいては、ソフトウェアソリューションを開発するために開発者が使用するソフトウェアツール及び基礎をなす機器をサービスとして提供してもよいと共にサービスプロバイダによってホスティングしてもよい。ＳａａＳは、通常、サービスプロバイダが要求に応じてサービスとしてソフトウェアをライセンスするステップを含む。サービスプロバイダは、ソフトウェアをホスティングしてもよく、或いは、ソフトウェアを所与の期間にわたって顧客に提供してもよい。上述のモデルの多数の組合せが可能であると共に想定される。
【００５８】
方法のいくつかの実施形態について図示及び説明したが、当業者には、記述されている方法に対して多数の変更、変形、又は修正を実施してもよいことが明らかであろう。従って、変更、変形、及び修正は、本明細書に記述されている方法及びメカニズムの範囲内に含まれるものと見なされたい。又、上述の実施形態が非限定的な実装形態の例に過ぎないことについても、強調しておく。
【図１】
2013542513.tif 000003
【図２】
2013542513.tif 000004
【図３】
2013542513.tif 000005
【図４】
2013542513.tif 000006
【図５】
2013542513.tif 000007
【図６】
2013542513.tif 000008
【図７】
2013542513.tif 000009
【国際調査報告】
2013542513.tif 000010
2013542513.tif 000011
2013542513.tif 000012