(57)【特許請求の範囲】
【請求項１】
クラウド・コンピューティング環境のマルチ・テナントサービスにおいてテナントの移行にわたるテナント・データをリカバリするために、プロセッサ上で実施する方法であって、
テナントのバックアップ・データを生成するために、バックアップ動作を前記テナント・データに対して実行するステップと、
前記テナント・データのヒストリ・データベースを保持するステップであって、前記ヒストリ・データベースが、前記テナント・データの第１ストレージ位置と、対応する前記テナントのバックアップ・データの第２ストレージ位置とを少なくとも含む、ステップと、
前記テナント・データの第１ストレージ位置を、異なる第３ストレージ位置に変更する変更動作を判断するステップと、
前記変更動作に応じて、前記ヒストリ・データベースを更新するステップであって、
前記テナント・データの格納位置が前記第３ストレージ位置を示すように、レコードを追加し、
前記テナント・データの格納位置についての前記レコードの追加に関連付けられる時間を追加する、
ことを含む、ステップと、
要求されたときに、前記テナント・データの第１ストレージ位置を判断するために、前記ヒストリ・データベースにアクセスするステップと、
前記第１ストレージ位置に格納された前記テナント・データを用いて、前記テナント・データを前記第３ストレージ位置にリストアするステップと
を含む、方法。
【請求項２】
前記ヒストリ・データベースが、テナント・データおよびバックアップ・データの内少なくとも１つの負荷バランシングに応じて更新される、請求項１記載の方法。
【請求項３】
前記ヒストリ・データベースが、テナントの移行に応じて更新される、請求項１記載の方法。
【請求項４】
前記ヒストリ・データベースが、ファーム・アップグレードに応じて更新される、請求項１記載の方法。
【請求項５】
前記ヒストリ・データベースを更新するステップが、前記テナント・データのバックアップに対応するバックアップ・データのストレージ位置を格納するステップを含む、請求項１記載の方法。
【請求項６】
請求項５記載の方法において、前記バックアップ・データが、前記テナント・データのフル・バックアップ、前記テナント・データのインクリメント式バックアップ、および前記テナント・データのトランザクション・ログ・バックアップを含む、方法。
【請求項７】
請求項１記載の方法において、前記ヒストリ・データベースにアクセスする前記ステップが、前記要求内で特定される時間を、前記ヒストリ・データベース内で前記テナント・データに関連付けられた少なくとも１つの時間と比較することに基づいて、前記テナント・データの第１ストレージ位置を判断するステップを含む、方法。
【請求項８】
請求項１記載の方法であって、前記テナント・データをリストアする前記ステップが、前記テナント・データを一時的ストレージ位置にリストアするステップと、要求されたデータを前記一時的ストレージ位置から抽出するステップと、前記抽出したデータを前記テナント・データの第３ストレージ位置に配置するステップとを含む、方法。
【請求項９】
クラウド・コンピューティング環境のマルチ・テナントサービスにおいてテナントの移行にわたるテナント・データをリカバリするためのコンピューター実行可能命令を格納するコンピューター可読ストレージ媒体であって、該コンピューター実行可能命令が、
テナント・バックアップ・データを生成するために、バックアップ動作を前記テナント・データに対して実行するステップと、
前記テナント・データのヒストリ・データベースを保持するステップであって、前記ヒストリ・データベースが、前記テナント・データの第１ストレージ位置と、対応する前記テナントのバックアップ・データの第２ストレージ位置とを少なくとも含む、ステップと、
前記第１ストレージ位置を、異なる第３ストレージ位置に変更する変更動作を判断するステップと、
前記変更動作に応じて、前記ヒストリ・データベースを更新するステップであって、
前記テナント・データの格納位置が前記第３ストレージ位置を示すように、レコードを追加し、
前記テナント・データの格納位置についての前記レコードの追加に関連付けられる時間を追加する、
ことを含む、ステップと、
要求されたときに、前記テナント・データの第１ストレージ位置を判断するために、前記ヒストリ・データベースにアクセスするステップと、
前記第１ストレージ位置に格納された前記テナント・データを用いて前記テナント・データを前記第３ストレージ位置にリストアするステップと、
を含む、コンピューター可読ストレージ媒体。
【請求項１０】
請求項９記載のコンピューター可読ストレージ媒体において、前記ヒストリ・データベースが、テナント・データおよびバックアップ・データの内少なくとも１つへの負荷バランシング、テナントの移行、並びにファーム・アップグレードの内少なくとも１つに応じて更新される、コンピューター可読ストレージ媒体。
【請求項１１】
前記ヒストリ・データベースを更新するステップが、前記テナント・データのバックアップに対応するバックアップ・データのストレージ位置を格納するステップを含む、請求項９記載のコンピューター可読ストレージ媒体。
【請求項１２】
前記バックアップ・データが、前記テナント・データのフル・バックアップ、前記テナント・データのインクリメント式バックアップ、および前記テナントのデータのトランザクション・ログ・バックアップを含む、請求項１１記載のコンピューター可読ストレージ媒体。
【請求項１３】
前記ヒストリ・データベースにアクセスする前記ステップが、前記要求内で特定される時間を前記ヒストリ・データベース内で前記テナント・データに関連付けられた少なくとも１つの時間と比較することに基づいて、前記テナント・データの第１ストレージ位置を判断するステップを含む、請求項９記載のコンピューター可読ストレージ媒体。
【請求項１４】
前記テナント・データをリストアする前記ステップが、前記テナント・データを一時的なストレージ位置にリストアするステップと、要求されたデータを前記一時的なストレージ位置から抽出するステップと、前記抽出したデータを前記テナント・データの前記第３ストレージ位置に配置するステップとを含む、請求項９記載のコンピューター可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  テナント・データは、様々な理由により異なる位置へ移行されることがある。例えば、ファームのアップグレードの際に、テナント・データが移行されることがあり、より多くのスペースがテナント・データ等に必要とされる。このような場合にテナント・データの新規バックアップが実施される。
【発明の概要】
【課題を解決するための手段】
【０００２】
[0002]  ここで要約することにより、簡略化した形態での概念についての選択を導入し、以下の詳細な説明において更に説明する。本要約は、クレームされた主題についての重要な特徴または必須の特徴を特定することを意図するものではなく、また、クレームされた手段の範囲を決定する補助として用いることを意図するものでもない。
【０００３】
[0003]  テナント・データの位置に関するヒストリが保持される。テナント・データは、テナントが現在使用しているデータ、および対応するバックアップ・データを含む。テナントのデータが１つの位置から別の位置に変更される場合、位置および時間がヒストリ内に格納される。ヒストリは、特定の時間におけるテナントのデータの位置を決定するためにアクセスすることができる。異なる動作が、ヒストリ内の位置／時間の格納をトリガする。通常は、テナントのデータの位置の変更（例えばファームのアップグレード、テナントの移行、テナントの追加、データの負荷バランシングなど）がヒストリ内の位置の格納をトリガする。テナント・データが動作（例えばリストア）のために要求される際、このヒストリにアクセスして、データの位置を決定することができる。
【図面の簡単な説明】
【０００４】
【図１】[0004]図１は、例示的なコンピューティング環境を示す。
【図２】[0005]図２は、テナント移行にわたるテナント・データの位置を保持するためのシステムを示す。
【図３】[0006]図３は、テナント・データ位置変更のレコードを含むヒストリを示す。
【図４】[0007]図４は、テナントのデータ位置変更のヒストリを更新するためのプロセスを示す。
【図５】[0008]図５は、バックアップ位置からのテナント・データのリストアの要求を処理するためのプロセスを示す。
【発明を実施するための形態】
【０００５】
[0009]  これより図面を参照する。類似の符号は類似の構成要素を表し、様々な実施形態を説明することになる。特に、図１および対応の説明は、複数の実施形態が実装される適切なコンピューティング環境についての簡潔且つ一般的な説明に供することを意図している。
【０００６】
[0010]  通常、プログラム・モジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のタスクを実行し、または特定の抽象データ・タイプを実装する他のタイプの構造を含む。他のコンピュータ・システム構成はまた、ハンド・ヘルド・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースまたはプログラム可能なコンシューマ・エレクトロニクス、ミニコンピューター、メインフレーム・コンピュータなどを含んで使用することもできる。分散コンピューティング環境をまた用いることができ、タスクは、通信ネットワークを通じてリンクされる遠隔処理デバイスが実行する。分散コンピューティング環境では、プログラム・モジュールは、ローカルおよび遠隔のメモリ・ストレージ・デバイス双方に位置してもよい。
【０００７】
[0011]  これより図１を参照して、様々な実施形態において利用されるコンピュータ１００のための例示のコンピュータ環境について説明する。図１に示すコンピュータ環境は、複数のコンピューティング・デバイスを含み、各々がモバイル・コンピューティング・デバイス（例えば、電話、タブレット、ネット・ブック、ラップトップ）、サーバ、デスクトップまたは他のタイプのコンピュータとして構成することができる。また、このコンピュータ環境は、中央演算処理装置５（「ＣＰＵ」）、ランダム・アクセス・メモリ９（「ＲＡＭ」）およびリードオンリ・メモリ（「ＲＯＭ」）１０を含むシステム・メモリ７、並びにメモリを中央演算処理装置（「ＣＰＵ」）５に結合するシステム・バス１２を含む。
【０００８】
[0012]  基本ルーチンを収容する基本入出力システムは、スタートアップの間のような、コンピュータ内のエレメント間での情報の移送を支援し、ＲＯＭ１０に格納される。コンピュータ１００は更に、オペレーティング・システム１６、アプリケーション（１つまたは複数）２４、ウェブ・ブラウザ２５およびバックアップ・マネージャ２６を格納するための大容量ストレージ・デバイス１４を含み、これより以下に詳細に説明する。
【０００９】
[0013]  大容量ストレージ・デバイス１４は、バス１２に接続される大容量記憶コントローラー（図示せず）を通じてＣＰＵ５に接続される。大容量ストレージ・デバイス１４および付随するコンピュータ可読媒体は、不揮発性ストレージをコンピュータ１００に設ける。本明細書では、コンピュータ可読媒体について、例えばハード・ディスクやＣＤ-ＲＯＭドライブのような大容量ストレージ・デバイスと称する。このコンピュータ可読媒体は、コンピュータ１００によってアクセスできる如何なる利用可能媒体とすることができる。
【００１０】
[0014]  例えば、この例には限定しないが、コンピュータ可読媒体は、コンピュータ・ストレージ媒体および通信媒体を含むことができる。コンピュータ・ストレージ媒体は、コンピュータ可読命令、データ構造、プログラム・モジュールまたは他のデータのような情報の記憶について任意の方法または技術で実装される揮発性および不揮発性のもので、取り外し可能および取り外し不能な媒体を含む。コンピュータ・ストレージ媒体は、これに限定されないが、ＲＡＭ、ＲＯＭ、消去可能プログラム可能リードオンリ・メモリ（「ＥＰＯＭ」；Erasable Programmable Read Only Memory）、電気的消去可能プログラム可能リードオンリ・メモリ（「ＥＥＰＲＯＭ」；Electrically Erasable Programmable Read Only Memory）、フラッシュ・メモリ、若しくは他の固体メモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（「ＤＶＤ」）、若しくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ、若しくは他の磁気ストレージ・デバイス、または所望の情報を格納するのに用いることができ、且つコンピュータ１００がアクセス可能な他の任意の媒体を含む。
【００１１】
[0015]  コンピュータ１００は、インターネットのようなネットワーク１８を通じ、遠隔コンピュータへの論理接続を用いたネットワーク化された環境において動作する。コンピュータ１００は、バス１２に接続されるネットワーク・インターフェース・ユニット２０を通じてネットワーク１８に接続してもよい。ネットワーク接続は、無線および／または有線としてもよい。ネットワーク・インターフェース・ユニット２０はまた、他のタイプのネットワークおよび遠隔コンピュータ・システムに接続するために利用してもよい。コンピュータ１００はまた、キーボード、マウスまたは電子ペン（図１には図示せず）を含む数多くの他のデバイスからの入力を受信および処理するための入出力用コントローラ２２を含むこともできる。同様に、入出力用コントローラ２２は、ディスプレイ・スクリーン２３、プリンタ、または他のタイプの出力デバイスに入力／出力を提供してもよい。
【００１２】
[0016]  先に簡潔に言及したように、多くのプログラム・モジュールおよびデータ・ファイルは、コンピュータ１００が有する大容量ストレージ・デバイス１４およびＲＡＭ９に格納することができる。これらは、ワシントン州のレドモンドにあるマイクロソフト社による、WINDOWS 7（登録商標）、WINDOWS SERVER（登録商標）、WINDOWS PHONE（登録商標）におけるオペレーティング・システムのような、コンピュータの動作を制御するのに適したオペレーティング・システム１６を含む。大容量ストレージ・デバイス１４およびＲＡＭ９はまた、１つ以上のプログラム・モジュールを格納することもできる。特に、大容量ストレージ・デバイス１４およびＲＡＭ９は、１つ以上のアプリケーション・プログラムを格納することができ、これは、１つ以上のアプリケーション２４およびウェブ・ブラウザ２５を含む。一実施形態によれば、アプリケーション２４は、異なるテナントに複数のサービスを提供するソリューション・サービスのビジネス・ポイントのような、オンライン・サービスと相互作用するように構成される。他のアプリケーションも使用することができる。例えば、アプリケーション２４は、データと相互作用するように構成されるクライアント・アプリケーションとすることができる。アプリケーションは、限定ではないが、ドキュメント、スプレッドシート、スライド、ノート等を含む多くの異なるデータ・タイプと相互作用するように構成することができる。
【００１３】
[0017]  ネットワーク・ストア２７は、テナントについてのテナント・データを格納するように構成される。ネットワーク・ストア２７は、ＩＰネットワーク１８を介して１以上のコンピュータ／ユーザにアクセス可能である。例えば、ネットワーク・ストア２７は、オンライン・サービス１７のようなオンライン・サービスに対し１つ以上のテナントについてのテナント・データを格納することができる。他のネットワーク・ストアがまた、テナントについてデータを格納するように構成することもできる。テナント・データはまた、ネットワーク・ストアからの別のネットワーク・ストアに移行することもできる。
【００１４】
[0018]  バックアップ・マネージャ２６は、ヒストリ２１のような履歴内にテナント・データの位置を保持するように構成される。バックアップ・マネージャ２６は、オンライン・サービス１７のようなオンライン・サービスの一部とすることができ、また、バックアップ・マネージャ２６から提供される全て／幾つかの機能性は、アプリケーションから内部的に／外部的に位置させることができる。テナント・データは、テナントによって現在使用されているデータおよび対応するバックアップ・データを含む。テナントのデータが１つの位置から別の位置に変更されると、位置および時間がヒストリ２１内に格納される。ヒストリ２１は、特定の時間においてテナントのデータにおける位置を決定するのにアクセスすることができる。異なる動作が、ヒストリ内の位置／時間の格納をトリガする。通常、テナントのデータの位置を変更する動作（例えば、ファームの更新、テナントの移動、テナントの追加、データの負荷バランスなど）は、ヒストリ内の位置の格納をトリガする。テナント・データが、ある動作（例えば、リストア）に必要とされる際、そのヒストリはデータの位置を決定するのにアクセスされることができる。バックアップ・マネージャに関するより多くの詳細について以下に開示する。
【００１５】
[0019]  図２は、テナントの移行にわたるテナント・データの位置を保持するためのシステムを示す。図示のように、システム２００は、サービス２１０、データ・ストア２２０、データ・ストア２３０およびコンピューティング・デバイス２４０を含む。
【００１６】
[0020]  使用するコンピューティング・デバイスは、当該コンピューティング・デバイスの使用に関連する動作を実行するように構成される任意のタイプのデバイスとすることができる。例えば、コンピューティング・デバイスの幾らかは、以下のようにすることができる。すなわち、モバイル・コンピューティング・デバイス（例えば携帯電話、タブレット、スマートフォン、ラップトップなど）、また幾らかはデスクトップ・コンピューターでも、サーバとして構成される他のコンピューティング・デバイスでもよい。幾らかのコンピューティング・デバイスは、オンラインのクラウド・ベースのサービス（例えば、サービス２１０）を提供するように配置し、幾らかは、データ・ストレージ・サービスを提供するデータ・シェアとして配置し、また幾らかは、インターネットを通じてアクセス可能なようにネットワークに配置する等としてもよい。
【００１７】
[0021]  コンピューティング・デバイスは、ネットワーク１８によって結合される。ネットワーク１８は、多くの異なるタイプのネットワークとしてもよい。例えば、ネットワーク１８は、ＩＰネットワーク、セルラ通信のためのキャリア・ネットワーク等としてもよい。通常、ネットワーク１８は、コンピューティング・デバイス２４０、データ・ストア２２０、データ・ストア２３０、およびサービス２１０のようなコンピューティング・デバイス間においてデータを送信するために使用される。
【００１８】
[0022]  コンピューティング・デバイス２４０は、アプリケーション２４２、ウェブ・ブラウザ２４４およびユーザ・インターフェース２４６を含む。図示のように、コンピューティング・デバイス２４０は、ユーザに使用されて、サービス２１０のようなサービスと相互作用する。一実施形態によれば、サービス２１０は、マルチ・テナント性のサービスである。一般的に、マルチ・テナント性(multi-tenancy)とは、バックアップを含むデータの分離(isolation)、使用(usage)、およびカスタマ間の管理(administration)に関するものである。換言すれば、１つのカスタマ（テナント１）からのデータは、たとえ、各テナントからのデータが同一のデータ・ストア内で同一のデータベース内に格納することができる場合であっても、他のカスタマ（テナント２）によりアクセス可能ではない。
【００１９】
[0023]  ユーザ・インターフェース（ＵＩ）２４６は、様々なアプリケーションと相互作用するために用いられる。これらアプリケーションは、コンピューティング・デバイス２４０に対しローカル／非ローカルとしてもよい。１つ以上のタイプの１つ以上のユーザ・インターフェースを、ドキュメントと相互作用するために用いてもよい。例えば、ＵＩ２４６は、コンテキスト・メニュー、メニューバー内のメニュー、リボン・ユーザ・インターフェースから選択されるメニュー項目、グラフィック・メニューなどの使用を含んでもよい。通常ＵＩ２４６は、ユーザがアプリケーションの機能性と容易に相互作用できるように構成される。例えば、ユーザは、ＵＩ２４６内で単に選択肢を単に選択してもよく、その結果、サービス２１０によって保持されるテナント・データをリストアするように選択する。
【００２０】
[0024]  データ・ストア２２０およびデータ・ストア２３０は、テナント・データを格納するように構成される。データ・ストアは、様々なコンピューティング・デバイスによりアクセス可能である。例えば、ネットワーク・ストアは、ソリューション・サービスのオンライン・ビジネス・ポイントをサポートするオンライン・サービスに付随してもよい。例えば、オンライン・サービスは、データ・サービス、文書処理サービス、スプレッドシート・サービスなどを提供してもよい。
【００２１】
[0025]  図示のように、データ・ストア２２０は、Ｎ個の異なるテナントについて、対応するバックアップ・データを含んだテナント・データを含む。データ・ストアは、テナントのデータの全部／一部を格納することができる。例えば、幾らかのテナントが２つ以上のデータ・ストアを使用することがある一方で、他のテナントは、他の多くのテナントとデータ・ストアを共有することがある。テナントについて対応するバックアップ・データが同一のデータ・ストア内に示されているが、このバックアップ・データは他の位置に格納することもある。例えば、１つのデータ・ストアがテナント・データを格納するために使用されることがあり、また、１つ以上の他のデータ・ストアが対応するバックアップ・データを格納するために使用されることもある。
【００２２】
[0026]  データ・ストア２３０は、異なるデータ・ストアから変更されているテナント・データおよびバックアップ・データの位置を示す。この例では、テナント・データ２および対応するバックアップ・データが、データ・ストア２２０からデータ・ストア２３０に変更されている。テナント３のバックアップ・データが、データ・ストア２２０からデータ・ストア２３０に変更されている。テナント・データ８は、データ・ストア２２０からデータ・ストア２３０に変更されている。位置の変更は、様々な理由のために生じることがある。例えば、テナントにとってより多くの空間が必要になり、データ・ストアは負荷バランシングされ、テナントが位置するファームがアップグレードされ、データ・ストアが故障し、データベースが移行／更新されること等があり得る。他の多くのシナリオが、テナントのデータを変更させることがある。この例からも分かるように、テナントのデータは、１つのデータ・ストアに格納することができ、また、対応するバックアップ・データは、他のデータ・ストアに格納することができる。
【００２３】
[0027]  サービス２１０は、バックアップ・マネージャ２６、ヒストリ２１２およびウェブ・アプリケーション２１６を含み、ウェブ・アプリケーション２１６はウェブ・レンダラ２１６を構成する。サービス２１０は、オンライン・サービスとして構成され、複数のテナントからのデータとの相互作用を表示するのに付随するサービスを提供する。サービス２１０は、複数のテナントに共有したインフラストラクチャを提供する。一実施形態によれば、サービス２１０は、マイクロソフト社のＳＨＡＲＥＰＯＩＮＴ ＯＮＬＩＮＥサービスである。異なるテナントは、サービス２１０を使用しているテナントのウェブ・アプリケーション／サイト・コレクションの収集をホストしてもよい。テナントはまた、専用アローンでも、またはサービス２１０によって提供されるサービスとの組み合わせを使用してもよい。ウェブ・アプリケーション２１４は、データに関連する要求を受け取り、また応答するように構成される。例えば、サービス２１０は、ネットワーク・ストア２２０および／またはネットワーク・ストア２３０に格納されたテナントのデータにアクセスしてもよい。ウェブ・アプリケーション２１４は、コンピューティング・デバイス２４０のようなコンピューティング・デバイスのユーザにインターフェースを提供し、ネットワーク１８を介してアクセス可能なデータと相互作用するように動作する。ウェブ・アプリケーション２１４は、サービスに関連する動作を実行するために使用される他のサーバと通信することができる。
【００２４】
[0028]  サービス２１０は、コンピューティング・デバイス２４０のようなコンピューティング・デバイスから要求を受ける。コンピューティング・デバイスは、ドキュメントおよび／または他のデータと相互作用するために、要求をサービス２１０に送信する。このような要求に応答して、ウェブ・アプリケーション２１４は、ネットワーク・シェア２３０のような位置からデータを取得する。表示に対するデータは、ＩＳＯ／ＩＥＣ ２９５００フォーマットのようなマークアップ言語フォーマットに変換される。データは、サービス２１０によって、または、１つ以上の他のコンピューティング・デバイスによって変換することができる。一旦ウェブ・アプリケーション２１４がデータについてマークアップ言語表現を受け取ると、サービスは、ウェブ・レンダラを利用して、当該マークアップ言語フォーマットのドキュメントを、コンピューティング・デバイス２４０上のウェブ・ブラウザのようなウェブ・ブラウザ・アプリケーションによってレンダリングされるデータ表現へと変換することができる。レンダリングされたデータは、同一のデータをビューするのに利用される際の、対応のデスクトップ・アプリケーションにおける出力と実質的に同じである。一旦ウェブ・レンダラがファイルのレンダリングを完了すると、ファイルはサービス２１０によって、要求元のコンピューティング・デバイスに戻され、そこではウェブ・ブラウザ２４４によってレンダリングされることができる。
【００２５】
[0029]  ウェブ・レンダラ２１６はまた、コンピューティング・デバイス２４０のようなコンピューティング・デバイスのユーザがウェブ・ブラウザ２４４のコンテキスト内のデータと相互作用するのを可能にするために、１つ以上のスクリプトをマークアップ言語ファイルにレンダリングするようにも構成される。ウェブ・レンダラ２１６は、ウェブ・ブラウザ・アプリケーション２４４によって実行可能なスクリプト・コードを返される(returned)ウェブ・ページにレンダリングするように動作する。スクリプトは、例えばユーザがデータ・セクションを変更でき、および／またはそのデータに関連する値を修正できるような機能性を提供することができる。特定タイプのユーザ入力に応答して、スクリプトが実行されることができる。スクリプトが実行されると、ドキュメントが作用(act upon)されたことを示す応答をサービス２１０に送信することができ、行われた相互作用のタイプを識別し、更に、データに実行されるべき機能を、ウェブ・アプリケーション２１４に対して識別することができる。
【００２６】
[0030]  テナントのデータについて位置の変更の要因となった動作に応じて、バックアップ・マネージャ２６は、エントリをヒストリ２１２に置く(place)。ヒストリ２１２は、テナントのデータおよび対応するバックアップ・データの位置のレコードを保持する。一実施形態によれば、ヒストリ２１２は、テナントのデータを格納するのに用いるデータベース名および位置、テナントのデータのバックアップ位置についての名前および位置、およびその位置にデータを格納した時間を格納する（図３および関連の記載を参照のこと。）。ヒストリ情報は、様々な方法で格納することができる。例えば、テナントごとのヒストリ・レコードをデータベース内に格納することができ、ヒストリ情報がデータ・ファイル内に格納されることができる等である。
【００２７】
[0031]  一実施形態によれば、バックアップ・マネージャ２６は、テナント・データについてフル・バックアップやインクリメント式バックアップ、およびフル・バックアップの時間内でのトランザクション・ログ入力を実行するように構成される。フル・バックアップのスケジューリングは設定可能である。一実施形態によれば、フル・バックアップは週次で実行され、インクリメント式バックアップは日次で実行される。また、トランザクションは５分毎に格納される。他のスケジュールをまた使用することができ、これもまた設定可能である。異なるバックアップを、同一の位置および／または異なる位置に格納してもよい。例えば、フル・バックアップは、第１の位置に格納することができ、インクリメント式バックアップおよびトランザクション・ログは異なる位置に格納してもよい。
【００２８】
[0032]  図３は、テナント・データ位置変更についてのレコードを含むヒストリを示す。ヒストリ３００は、管理されているテナントごとにレコードを含んでいる。例示の目的で、ヒストリ３００は、テナント１（３１０）、テナント２（３２０）およびテナント３（３３０）を示す。
【００２９】
[0033]  図示のように、ヒストリのレコード３１０は、付与されているテナント１に応答して作成されたものである。一実施形態によれば、ヒストリ・レコードは、コンテンツ位置、時間、バックアップ位置、および時間についてのフィールドを含む。コンテンツ位置は、テナントのコンテンツがどこに格納されたかについての情報（例えば、データベース名、コンテンツ位置へのＵＲＬ等）を提供する。時間１フィールドは、テナントのデータが特定の位置にあった最新の時間を示す。一実施形態によれば、時間１フィールドが空(empty)であるときに、時間２の値がそのレコードのために用いられる。時間１フィールドおよび時間２フィールドが共に空であるときは、データは、そのコンテンツ位置およびレコードにリストされたバックアップ位置に更に位置する。バックアップ位置フィールドは、そのコンテンツに対しバックアップがどこに位置されるかの位置を特定する。時間２は、テナントのバックアップ・データが特定の位置にあった最新の時間を特定する。
【００３０】
[0034]  テナント１のヒストリ（３１０）を参照すると、テナント１のデータはコンテンツ位置「コンテンツ１２」（例えばデータベース名）に位置し、テナント１のデータのバックアップ・データが「backups\ds220\Content12」に位置することが見てとれる。この場合、テナント１付与されたために、テナント１のデータは変更してない。
【００３１】
[0035]  テナント２のデータは、「コンテンツ１２」から「コンテンツ５６」に、そして「コンテンツ７９」にその位置が変更している。２０１０年３月４日の午前１０時より前で、２０１０年１月２日の午前１時４分よりも後の時間では、データは「Content 56」に格納され、対応のバックアップ・データが「backups\ds220\Content56」に格納されている。２０１０年１月２日の午前１時４分よりも前の時間では、データは「コンテンツ１２」に格納されており、対応のバックアップ・データは"backups\ds220\Content12"に格納されている。
【００３２】
[0036]  テナント３のデータは、「コンテンツ１２」から「コンテンツ１５」にその位置が変更している。対応のバックアップ・データは、「backups\ds220\Content12」から「backups\ds220\Content15」に、そして「backups\ds230\Content79」に変更されている。テナント３のデータは２０１０年３月１２日午前７時３５分より後の時間に「コンテンツ１５」に格納されている。２０１０年３月２４日午前１時２２分より前で、２０１０年３月１２日７時３５分より後の時間では、対応のバックアップ・データが「backups\ds220\Content15」に格納されている。2010年３月１２日７時３５分より前では、データは、「コンテンツ１２」に格納され、対応のバックアップ・データが「backups\ds220\Content12」に格納されている。この例では、テナント３でのバックアップ・データの位置を変更しているが、テナント・データの位置は「コンテンツ１５」からは変更していない。
【００３３】
[0037]  他の多くの方法を、テナント・データの位置に関連する情報を格納するために用いることができる。例えば、時間フィールドは、開始時間および終了時間を含む、開始時間を含むが終了時間を含まない、または終了時間を含むが開始時間を含まないとすることができるであろう。位置は、名前、識別子、ＵＲＬ等として特定することができる。他のフィールドも含むことができ、例えばサイズ・フィールド、レコード数フィールド、最新アクセス・フィールドなどを含むことができる。
【００３４】
[0038]  図４および図５は、テナント移行にわたりテナント・データをリカバリするプロセスを示す。本明細書において提示するルーチンに関しての考察を読む際には、様々な実施形態の論理動作が、（１）コンピューティング・システム上でランする、コンピュータで実装したアクションまたはプログラム・モジュールのシーケンスとして、および／または（２）コンピューティング・システム内で相互接続したマシン論理回路または回路モジュールとして実施されることが理解されるべきである。本実施は、本発明を実施するコンピュータ・システムの性能要件に依存した選択の問題である。したがって、例示の論理動作および本明細書に説明した実施形態の製造(making up)は、動作、構造上のデバイス、アクション、またはモジュールとして様々なものに関連する。これら動作、構造デバイス、アクションおよびモジュールは、ソフトウェア、ファームウェア、特定目的のデジタル・ロジック、およびこれら如何なる組み合わせで実装されることもある。
【００３５】
[0039]  図４は、テナントのデータの位置変更のヒストリを更新するためのプロセスを示す。
[0040]  開始ブロックの後、プロセス４００は動作４１０に移る。ここでは、動作がテナント・データの位置を変更したことの判定がなされる。変更は、全部／一部のテナントのデータに関連することもある。多くの別の動作が、テナント・データの位置の変更の要因となることもある。例えば、テナントの追加、ファームのアップグレード、テナント移行、テナントのデータの負荷バランシング、対応のバックアップ・データの負荷バランシング、保守動作、故障等がある。通常は、テナントのデータおよび／または対応のバックアップ・データの位置変更の要因となる任意の動作は規定される。
【００３６】
[0041]  動作４２０に移り、データが位置を変更しているテナントについてヒストリにアクセスする。このヒストリは、ローカル・データ・ストア、共有データ・ストア、および／または他のメモリ位置内にアクセスされることもある。
【００３７】
[0042]  動作４３０へ移り、テナントのヒストリが更新されて、当該テナントのデータについて現在のステータスおよび任意の以前のステータスを反映する。一実施形態によれば、各テナントは、その対応するヒストリを示すテーブルを含む。ヒストリは、多くの異なるタイプの構造を用いて多くの異なる方法を使用して格納することができる。例えば、ヒストリは、メモリ、ファイル、スプレッドシート、データベース等に格納することができる。ヒストリ・レコードは、リストやスプレッドシート等のようなデータ・ストア内で混在させることもできる。一実施形態によれば、ヒストリ・レコードは、コンテンツ位置、時間、バックアップ位置およびバックアップ時間のフィールドを備える。コンテンツ位置は、テナントのコンテンツが格納されるところに情報を供給する（例えば、データベース名、コンテンツ位置へのURLなど）。時間１フィールドは、テナントのデータが特定の位置あった最新の時間を示す。一実施形態によれば、時間１フィールドが空であるときに、時間１の値は時間２フィールドのものと同一となる。時間１フィールドおよび時間２フィールドが空であるときは、データは現在のコンテンツ位置およびバックアップ位置に更にある。バックアップ位置フィールドは、コンテンツのバックアップがどこに位置するかについてその位置を特定する。時間２フィールドは、テナントのバックアップ・データが特定の位置にあった最新の時間を特定する。
【００３８】
[0043]  次いで、本プロセスは、終了ブロックに移り、他のアクションの処理に戻る。
[0044]  図５は、直前の位置からテナント・データをリストアするための要求を処理するためのプロセスを示す。
【００３９】
[0045]  開始ブロックの後、本プロセスは動作５１０に移り、ここでは要求を受け取ってテナント・データをリストアする。例えば、テナントは、リストアしたいデータを偶然削除してしまった場合もある。一実施形態によれば、この要求は、データを削除したと考えたかを示す時間を含む。別の実施形態によれば、時間レンジが付与される。更に別の実施形態によれば、テナントのヒストリ内の各位置は、要求内の時間を供給することなくデータを検索してもよい。
【００４０】
[0046]  動作５２０に移って、テナントのヒストリについて、データがどこに位置するかを決定するためにアクセスする。先に述べたように、ヒストリはテナント・データおよび対応のバックアップ・データの現在の位置、並びにそのデータの直前の各位置を含む。
【００４１】
[0047]  動作５３０に移って、テナントのデータは、テナントの現在のデータは所望でない直前のデータで上書きされないよう、一時的な位置にリストアされる。
[0048]  動作５４０に移行して、要求されたデータは、一時的な位置から抽出され、そしてテナントのデータの現在の位置にリストアされる。一時的な位置にあったデータを消去してもよい。
【００４２】
[0049]  プロセスは、次いで、終了ブロックに移り、他のアクションの処理に戻る。
[0050]  上記の明細書、例示およびデータは、本発明の構成物を製造および使用することについて完全な説明を提供するものである。本発明の多くの実施形態が本発明の趣旨および範囲を逸脱することなく為され得るために、本発明は、添付の特許請求の範囲に帰するものとなる。
【図１】
0006463393.tif 000002
【図２】
0006463393.tif 000003
【図３】
0006463393.tif 000004
【図４】
0006463393.tif 000005
【図５】
0006463393.tif 000006