(57)【特許請求の範囲】
【請求項１】
複数のオブジェクトを含むデータベースのバックアップから、選択されたオブジェクト、すなわち、前記複数のオブジェクトに含まれる、選択されたオブジェクトを復元する旨のリクエストを受け取るステップと、
前記バックアップ内の前記選択されたオブジェクトに関連付けられた情報を含むデータベーステーブルを特定するステップであって、前記情報は前記複数のオブジェクトのオブジェクト間の複数のデータ関係の１個以上を識別し、前記データベースの前記バックアップが作成された時点で前記データベースから集められたデータベーステーブルのメタデータを用いて特定するステップと、
１個以上の必要なオブジェクトを識別するステップであって、前記必要なオブジェクトの各々は前記必要なオブジェクトの前記各々と前記選択されたオブジェクトの間の関係により前記選択されたオブジェクトを復元するために必要であり、前記必要なオブジェクトの前記各々と前記選択されたオブジェクトの間の関係は前記複数のデータ関係の少なくとも１個により記述される、ステップと、
前記選択されたオブジェクトに関連付けられた前記情報を用いて前記選択されたオブジェクトを復元するステップであって、前記１個以上の必要なオブジェクトを復元するステップと
を含む方法。
【請求項２】
前記複数のデータ関係はオブジェクトの階層を記述し、
前記１個以上の必要なオブジェクトの各々は前記オブジェクトの階層のメンバーである、請求項１に記載の方法。
【請求項３】
１個のオブジェクトが前記選択されたオブジェクトを復元するために必要であり、すなわち、
前記オブジェクトが前記オブジェクトの階層内の前記選択されたオブジェクトより上位のオブジェクトであり、且つ
前記オブジェクトが既に復元されていない場合に必要である、請求項２に記載の方法。
【請求項４】
前記データベーステーブルのメタデータが、前記データベーステーブルのオフセットを含み、
前記データベーステーブルが、前記選択されたオブジェクトを記述する情報を含む、
請求項１に記載の方法。
【請求項５】
前記データベーステーブルのメタデータが、前記データベーステーブルの構造を記述する情報を更に含む、請求項４に記載の方法。
【請求項６】
複数のデータベーステーブルが前記データベーステーブルを含み、前記複数のデータベーステーブルの各々は前記選択されたオブジェクトを記述する前記情報の少なくとも一部を含む、請求項４に記載の方法。
【請求項７】
前記データベースでバックアップ動作を実行するステップと、
前記データベーステーブルのメタデータを保存するステップとを更に含む、請求項１に記載の方法。
【請求項８】
前記データベースがＳｈａｒｅＰｏｉｎｔコンテンツデータベースを含み、
前記データベーステーブルのメタデータが前記ＳｈａｒｅＰｏｉｎｔコンテンツデータベース内の１個以上のテーブルを記述する情報を含む、請求項７に記載の方法。
【請求項９】
前記ＳｈａｒｅＰｏｉｎｔコンテンツデータベース内の前記１個以上テーブルが、
Ｓｉｔｅｓテーブル、Ｗｅｂｓテーブル、Ｌｉｓｔｓテーブル、ＵｓｅｒＤａｔａテー
ブル、ＵｓｅｒＩｎｆｏテーブル、Ｇｒｏｕｐｓテーブル、およびＲｏｌｅｓテーブルの
１個以上を含む、請求項８に記載の方法。
【請求項１０】
プロセッサと、
前記プロセッサに接続された第１のストレージオブジェクト、すなわち、
データベースのバックアップを保存する前記第１のストレージオブジェクトにおいて、
前記バックアップされたデータベースが複数のオブジェクトおよび前記複数のオブジェクトを記述する複数のデータベーステーブルを含む第１のストレージオブジェクトと、
前記プロセッサに接続されている第２のストレージオブジェクト、すなわち、
前記データベースのバックアップから復元されたオブジェクトの目標ストレージ領域を保存する第２のストレージオブジェクトと、
前記プロセッサに接続されていて、前記プロセッサにより実行可能な命令を保存するメモリとを含むシステムであって、前記命令が、
前記データベースのバックアップから、選択されたオブジェクト、すなわち前記複数のオブジェクトに含まれる前記選択されたオブジェクトを復元する旨のリクエストを受け取るステップと、
前記データベースのバックアップ内の前記選択されたオブジェクトに関連付けられた情報を含むデータベーステーブルを特定するステップであって、前記情報は前記複数のオブジェクトのオブジェクト間の複数のデータ関係の１個以上を識別し、前記データベースの前記バックアップが作成された時点で前記データベースから集められたデータベーステーブルのメタデータを用いて特定するステップと、
１個以上の必要なオブジェクトを識別するステップであって、前記必要なオブジェクトの各々は前記必要なオブジェクトの前記各々と前記選択されたオブジェクトの間の関係により前記選択されたオブジェクトを復元するために必要であり、前記必要なオブジェクトの前記各々と前記選択されたオブジェクトの間の関係は、前記複数のデータ関係の少なくとも１個により記述される、ステップと、
前記選択されたオブジェクトに関連付けられた前記情報を用いて前記選択されたオブジェクトを前記第２のストレージオブジェクト内に復元するステップであって、前記１個以上の必要なオブジェクトを復元するステップと
を行うべく構成されているシステム。
【請求項１１】
前記複数のデータ関係はオブジェクトの階層を記述し、
前記１個以上の必要なオブジェクトの各々は前記オブジェクトの階層のメンバーである、請求項１０に記載のシステム。
【請求項１２】
１個のオブジェクトが前記選択されたオブジェクトを復元するために必要であり、すなわち、
前記オブジェクトが前記オブジェクトの階層内の前記選択されたオブジェクトより上位のオブジェクトであり、且つ
前記オブジェクトが既に復元されていない場合に必要である、請求項１１に記載のシステム。
【請求項１３】
前記データベーステーブルのメタデータが、前記データベーステーブルのオフセットを含み、
前記データベーステーブルが、前記選択されたオブジェクトを記述する情報を含む、請求項１０に記載のシステム。
【請求項１４】
前記データベーステーブルのメタデータが、前記データベーステーブルの構造を記述する情報を更に含む、請求項１３に記載のシステム。
【請求項１５】
複数のデータベーステーブルが前記データベーステーブルを含み、前記複数のデータベーステーブルの各々は前記選択されたオブジェクトを記述する前記情報の少なくとも一部を含む、請求項１３に記載のシステム。
【請求項１６】
前記データベースがＳｈａｒｅＰｏｉｎｔコンテンツデータベースを含み、
前記データベーステーブルのメタデータが前記ＳｈａｒｅＰｏｉｎｔコンテンツデータベース内の１個以上のテーブルを記述する情報を含む、請求項１０に記載のシステム。
【請求項１７】
複数のオブジェクトを含むデータベースのバックアップから、選択されたオブジェクト、すなわち、前記複数のオブジェクトに含まれる前記選択されたオブジェクトを復元する旨のリクエストを受け取るステップを行うべく構成され、プロセッサにより実行可能な第１の命令の組と、
前記バックアップ内の前記選択されたオブジェクトに関連付けられた情報を含むデータベーステーブルを特定するステップであって、前記情報は前記複数のオブジェクトのオブジェクト間の複数のデータ関係の１個以上を識別し、前記データベースの前記バックアップが作成された時点で前記データベースから集められたデータベーステーブルのメタデータを用いて特定するステップと、
１個以上の必要なオブジェクトを識別するステップであって、前記必要なオブジェクトの各々は前記必要なオブジェクトの前記各々と前記選択されたオブジェクトの間の関係により前記選択されたオブジェクトを復元するために必要であり、前記必要なオブジェクトの前記各々と前記選択されたオブジェクトの間の関係は前記複数のデータ関係の少なくとも１個により記述される、ステップとを行うべく構成され、前記プロセッサにより実行可能な第２の命令の組と、
前記選択されたオブジェクトに関連付けられた前記情報を用いて前記選択されたオブジェクトを目標ストレージに復元するステップであって前記１個以上の必要なオブジェクトを復元するステップを行うべく構成され、且つ前記プロセッサにより実行可能な第３の命令の組と
を含むコンピュータ可読な記録媒体。
【請求項１８】
前記複数のデータ関係はオブジェクトの階層を記述し、
前記１個以上の必要なオブジェクトの各々は前記オブジェクトの階層のメンバーである、請求項１７のコンピュータ可読な記録媒体。
【請求項１９】
１個のオブジェクトが前記選択されたオブジェクトを復元するために必要であり、すなわち、
前記オブジェクトが前記オブジェクトの階層内の前記選択されたオブジェクトより上位のオブジェクトであり、且つ
前記オブジェクトが既に復元されていない場合に必要である、請求項１８に記載のコンピュータ可読な記録媒体。
【請求項２０】
前記データベーステーブルのメタデータが、前記データベーステーブルのオフセットを含み、
前記データベーステーブルが、前記選択されたオブジェクトを記述する情報、およびデータベーステーブルの構造を記述する情報を含む、請求項１７に記載のコンピュータ可読な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータバックアップおよび復元の分野に関し、特に、一括データベースバックアップから選択的にオブジェクトを復元する方法およびシステムに関する。
【背景技術】
【０００２】
情報、およびそのような情報を各種の形式で生成、処理、配信、および保持するコンピュータシステムに対する依存度が増大する状況にあって、そのような情報を保存、バックアップ、および復元する技術に対する要求が高まり続けている。協業および文書管理を可能にすべく企業横断的に情報資源を集中化する技術を産業界が採用するにつれて、企業の事業継続のためにそのような情報の保存、バックアップ、および復元が一層重要になっている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
典型的な企業レベルの協業および文書管理プラットフォームにおいて、一個以上のユーザー向けアプリケーションオブジェクトからのデータは、データベース等の集中化されたストレージオブジェクトに保存することができる。各種のアプリケーションオブジェクトからのデータを保持するデータベースは、アプリケーションオブジェクトにより規定されるデータ間の関係または階層を保持すべく構成することができる。そのようなデータベースの任意のバックアップおよび復元スキームは、アプリケーションオブジェクトにより構築されたデータ間の関係および階層を保持しなければならない。
【０００４】
そのようなデータベースをバックアップおよび復元する従来の方法は、多くの人員およびリソースを要する。例えば、データベース内にアプリケーションオブジェクト用の領域が複数存在する旨であって、バックアップ管理者は、保護する必要があるデータベースの部分を知って選択することに対して責任を負っている。データ保護に対するそのような事前のきめ細かい方式は、データベース管理者であるとは限らないバックアップ管理者が、特定のアプリケーションオブジェクトの保護スキーマを構築するためにデータベースのトポロジを知っている必要がある。更に、アプリケーションの階層的なオブジェクト構造が変更された場合、変更が生じた際にバックアップ管理者はこれらを考慮しなければならない。この従来のバックアップ方式は、各アプリケーションオブジェクトに関連付けられたデータベース内の領域のバックアップを別々に実施するため、きめ細かいバックアップスキームと呼ばれる。きめ細かいバックアップスキームの下で、特定のアプリケーションオブジェクトに関連するデータの復元は、各アプリケーションオブジェクトが自身のバックアップの組を有しているため、合理的に的を絞ることができる。
【０００５】
代替的なバックアップ方法として、データベース全体の一括バックアップを実行することである。データベースのそのような一括的バックアップからデータを復元する従来の方法は、データベース全体のスナップショットを一時領域に戻し、次いで当該データベースから所望の情報を選択して稼動中のターゲットデータベースに入れることである。そのようなデータ選択のバックエンド方法の短所は、データベースのバックアップから全てのデータを復元してそこから所望の情報を選択するのに時間を要し、データベースの一時コピーによりディスクリソースが費消される点である。
【０００６】
従って、バックアップ管理者がバックアップ中のデータベースの構造に精通している必要なしに、データベース全体の一括バックアップを効率的に実施する機構を有することが望ましい。また、復元時間を短縮をすべく、バックアップされたデータベースの一部を必要に応じてユーザーが選択的に復元できるようにすることも望ましい。更に、バックアップされたデータベースの選択的に復元された部分に関連付けられた任意のセキュリティ設定が保持されて、データベースのそれらの復元された部分に適用されることも望ましい。
【課題を解決するための手段】
【０００７】
本発明の実施形態は、一括的にバックアップされたデータベースの一部を、当該データベースの復元された部分の階層的な関係および他のメタデータ関係を維持しながら、選択的に復元する機構を提供する。本発明の実施形態は、データベースのバックアップ内の複数のバックアップされたオブジェクトの中から、選択されたオブジェクトを復元する旨のリクエストを受け取り、データベースのバックアップ内の選択されたオブジェクトに関連付けられた情報を特定し、選択されたオブジェクトに関連付けられた情報を用いて、選択されたオブジェクトを目標領域に復元する機構を実現する方法、システム、およびコンピュータ可読な記録媒体を提供する。上述の実施形態の態様は、バックアップされたデータベースからバックアップ作成時に集めたデータベーステーブルのメタデータを用いて、選択されたオブジェクトに関連付けられた情報を特定する。
【０００８】
本発明の上述の実施形態の更なる態様は、選択されたオブジェクトを含むオブジェクトの階層内での選択されたオブジェクトとの親子（またはより遠い）関係を有する任意のオブジェクトを含む、選択されたオブジェクトの復元に必要なデータベースのバックアップ内に各オブジェクトを復元する方法を提供する。本発明の上述の実施形態の他の態様は、バックアップに保存されているデータベーステーブルのオフセットおよびデータベーステーブルの構造を記述する情報をデータベーステーブルのメタデータに含める方法を提供する。
【０００９】
本発明の更なる態様は、ＳｈａｒｅＰｏｉｎｔ（登録商標）データベースの部分を復元と連携して本発明を使用する方法を提供する。そのような場合、選択されたオブジェクトは、Ｓｉｔｅオブジェクト、Ｗｅｂオブジェクト、Ｌｉｓｔオブジェクト等であってよい。そのような選択されたオブジェクトを記述するテーブルは、Ｓｉｔｅテーブル、Ｗｅｂｓテーブル、Ｌｉｓｔｓテーブル、ＵｓｅｒＤａｔａテーブル、ＵｓｅｒＩｎｆｏテーブル、Ｇｒｏｕｐｓテーブル、Ｒｏｌｅｓテーブル等を含んでいてよい。
【００１０】
以上は概要であり、必然的に詳細事項は簡略化、一般化、および省略されている。従って、当業者は上の概要が説明目的に過ぎず、いかなる点でも本発明を限定することは一切意図していないことを理解されたい。本発明の他の態様、発明の特徴、および効果は専ら請求項により規定され、後述の非限定的な詳細説明において明らかされる。
【００１１】
添付の図面を参照することにより、当業者には本発明に対する理解が深まると共に、多くの目的、特徴、および利点が明らかになろう。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態を使用すべく構成可能なネットワークの例を示す概略ブロック図である。
【図２】本発明の実施形態と連携して使用できるデータベース内のオブジェクトレイアウトの例を示す概略ブロック図である。
【図３】本発明の実施形態によるバックアップ処理を示す概略フロー図である。
【図４】本発明の実施形態による、データベース復元動作を示す概略フロー図である。
【図５】本発明の実施形態の実装に適したコンピュータシステムのブロック図である。
【図６】本発明の実施形態の実装に適したネットワークアーキテクチャを表すブロック図である。
【発明を実施するための形態】
【００１３】
本発明の実施形態は、アプリケーションオブジェクトデータを保存しているデータベースの一括バックアップからアプリケーションオブジェクトデータを選択的に復元する機構を提供する。本発明の実施形態はこの能力を、アプリケーションオブジェクトデータ、アプリケーションオブジェクトデータを保存する構造、および当該構造間の相互関係を記述するデータベースに保存されているメタデータをデータベースのバックアップ時に識別することにより提供する。本発明の実施形態は、復元動作中に使用されるこのメタデータに関する情報を保存することができる。復元動作中、本発明の実施形態はメタデータに関連する保存情報にアクセスし、当該情報を用いてデータベースのバックアップ内のメタデータに直接アクセスすることができる。本発明の実施形態は、アクセスしたメタデータを用いて、データベースからバックアップされたデータの記述およびそのようなデータ間の関係（例：データ構造の階層）を、データを復元しているユーザーに提供する。本発明の実施形態は更に、データベースのバックアップからのそのような記述から選択されたデータにアクセスし、ターゲットデータベースに当該情報を復元することができる。このように、１個以上のアプリケーションオブジェクトからのデータを含むデータベースのバックアップを効率良く一括的に実施し、次いで対象とされた仕方で効率的に復元することができる。更に、バックアップ管理者がバックアップ中のデータベースの構造に精通している必要が無く、特定のデータの組を復元している担当者が構造に精通していれば良い点で人的リソースをより効率的に利用できる。
【００１４】
図１は、本発明の実施形態を使用すべく構成可能なネットワークの例を示す概略ブロック図である。データベースサーバ１１０は、データベース１２０を保存するストレージボリュームに直接または間接的に接続されている。データベース１２０は、データベース１２０にデータを保存する１個以上のアプリケーションオブジェクトによりアクセスすることができる。データベースサーバ１１０は、データベースサーバとの間のアクセスを提供するネットワーク１３０に接続されている。ネットワーク１３０は通常、組織の企業レベルネットワークであって、ローカルエリアネットワーク、メトロエリアネットワーク、ワイドエリアネットワーク等であってよいが、これに限定されない。ネットワーク１３０には、例えばイーサネット（登録商標）ルータ、光学ケーブル等を含む標準的なネットワークハードウェアおよびプロトコルが対応している。ネットワーク１３０はまた、企業の１個以上の箇所のコンピュータ装置（例：クライアント１４０（１）〜（Ｎ））を接続することにより、それらのクライアントからデータベースサーバ１１０への通信を提供することができる。
【００１５】
図１に示すネットワークもまたウェブサーバ１５０に接続されている。ウェブサーバ１５０は、１個以上のアプリケーションオブジェクトに関連付けられたアプリケーションへのユーザーアクセスを提供することができる。ネットワーク１３０は、各々が別々のアプリケーションを提供する１個以上のウェブサーバ１５０、または同一アプリケーションを配信する多数のウェブサーバを備えていてよい。ウェブサーバ１５０は、データベースサーバ１１０と通信することにより、データベース１２０に保存されているデータにアクセスするアプリケーションオブジェクトモデルを提供する。ウェブサーバ１５０とデータベースサーバ１１０の間のそのような通信は、ウェブサーバ１５０およびデータベースサーバ１１０によりサービスされるアプリケーションオブジェクトにより共有されるアプリケーションプログラムインターフェース（ＡＰＩ）を介したものであってよい。
【００１６】
バックアップサーバ１６０がネットワーク１３０に接続されていて、ネットワーク１３０に保存されているデータのバックアップイメージを１個以上のバックアップストレージボリューム１７０に保存すべく構成されている。バックアップサーバ１６０は、バックアップ実行時におけるネットワーク上のデータのスナップショットを提供する各種のバックアップユーティリティを実行すべく構成することができる。バックアップサーバ１６０は例えば、データベースサーバ１１０を介してデータに直接アクセスすることによりデータベース１２０のバックアップを実行することができる。このように、データベース１２０の完全な一括バックアップは、データベース内に保存されている特定のデータ構造に関らず、データベースサーバのＳＱＬインターフェースを介して実行することができる。あるいは、データベース１２０の特定の部分のバックアップを実行したい場合、バックアップサーバ１６０は関連付けられたアプリケーションのウェブサーバ１５０を介して特定のアプリケーションオブジェクトのデータにアクセスすることができる。このように、データベース１２０に保存されている特定のアプリケーションオブジェクトのきめ細かいバックアップを実行することができる。
【００１７】
上述のように、きめ細かいバックアップを実行することの短所は、特定のアプリケーションに関連付けられたウェブサーバ１５０のリソースが費消される点である。このウェブサーバリソースの費消により、バックアップ実施中に、サービス提供されるアプリケーションへのアクセスが遅延または停止される恐れがある。データベースサーバ１１０を介して直接データベースのバックアップを実行することにより、ウェブサーバリソースの費消は避けられる。しかし、従来のバックアップスキームでは、特定のアプリケーションオブジェクトデータの復元はデータベース全体を復元し、次いで復元されたデータベースからデータを選択することによってしか実行できない。そのような復元および選択動作は、時間および物理リソース（例：完全に復元されたバックアップの保存に要するディスク容量）の両方を費消する。
【００１８】
図２は、本発明の実施形態と連携して使用できるデータベース１２０内のオブジェクトレイアウトの例を示す概略ブロック図である。データベース１２０は、サイト（１）〜（Ｐ）とラベル付けされた１個以上のコンテナを含んでいる。各サイトは、特定のアプリケーションに関連付けられていてよい。各サイトは従って、サイトの特定のアプリケーションとの関連により定義される特徴の一意な組を有するアプリケーションオブジェクトである。サイトは、例えば、関連付けられたＵＲＬ、一意な識別子、所有者識別子、関連付けられたセキュリティ情報、関連付けられたディスク割当ておよびディスク使用情報等を有していてよい。アプリケーションの性質に応じて、１個以上のサイトが特定のアプリケーションに関連付けられていてよい。
【００１９】
サイトは他のコンテナに関連付けられていてよい。例えば、サイト（２）は２個のサブサイトコンテナ、すなわちサブサイト（２，１）およびサブサイト（２，２）を含んでいる。各々のサブサイトは、あるサイトについて上で述べたようにサブサイトを記述する関連情報を含んでいてよい。各々のサブサイトが親サイトに関連付けられているのに対し、サブサイト自身は互いに疎なオブジェクトである。
【００２０】
サイトおよびサブサイトは更に、他のアプリケーションオブジェクトを含んでいてよい。そのようなアプリケーションオブジェクトの一例としてリストがあり、これもまたコンテナである。図２は、Ｌｉｓｔオブジェクト（例：リスト（１，１）およびリスト（１，２））が関連付けられているサイト（１）を示す。サブサイト（２，１）もまた、関連付けられたリスト（例：リスト（２，１，１）およびリスト（２，１，２））を有している。一方、サブサイト（２，２）は単一のリスト（例：リスト（２，２，１））を有する。Ｌｉｓｔオブジェクトはまた、例えば、リストが属するサイトの識別子、リストの名前、作成日時情報、セキュリティ情報、リストの種類（例：リスト内に保存されている情報の種類）等を含む情報に関連付けられていてよい。リストに直接関連付けられたそのような特徴に加え、リストはまた、リストを含むサイトおよび／またはサブサイトに関連付けられた特徴を継承することができる。従って、例えば、リストは当該リストが関連付けられているサイトに関連付けられたセキュリティ保護を得ることができる。
【００２１】
図２に示すように、リストは関連付けられた項目またはデータオブジェクトを含んでいてよい。各リストは、特定の種類の項目に関連付けられていてよい。項目オブジェクトは、当該項目を特定のリストおよび／またはサイトに関連付けている識別子、当該項目を入力または修正したユーザーの識別子、当該項目に関連付けられたデータの型、および項目オブジェクトの値、等の関連付けられた特徴を有していてよい。項目はまた、当該項目が属するリストおよび／または当該項目が関連付けられているサイトあるいはサブサイトの特徴を継承することができる。
【００２２】
データベース１２０は、コンテナおよびそれらに関連付けられたデータだけでなく、コンテナおよびそれらに関連付けられたデータ、およびそれらの相互関係のメタデータ記述を保存することができる。データベース１２０はそのようなメタデータを、リスト、項目、サイト、およびサブサイト等関連付けられたテーブルに保存することができる。実際、データベース１２０内に保存されている各々の種類のアプリケーションオブジェクトについて別々のメタデータテーブルを提供することができる。
【００２３】
上述のデータベースを使用するシステムの例としてＭｉｃｒｏｓｏｆｔ（登録商標）社のＳｈａｒｅＰｏｉｎｔ（登録商標）アプリケーションがある。本発明の実施形態がＳｈａｒｅＰｏｉｎｔ（登録商標）データベースとの連携利用に限定されないが、本発明の実施形態はＳｈａｒｅＰｏｉｎｔ（登録商標）データベースと共に使用可能であって、ＳｈａｒｅＰｏｉｎｔ（登録商標）の用語を用いて以下に例を挙げる。そのような用語の使用が本発明の限定を意図するものではなく、本発明の実施形態がデータベース環境においてデータをオブジェクトに保存する各種アプリケーションと共に使用できる点を理解されたい。
【００２４】
サイト、サブサイト、リスト、および項目の間の関係が階層的な関係である点に更に注意されたい。上述のように、アプリケーションオブジェクト内の子オブジェクトの階層が親オブジェクトの特徴を継承できる。更に、上で述べたコンテナの例えを用いれば、リスト等の子コンテナオブジェクトは親サブサイトまたはサイト内に含まれる。従って、子オブジェクトをターゲットデータベースに復元するためには、子オブジェクトが正しく且つ完全に復元されるために既に復元されてない親オブジェクトを最初にターゲットデータベース内に復元しなければならない。これにより、階層内で子が正しく配置されると共に、子の親オブジェクトから特徴を継承することができる。
【００２５】
図３は、本発明の実施形態によるバックアップ処理を示す概略フロー図である。バックアップサーバ１６０は、データベース１２０のバックアップを実行する旨のリクエストを受信することができる（３１０）。この時点で２個の処理が開始される。これらの処理は並列に実行されても、またはデータベース１２０の構造が同じである程度に充分近い時間をおいて順次実行されてもよい。データベースの一括バックアップを実行する（３２０）。そのようなバックアップは、バックアップ時における当該データベースに関連する全ての情報を含むデータベース１２０のスナップショットであってよい。一括バックアップは、バックアップサーバとデータベースサーバの間の直接対話を利用して実行される。バックアップは、例えばウェブサーバ１５０が与えるアプリケーションオブジェクトモデルを用いて実行されるのではない。
【００２６】
また、メタデータテーブル情報についてデータベース１２０に問い合わせることができる（３３０）。メタデータテーブル情報には、データベース１２０内の各種のオブジェクト構造の特徴を含むテーブルに関する情報を含んでいる。求められているテーブル情報にはテーブルの索引、データベース内でのテーブルのオフセット（例：テーブルの位置）、テーブルの名前、およびテーブルの構造が含まれていてよい。このように、データベース１２０内の関心対象オブジェクトを記述する各テーブルを識別および特定する情報が集められる。
【００２７】
本発明の実施形態は、復元動作の際にテーブルにアクセス可能なように上記のメタデータテーブル情報を集める。従って、そのようなメタデータテーブルアクセスを可能にすべく充分な情報が集められるが、テーブル自体に実際に保存されている情報は対象外である。メタデータテーブル情報が集められたならば、メタデータテーブル情報を保存することができる（３４０）。そのような保存方式は、例えばテーブルのリスト形式であってよい。メタデータテーブル情報のそのようなアクセスおよび保存を実行できるユーティリティの例として係属中の米国特許出願第１１／９６０，３０９号明細書「Ｔｅｃｈｎｉｑｕｅｓ  ｆｏｒ  Ｒｅｃｏｖｅｒｙ  ｏｆ  Ａｐｐｌｉｃａｔｉｏｎ  Ｌｅｖｅｌ  Ｏｂｊｅｃｔｓ」に記述されており、その開示内容は全て本明細書に引用している。
【００２８】
バックアップが完了してメタデータテーブル情報が保存されたならば、メタデータテーブル情報をデータベースのバックアップに関連付ける（３５０）。そのような関連付けにより、復元動作中であってもメタデータテーブル情報が保存されたリストへのアクセスが可能になる。
【００２９】
図４は、本発明の実施形態によるデータベースの復元動作を示す概略フロー図である。指定されたバックアップからアプリケーションオブジェクト情報を復元する旨のユーザーリクエストに応答して、復元ユーティリティは、指定されたバックアップに関連付けられたメタデータテーブル情報を読み込んでバックアップ内でアプリケーションオブジェクトを記述するテーブルの位置および構造を決定することができる（４１０）。復元ユーティリティは次いで、メタデータテーブルの情報から情報を用いて、バックアップから直接テーブルデータを読み込むことができる（４１５）。次いで、テーブルデータが読み込まれたならば、当該データを解釈してデータベースのバックアップ内におけるアプリケーションオブジェクトの階層を決定することができる（４２０）。次いで、解釈されたオブジェクトの階層をユーザーに提示することができる（４２５）。ユーザーは次いで、ユーザーが復元したいオブジェクトを決定すべく提示されたオブジェクトの階層を確認することができる。ユーザーは、階層の任意のレベルでオブジェクトを選択することができる。
【００３０】
ユーザーが所望のオブジェクトを復元するために選択したならば、復元ユーティリティはオブジェクトの選択結果を受信することができる（４３０）。この時点で、復元ユーティリティは、各々の階層内で選択されたオブジェクトの復元に必要な全てのオブジェクトを復元すべく復元動作を開始する。例えば、Ｌｉｓｔオブジェクトが選択されている場合、Ｌｉｓｔオブジェクトが関連付けられている任意のサイトまたは下位Ｓｉｔｅオブジェクトもまた復元動作を施される。上述のように、これはＬｉｓｔオブジェクトがＳｉｔｅオブジェクトの子として親オブジェクトの特定の特徴を継承するためである。従って、復元ユーティリティは、階層を復元するための一連のステップを実行する。
【００３１】
従って、選択されたオブジェクトの復元に必要な階層内の最上位オブジェクトが復元される最初のオブジェクトとなる（４３５）。復元ユーティリティは復元対象オブジェクトに関連するバックアップからメタデータテーブルデータを読み込む（４４０）。再び、復元対象オブジェクトに関連付けられた適切なメタデータテーブルまたはテーブル群の特定に必要な情報は、バックアップに関連付けられたメタデータテーブル情報から読み込むことができる。復元対象オブジェクトに関連する情報がテーブルから読み込まれたならば、ターゲットデータベースに復元対象オブジェクトが既に存在するか否かを判定する（４４５）。復元対象オブジェクトが既にターゲットデータベースに存在しない場合、バックアップから読み込まれたテーブルデータを用いてターゲットデータベース内に復元対象オブジェクトを作成する（４５０）。復元対象オブジェクトの復元は、例えばウェブサーバ１５０のサービスを受けるアプリケーションオブジェクトモデルにオブジェクト関連情報を提供することにより実行できる。アプリケーションオブジェクトモデルを用いてターゲットデータベース内に復元対象オブジェクトを生成することにより、構造とそれらに関連付けられたアプリケーションの整合性が保証される。
【００３２】
ターゲットデータベース内におけるオブジェクトの作成、または当該オブジェクトが既に復元されている旨の判定に続いて、復元対象オブジェクトが復元のためにユーザーにより選択されたオブジェクトと同一であるか否かを判定する（４５５）。復元対象オブジェクトがユーザーにより選択されたオブジェクトではない場合、選択されたオブジェクトの復元に必要な階層内の次のオブジェクトである次の復元対象オブジェクトが選択される（４６０）。次いで、処理は再び、新規の復元対象オブジェクトに関連するバックアップからテーブルデータを読み込むステップに戻り（４４０）、上述のように当該処理が繰り返される。
【００３３】
復元対象オブジェクトがユーザーにより選択されたオブジェクトである場合（４５５）、選択されたオブジェクトがユーザーにより最後に選択されたオブジェクトであるか否かを判定する（４６５）。すなわち、ユーザーにより選択された各オブジェクトが現在復元済みであるか否かを判定する。そうでない場合、次に選択されたオブジェクトが復元対象とされて、次に選択されたオブジェクトの復元に必要な階層内の最上位オブジェクトの決定に処理が戻り（４３５）、上述のように当該処理が繰り返される。選択されたオブジェクトがユーザーにより最後に選択されたオブジェクトである場合（４６５）、復元プロセスは完了している。
【００３４】
上述の復元方法を用いて、バックアップされたデータベース内の選択されたオブジェクトをサポートするのに必要な階層全体をターゲットデータベースに復元することができる。また、当該オブジェクトの全ての特徴は、リクエストされたオブジェクトの記述に必要な特徴を含むデータベースのバックアップ内の保存されたテーブルにアクセスすることにより復元される。ターゲットデータベース内でオブジェクトを作成する必要がある場合（例：ステップ４５０）、復元ユーティリティは、当該オブジェクトに関連付けられたアプリケーションウェブサーバ１５０にアクセスして、バックアップテーブルから取り出した特徴情報を用いてターゲットデータベース内にオブジェクトを作成することができる。このように、アプリケーションがオブジェクトにアクセスするために必要な構造は、アプリケーションオブジェクトモデルにより自動的に作成することができ、同時に、オブジェクトを記述する必要な特徴情報がバックアップから提供される。
【００３５】
そのような復元技術を用いて、バックアップされたデータベース内の関連付けられたコンテナと同じ特徴を有するターゲットデータベース内にコンテナを作成することができる。ユーザーは従って、バックアップされたデータベースの同一であるが、バックアップされたデータベースに保存されているもの以外のデータについても利用可能であるターゲットデータベース内に構造を作成することができる。すなわち、バックアップされたデータベースは、ターゲットデータベースのテンプレートとして機能する。データはまた、バックアップされたデータベースからターゲットデータベースに復元することもできる。ターゲットデータベース内に適切なコンテナが構成されたならば、ターゲットデータベース内の適切な構造にデータをより高速且つ効率的に復元すべく、必要に応じて、データベースサーバとバックアップサーバの間でデータベースサーバへの直接アクセスを行うことができる。
【００３６】
コンピューティングおよびネットワーク環境の例
上述のように、本発明は各種のコンピュータシステムおよびネットワークを用いて実装することができる。そのようなコンピューティングおよびネットワーク環境の一例について図５、６を参照しながら以下に述べる。
【００３７】
図５に、本発明の態様の実装に適したコンピュータシステム５１０（例：クライアント１４０、バックアップサーバ１６０、データベースサーバ１１０、およびウェブサーバ１５０）のブロック図を示す。コンピュータシステム５１０は、中央処理装置５１４、システムメモリ５１７（通常はＲＡＭであるが、ＲＯＭ、フラッシュＲＡＭ、等を含んでいてよい）、入出力コントローラ５１８、音声出力インターフェース５２２を介したスピーカーシステム５２０等の外部音声装置、ディスプレイアダプタ５２６を介したディスプレイ画面５２４等の外部装置、シリアルポート５２８および５３０、キーボード５３２（キーボードコントローラ５３３とのインターフェースを有する）、ストレージインターフェース５３４、フロッピー（登録商標）ディスク５３８を受容すべく動作可能なフロッピー（登録商標）ディスクドライブ５３７、ファイバーチャネルネットワーク５９０に接続すべく動作可能なホストバスアダプタ（ＨＢＡ）インターフェースカード５３５Ａ、ＳＣＳＩバス５３９に接続すべく動作可能なホストバスアダプタ（ＨＢＡ）インターフェースカード５３５Ｂ、および光ディスク５４２を受容すべく動作可能な光ディスクドライブ５４０等、コンピュータシステム５１０の主要なサブシステムを相互接続するバス５１２を含んでいる。マウス５４６（またはシリアルポート５２８を介してバス５１２に接続されている他のポイントアンドクリック装置）、モデム５４７（シリアルポート５３０を介してバス５１２に接続されている）、およびネットワークインターフェース５４８（バス５１２に直接接続されている）も含まれている。
【００３８】
バス５１２は、中央処理装置５１４と、上述のように読出し専用メモリ（ＲＯＭ）またはフラッシュメモリ（共に図示せず）、およびランダムアクセスメモリ（ＲＡＭ）（図示せず）を含むシステムメモリ５１７との間のデータ通信を可能にする。ＲＡＭは一般に、オペレーティングシステムおよびアプリケーションプログラムがロードされる主メモリである。ＲＯＭまたはフラッシュメモリは、他のコードと共に、周辺装置との対話等の基本ハードウェア動作を制御する基本入出力システム（ＢＩＯＳ）を含んでいてよい。コンピュータシステム５１０に常駐するアプリケーションは一般に、ハードディスクドライブ（例：固定ディスク５４４）、光ドライブ（例：光ドライブ５４０）、フロッピー（登録商標）ディスクドライブ５３７その他の記録媒体等のコンピュータ可読媒体に保存されてアクセスされる。アプリケーションはまた、ネットワークモデム５４７またはインターフェース５４８を介してアクセスされた際にアプリケーションおよびデータ通信技術に従い変調された電子信号の形式であってよい。
【００３９】
ストレージインターフェース５３４は、コンピュータシステム５１０の他のストレージインターフェースと同様に、情報を保存および／または取得すべく固定ディスクドライブ５４４等の標準的なコンピュータ可読媒体に接続することができる。固定ディスクドライブ５４４は、コンピュータシステム５１０の一部であっても、または別々であって他のインターフェースシステムによりアクセスされてもよい。モデム５４７は、電話線を介してリモートサーバへの、またはインターネットサービスプロバイダ（ＩＳＰ）を介してインターネットへの直接接続を提供することができる。ネットワークインターフェース５４８は、ＰＯＰ（ｐｏｉｎｔ  ｏｆ  ｐｒｅｓｅｎｃｅ）を介したインターネットへの直接ネットワーク接続を介してリモートサーバへの直接接続を提供することができる。ネットワークインターフェース５４８は、デジタルセルラー電話接続、セルラーデジタルパケットデータ（ＣＤＰＤ）接続、デジタル衛星データ接続等を含む無線技術を用いてそのような接続を提供することができる。
【００４０】
他の多くの装置またはサブシステム（図示せず）も同様の方法（例：文書スキャナ、デジタルカメラ等）で接続することができる。逆に、図５に示す装置の全てが本発明の実施に必要である訳ではない。これらの装置およびサブシステムは、図５に示すものとは異なる方法で相互接続することができる。図５に示すようなコンピュータシステムの動作は当分野では公知であるため本出願では詳述しない。本発明を実装するコードは、システムメモリ５１７、固定ディスク５４４、光ディスク５４２、またはフロッピー（登録商標）ディスク５３８のうち１個以上のコンピュータ可読な記録媒体に保存することができる。コンピュータシステム５１０に提供されるオペレーティングシステムは、ＭＳ−ＤＯＳ（登録商標）、ＭＳ−ＷＩＮＤＯＷＳ（登録商標）、ＯＳ／２（登録商標）、ＵＮＩＸ（登録商標）、Ｌｉｎｕｘ（登録商標）、または他の公知のオペレーティングシステムであってよい。
【００４１】
更に、本明細書に記述する信号に関して、当業者には信号を第１のブロックから第２のブロックへ直接送信できるかまたは信号をブロック間で変更（例：増幅、減衰、遅延、ラッチ、バッファリング、反転、フィルタリング、または別途変更）できることが理解されよう。上述の実施形態の信号は、あるブロックから次のブロックへ送信されるように特徴付けられているが、本発明の他の実施形態において、信号の情報および／または機能態様がブロック間で送信される限りそのように直接送信された信号ではなく変更された信号を含んでいてよい。第２のブロックに入力された信号は、ある程度、関与する回路の物理的制約（例：必然的に若干の減衰および遅延が生じ得る）のために第１のブロックから出力された第１の信号から導かれた第２の信号として概念化できる。従って、本明細書で用いるように、回路制約に起因するかまたは第１の信号の情報および／または最終的な機能態様を変えない他の回路要素を通過したことに起因するかに関らず、第１の信号から導かれた第２の信号は第１の信号または第１の信号に加えられた任意の変更を含んでいる。
【００４２】
図６は、クライアントシステム６１０、６２０および６３０、並びにストレージサーバ６４０Ａ、６４０Ｂ（いずれかもコンピュータシステム７１０を用いて実装可能）がネットワーク６５０に接続されているネットワークアーキテクチャ６００を示すブロック図である。ストレージサーバ６４０Ａは更に記憶装置６６０Ａ（１）〜（Ｎ）が直接取り付けられている状態で表されており、ストレージサーバ６４０Ｂは記憶装置６６０Ｂ（１）〜（Ｎ）が直接取り付けられている状態で表されている。ストレージサーバ６４０Ａ、６４０Ｂはまた、ＳＡＮファブリック６７０に接続しているが、ストレージエリアネットワークへの接続は本発明の動作には必須ではない。ＳＡＮファブリック６７０はストレージサーバ６４０Ａ、６４０Ｂにより、且つネットワーク６５０を介してクライアントシステム６１０、６２０および６３０により、記憶装置６８０（１）〜（Ｎ）へのアクセスを支援する。ＳＡＮファブリック６７０を介してアクセス可能な特定の記憶装置の例としてインテリジェントストレージアレイ６９０も示す。
【００４３】
コンピュータシステム５１０に関して、モデム５４７、ネットワークインターフェース５４８または他の何らかの方法を用いて、クライアントシステム６１０、６２０および６３０の各々からネットワーク６５０への接続を提供することができる。クライアントシステム６１０、６２０および６３０は、例えばウェブブラウザその他のクライアントソフトウェア（図示せず）を用いてストレージサーバ６４０Ａまたは６４０Ｂに関する情報にアクセスすることが可能である。そのようなクライアントにより、クライアントシステム６１０、６２０および６３０が、ストレージサーバ６４０Ａまたは６４０Ｂ、または記憶装置６６０Ａ（１）〜（Ｎ）、６６０Ｂ（１）〜（Ｎ）、６８０（１）〜（Ｎ）の１個、あるいはインテリジェントストレージアレイ６９０によりホスティングされているデータにアクセスができる。図６は、データをやり取りするインターネット等のネットワークの利用を示すが、本発明はインターネットまたは何らかの特定のネットワーク利用環境に限定されない。
【００４４】
他の実施形態
本発明は、上述の利点および他の固有の利点を実現するのに良く適している。本発明の特定の実施形態を参照することにより、本発明を図示、記述、および定義しているが、そのような参照は本発明を限定するものではなく、そのような限定を示唆するものでもない。本発明は当業者に想起されるように、形式および機能面で大幅な変更、変形、および等価物の実施が可能である。図示および記述されている実施形態は例に過ぎず、本発明の範囲を網羅していない。
【００４５】
上の記述は、他の構成要素（例：コンピュータシステム５１０の構成要素として示す各種要素）内に含まれる構成要素を含む実施形態を記述している。そのようなアーキテクチャは単に例に過ぎず、実際、同一機能を実現する他の多くのアーキテクチャを実装することができる。抽象的ながら明確な意味において、同一機能を実現する要素の任意の構成が、所望の機能性が実現されるように、事実上「関連付けられている」。従って、本明細書において特定の機能を実現すべく組み合わされた任意の２個の構成要素は、アーキテクチャまたは中間の構成要素に関らず、所望の機能が実現されるように互いに「関連付けられている」ものと見なすことができる。同様に、そのように関連付けられた任意の２個の構成要素もまた、所望の機能を実現すべく互いに「動作可能に接続されている」または「動作可能に結合されている」ものと見なすことができる。
【００４６】
上の詳細な記述は、ブロック図、フロー図および例を用いて本発明の各種実施形態を開示している。例を用いて示す各ブロック図の構成要素、フロー図のステップ、動作および／または構成要素が、広範なハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにより個別および／または集合的に実装可能であることが当業者には理解されよう。例えば、上述の機能ブロックの１個以上に関連付けられた機能を実装するために特定の電子部品を特定用途向け集積回路または類似あるいは関連回路で使用できる。
【００４７】
本発明について、完全に機能的なコンピュータシステムの文脈で記述してきた。しかし、当業者には本発明が各種形式のプログラム製品として配布でき、本発明がそのような配布を実際に行うために用いる特定の信号搬送媒体の種類によらず同等に適用できることが理解されよう。信号搬送媒体の例として、コンピュータ可読な記録媒体、デジタルおよびアナログ通信接続等の送信型媒体、並びに将来開発される媒体記憶および配信システムが含まれる。
【００４８】
上述の実施形態は、特定のタスクを実行するソフトウエアモジュールにより実装することができる。本明細書で議論したソフトウエアモジュールは、スクリプト、バッチ、または他の実行可能ファイルを含んでいてよい。本明細書で議論したソフトウエアモジュールは更に、そのような命令を実行すべく構成されたプロセッサにより、実行可能な１個以上の命令の組を含んでいてよい。ソフトウエアモジュールは、磁気フロッピー（登録商標）ディスク、ハードディスク、半導体メモリ（例：ＲＡＭ、ＲＯＭおよびフラッシュ型媒体）、光ディスク（例：ＣＤ−ＲＯＭ、ＣＤ−Ｒ、およびＤＶＤ）、または他の種類のメモリモジュール等、機械可読またはコンピュータ可読な記録媒体に保存することができる。本発明の実施形態に従いファームウェアまたはハードウェアモジュールを保存すべく使用される記憶装置はまた、マイクロプロセッサ／メモリシステムに永久に、着脱自在に、または遠隔的に接続可能な半導体利用メモリを含んでいてよい。従って、これらのモジュールは、モジュールの機能を実行するようにコンピュータシステムを構成すべくコンピュータシステムメモリ内に保存することができる。他の新規且つ各種のコンピュータ可読な記録媒体を用いて本明細書で議論したモジュールを保存してもよい。
【００４９】
上の記述は、本発明を例示することを目的としており、本発明を限定するものと考えてはならない。本発明の範囲内の他の実施形態も可能である。当業者であれば、本明細書に開示した構造および方法を実施するのに必要なステップを容易に実装することができ、ステップの処理パラメータおよびシーケンスは単なる例として与えられており、所望の構造並びに本発明の範囲内に含まれる変更を実現するために変更可能である点を理解されよう。本明細書に開示した実施形態の変形および変更は、本発明の範囲を逸脱することなく本明細書に開示した記述に基づいて実施することができる。
【００５０】
従って、本発明は、あらゆる点において等価物を完全な認識した上で添付の請求の範囲だけに制約されることを意図している。
【００５１】
本発明はいくつかの実施形態との関連で記述されているが、本明細書に開示した特定の形式に本発明を限定することは意図していない。むしろ、添付の請求の範囲に規定されるように、そのような変形、変更、および等価物が必然的に本発明の範囲に含まれるものとする。
【図１】
0005646489.tif 000002
【図２】
0005646489.tif 000003
【図３】
0005646489.tif 000004
【図４】
0005646489.tif 000005
【図５】
0005646489.tif 000006
【図６】
0005646489.tif 000007