(57)【要約】【課題】  障害回復の助けとするために、最適化されたプランを迅速にかつ容易に生成するための方法を提供すること。【解決手段】  復元アドバイザは、データベースを指定された時点の状態に戻すための回復プランを作成し適用することができる。復元／回復シナリオを指定することができ、また使用可能なリソースおよびバックアップを指定することができ、１つまたは複数の最適化された復元プランが生成される。１つまたは複数の代替プランを要求することもできる。そのプランは、適用され、確認され、または保存されることが可能である。【選択図】  図２
2006065845.tif 000002
【特許請求の範囲】
【請求項１】
最適化された復元プランを生成するためのシステムであって、
複数の復元シナリオを提示し、復元シナリオ選択を受信する復元アドバイザ
を備え、
前記復元シナリオ選択を受信したことに応答して、前記復元アドバイザは、ソース・データベース、ターゲット・データベース、および前記ソース・データベースのバックアップ履歴の場所を識別するための一連のプロンプトを提示し、
前記ソース・データベース、前記ターゲット・データベース、および前記ソース・データベースの前記バックアップ履歴の前記場所を受信したことに応答して、前記復元アドバイザは、適用される複数のバックアップ、および前記複数のバックアップを適用する順序を指定する前記最適化復元プランを生成する
ことを特徴とするシステム。
【請求項２】
前記復元アドバイザは、前記最適化復元プランを実行して、前記ターゲット・データベースを備える復元されたデータベースを生成することを特徴とする請求項１に記載のシステム。
【請求項３】
前記復元アドバイザは、前記最適化復元プランを保存することを特徴とする請求項１に記載のシステム。
【請求項４】
前記復元アドバイザは、前記最適化復元プランを確認して、前記最適化復元プランが実行可能であるかどうかを判定することを特徴とする請求項１に記載のシステム。
【請求項５】
前記最適化復元プランは、スクリプト・ファイルとして保存されることを特徴とする請求項１に記載のシステム。
【請求項６】
前記ソース・データベースの前記バックアップ履歴を格納するためのローカル・ソース・メタデータ・データベースをさらに備えることを特徴とする請求項１に記載のシステム。
【請求項７】
前記ソース・データベースの前記バックアップ履歴を格納するためのリモート・ソース・メタデータ・データベースをさらに備えることを特徴とする請求項１に記載のシステム。
【請求項８】
前記ソース・データベースの前記バックアップ履歴を格納するための少なくとも１つのバックアップ媒体をさらに備えることを特徴とする請求項１に記載のシステム。
【請求項９】
前記復元アドバイザは、前記ソース・データベースが復元されることになる時点を受信することを特徴とする請求項１に記載のシステム。
【請求項１０】
前記ターゲット・データベースは、前記時点の状態に復元された前記ソース・データベースを備えることを特徴とする請求項９に記載のシステム。
【請求項１１】
前記復元アドバイザは、マーク付けされたトランザクションによって判定された時点の状態に前記ソース・データベースを復元するように求める要求を受信することを特徴とする請求項１に記載のシステム。
【請求項１２】
前記ターゲット・データベースは、前記マーク付けされたトランザクションによって判定された前記時点の状態に復元された前記ソース・データベースを備えることを特徴とする請求項１１に記載のシステム。
【請求項１３】
少なくとも１つのバックアップについての前記バックアップ履歴を格納するためのソース・メタデータ・データベースをさらに備えることを特徴とする請求項１に記載のシステム。
【請求項１４】
少なくとも１つのバックアップの可用性に関する情報を格納するためのソース・メタデータ・データベースをさらに備えることを特徴とする請求項１に記載のシステム。
【請求項１５】
少なくとも１つのバックアップについての前記バックアップ履歴を格納するためのターゲット・メタデータ・データベースをさらに備えることを特徴とする請求項１に記載のシステム。
【請求項１６】
少なくとも１つのバックアップの可用性に関する情報を格納するためのターゲット・メタデータ・データベースをさらに備えることを特徴とする請求項１に記載のシステム。
【請求項１７】
前記最適化復元プランは、前記ターゲット・データベースを生成するために、前記複数のバックアップ、および前記複数のバックアップが適用される前記順序を指定することを特徴とする請求項１に記載のシステム。
【請求項１８】
前記指定された複数のバックアップを前記指定された順序で適用することによって、最少量の時間で前記ターゲット・データベースの復元をもたらすことを特徴とする請求項１に記載のシステム。
【請求項１９】
代替プランを求める要求を受信したことに応答して、前記復元アドバイザは、受信された１組の制約条件を考慮する第２の復元プランを生成することを特徴とする請求項１に記載のシステム。
【請求項２０】
前記１組の制約条件は、少なくとも１つの使用不可能なバックアップを備えることを特徴とする請求項１９に記載のシステム。
【請求項２１】
前記１組の制約条件は、少なくとも１つの使用不可能なシステム・リソースを備えることを特徴とする請求項１９に記載のシステム。
【請求項２２】
データベース復元プランを生成するための方法であって、
ソース・データベースのための１組の可能な復元シナリオを生成すること、
前記１組の可能な復元シナリオのうちの少なくとも１つ、およびターゲット・データベースが復元されることになる時点の選択、を受信すること、および
複数のバックアップ、および前記複数のバックアップが適用される順序、を備える最適化復元プランを生成すること
を備えることを特徴とする方法。
【請求項２３】
前記１組の可能な復元シナリオは、保守タスクを備えることを特徴とする請求項２２に記載の方法。
【請求項２４】
前記１組の可能な復元シナリオは、データ損失を備えることを特徴とする請求項２２に記載の方法。
【請求項２５】
前記１組の可能な復元シナリオは、データベース障害を備えることを特徴とする請求項２２に記載の方法。
【請求項２６】
前記時点は、マーク付けされたトランザクションに達していることを備えることを特徴とする請求項２２に記載の方法。
【請求項２７】
前記時点は、日付および時刻を備えることを特徴とする請求項２２に記載の方法。
【請求項２８】
代替プランが生成されることを特徴とする請求項２２に記載の方法。
【請求項２９】
制約条件に関する情報を受信することをさらに備えることを特徴とする請求項２２に記載の方法。
【請求項３０】
前記制約条件を考慮する前記最適化復元プランを生成することをさらに備えることを特徴とする請求項２９に記載の方法。
【請求項３１】
前記最適化復元プランは、ターゲット・データベースを生成するために、前記複数のバックアップ、および前記複数のバックアップを適用する前記順序を指定することを特徴とする請求項２２に記載の方法。
【請求項３２】
前記複数のバックアップを前記順序で適用することによって、最少量の時間で前記ターゲット・データベースの復元をもたらすことを特徴とする請求項３１に記載の方法。
【請求項３３】
ソース・データベースのための１組の可能な復元シナリオを生成すること、
前記１組の可能な復元シナリオのうちの少なくとも１つの選択、およびターゲット・データベースが復元されることになる時点、を受信すること、および
複数のバックアップ、および前記複数のバックアップが適用される順序を指定する最適化復元プランを生成すること
を実行するためのコンピュータ実行可能命令を備えることを特徴とするコンピュータ読取り可能媒体。
【請求項３４】
マーク付けされたトランザクションに達していることによって識別される前記時点を受信するためのコンピュータ実行可能命令をさらに備えることを特徴とする請求項３３に記載のコンピュータ読取り可能媒体。
【請求項３５】
日付および時刻を備える前記時点を受信するためのコンピュータ実行可能命令をさらに備えることを特徴とする請求項３３に記載のコンピュータ読取り可能媒体。
【請求項３６】
代替プランを生成するためのコンピュータ実行可能命令をさらに備えることを特徴とする請求項３３に記載のコンピュータ読取り可能媒体。
【請求項３７】
制約条件に関する情報を受信するためのコンピュータ実行可能命令をさらに備えることを特徴とする請求項３３に記載のコンピュータ読取り可能媒体。
【請求項３８】
前記制約条件を考慮する前記最適化復元プランを生成するためのコンピュータ実行可能命令をさらに備えることを特徴とする請求項３７に記載のコンピュータ読取り可能媒体。
【請求項３９】
ターゲット・データベースを生成するために、前記複数のバックアップ、および前記複数のバックアップを適用する前記順序、を指定するためのコンピュータ実行可能命令をさらに備えることを特徴とする請求項３３に記載のコンピュータ読取り可能媒体。
【請求項４０】
前記指定された複数のバックアップを前記指定された順序で適用して、最少量の時間で前記ターゲット・データベースの復元をもたらすことを実行するコンピュータ実行可能命令をさらに備えることを特徴とする請求項３９に記載のコンピュータ読取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム障害後のデータベースの復元（restore）に関し、より詳細には、最適化された復元プランを生成することに関する。
【背景技術】
【０００２】
システム障害またはデータ損失後のデータベース復元には、データベースを障害前の状態に復元するためのプランが必要である。大規模なデータベースもしくはトランザクションの量の多いデータベースでは、復元プランの構築は、複雑で退屈な仕事である。それは一般に、データベースを障害前の特定の時点に戻すために、データベースのバックアップを識別し、またそのバックアップを適用する正確な順序を判定することを必要とする。
【０００３】
システム障害、使用可能なシステム・リソース、および使用可能なバックアップ媒体に関連付けられた具体的な条件に応じて、複数の可能な復元プランが存在する可能性がある。プランによっては、他よりも効率が低いことがある。一部のプランは、バックアップ媒体またはシステム・リソースが使用できないため、実装するのが不可能である可能性がある。システムを動作状態に戻すことに関連付けられる緊迫した雰囲気が存在し、したがって、復元プランは、迅速に策定されなければならない。
【０００４】
【非特許文献１】"Breakthrough Protection and Simplicity in a Cost-Effective, Disk-Based Recovery Appliance" International Journal of Micrographics & Optical Technology, 2003, 21(2,3), 2-3
【非特許文献２】Governor, J., "Salvaging a Crash Situation", Information Weep 1997, 11, 24-25
【非特許文献３】Hayes, M. et al., "Just How Prepared are You?", Computing, 2003, 14
【非特許文献４】Howlett, D., "Make Light of a Server Crash [backup and restore tool], PC User, 1996, 279, 37
【非特許文献５】Kaczmarski, M. et al., "Beyond Backup Toward Storage Management"", IBM Systems Journal, 2003, 42(2), 322-337
【非特許文献６】Starnes, W.W., ""Things that Go Bump on the Network"", Communication News, 1999, 36(9), 86, 89
【非特許文献７】Tonner, D., "Be Prepared.. Be Very Prepared", Information,2003, 924-28
【発明の開示】
【発明が解決しようとする課題】
【０００５】
障害回復の助けとなる、最適化されたプランを迅速にかつ容易に生成するための方法があれば有用である。
【０００６】
システム・クラッシュに対処することに加えて復元プランが使用可能であるか、クラッシュが発生するか、を確認することが望まれる可能性がある。例えば、企業は、データベースがクラッシュしたのか、それは回復できるのか、またできるだけ短い期間で回復されるのか、を確認することを望む可能性がある。
【０００７】
最適化復元プランを迅速にかつ容易に生成し、それによりバックアップ媒体の可用性、および最適化復元プランの存在が確認されることができるようにするやり方があれば有用である。
【０００８】
本番データベース（production database）に対して複製データベースを照合することが望まれる可能性がある。例えば、誰がデータを削除したが、いつそのデータが削除されたかが分からないと仮定する。２つのデータベースが比較されてデータがいつ削除されたかを判定することができるように、ある中間時点に合わせて復元プランを作成し適用できることが有用である可能性がある。データ損失が発生した時を判定する可能性のために、または例えば監査目的など他の理由のために、ある特定の時点でデータベースのコピーを作成できることが有用である可能性がある。指定された時点にとって最も効率的なやり方でその複製データベースを作成するように最適化された復元プランが有用である。
【課題を解決するための手段】
【０００９】
復元アドバイザ（restore advisor）は、データベースを指定された時点の状態に復元するための回復プラン（recovery plan）を作成し適用することができる。復元／回復シナリオが指定されることができ、また使用可能なリソースおよびバックアップが指定されることができ、１つまたは複数の最適化された復元プランを生成することができる。１つまたは複数の代替プランを要求することもできる。そのプランは、適用され、確認され、または保存されることになる。
【００１０】
上記の説明、および例示的な実施形態についての以下の詳細な説明は、添付の図面と併せ読めばよりよく理解される。本発明について例示するため、本発明の例示的な構成が図面に示されている。しかし、本発明は、開示する具体的な方法および手段に限定されない。
【発明を実施するための最良の形態】
【００１１】
概要
火曜日の午後２時、まさに最も多くのユーザがコンピュータ・システムに依存しているときに、データベースがクラッシュしたと仮定する。最後のフル・バックアップ（データベース全体のコピー）は、時刻ｔ０に最後にテープに取られ、クラッシュの時刻がｔ０＋ｎであると仮定する。クラッシュ直前の時点の状態にデータベースを復元するには、最後のフル・バックアップを復元し、またクラッシュ直前の時点までのトランザクション・ログを適用することが必要である。
【００１２】
次に、３つのトランザクション・ログのバックアップが、時刻ｔ１、ｔ２およびｔ３にテープに取られたと仮定する。差分のバックアップ（最後のフル・バックアップ以降のデータベースに対する変更のコピー）がｔ４にＣＤに取られ、第４のトランザクション・ログ・バックアップがｔ５にＣＤに取られたとさらに仮定する。現在、ｔ５＋ｎである。システム・バックアップを得て、稼動させる最善の（最も迅速な）やり方は何であろうか。１つのやり方は、最後のフル・バックアップ（ｔ０のバックアップ）を適用し、次いで４つのログ・バックアップを順に（ｔ１、ｔ２、ｔ３およびｔ５）適用し、次いで、クラッシュ直前の時点までのログを適用することである。別のやり方は、最後のフル・バックアップ（ｔ０のバックアップ）を適用し、次いで（ｔ４の）差分バックアップ、ｔ５のトランザクション・ログのバックアップ、およびクラッシュ直前の時点までのログを適用することである。第２のログ・バックアップのテープに欠陥があるとしたらどうなるであろうか。差分バックアップが格納されたＣＤはサクラメントにあり、そのシステムはボルチモアにあるとしたらどうなるであろうか。
【００１３】
本発明の一部の実施形態によれば、データベースを指定された時点の状態に復元するための最適化復元プランが判定される。受信された入力に応答して、代替プランを判定することができる。本発明の一部の実施形態では、代替プランは、データベースの復元までの時間に関して、次善のプランである。
【００１４】
例示的なコンピューティング環境
図１および以下の議論は、本発明を実装することができる適切なコンピューティング環境についての簡潔で一般的な説明を提供するためのものである。しかし、ハンドヘルド、ポータブル、およびすべての種類の他のコンピューティング装置が、本発明に関連して使用されるように企図されている。汎用コンピュータについて以下で述べるが、これは一例にすぎず、本発明は、ネットワーク・サーバの相互運用性および相互作用性を有するシン・クライアントだけを必要とする。したがって、本発明は、非常に少ないまたは最小のクライアント・リソースが関与するネットワーク・ホスト・サービスの環境、すなわちクライアント装置が単に、ワールド・ワイド・ウェブに対するブラウザまたはインターフェースとして働くネットワーク環境内に実装することができる。
【００１５】
必須ではないが、本発明は、開発者によって使用するためのアプリケーション・プログラミング・インターフェース（ＡＰＩ：application programming interface）を介して実装され、かつ／または、クライアント・ワークステーション、サーバ、または他の装置などの１つまたは複数のコンピュータによって実行されるプログラム・モジュールなどのコンピュータ実行可能命令の一般的な文脈で説明されるネットワーク・ブラウズ・ソフトウェア内に含めることができる。一般に、プログラム・モジュールは、特定のタスクを実施し、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造体などを含む。一般に、プログラム・モジュールの機能は、様々な実施形態で望まれるように組み合わせることも、分散されることもできる。さらに、本発明は、他のコンピュータ・システム構成で実施することができることが当業者には理解されよう。本発明での使用に適する可能性のある他の周知のコンピューティング・システム、環境および／または構成には、それだけに限らないが、パーソナル・コンピュータ（ＰＣ：personal computer）、現金自動預け払い機、サーバ・コンピュータ、ハンドヘルドまたはラップトップ装置、マルチ・プロセッサ・システム、マイクロ・プロセッサ・ベースのシステム、プログラマブルな家電、ネットワークＰＣ、ミニ・コンピュータ、メインフレーム・コンピュータなどが含まれる。本発明は、通信ネットワークまたは他のデータ伝送媒体を介してリンクされたリモート処理装置によってタスクが実施される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラム・モジュールは、メモリ記憶装置を含めて、ローカルとリモートの両方のコンピュータ記憶媒体内に配置することができる。
【００１６】
したがって、図１に、本発明を実装することができる適切なコンピューティング・システム環境１００の一例を示すが、上記で明らかにしたように、コンピューティング・システム環境１００は、適切なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関する制限を示唆するためのものではない。コンピューティング環境１００は、例示的なオペレーティング環境１００内に示した構成要素のいずれか１つまたはその組合せに関するいずれかの依存関係または要件を有するものと解釈すべきでない。
【００１７】
図１を参照すると、本発明を実施するための例示的なシステムが、コンピュータ１１０の形の汎用コンピューティング装置を含んでいる。コンピュータ１１０の構成要素は、それだけに限らないが、処理装置１２０、システム・メモリ１３０、およびシステム・メモリを含めた様々なシステム構成要素を処理装置１２０に結合するシステム・バス１２１を含むことができる。システム・バス１２１は、メモリ・バスまたはメモリ・コントローラ、周辺バス、および様々なバス・アーキテクチャのいずれかを用いたローカルバスを含めて、複数タイプのバス構造のいずれかであることができる。限定のためではなく、例を挙げると、こうしたアーキテクチャには、業界標準アーキテクチャ（ＩＳＡ：Industry Standard Architecture）バス、マイクロ・チャネル・アーキテクチャー（ＭＣＡ：Micro Channel Architecture）バス、拡張ＩＳＡ（ＥＩＳＡ：Enhanced ISA）バス、ビデオ電子規格協会（ＶＥＳＡ：Video Electronics Standards Association）ローカルバス、および周辺コンポーネント相互接続（ＰＣＩ：Peripheral Component Interconnects）バス（メザニン・バスとも呼ばれる）が含まれる。
【００１８】
コンピュータ１１０は一般に、様々なコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、コンピュータ１１０からアクセスすることができる任意の使用可能な媒体とすることができ、揮発性と不揮発性、取出し可能と取出し不可能の両方の媒体を含む。限定するためではなく、例を挙げると、コンピュータ読取り媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造体、プログラム・モジュールまたは他のデータなどの情報を格納するための任意の方法または技術で実装された揮発性と不揮発性、取出し可能と取出し不可能の両方の媒体を含む。コンピュータ記憶媒体には、それだけに限らないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリまたは他のメモリ技術、ＣＤ  ＲＯＭ、デジタル多用途ディスク（ＤＶＤ：digital versatile disk）または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を格納するために使用することができ、またコンピュータ１１０によってアクセスすることができる他の任意の媒体が含まれる。通信媒体は一般に、搬送波や他のトランスポート機構などの変調されたデータ信号の形態で、コンピュータ読取り可能命令、データ構造体、プログラム・モジュール、または他のデータを具現化し、また任意の情報送達媒体を含む。用語「変調されたデータ信号」は、信号内の情報を符号化するやり方でその特性の１つまたは複数が設定されまたは変更された信号を意味する。限定するためではなく、例を挙げると、通信媒体には、有線ネットワークや直接有線接続などの有線媒体、ならびに音響などの無線媒体、ＲＦ、赤外線、および他の無線媒体が含まれる。上記内容のいずれかの組合せもまた、コンピュータ読取り可能媒体の範囲内に含まれるべきである。
【００１９】
システム・メモリ１３０は、読出し専用メモリ（ＲＯＭ：read only memory）１３１およびランダム・アクセス・メモリ（ＲＡＭ：random access memory）１３２など、揮発性および／または不揮発性の形のコンピュータ記憶媒体を含む。起動時などにコンピュータ１１０内の要素間で情報を転送する助けをする基本ルーチンを含む基本入出力システム（ＢＩＯＳ：basic input/output system）１３３は一般に、ＲＯＭ１３１に格納される。ＲＡＭ１３２は一般に、処理装置１２０によって即時にアクセス可能であり、かつ／またはそれによる操作を現在受けている（be operated on）データおよび／またはプログラム・モジュールを含む。限定するためではなく、例示するために、図１に、オペレーティング・システム１３４、アプリケーション・プログラム１３５、他のプログラム・モジュール１３６、およびプログラム・データ１３７を示す。
【００２０】
コンピュータ１１０は、他の取出し可能／取出し不可能、揮発性／不揮発性のコンピュータ記憶媒体をも含むことができる。例示するためだけに、図１に、取出し不可能な不揮発性の磁気媒体から読み出し、またはそこに書き込むハードディスク・ドライブ１４１、取出し可能な不揮発性の磁気ディスク１５２から読み出し、またはそこに書き込む磁気ディスク・ドライブ１５１、およびＣＤ−ＲＯＭや他の光メディアなどの取出し可能な不揮発性の光ディスク１５６から読み出し、またはそこに書き込むための光ディスク・ドライブ１５５を示す。この例示的なオペレーティング環境で使用することができる他の取出し可能／取出し不可能、揮発性／不揮発性のコンピュータ記憶媒体には、それだけに限らないが、磁気テープカセット、フラッシュ・メモリ・カード、デジタル多用途ディスク、デジタル・ビデオ・テープ、ソリッド・ステートＲＡＭ、ソリッド・ステートＲＯＭなどが含まれる。ハードディスク・ドライブ１４１は一般に、インターフェース１４０などの取出し不可能なメモリ・インターフェースを介してシステム・バス１２１に接続され、磁気ディスク・ドライブ１５１および光ディスク・ドライブ１５５は、インターフェース１５０などの取出し可能メモリ・インターフェースによってシステム・バス１２１に接続される。
【００２１】
上記で論じ、また図１に示したドライブおよびその関連のコンピュータ記憶媒体によって、コンピュータ読取り可能命令、データ構造体、プログラム・モジュール、およびコンピュータ１１０のための他のデータの記憶域がもたらされる。図１では、例えば、ハードディスク・ドライブ１４１は、オペレーティング・システム１４４、アプリケーション・プログラム１４５、他のプログラム・モジュール１４６、およびプログラム・データ１４７を格納するものとして示されている。こうした構成要素は、オペレーティング・システム１３４、アプリケーション・プログラム１３５、他のプログラム・モジュール１３６、およびプログラム・データ１３７と同じであることも、それとは異なることもあることに留意されたい。少なくともそれらがそれぞれ異なるコピーであることを示すために、オペレーティング・システム１４４、アプリケーション・プログラム１４５、他のプログラム・モジュール１４６、およびプログラム・データ１４７には異なる番号が付与されている。ユーザは、キーボード１６２、および一般にマウス、トラック・ボールまたはタッチ・パッドと称されるポインティング装置１６１などの入力装置を用いて、コンピュータ１１０にコマンドおよび情報を入力することができる。他の入力装置（図示せず）は、マイク、ジョイスティック、ゲームパッド、パラボラ・アンテナ、スキャナなどを含むことができる。これらのおよび他の入力装置はしばしば、システム・バス１２１に結合されたユーザ入力インターフェース１６０を介して処理装置１２０に接続されるが、パラレル・ポート、ゲーム・ポートまたはユニバーサル・シリアル・バス（ＵＳＢ：universal serial bus）など、他のインターフェースおよびバス構造によって接続されることもできる。
【００２２】
モニタ１９１または他のタイプの表示装置もまた、ビデオ・アダプタ１９０などのインターフェースを介してシステム・バス１２１に接続される。ノース・ブリッジなどのグラフィック・インターフェース１８２もまた、システム・バス１２１に接続することができる。ノース・ブリッジは、ＣＰＵすなわちホスト処理装置１２０と通信するチップ・セットであり、アクセラレイテッド・グラフィック・ポート（ＡＧＰ：accelerated graphics port）通信の役割を担う。１つまたは複数のグラフィック処理装置（ＧＰＵ：graphics processing unit）１８４は、グラフィック・インターフェース１８２と通信することができる。この点について、ＧＰＵ１８４は一般に、レジスタ記憶装置などのオンチップ・メモリ記憶装置を含み、ＧＰＵ１８４は、ビデオ・メモリ１８６と通信する。しかし、ＧＰＵ１８４はコプロセッサの一例にすぎず、したがって、様々なコプロセッシング装置を、コンピュータ１１０内に含むことができる。モニタ１９１または他のタイプの表示装置もまた、ビデオ・インターフェース１９０などのインターフェースを介してシステム・バス１２１に接続され、このインターフェースは、ビデオ・メモリ１８６と通信することができる。モニタ１９１に加えて、コンピュータは、出力周辺インターフェース１９５を介して接続することができる、スピーカ１９７およびプリンタ１９６などの他の周辺出力装置をも含むことができる。
【００２３】
コンピュータ１１０は、リモート・コンピュータ１８０などの１つまたは複数のリモート・コンピュータへの論理接続を使用して、ネットワーク化された環境で動作することができる。リモート・コンピュータ１８０は、パーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア・デバイス、または他の一般的なネットワーク・ノードとすることができ、また図１にはメモリ記憶装置１８１だけが示されているが、コンピュータ１１０に関して上記で述べた要素の多くまたはすべてを一般に含む。図１に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ：local area network）１７１、および広域ネットワーク（ＷＡＮ：wide area network）１７３を含むが、他のネットワークをも含むことができる。こうしたネットワーキング環境は、オフィス、企業規模のコンピュータ・ネットワーク、イントラネットおよびインターネットでは一般的である。
【００２４】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ１１０は、ネットワーク・インターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ１１０は一般に、モデム１７２、またはインターネットなどのＷＡＮ１７３を介して通信を確立する他の手段を含む。内部にあることも、外部にあることもあるモデム１７２は、ユーザ入力インターフェース１６０または他の適切な機構を介してシステム・バス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０に関して示したプログラム・モジュール、またはその一部は、リモートメモリ記憶装置内に格納することができる。限定のためではなく、例示するため、図１に、メモリ装置１８１内に常駐するリモート・アプリケーション・プログラム１８５を示す。図示するネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段を使用することができることが理解されよう。
【００２５】
コンピュータ１１０または他のクライアント装置を、ネットワーク・コンピュータの一部として配置することができることが当業者には理解されよう。この点について、本発明は、任意の数のメモリまたは記憶装置、ならびに任意の数の記憶装置またはボリュームに渡って生じる任意の数のアプリケーションおよび処理を有する任意のコンピュータ・システムにふさわしい。本発明は、リモートまたはローカル記憶装置を含むネットワーク環境に配置されたサーバ・コンピュータおよびクライアント・コンピュータを備えた環境に適用することができる。本発明は、プログラミング言語機能、解釈および実行能力を有するスタンドアロン・コンピューティング装置に適用することもできる。
【００２６】
最適化復元プランの生成
図２は、本発明の一部の実施形態による、最適化復元プランを生成するための例示的なシステムのブロック図である。コンピュータ２０２および２１８は、図１に関して上記で述べたコンピュータ１１０などのコンピュータであることができる。データベース２０４は、コンピュータ２０２内に常駐することができる。さらに、メタデータ・データベース２０６などのデータベースも、コンピュータ２０２内に常駐することができる。データベース２０４は、バックアップが取られる対象のソース・データベースであることができる。
【００２７】
図３は、データベース２０４などのデータベースについて行われる可能性のあるバックアップの例示的な時系列である。データベース・バックアップは、フル・バックアップ、差分バックアップまたはトランザクション・ログ・バックアップである可能性がある。本明細書では、フル・バックアップは、データベース全体のコピーを作成し、またデータベースの現在の状態と、その時点までにデータベースに適用されたトランザクションのログの両方を含むことができ、トランザクション・ログのバックアップは、開始時から終了時までのトランザクションのコピーを行い、差分バックアップは、最後のフル・バックアップで開始する期間から差分バックアップが取られる時までにデータベースに適用されるトランザクションのコピーを行う。
【００２８】
次に図３を参照すると、ｔ０３０２で、フル・バックアップ（バックアップ１  ３０４など）が行われる。バックアップ１  ３０４は、ｔ０で存在していたデータベースの状態のコピーを含むことができる。ｔ１３０６で、ログ・バックアップ（バックアップ２  ３０８など）が行われる。バックアップ２  ３０８は、時刻ｔ０３０２から時刻ｔ１３０６までにデータベースに適用されたトランザクションを含むことができる。ｔ２３１０で、ログ・バックアップ（バックアップ３  ３１２など）が行われる。バックアップ３  ３１２は、時刻ｔ１３０６から時刻ｔ１３１０までにデータベースに適用されたトランザクションのログを含むことができる。ｔ３３１４で、ログ・バックアップ（バックアップ４  ３１６など）が行われる。バックアップ４  ３１６は、時刻ｔ２３１０から時刻ｔ３３１４までにデータベースに適用されたトランザクションのログを含むことができる。ｔ４３１８で、差分バックアップ（バックアップ５  ３２０など）が行われる。バックアップ５  ３２０は、時刻ｔ０３０２（最後のフル・バックアップ時）から時刻ｔ４３１８までのデータベースに対する変更を含むことができる。ｔ５３２２で、ログ・バックアップ（バックアップ６  ３２４など）が行われる。バックアップ６  ３２４は、時刻ｔ３３１４から時刻ｔ５３２２までにデータベースに適用されたトランザクションのログを含むことができる。
【００２９】
本発明の一部の実施形態では、トランザクション・ログは、連続した一連のログ記録として論理的に動作する。それぞれのログ記録は、トランザクションを含み、ログ連続番号、ＬＳＮ（log sequential number）によって識別される。ＬＳＮは、ログの論理的最後に書き込まれる新しい各ログ記録が、その前の記録のＬＳＮよりも大きいＬＡＮに関連付けられるように、各トランザクションに関連付けられた連続番号であることができる。したがって、前の時点で発生したトランザクションは、その後の時点で発生するトランザクションよりも小さいＬＳＮを有する。同様に、第１のトランザクションが第１のＬＳＮを有する場合、その次のトランザクションは、前のトランザクションのＬＳＮよりも大きいＬＳＮを有する。
【００３０】
データベース２０４上でバックアップが実施されるときに、バックアップに関連する情報は、ソース・メタデータ・データベース２０６、ならびにここでは記憶媒体２２６、２２８などによって表された、バックアップを格納する媒体内に格納することができる。ソース・メタデータ・データベース２０６および／または記憶媒体２２６、２２８内などに格納することができる得る情報は、記憶媒体（テープ、ＣＤ、ディスク、ＤＶＤなど）のタイプの表示子（indicator）、記憶媒体のボリューム識別子、その記憶媒体に格納された第１のトランザクションの開始ログ連続番号（ＬＳＮ）、およびその記憶媒体内の最後のトランザクションの終了ＬＳＮ、実施されたバックアップのタイプ、バックアップが実施されたドライブまたは装置、バックアップの日付などを含むことができる。
【００３１】
したがって、図３では、バックアップ１  ３０４、バックアップ２  ３０８、バックアップ３  ３１２、バックアップ４  ３１６、バックアップ５  ３２０およびバックアップ６  ３２４に関する情報は、ソース・メタデータ・データベース２０６および／または記憶媒体内に格納することができる。ソース・メタデータ・データベース２０６内に格納することができる情報は、記憶媒体のボリューム識別子、記憶媒体内の第１のトランザクションの開始ログ連続番号（ＬＳＮ）、および記憶媒体内の最後のトランザクションの終了ＬＳＮなどを含むことができる。
【００３２】
例示的な復元アドバイザ２１４などの復元アドバイザは、図２に示すようなクライアント２０８内に常駐することができる。クライアント２０８は、コンピュータ２０２、２１８または別のコンピュータ内に常駐することができることが理解されよう。同様に、復元アドバイザ２１４も、コンピュータ２０２、２１８または別のコンピュータ内に常駐することができ、ソース・データベース２０４に対して実行されて、任意の場所からターゲット・データベース２２０およびターゲット・メタデータ・データベース２２２を作成することができる。復元アドバイザ２１４は、データベース管理ツール内に組み込むことができ、またプラグ可能なコンポーネントとして実装することができる。
【００３３】
復元アドバイザ２１４が呼び出されると、復元プラン２１６などの最適化復元プランを生成することができる。最適化復元プランは、所与の１組の制約条件を可能とする最も効率的なやり方でデータベースを再作成するために、どのバックアップがどの順序で適用されなければならないかを識別することができる。一部の実施形態では、１つまたは複数の復元プラン２１６などを生成することができる。復元プラン２１６などは、ソース・メタデータ・データベース２０６、ターゲット・メタデータ・データベース２２２または別個のバンク２２４内に格納することができる。復元プランを生成するために復元アドバイザ２１４によって使用されるバックアップに関する情報は、ソース・メタデータ・データベース２０６、ターゲット・メタデータ・データベース２２２、バックアップ媒体２２６、２２８など、バンク２２４のうちの１つまたは複数から、あるいはユーザ入力から、取り出すことができる。
【００３４】
図４に、例示的な最適化復元プランを作成するための方法が示されている。ステップ４０２で、データベースシステムの障害またはデータ損失の通知、有効な復元プランが使用可能であることを確認したいという要望の通知、あるいは特定の時点で存在していたデータベースとして複製データベースが作成されるべきであるとの通知に応答して、最適化復元プランツールが呼び出されることができ、そのツールが起動されることになる。
【００３５】
様々なイベントによって分類された一連のシナリオを表示することができる。そのイベントは、システム障害、データ損失、保守タスクなどを含むことができる。例えば、以下のシナリオのうちのいずれかまたはすべてが、選択のために表示されることになる：既存のデータベースを復元または回復すること、既存のデータベースを特定の時点の状態に復元または回復すること、データベースがオンライン状態のままで既存のデータベースのサブセットを復元すること、調査のために別の場所にデータベースのサブセットを復元すること、データベースの損傷を受けたデータ・ページを復元すること、既存のデータベースから新しいデータベースを作成すること、データベースを新しい場所に移動すること、データの一部を抽出するためにデータベースのサブセットを復元すること、など。適切なシナリオが選択されることになる。
【００３６】
ステップ４０４で、ユーザは、ソース・データベースの識別および／または場所、回復プロセスのターゲート名および／または宛先、バックアップ履歴情報を格納するソースおよび／またはターゲットのメタデータ・データベース、使用可能なシステム・リソース、使用可能なバックアップおよびバックアップ履歴情報、ならびにデータベースが回復される時点（例えば「できるだけ最近に復元」、「マーク付けされたトランザクションに復元」、「特定の日付／時刻に復元」などの目標の復元時点など）の入力を促されることになる。本発明の一部の実施形態では、データベースを指定された時点の状態に復元するための復元プランを生成するのではなく、特定のチェック・ポイントの状態にデータベースを復元するための復元プランが生成される。上述したように、チェック・ポイントは、ラベル付けされた特定のトランザクションである。あるいは、この情報は、上述したように、ソース・メタデータ・データベースから得ることができ、したがって、ソース・メタデータ・データベースの識別を受信することができる。
【００３７】
ユーザは、回復の目標日付／時刻、および回復後のデータベースの状態（「回復なし」または「回復あり」など。「回復なし」または「回復あり」は、不完全なトランザクションに対処するやり方について言及している）を指定することもできる。例えば、追加のトランザクション・ログが適用される場合、不完全なトランザクションがバックアウトされていないことを意味する「回復なし」のデータベースの復元を指定することが望まれる。さらなるトランザクション・ログが適用されない場合、不完全なトランザクションがバックアウトされることを意味する「回復あり」のデータベースの復元を指定することが望まれる。
【００３８】
ステップ４０６で、データベース回復のための適切なプランが生成されることになる。本発明の一部の実施形態では、格納されたシナリオのバンクにアクセスして、指定されたシナリオおよびデータベースなどについて、復元プランが既に生成されているかどうかを判定することができる。プランは、ステップ４０４で受信された制約条件を考慮して、データベースを復元するために取られる１つまたは複数のステップまたは動作を含むことができる。本発明の一部の実施形態では、プランの各ステップの詳細は、ステップのリストとして提示することができる。ステップのうちの１つを選択すると、詳細が表示されることができ、このステップで指定されたバックアップ装置は変更することができる。
【００３９】
本発明の一部の実施形態では、代替プランを要求することができる。例えば、図３を再び参照して、最適化復元プランによってバックアップ１  ３０４およびバックアップ５  ３２０がその順序で適用されるように指示されているが、バックアップ５  ３２０に既に読出しエラーが生じ、使用不可能であると仮定する。代替プランが要求されることになる。代替プランの要求に応答して、例えば、バックアップ１  ３０４、バックアップ２  ３０８、バックアップ３  ３１２およびバックアップ４  ３１６がその順序で適用されるべきことを指定する第２の復元プランが生成されることになる。
【００４０】
ステップ４０８で、そのプランが、実行され、保存されまたは確認され、（「ドライ・ラン（Dry Run）」が）実施される。本発明の一部の実施形態では、復元プランは、スクリプト・ファイルとして保存される。復元プランは、ソース・メタデータ・データベース、ターゲット・メタデータ・データベース、または復元プランのバンクまたはデータベース内に保存することができる。
【００４１】
ステップ４１０で、ステップ４０４から取得された情報が、ソース・メタデータ・データベース（ソース・メタデータ・データベース２０６など）、ターゲット・メタデータ・データベース（ターゲット・メタデータ・データベース２２２など）内に格納することができる。この情報を使用して、復元アドバイザが前の復元プランから「学習」できるようにすることができる。
【００４２】
本明細書で述べた様々な技術は、ハードウェアまたはソフトウェア、あるいは適切な場合にはその組合せとともに実装することができる。したがって、本発明の方法および装置、またはその特定の側面または一部は、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ハードドライブ、または他の任意のマシン読取り可能記憶装置などの有形媒体で実装されたプログラムコード（すなわち命令）の形を取ることができ、該プログラム・コードがロードされて、コンピュータなどのマシンによって実行されるときに、該マシンは、本発明を実施するための装置になる。プロブラマブル・コンピュータ上でプログラム・コードを実行する場合、コンピューティング装置は一般に、プロセッサ、プロセッサによって読取り可能な記憶媒体（揮発性と不揮発性のメモリおよび／または記憶要素を含む）、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む。例えばデータ処理ＡＰＩなどを使用することによって本発明のドメイン固有プログラミング・モデルの側面の作成および／または実装を使用することができる１つまたは複数のプログラムは、コンピュータ・システムと通信するために、ハイレベルの手続き型またはオブジェクト指向型のプログラミング言語で実装されることが好ましい。しかし、そのプログラムは、所望であれば、アセンブリまたはマシン言語で実装することもできる。いずれの場合も、言語は、コンパイルされまたは解釈された言語であり、ハードウェア実装と組み合わせられることができる。
【００４３】
本発明について、様々な図面の好ましい諸実施形態に関連して説明したが、他の類似の実施形態を使用することができ、またそこから逸脱せずに、本発明の同じ機能を実施するために、説明した諸実施形態に対して修正または追加が行われ得ることを理解されたい。したがって、本発明は、単一の実施形態に限定されるべきではなく、特許請求の範囲による幅および範囲において解釈すべきである。
【図面の簡単な説明】
【００４４】
【図１】本発明の態様を実装することができる例示的なコンピューティング環境を示すブロック図である。
【図２】本発明の一実施形態による、最適化復元プランを生成するための例示的なシステムのブロック図である。
【図３】データベースについて行われる可能性のあるバックアップの例示的な時系列を示す図である。
【図４】本発明の一実施形態による、最適化復元プランを生成するための例示的な方法のフローチャートである。
【符号の説明】
【００４５】
１００    コンピューティング環境
１２０    処理装置
１２１    システム・バス
１３０    システム・メモリ
１３４    オペレーティング・システム
１３５    アプリケーション・プログラム
１３６    他のプログラム・モジュール
１３７    プログラム・データ
１４０    取出し不可能な不揮発性メモリ・インターフェース
１４１    ハードディスク・ドライブ
１４４    オペレーティング・システム
１４５    アプリケーション・プログラム
１４６    他のプログラム・モジュール
１４７    プログラム・データ
１５０    取出し可能な不揮発性メモリ・インターフェース
１５１    ディスク・ドライブ
１５２    磁気ディスク
１５５    光ディスク・ドライブ
１５６    光ディスク
１６０    ユーザ入力インターフェース
１６１    マウス
１６２    キーボード
１７０    ネットワーク・インターフェース
１７１    ローカル・エリア・ネットワーク
１７２    モデム
１７３    広域ネットワーク
１８０    リモート・コンピュータ
１８１    メモリ記憶装置
１８２    グラフィック・インターフェース
１８５    リモート・アプリケーション・プログラム
１８６    ビデオ・メモリ
１９０    ビデオ・インターフェース
１９１    モニタ
１９５    出力周辺インターフェース
１９６    プリンタ
１９７    スピーカ
２０２    コンピュータ
２０４    ソースＤ／Ｂ
２０６    メタデータＤ／Ｂ
２０８    クライアント
２１４    復元アドバイザ
２１６    復元プラン
２１８    コンピュータ
２２０    ターゲットＤ／Ｂ
２２２    メタデータＤ／Ｂ
２２４    バンク
２２６    記憶媒体
２２８    記憶媒体
３０４    バックアップ１（フル）
３０８    バックアップ２（ログ）
３１２    バックアップ３（ログ）
３１６    バックアップ４（ログ）
３２０    バックアップ５（差分）
３２４    バックアップ６（ログ）
【図１】
2006065845.tif 000003
【図２】
2006065845.tif 000004
【図３】
2006065845.tif 000005
【図４】
2006065845.tif 000006