JP2008525914A - 動的なデータバックアップのためのシステムおよび方法 - Google Patents

動的なデータバックアップのためのシステムおよび方法 Download PDF

Info

Publication number
JP2008525914A
JP2008525914A JP2007549485A JP2007549485A JP2008525914A JP 2008525914 A JP2008525914 A JP 2008525914A JP 2007549485 A JP2007549485 A JP 2007549485A JP 2007549485 A JP2007549485 A JP 2007549485A JP 2008525914 A JP2008525914 A JP 2008525914A
Authority
JP
Japan
Prior art keywords
database
live
server
backup
mirror
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007549485A
Other languages
English (en)
Other versions
JP4705649B2 (ja
Inventor
チャイ、ムー
カプーア、アディチャ
マ、ウェンルー
ダンカン、クレイグ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Publication of JP2008525914A publication Critical patent/JP2008525914A/ja
Application granted granted Critical
Publication of JP4705649B2 publication Critical patent/JP4705649B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Abstract

データベースミラーリング工程を備えるコンピュータネットワークであって、第1のデータベースサーバにロケーションされた第1のデータベースと、第2のデータベースサーバにロケーションされた第2のデータベースと、任意であるウィットネスデータベースサーバとを備える。第1のデータベースおよび第2のデータベースのうちの一方はライブデータベースであり、他方のデータベースはミラーデータベースである。プロセスは、第1のデータベースサーバ、第2のデータベースサーバ、またはウィットネスデータベースサーバとの通信を開始し、第1のデータベースおよび第2のデータベースのうちのいずれがライブデータベースであるかを判定する。ライブデータベースのロケーションは、ライブデータベースがバックアップされている第1のデータベースサーバ、第2のデータベースサーバ、およびウィットネスデータベースサーバのうちのいずれのシステムデータベース内のテーブルエントリから情報が読み出されるかにより判別される。

Description

本発明はデータをバックアップするためのシステムおよび方法に関する。より詳細には、本発明の実施形態は、データベースミラーリング環境においてデータをバックアップするためのシステムおよび方法に関する。
コンピュータネットワークは居住環境および商用環境の両方において遍在的(ユビキタス;ubiquitous)である。広範なインターネットの使用に加えて、ローカルエリアネットワーク(LAN)によってユーザがコンピュータサービスを共有することが可能である。多くの企業体はその組織内でLANを用いるとともに、消費者にはインターネットを通じてデータへのアクセスを提供している。
コンピュータおよびコンピュータネットワークによって、データの可用性および信頼性の改良の必要が生じている。多くの営利団体はコンピュータネットワーク上にほとんど全ての業務データを格納しており、ネットワークユーザはいかなる時にもデータへのアクセスが中断されないことを期待している。データへのアクセスが中断されないというこの要求を支えるには、高性能のソフトウェアおよびハードウェアが必要である。ネットワーク上に格納されたデータの量や、ネットワーク上のデータへのアクセス性の要求が増大するにつれ、システム障害、ファイル破損、およびウィルスなど、不測の事態からデータを保護することは次第に困難となっている。
潜在的な壊滅的な事態からデータを保護することは、データをバックアップするためのソフトウェアと、バックアップされたデータを格納するためのセキュアなハードウェアとの組み合わせによって通常は行われる。保存されるデータの量が増大するにつれ、データをバックアップする処理はより複雑になる。例えば、数ギガバイトのデータを迅速にプライマリロケーションからバックアップロケーションに移動させることは不可能である。加えて、バックアップの実行中にデータを利用不能とすることは、データへの連続的なアクセスが必須である環境においては実行可能な選択肢ではない。
大量のデータをバックアップすることは問題であるが、典型的なデータバックアップシステムに関連する問題はそれだけではない。ネットワークユーザおよび管理者が様々なタイプのデータをバックアップすることを所望する場合がある。ファイルをバックアップすることに加えて、ネットワークユーザもアプリケーションおよびサービスをバックアップすることを所望する場合がある。アプリケーションおよびサービスをバックアップすることは難題である。例えば、バックアップが開始されるとき、アプリケーションおよびサービスがファイルを開いていることがしばしばあるが、開かれているファイルを有効にまたは信頼性を有してバックアップすることは一般に不可能であるため、バックアップ操作中、そうしたファイルはスキップされることが多い。結果として、最初のファイルシステムバックアップ中にファイルがスキップされたアプリケーションおよびサービスの管理バックアップ操作を支援するために、追加のバックアップアプリケーションが必要となることがしばしばある。
データのバックアップに関連する別の問題は、バックアップされたデータを、そのデータがバックアップロケーションに移動されるときにトラッキングする手法に関する。詳細には、データがバックアップされるとき、バックアップコピーは新たなロケーションに移動されるため、格納されたデータへのアクセスを実行するには、データがどのように格納されているかに関する記録を有する必要がある。典型的には、バックアップシステムは、
バックアップされる各々のファイルまたはアプリケーションの正確なロケーションを記録するデータベースを備える。ユーザがバックアップシステムからファイルを特定することまたは読み出すことを所望するとき、データベースはバックアップメディアにおけるそのファイルの格納されたロケーションにてファイルを特定する。
バックアップされたデータのロケーションのトラッキング中、典型的なバックアップソフトウェアシステムは、単にバックアップロケーションにデータを配置し、インデックスによってロケーションをトラッキングする。より知的なデータベースソフトウェアシステムは、データが知的に格納されるように、データがバックアップされるときにデータをソートする性能を備える。例えば、より高度なデータベースソフトウェアシステムは、類似のファイルのバックアップを同一メディア上に格納することが可能である。データをこのようにソートし格納することによって、より有効なデータ格納および読出が可能となる。
典型的なバックアップソフトウェアシステムの別の欠点は、ネットワーク内のデータの再ロケーションが不可能であること、即ち、ネットワーク内で利用可能なデータについて1より多くのコピーを有することが不可能なことである。バックアップソフトウェアシステムはネットワーク上の全てのユーザからデータを収集するが、データそれ自体はネットワーク上のある1つのロケーションに存在するものとして見られ、他のロケーションに対して相互参照されない。ネットワーク上のデータはバックアップされるが、この冗長性および相互参照は取り扱われない。
本発明の実施態様の上記の例および他の態様を一層明確にするため、本発明の
説明を、本発明の実施態様の図面に示す具体的な例を用いて行う。これらの図面は本発明の実施態様の例を示すものであって、本発明の範囲を限定することを意図するものではない。図面の寸法は正確ではない。
I.代表的なデータベース操作システム
本発明の実施態様に適切な1つの操作環境を、図1に示す。図1には、代表的なファイルシステムデータバックアップおよび回復システム(DBRS)100を示す。このシステムは、一般に格納ロケーションのオンラインファイルシステムデータを複製するように機能し、データについてのロケーションおよび旧トラッキング情報を維持する。オンラインバージョンのデータが失われたり破損したりする場合、DBRS100はデータを再作成することが可能である。DBRS100が動作するネットワークが災害を経験する場合、DBRS100は、記憶装置へ書き込まれたときにファイルシステムが存在していた通りに、元のそれぞれの構造へDBRS100のファイルシステム全てを再作成することが可能である。
DBRS100の代表的な実施態様は、3つの基本構成要素、即ち、バックアップサーバ102と、1つ以上のクライアント104,105,106,107,108と、データのバックアップボリューム110とを備える。バックアップサーバ102およびクライアント104,105,106,107,108は、DBRS100の操作を動作させるのに必要なソフトウェアを有するエンティティである。バックアップサーバ102は、DBRS100の機能を組織化・管理するプログラムおよびサービスを備える。クライアント104,105,106,107,108は、DBRS100の機能を実行するプログラムおよびサービスを備える。
バックアップサーバ102は、例えば、クライアント104,105,106,107,108など、そのクライアントのセットのデータを管理する。クライアント104,105,106,107,108は、バックアップされるファイルを配信するネットワーク
上の機器を表す。バックアップサーバ102は、クライアント/データを組織化するために、それぞれのバックアップグループ112,114,116の使用を組み込むこともできる。バックアップグループとは、グループとして共にバックアップされるクライアント、データ、またはその両方のセットである。バックアップグループ112およびバックアップグループ114によって示すように、1つのクライアントが複数のバックアップグループに含まれることが可能である。
クライアント104,105,106,107,108からバックアップされるデータを管理するために、DBRS100はデータトラッキング情報を用いる。データトラッキング情報は、図1に示すように、バックアップサーバ102のファイルインデックス118およびメディアデータベース120である。ファイルインデックス118およびメディアデータベース120におけるエントリは、DBRS100の環境においてバックアップされている、全てのデータ、クライアントマシンおよびファイルの両方を記述するコンテンツおよびロケーション情報を維持する。
バックアップサーバ102のファイルインデックス118では、各クライアントによって組織化された、バックアップされたファイルのリストが閲覧され得る。バックアップされるネットワークにおける各クライアント上の各々のファイルは、ファイルインデックスにおいてリスト化される。ファイルインデックス118におけるエントリは、ファイルタイプ、ファイルがバックアップされた時刻や、元のファイルをホストするクライアントマシンなどファイルに関する他の情報など、ファイルについての情報を含む。1つのファイルが複数回バックアップされて、バックアップコピーが複数のロケーションに格納されてもよいので、ファイルインデックス118におけるファイルへのエントリは、ファイルの各バックアップについて、バックアップロケーションおよびバックアップ時刻に関する情報を格納する場合がある。特定のファイルについての複数のバックアップロケーションおよびバックアップ時刻に関するファイルインデックス118における情報によって、読出用のファイルの特定のバージョンをユーザが識別することが可能である。ファイルの複数のバックアップに関するエントリ情報を、管理者によって決定される任意の時間に渡ってファイルインデックス118に残すことが可能である。
ファイルインデックス118は個々のファイルをトラッキングし、メディアデータベース120はファイルが格納されるロケーションをトラッキングする。換言すると、メディアデータベース120は、メディア格納ロケーションへの参照を格納している。操作時には、バックアップグループ112,114または116がDBRS100の上の格納ボリュームにバックアップされる毎に、メディアデータベース120がエントリを受信する。ファイルインデックス118におけるエントリと同じように、管理者がエントリを削除するまで、エントリはメディアデータベース120に残る。該当データが上書きされる場合、メディアデータベース120におけるエントリも削除され得る。
データに関するロケーション情報が分かると、異なった手法によりデータを格納することが可能である。例えば、図1に示すようにバックアップサーバ102からアクセス可能であったり、リモートサーバ経由でアクセス可能であったりするテープドライブ、ハードディスク、またはリムーバブルディスクなどのデバイス上のメディアボリュームに、データを格納することが可能である。データをバックアップするための代表的なシステムでは、バックアップボリューム110およびバックアップデバイス126,128,130,132によって示されるように、データはデバイス上のボリュームに格納される。デバイスおよびボリュームによるデータ格納工程の一例は、ディスクアレイ上にデータを格納することであり、この場合、データ格納はディスクにサブグループ化される。デバイスおよびボリュームによるデータの格納の別の例は、テープドライブ上にデータを格納することであり、データ格納は特定のテープボリュームにサブグループ化される。デバイスおよび
ボリュームによるデータの格納の最後の例は、リモートサーバ上にデータを格納することであり、データ格納はサーバ上のハードディスクにサブグループ化される。これらの例はデバイスおよびボリュームの可能な構成を理解する際に有用であるが、DBRS100がデバイスおよびボリュームによりデータを格納する性能は、ここに示した例に限定されない。最も一般的な意味では、バックアップデバイス126,128,130,132は、特定のシステムまたはデバイスに限定されない、データを格納するための手法の概念的なモデルを表す。
DBRS100内のバックアップデバイス126,128,130,132の有用性は、バックアップデバイス126,128,130,132が様々なタイプのデータを格納する性能によってさらに強化される。詳細には、バックアップデバイス126,128,130,132は、あらゆるファイルタイプのデータを格納することが可能である。例えば、バックアップデバイス126,128,130,132に、画像ファイル、プログラム実行ファイル、および文書ファイルのバックアップコピーを一緒に格納することが可能である。
バックアップデバイス126,128,130,132の基礎をなす一態様は、バックアップデバイス126,128,130,132がDBRS100においてバックアップされたファイルを高速読出する性能である。例えば、ユーザがバックアップされたファイルの復元をリクエストするとき、そのファイルのファイルインデックスおよびメディアデータベースのエントリが、例えばテープ、CD、DVD、またはファイルを格納するために用いられた他のメディアなど、バックアップデバイス126,128,130,132、および用いられた特定のメディアへの参照を含む非常に特定的なロケーション情報を格納している場合、DBRS100は迅速にファイルを読み出すことが可能である。
バックアップデバイス126,128,130,132にバックアップすることを含む多くの機能に関して、初期的には、DBRS100は機能を独立して実行するように構成される。しかしながら、管理者はDBRS100の機能を制御するための多くの権限を有する。したがって、管理者は異なるクライアント特性および/またはファイル特性によって格納用のファイルを分離することが可能であり、かつバックアップボリュームが旧くなり、削除されるべき時を定義することが可能である。例えば、管理者は、バックアップが作成されてから所定時間の経過した後に、メディアデータベース120からバックアップボリュームを削除するようにDBRS100を構成することが可能である。管理者は、1つ以上のクライアントおよびそのファイル、ディレクトリ、もしくはファイルシステム、またはクライアントマシン上の全てのファイルを含むことの可能な、バックアップグループ112,114,116を定義することも可能である。
クライアント104,105,106,107,108にアクセスするとき、管理者は管理者GUI(図示せず)内で作業することが可能である。管理者GUIは任意のDBRS100マシン上に表示されて、クライアントプラットフォームが何であるかにかかわらず、管理者が任意のクライアント104,105,106,107,108とインタフェースし、それらのクライアントのためのサービスを調停することを可能とする。管理者の権限の別の重要な態様には、アプリケーション環境を指定する能力が含まれる。例えば、管理者は、DBRS100が用いるバックアップデバイスおよび定義されるクライアントの数などの命令を指定するレコードを作成することが可能である。管理者は、バックアップスケジュールおよびリサイクルされるまでにデータが保護される期間を含め、バックアップ・回復環境においてアプリケーションが実施する規則を指定することも可能である。
管理者権限に加えて、DBRS100は失われたデータの回復用のシステムも組み込んでいる。クライアントデータが失われたときまたは破損したとき、ユーザまたは管理者は
ファイルインデックス118により回復可能なファイルを閲覧し、次いで、失われたデータの状態、またはメディアデータベース120によってトラッキングされた、バックアップデバイス126,128,130,132上のボリュームにおけるコンテンツのロケーションを記述するために、レポートを作成することが可能である。次いで、ユーザはユーザが指定した時点に、失われたデータを回復させることが可能である。失われたデータを回復させるためにリクエストが行われると、DBRS100はリクエストされたデータを特定し、1つまたは複数のファイルの回復を指示する。データは、データの出所であるクライアント104,105,106,107,108、または別の指定のクライアントに対し回復させることが可能である。
さらに、DBRS100は異種環境において実行する性能を有し、様々な異なるプラットフォーム上で動作することが可能である。例えば、UNIX(登録商標)サーバ上のバックアップソフトウェアはWindows(登録商標)クライアントをサポートすることが可能であり、或いは反対に、Windowsサーバ上のバックアップソフトウェアはUNIXクライアントをサポートすることが可能である。サーバプラットフォームが何であるかにかかわらず、クライアントに関連する任意のデバイスまたはボリュームのバックアップデータを読み取ることが可能であり、任意のDBRS100サーバによって、ユーザ指定の時点に対しデバイスまたはボリュームのデータを再作成することが可能である。クライアント104,105,106,107,または108のプラットフォームが何であるかにかかわらず、任意のシステムクライアント104,105,106,107,108からのバックアップデータが1つのバックアップデバイスまたは1つのメディアセット上に共存することが可能である。
II.動的バックアップのためのシステムおよび方法
A.代表的なミラーリングシステムの構成要素
上述の代表的なDBRS100は、ネットワーク上に知的にファイルを格納し、読み出す。代表的なシステムは、上述の代表的なシステムの性能に加え、様々な追加のアプリケーションおよび機能をサポートすることが可能である。そのような1つのアプリケーションは、データベースミラーリングを担うデータベースバックアップ機能を組み込んでいる。
代表的なデータベースミラーリングシステム200を、図2に示す。データベースミラーリングシステム200は、データベースサーバ202およびデータベースサーバ204を備える。データベースサーバ202およびデータベースサーバ204のうちの一方はプライマリサーバとして指定されており、他方はセカンダリサーバとして指定されている。データベースサーバ202がプライマリサーバとして指定されるとき、サーバ202上にロケーションされたユーザデータベース206がライブデータベースである。同様に、セカンダリサーバとしてデータベースサーバ204を指定すると、ユーザデータベース208がミラーデータベースである。
ユーザデータベース206,208に加えて、データベースサーバ202およびデータベースサーバ204は、それぞれシステムデータベース210,212を備える。システムデータベース210,212は、ユーザデータベース206,208の役割を「ライブ」または「ミラー」のいずれかとして確定するために用いられる情報を格納している。ユーザデータベース206,208がデータベースミラーリングに参加するように構成されるとき、サーバアプリケーション214,216は、ユーザデータベース206,208の状態に関する情報を「ライブ」または「ミラー」のいずれかとして格納するために、それぞれ、データベースサーバ202およびデータベースサーバ204にインストールされたシステムデータベース210,212を更新する。この初期の設定に続いて、ユーザデータベース206,208の状態に関して「ライブ」または「ミラー」のいずれかとして
システムデータベース210,212上に格納されている全ての情報は、サーバアプリケーション214,216によって維持される。サーバアプリケーション214,216の各々は、ユーザデータベース206やユーザデータベース208の状態を監視し、サーバアプリケーションに関連したシステムデータベースにおいて、ユーザデータベース206およびユーザデータベース208の各々の状態を記録する。例えば、ユーザデータベース206の状態が「ライブ」から「ミラー」へ変化するとき、ユーザデータベース206の状態の変化はサーバアプリケーション214によって監視され、システムデータベース210に記録される。また、同時の「ミラー」から「ライブ」へのユーザデータベース208の状態の変化も、サーバアプリケーション214によって監視され、システムデータベース210に記録される。同様に、ユーザデータベース208の状態が「ミラー」から「ライブ」へ変化するとき、ユーザデータベース208の状態の変化はサーバアプリケーション216によって監視され、システムデータベース212に記録される。同時の「ライブ」から「ミラー」へのユーザデータベース206の状態の変化は、サーバアプリケーション216によって監視され、システムデータベース212に記録される。
サーバアプリケーション214,216がユーザデータベース206,208の状態変化を監視している間、サーバアプリケーションモジュール218,220はデータベースミラーリングシステム200内のユーザデータベース206,208の状態情報を管理する。サーバアプリケーションモジュール218,220などのモジュールは、ユーザデータベースのバックアップおよび/または復元などの機能を実行することの可能な1つのコードである。例えば、モジュールによって実行される機能は、Microsoft(登録商標)SQL Serverデータベースのバックアップおよび/または復元であり、この場合、ユーザデータベース206,208は、Microsoft SQL Serverデータベースであり、サーバアプリケーション214,216は、Microsoft SQL Serverアプリケーションである。本発明は、Microsoft SQL Serverと共に用いられてもよいが、本発明の範囲はMicrosoft SQL Serverと共に使用することに限定されない。
各々のサーバアプリケーション214,216は、特定のサーバアプリケーションモジュールに関連する。サーバアプリケーションモジュール218はサーバアプリケーション214に関連し、サーバアプリケーションモジュール220はサーバアプリケーション216に関連する。データベースサーバ202上では、サーバアプリケーションモジュール218がシステムデータベース210に状態情報を問い合わせ、ユーザデータベース206がライブユーザデータベースであるか、ミラーユーザデータベースであるかを見出す。同様に、データベースサーバ204上では、サーバアプリケーションモジュール220がシステムデータベース212に状態情報を問い合わせ、ユーザデータベース208がライブユーザデータベースであるか、ミラーユーザデータベースであるかを見出す。データベースミラーリングシステム200におけるライブユーザデータベースのバックアップに先立って、サーバアプリケーションモジュール218,220のうちの一方は現行のライブユーザデータベースを識別する。ユーザデータベースバックアップ操作に関連するライブユーザデータベースの識別は、図4を用いて以下においてさらに詳細に検討する。
サーバアプリケーションモジュール218,220はバックアップ操作中にライブユーザデータベースを識別するのみならず、バックアップおよび復元操作中にミラー関係を調停および管理するために、サーバアプリケーションモジュール218,220は互いに通信も行う。サーバアプリケーションモジュール218,220が、図1に示すバックアップサーバ102に相当するバックアップサーバ221によって呼び出されるとき、サーバアプリケーションモジュール218,220はユーザデータベース206,208の指定における変化を検出することが可能である。ユーザデータベース206,208の指定における変化が検知されると、サーバアプリケーションモジュール218,220は、ユー
ザデータベース206,208の指定における変化に関して、互いに通信を行う。サーバアプリケーションモジュール218,220が互いに通信を行った後、サーバアプリケーションモジュール218,220はバックアップサーバ221にユーザデータベース206,208の指定における変化を伝達する。次いでバックアップサーバ221は、バックアップされるデータベースサーバのためのセーブセットにおいてユーザデータベース206,208の指定に関する情報を更新するとともに、ライブデータベースに相当するサーバアプリケーションモジュール218または220を呼び出し、バックアップを完了することが可能である。
バックアップおよび復元操作を完了するためにサーバアプリケーションモジュール218,220が互いと、また続いてバックアップサーバ221とどのように通信を行うかに関する一例として、フェイルオーバが発生し、ユーザデータベース206の状態を「ライブ」から「ミラー」へ変化させると仮定する。フェイルオーバの発生後、サーバアプリケーションモジュール218が呼び出されるとき、サーバアプリケーションモジュール218はユーザデータベース206の状態に関し、サーバアプリケーションモジュール220と通信を行う。サーバアプリケーションモジュール218はサーバアプリケーションモジュール220から、ユーザデータベース208が現在はライブデータベースであることを学習する。サーバアプリケーションモジュール218はまた、サーバアプリケーションモジュール220に、ユーザデータベース206が現在はミラーデータベースであることを通知する。サーバアプリケーションモジュール220との通信後、サーバアプリケーションモジュール218はバックアップサーバ221と通信を行い、バックアップサーバ221にユーザデータベース206およびユーザデータベース208の状態の変化を通知する。次いで、バックアップサーバ221は、データベースミラーリングシステム200においてバックアップされるデータベースサーバのセーブセット情報として、変更された状態情報を記録する。この処理はプロービングと呼ばれ、ライブデータベースをロケーションするために用いられる。
データベースサーバ202,204内でサーバアプリケーションモジュール218,220により実行される機能は、データベースミラーリングシステム200内のバックアップ操作に必要な一部である。データベースミラーリングシステム200内でバックアップ操作が実行可能となる前に、最初にライブデータベースのロケーションが確認される必要がある。バックアップ操作が開始されるとき、データベースサーバ202上にロケーションされたサーバアプリケーション214およびデータベースサーバ204上にロケーションされたサーバアプリケーション216のうちのいずれかは、ライブユーザデータベースをロケーションするためにコンタクトされ得る。バックアップ操作は、ユーザまたはバックアップサーバ221により開始され得る。バックアップサーバ221がサーバアプリケーションモジュール218,220にコンタクトし、それらは順次サーバアプリケーション214,216と順次コンタクトし、ユーザデータベース206,208の状態を知る。ライブユーザデータベース206,208に相当するサーバアプリケーションモジュール218,220は、バックアップ操作を実行する。ユーザデータベース206,208の状態は、システムデータベース210,212から情報を読み取ることによって決定される。例えば、バックアップサーバ221がサーバアプリケーションモジュール218とコンタクトする場合、サーバアプリケーションモジュール218は、サーバアプリケーション214とコンタクトすることによってシステムデータベース210におけるテーブルエントリを読み取る機能を実行する。同様に、バックアップサーバ221がサーバアプリケーションモジュール220とコンタクトする場合、サーバアプリケーションモジュール220は、サーバアプリケーション216とコンタクトすることによってシステムデータベース212におけるテーブルエントリを読み取る機能を実行する。システムデータベース210,212に格納されたテーブルエントリは、ユーザデータベース206,208の状態に関する情報を格納している。各システムデータベース210,212は、データ
ベースミラーリングシステム200における各ユーザデータベース206,208の状態に関する情報を格納している。例えば、システムデータベース210は、ユーザデータベース206の状態についての情報を「ライブ」として格納しており、またユーザデータベース208の状態についての情報を「ミラー」として格納している。各ユーザデータベース206,208に関しシステムデータベース210,212に格納されている情報により、バックアップサーバがデータベースサーバ202,204にロケーションされたサーバアプリケーションモジュール218,220のうちの一方のみとコンタクトすることによって、ライブデータベースのロケーションに関する情報を取得することが可能となる。
バックアップ操作中にデータベースミラーリングシステム200において実行される機能の一例として、ユーザデータベース206が現在はライブユーザデータベースであり、ユーザデータベース208が現在はミラーデータベースであると仮定する。バックアップが開始されるとき、バックアップサーバ221は、データベースサーバ204上にロケーションされたサーバアプリケーションモジュール220にコンタクトする。次いで、サーバアプリケーションモジュール220は、サーバアプリケーション216とコンタクトすることによってシステムデータベース212に格納されているテーブルエントリを読み取る機能を実行する。システムデータベース212におけるテーブルエントリは、ユーザデータベース208がミラーデータベースであることと、ユーザデータベース206がライブデータベースであることとを示す。サーバアプリケーションモジュール220は、この情報をバックアップサーバ102に返す。次いで、ユーザデータベース206が現在はライブデータベースであるので、バックアップサーバ221はユーザデータベース206をバックアップする。
ここで図1を参照すると、ライブユーザデータベースがバックアップされるとき、ライブユーザデータベースの存在するデータベースサーバの名称は、バックアップサーバ102上にロケーションされたファイルインデックス118に記録される。ライブユーザデータベースについてファイルインデックス118に作成されたエントリは、ライブエントリである。また、ミラーデータベースが存在するデータベースサーバの名称も、ファイルインデックス118に記録される。ミラーユーザデータベースについてファイルインデックス118に作成されるエントリは、別名エントリと呼ばれる。特定のバックアップの時刻に各ユーザデータベースの状態を記録することによって、ファイルインデックス118におけるエントリは、一連のバックアップを再構築し、ライブユーザデータベースの復元がリクエストされる場合にライブユーザデータベースのロケーションを容易に識別するための手法を提供することを可能にする。
ここで図2に戻ると、バックアップサーバ102がライブユーザデータベースをバックアップすることを可能とするために、ユーザデータベース206,208の状態がデータベースミラーリングシステム200内にトラッキングされることは、先に説明した。データベースサーバ202,204は、それぞれ、ユーザデータベース206,208の状態をトラッキングするシステムデータベース210,212を備え、またユーザデータベース206,208の状態をトラッキングするために、ウィットネス222もデータベースミラーリングシステム200に組み込まれ得る。例えば、ユーザデータベース206が「ライブ」データベースから「ミラー」データベースへ状態を変化させるとき、ウィットネス222は、ユーザデータベース206の現行の状態をシステムデータベース224に記録することによって、この変化をトラッキングする。同様に、ユーザデータベース208が「ミラー」データベースから「ライブ」データベースへ状態を変化させるとき、ウィットネス222は、ユーザデータベース208の状態の変化もシステムデータベース224に記録する。このようにして、システムデータベース224は、それぞれデータベースサーバ202,204上にロケーションされたシステムデータベース210,212によって実行されるのと同様の機能を実行する。
ウィットネス222とデータベースサーバ202,204との間のさらなる類似点は、データベースサーバ202,204と同様に、ウィットネス222がサーバアプリケーション226およびサーバアプリケーションモジュール228を備えることである。サーバアプリケーション226は、サーバアプリケーション214,216によって実行される機能と均等な機能を実行する。すなわち、サーバアプリケーション226は、ユーザデータベース206,208の状態に関してサーバアプリケーション214,216によって更新され、システムデータベース224内にこの情報の記録を維持する。サーバアプリケーションモジュール218,220と同様に、サーバアプリケーションモジュール228は、ユーザデータベース206,208の状態情報を学習するために、サーバアプリケーションモジュール218,220と通信を行う。また、サーバアプリケーションモジュール228はサーバアプリケーション226とコンタクトすることによって、システムデータベース224からこの情報を読み出してもよい。
ウィットネス222は、ユーザデータベース206,208における状態変化をトラッキングすることに加え、他の機能を実行してもよい。例えば、ウィットネス222はデータベースミラーリングシステム200における役割の割当に参加する。詳細には、ウィットネス222は、ユーザデータベース206に対するライブデータベースの役割の割当と、ユーザデータベース208に対するミラーデータベースの役割の割当とに参加してもよい。この役割の割当は、データベースサーバ202,204、およびウィットネスデータベースサーバ222の間の多数決に基づく。より詳細には、ウィットネス222はユーザデータベース206およびユーザデータベース208のそれぞれの役割における変化を調停することができる。ウィットネス222は、データベースミラーリングシステム200内の自動的なフェイルオーバと、それに伴うユーザデータベース206,208の状態の変化とを推進してもよい。例えば、ユーザデータベース206がライブデータベースであるときにフェイルオーバが発生する場合、ウィットネス222は即座にユーザデータベース208にライブデータベースの役割を割り当て、ユーザデータベース206の役割をミラーデータベースへ変化させる。ユーザデータベース206,208の役割の変化を調停することによって、ウィットネス222はフェイルオーバの発生時にデータが失われないことを確実にする。データベースミラーリングシステム200にウィットネス222が存在しない場合、ユーザがフェイルオーバを推進し、ユーザデータベース208にライブデータベースの役割を割り当て、ユーザデータベース206にミラーデータベースの役割を割り当てることを選択してもよい。
図2には、データベースミラーリングシステムが主サーバ202、第2のサーバ204、およびウィットネス222のみを備える場合を示すが、データベースをミラーリングする多数の他の構成が可能である。図3に示すように、どれだけ多くの異なるデータベースがミラーリングされるかに関する制限は存在せず、ミラーデータベースをホストするデータベースサーバ間の関係に関するいかなる制限も存在しない。例えば、第1のデータベースサーバ302は、ライブデータベース「A」304やミラーデータベースn’306をホストする。第2のデータベースサーバ308は、ライブデータベース「B」310およびミラーデータベースA’312をホストする。この例では、第2のデータベースサーバ308上に存在するミラーデータベースA’312は、第1のデータベースサーバ302上に存在するライブデータベースA304に関連する。しかしながら、ライブデータベースB310に関連するミラーデータベースB’314は、第1のデータベースサーバ302上には存在せず、代りに第3のデータベースサーバ316上に存在する。第3のデータベースサーバ316は、ミラーデータベースB’314をホストすることに加え、ライブデータベースC318をホストする。最後に、第n番目のデータベースサーバ320は、データベースn322およびミラーデータベース(n−1)’324をホストする。図3には、複数のデータベースサーバ上のライブデータベースおよびミラーデータベースの構
成の代表的な実施形態を示す。加えて、任意のデータベースサーバ302,308,316,320は、任意のデータベースのウィットネスとして機能し得る。しかしながら、任意数のデータベースサーバ上のライブデータベースおよびミラーデータベースについて、任意数の異なる構成が可能であり、また本発明の実施形態によって想定される。本発明の範囲は、特定のサーバ上に存在するライブデータベースおよびミラーデータベースについての任意の特定の構成と共に使用することに限定されない。
B. ミラーリング機能
再び図2を見ると、モジュール218,220,228、およびユーザデータベース206,208は、データベースミラーリングシステム200の構成要素の例である。モジュール218,220,228、およびユーザデータベース206,208は、データがデータベースミラーリングシステム200において、データベース206,208からバックアップされるように協働するように構成されている。
前述したように、代表的なデータベースミラーリングシステム200は、少なくとも2つのデータベースサーバ202,204、ライブユーザデータベース206、およびミラーユーザデータベース208を備える。2つ以上のデータベースサーバ202,204を備えるネットワークにおいて、ユーザデータベース206,208のそれぞれはライブユーザデータベース、またはミラーユーザデータベースの役割を割り当てられていてよい。ライブユーザデータベース206およびミラーユーザデータベース208は初期には「ライブ」または「ミラー」として指定されているが、具体的なデータベースの指定は随時変更できる。したがって、「ライブ」または「ミラー」の役割は動的に再分担される。例えば、データベースサーバ202に存在するユーザデータベース206は、当初ライブユーザデータベースとして指定されたものであってよい。ライブユーザデータベースとして指定された、データベースサーバ202に存在するユーザデータベース206に対し、データベースサーバ204に存在するユーザデータベース208は、ミラーユーザデータベースとして指定され得る。その後、ユーザデータベース206,208の役割は変更され得、ユーザデータベース206の呼称は「ライブ」から「ミラー」へ、さらにユーザデータベース208の呼称は「ミラー」から「ライブ」へ変更されよう。ユーザデータベース206,208の役割は、例えば、ユーザデータベース206が存在するデータベースサーバ202の故障、各ユーザデータベースの役割スケジュールの変更、またはネットワーク内のウィットネス222などの付加的なデータベースサーバまたは他のシステムデバイスによる調停などの、いかなる理由によっても変更され得る。
ユーザデータベース206,208のライブまたはミラーの役割は、データベースミラーリングシステム200内において時間の経過に伴い動的に変化するだけではなく、役割は不特定ではなく、具体的にそれぞれのユーザデータベース206,208により実行される機能を意味する。詳細には、データベースミラーリングシステム200は、ライブユーザデータベース206がシステム内における活動データベースなので、ユーザデータベース206を「ライブ」であると指定する。バックアップ操作において、ライブユーザデータベース206は、データベースミラーリングシステム200内においてバックアップされるデータベースである。一方、ミラーユーザデータベース208は非活動データベースであり、ミラーユーザデータベースとして機能している限り、バックアップ操作には直接的には関与しない。
ミラーユーザデータベース208はバックアップ操作には直接的には関与しないが、データベースミラーリングシステム200は、ミラーユーザデータベース208に対して任意のときにライブユーザデータベースに切り替わるように要求することができる。このため、同期ミラーリングにおいて、ミラーユーザデータベース208は、ライブユーザデータベースのテーブルが改変される度に、データベース更新に関する情報を受信し、格納す
る。すなわち、ミラーユーザデータベース208は、ライブユーザデータベース206の更新記録を保持するために、ライブユーザデータベース206の中に作成されたエントリのミラーリングを行う。このようにして、データベースミラーリングシステム200がミラーユーザデータベース208に対してライブユーザデータベースに切り替わるように要求した場合に、ユーザデータベース情報が消失したりアクセス不可能になったりすることはない。それは、ライブユーザデータベース206に存在した全ての情報は、ミラーユーザデータベース208もまた存在するからである。
ライブユーザデータベースとミラーユーザデータベースとの役割分担は、ベットワークのバックアップ操作において、特に重要である。バックアップ操作は様々な方法で開始され得る。ユーザデータベースをバックアップする一方法は、システムの個人ユーザが自分で選択した任意のときに、指定したユーザデータベースのバックアップを開始することである。データベースをバックアップする他の方法は、管理者がシステム内のいずれのユーザデータベースを自動的にバックアップするのかというシステム内スケジュールを明示することである。管理者はシステム内の全てのユーザデータベースを指定してもよいし、バックアップ操作によりバックアップされるシステム内のユーザデータベースのみを指定してもよい。データベースミラーリング環境におけるバックアップ操作は、後掲の項目Dにおいてさらに詳細に検討する。
本明細書に開示されたようなデータベースミラーリングプロセスを実行するための代表的な標準規格としては、マイクロソフトSQLサーバ2005(コード名 ユーコン(Yukon))がある。本発明の実施態様の一例において、マイクロソフトSQLサーバ2005(ユーコン)データベースが用いられ得る。しかし、他の使用法、およびアプリケーションもまた本発明において適合し、かつ好ましい。本発明の範囲はマイクロソフトSQLサーバ2005(ユーコン)を用いることに限定されるものではない。
C. ミラーリング環境におけるプロービングプロセスの実行
データベースミラーリングバックアップシステムの一例は、データベースミラーリングシステム200内において重要な機能を実行するアプリケーションおよびモジュールを組み込んでいる。モジュール218,220,228により実行される機能は、データベースミラーリングシステム200の機能の一部である。データベースミラーリングシステム200の1つ以上のユーザデータベースのバックアップが開始されるときには、プロービングプロセスが実施され、ライブユーザデータベースをデータベースミラーリングシステム200内にロケーションする。プロービングプロセスは、システムデータベース210,212に関連するモジュール218,220,228により実行される特定の機能を備える。プロービングプロセスの目的はライブユーザデータベースのロケーションを判定することであり、これにより、システム内のライブユーザデータベースは、バックアップ操作においてバックアップされ得る。
ライブユーザデータベースのバックアップが開始されるときに実施されるプロービングプロセス400の代表的な態様を図4に示す。上記のように、プロービングプロセス400は、ライブユーザデータベースをデータベースミラーリングシステム200内に配置するプロセスである。プロービングプロセス400は、バックアップサーバが、工程402においてデータベースサーバと称するクライアントとコンタクトしたときに開始し、クライアントに対してクライアントにロケーションされたデータベースの状態に関するリクエストをする。バックアップサーバとクライアントとのコンタクトは、ライブデータベースのバックアップが実行されるときを特定したシステムスケジュールによったり、様々な他の方法によったりして、ライブデータベースをバックアップするリクエストにより開始され得る。バックアップサーバが指名されたクライアントとコンタクトした後、クライアントに配置されたサーバアプリケーションモジュールは、工程404に示すように、ライブ
データベースのロケーションに関する情報リクエストを受信する。その後サーバアプリケーションモジュールは、質問されたクライアントのデータベースサーバにロケーションされたシステムデータベースとコンタクトし、ライブユーザデータベースのロケーションを判定する。
工程406に示すように、サーバアプリケーションモジュールが、クライアントにロケーションされたシステムデータベースに含まれるテーブルエントリを読み出すと、ライブデータベースのロケーションが判定される。テーブルエントリは、データベースミラーリングシステム内のデータベースの状態に関する情報を含んでいる。工程408において、サーバアプリケーションモジュールは、テーブルエントリに対して質問し、質問をうけているクライアントがライブデータベースであるか否かを判定する。工程410に示すように、テーブルエントリが、ライブデータベースは質問をうけているクライアントにロケーションされていると特定した場合には、ライブデータベースがロケーションされているので、バックアップが進行できる。
しかし、工程412に示すように、テーブルエントリが別のクライアントにロケーションされた別のデータベースをライブデータベースとして特定すると、サーバアプリケーションモジュールは、質問を受けているクライアント上のデータベースはライブデータベースではないと認識する。その後工程414に示すように、サーバアプリケーションモジュールは、ライブデータベースの存在するクライアントの名称を、バックアップサーバに返送する。次にプロービングプロセス400は工程402を再開し、バックアップサーバが、ライブデータベースをホストし、かつ工程414においてサーバアプリケーションモジュールにより指名されたクライアントにコンタクトする。プロービングプロセス400のこの時点において、ライブデータベースをホストするクライアントは特定されているので、工程402〜408は順調に進行し、工程410まで続行する。しかし、ライブデータベースの配置されているクライアントが特定され、それまでバックアップサーバがライブクライアントにコンタクトするまでにフェイルオーバが生じた場合、ライブクライアントはミラークライアントになる。この場合には、工程402,406,408,412,414がもう一度繰り返される。多くの場合、1回または2回の繰り返しにより、ライブデータベースの配置およびファイルのバックアップを充分にプロービングできる。3回繰り返すことはあまりないが、極めて短時間のうちに2つのフェイルオーバが生じたので、データベースサーバ内が相当に不安定であることを示している。
工程410に戻ると、システムテーブルエントリが、質問を受けているクライアントはライブデータベースをホストしていると特定するなら、プロセスは工程416に続いており、バックアップされるデータベースファイル(すなわち「当該ファイル」)が特定される。データベースファイルが特定されると、ファイルはバックアップされ、プロービングプロセス400は工程418に示すように完了する。このバックアップ操作に関する詳細に関しては、図5を検討しつつ、以下に示す。
D. ミラーリング環境におけるデータベースバックアップ操作
バックアッププロセス500は、データベースミラーリング環境におけるデータベースの動的な役割変更が何であるかにかかわらず、データベースのバックアップを行うプロセスの一例である。データベースが初めにバックアップされると、同データベースのエントリが、データベースミラーリングシステムにおけるバックアップサーバのファイルインデックス内に作成される。ファイルインデックス内のエントリは同データベースに関する情報を含んでおり、同データベースの状態を「ライブ」または「ミラー」として有する。データベースミラーリング環境内においてデータベースがバックアップされるたびに、付加的なエントリがデータベースのファイルインデックスに追加される。バックアップ時にバックアップエントリに含まれる情報は、データベースの状態に関する初期のエントリに含
まれる情報と類似している。例えば、バックアップ時に作成されるエントリは、バックアップが実行された日、バックアップが実行された時間、およびバックアップが実行された時のデータベースの状態などの情報を含むことができる。
バックアップが実行された時にデータベースの状態に関する情報を含むことに加えて、データベース用のファイルインデックスのエントリは、システム内のミラーデータベースとの相互参照をも備える。より詳細には、当該データベースはバックアップ時にはライブデータベースであるので、ファイルインデックスの当該データベースのエントリは、バックアップ時にはミラーデータベースを有するデータベースサーバを相互参照する。ファイルインデックス中のライブおよびミラーデータベースのクライアントマシンを相互参照することにより、複数のバックアップが実行されている期間を通した当該データベースの状態を追跡することができるとともに、ライブおよびミラーデータベースが同一のデータベースであることを判定できる。単一のデータベースのための1つのエントリを検索することにより、システム内の他のクライアントマシンの身元に関する情報が得られる。
データベースミラーリングシステム内のデータベースをバックアップするには、先ずバックアップ対象データベースが特定されねばならない。バックアップサーバはバックアッププロセスを開始する固有のクライアントを特定する。これを図5の工程502に示す。システム管理者は、特定のバックアップ操作中にシステム内の全データベースがバックアップされると決定してもよいし、システム管理者は1つのバックアップ操作中に、選定されたデータベースのみがバックアップされると決定してもよい。別の可能性としては、システムユーザが、バックアップ操作に含めたいと思う特定のデータベースを指定してもよい。これに替えて、バックアップシステムは、特定のスケジュールにしたがって、特定のデータベースの全体または一部を自動的にバックアップするように構成してもよい。
バックアップ対象のデータベースが管理者またはユーザにより指定されていても、他の方法であっても、バックアップサーバは特定のクライアントマシンにコンタクトし、プロービングプロセス(図4参照)を開始する、すなわち、バックアップサーバは、工程504に示すように、ライブデータが存在するクライアントマシンの名称について特定のクライアントマシンに対して質問する。次に、バックアップサーバは、工程506に示すように、ライブデータベースが存在するクライアントマシンにコンタクトする。バックアップサーバは、ライブデータベースがクライアントマシンにコンタクトした後、工程508に示すように、ライブデータベースがバックアップされる。次に、ライブデータベースが存在するクライアントマシンの名称は、工程510に示すように、バックアップサーバのファイルインデックスにライブエントリとして書き込まれる。ミラーデータベースが存在するクライアントマシンの名称はまた、ファイルインデックスに書き込まれるが、工程512に示すように別名エントリとして書き込まれる。別名エントリは、ライブデータベースのために作成されたエントリとの相互対照を含む。
データベースミラーリングシステム内で生じ得るユーザのバックアップへのアクセス容易性の一例として、データベースサーバAがデータベースのホストであるときに、最初の一連のバックアップが行われ得る。データベースサーバAにホストされるデータベースはライブデータベースである。最初の一連のバックアップが行われた後でデータベースサーバAがクラッシュし、ライブデータベースの役割が自動的にデータベースサーバBにホストされるデータベースに切り替わるなどのフェイルオーバが生じた場合、後続の一連のバックアップは、データベースがデータベースサーバBにホストされている間に実行される。換言すれば、データベースサーバBがライブデータベースである間に、後続の一連のバックアップが実行される。バックアップは、データベースサーバAがライブデータベースである間でも、データベースサーバBがライブデータベースである間でも実行されるが、一連のバックアップは、バックアップサーバのファイルインデックスに含まれるエントリ
中のデータベース同士の相互参照を用いて、再構築され得る。
本明細書において開示した方法によりバックアップされたデータは、任意の多様な用途に用いられ得る。例えば、バックアップされたデータは、オリジナルデータが喪失することとなるシステム障害または他の事態において、オリジナルデータベースを回復することに用いることができる。例えば、図1のユーザデータベース206,208においてデータの喪失が生じた場合には、データのバックアップされたコピーを用いて、ユーザデータベース206,208を回復することができる。喪失されたデータを、本明細書において開示した方法により生成されたバックアップデータを用いて回復する方法の事例は、本願と同日付にて出願した「データを回復するためのシステムおよび方法(Systems and Methods for Restoring Data)」と題する米国特許出願第11/080,047号に記載されている。
本発明は本発明の精神または本質的な特性から逸脱することなく、他の具体的な形態で実施することができる。上記の説明した実施態様は単に例示するためのものであり、限定しようとするものではない。したがって本発明の範囲は、上記の説明ではなく、添付の請求の範囲により示される。前記請求の範囲の意義および等価物の範囲に属する全ての改変は、前記請求の範囲の中に入るものとみなされる。
ネットワーク内におけるファイルシステムデータをバックアップするためのシステムの一例を示す概略図。 データベースミラーリング環境におけるデータベースをロケーションするためのシステムの一例を示す概略図。 データベースミラーリング環境における複数データベース間のミラーリング関係を構成するためのシステムの一例を示す概略図。 データベースミラーリング環境におけるライブデータベースを判別し、データベースをバックアップするためのプロセスの一例を示す概略図。 データベースミラーリング環境におけるデータベースをバックアップするためのプロセスの一例を示す概略図。

Claims (27)

  1. ライブデータベース、ミラーデータベースおよび複数のクライアントマシンを備えるデータベースミラーリングネットワークにおいて、データベースをバックアップする方法であって、
    前記複数のクライアントマシンのうちの1つに対してリクエストを送信し、そのリクエストの対象となるクライアントマシンと関連するデータベースの状態情報を得る工程と、
    前記クライアントマシンから、前記ライブデータベースのロケーションを識別する前記状態情報を受信する工程と、
    前記ライブデータベースの指定の変更が進行中であっても、前記ライブデータベースのロケーションを識別する前記状態情報を用いて、前記ライブデータベースをバックアップする工程と
    を備える方法。
  2. 前記ライブデータベースのロケーションを識別する前記状態情報は、前記リクエストの対象となるクライアントマシンのシステムデータベースにロケーションされる、請求項1に記載の方法。
  3. 前記関連するデータベースの状態情報が、前記関連するデータベースはミラーデータベースであることを特定する場合、システムデータベース内の情報は、前記ライブデータベースをホストするクライアントマシンを識別する、請求項1に記載の方法。
  4. 前記複数のクライアントマシンのうちの1つに対してリクエストを送信する工程は、前記ライブデータベースを自動的にバックアップする時間を特定するスケジュールにしたがって実行される、請求項1に記載の方法。
  5. 前記複数のクライアントマシンのうちの1つに対してリクエストを送信する工程は、ユーザが前記ライブデータベースのバックアップを開始することに応答して実行される、請求項1に記載の方法。
  6. 前記ライブデータベース内の該当ファイルを識別する工程をさらに備え、それにより前記ライブデータベースをバックアップする工程は前記該当ファイルをバックアップする工程を含む、請求項1に記載の方法。
  7. 前記ライブデータベースをバックアップする工程は、
    バックアップ時に、バックアップサーバにロケーションされたファイルインデックスに、前記ライブデータベースのロケーションに関するエントリを作成する工程と、
    バックアップ時に、バックアップサーバにロケーションされたファイルインデックスに、前記ミラーデータベースのロケーションに関する別名エントリを作成する工程と
    をさらに含む請求項1に記載の方法。
  8. 前記ライブデータベース内の該当ファイルの格納ロケーションを受信する工程と、
    前記ミラーデータベース内の前記該当ファイルの前記格納ロケーションを記録する工程と
    をさらに備える請求項7に記載の方法。
  9. 前記ライブデータベース内の前記該当ファイルの格納ロケーションを記録する工程は、前記クライアントマシンにロケーションされたシステムデータベースにテーブルエントリを作成する工程を含む、請求項8に記載の方法。
  10. 前記ミラーデータベース内の前記該当ファイルの格納ロケーションを記録する工程は、前記クライアントマシンにロケーションされたシステムデータベースにテーブルエントリを作成する工程を含む、請求項8に記載の方法。
  11. 第1のデータベースサーバ、第2のデータベースサーバおよびバックアップサーバを備えるデータベースミラーリングネットワークにおいて、バックアップされるデータベースをロケーションする方法であって、
    バックアップサーバからデータベース状態リクエストを受信する工程と、
    第1のデータベースサーバおよび第2のデータベースサーバのうちの1つと関連するデータベースに関するテーブルエントリをロケーションすることにより、前記データベース状態リクエストに応答する工程と、
    前記テーブルエントリを用いて、前記関連するデータベースの状態情報を識別する工程と、
    前記バックアップサーバに対して、前記関連するデータベースの状態情報を送信する工程とを備え、
    前記状態情報は少なくとも前記データベースがライブデータベースであるか、ミラーデータベースであるかを特定し、前記方法は、ライブデータベースおよびミラーデータベースの指定の変更が進行中であっても実行される方法。
  12. 前記データベース状態リクエストは、前記ライブデータベースを自動的にバックアップする時間を特定するスケジュールにしたがって受信される、請求項11に記載の方法。
  13. 前記データベース状態リクエストは、ユーザが前記ライブデータベースのバックアップを開始することに応答して受信される、請求項11に記載の方法。
  14. 前記関連するデータベースの状態情報が、前記関連するデータベースはミラーデータベースであることを特定する場合、前記状態情報は前記ライブデータベースをホストするデータベースサーバを識別する、請求項11に記載の方法。
  15. 前記関連するデータベースの状態情報が、前記関連するデータベースはライブデータベースであることを特定する場合、前記テーブルエントリに記載される前記データベースサーバは前記ライブデータベースをホストする、請求項11に記載の方法。
  16. 前記テーブルエントリは、第1のデータベースサーバおよび第2のデータベースサーバのうちの1つと関連するシステムデータベース内にロケーションされる、請求項11に記載の方法。
  17. ライブデータベース、ミラーデータベースおよび複数のクライアントマシンを備えるネットワーク内のデータベースをバックアップする方法を実行するコンピュータプログラム製品であって、
    前記複数のクライアントマシンのうちの1つに対してリクエストを送信し、そのリクエストの対象となるクライアントマシンと関連するデータベースの状態情報を得る工程と、
    前記クライアントマシンから、前記ライブデータベースのロケーションを識別する前記状態情報を受信する工程と、
    前記ライブデータベースの指定の変更が進行中であっても、前記ライブデータベースのロケーションを識別する前記状態情報を用いて、前記ライブデータベースをバックアップする工程と
    を含む方法を実行するためのコンピュータ実行可能命令を有するコンピュータ可読媒体を備えるコンピュータプログラム製品。
  18. 前記状態情報が、前記データベースはライブデータベースであることを特定する場合、前記テーブルエントリに記載されるクライアントマシンは、前記ライブデータベースをホストするクライアントマシンを識別する、請求項17に記載のコンピュータプログラム製品。
  19. 前記関連するデータベースの状態情報が、前記関連するデータベースはミラーデータベースであることを特定する場合、前記状態情報は、前記ライブデータベースをホストするクライアントマシンを識別する、請求項17に記載のコンピュータプログラム製品。
  20. 前記複数のクライアントマシンのうちの1つに対してリクエストを送信する工程は、前記ライブデータベースを自動的にバックアップする時間を特定するスケジュールにしたがって実行される、請求項17に記載のコンピュータプログラム製品。
  21. 前記複数のクライアントマシンのうちの1つに対してリクエストを送信する工程は、ユーザが前記ライブデータベースのバックアップを開始することに応答して実行される、請求項17に記載のコンピュータプログラム製品。
  22. 前記テーブルエントリはシステムデータベースにロケーションされる請求項17に記載のコンピュータプログラム製品。
  23. 前記ライブデータベース内の該当ファイルを識別する工程をさらに備え、それにより、前記ライブデータベースをバックアップする工程は前記該当ファイルをバックアップする工程を含む、請求項17に記載のコンピュータプログラム製品。
  24. 前記ライブデータベースをバックアップする工程は、
    バックアップ時に、バックアップサーバにロケーションされたファイルインデックスに、前記ライブデータベースのロケーションに関するエントリを作成する工程と、
    バックアップ時に、バックアップサーバにロケーションされたファイルインデックスに、前記ミラーデータベースのロケーションに関する別名エントリを作成する工程と
    をさらに含む請求項17に記載のコンピュータプログラム製品。
  25. 前記ライブデータベース内の前記該当ファイルの格納ロケーションを受信する工程と、
    前記ミラーデータベース内の前記該当ファイルの前記格納ロケーションを記録する工程と
    をさらに備える請求項24に記載のコンピュータプログラム製品。
  26. 前記ライブデータベース内の前記該当ファイルの格納ロケーションを記録する工程は、前記クライアントマシンにロケーションされたシステムデータベースにテーブルエントリを作成する工程を含む、請求項25に記載のコンピュータプログラム製品。
  27. 前記ミラーデータベース内の前記該当ファイルの格納ロケーションを記録する工程は、前記クライアントマシンにロケーションされたシステムデータベースにテーブルエントリを作成する工程を含む、請求項25に記載のコンピュータプログラム製品。
JP2007549485A 2004-12-30 2005-12-21 動的なデータバックアップのためのシステムおよび方法 Active JP4705649B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US64079904P 2004-12-30 2004-12-30
US60/640,799 2004-12-30
US11/080,229 2005-03-15
US11/080,229 US7526514B2 (en) 2004-12-30 2005-03-15 Systems and methods for dynamic data backup
PCT/US2005/046490 WO2006073847A2 (en) 2004-12-30 2005-12-21 Systems and methods for dynamic data backup

Publications (2)

Publication Number Publication Date
JP2008525914A true JP2008525914A (ja) 2008-07-17
JP4705649B2 JP4705649B2 (ja) 2011-06-22

Family

ID=36641948

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007549485A Active JP4705649B2 (ja) 2004-12-30 2005-12-21 動的なデータバックアップのためのシステムおよび方法

Country Status (5)

Country Link
US (1) US7526514B2 (ja)
EP (2) EP3514688B1 (ja)
JP (1) JP4705649B2 (ja)
CN (1) CN101208668B (ja)
WO (1) WO2006073847A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014170567A (ja) * 2009-10-26 2014-09-18 Amazon Technologies Inc 複製されたデータインスタンスのためのフェイルオーバーおよび復旧
JP2015018508A (ja) * 2013-07-12 2015-01-29 日本電信電話株式会社 分散処理システム

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149728B1 (en) * 2003-04-28 2006-12-12 Microsoft Corporation Recursive file backup
US7210060B2 (en) 2004-12-30 2007-04-24 Emc Corporation Systems and methods for restoring data
US20060274662A1 (en) * 2005-06-07 2006-12-07 Fail Safe Solutions, Llc Means and method of integrated information technology maintenance system
US7668879B2 (en) * 2005-11-30 2010-02-23 Oracle International Corporation Database system configured for automatic failover with no data loss
US7627584B2 (en) * 2005-11-30 2009-12-01 Oracle International Corporation Database system configured for automatic failover with no data loss
US7549079B2 (en) * 2005-11-30 2009-06-16 Oracle International Corporation System and method of configuring a database system with replicated data and automatic failover and recovery
US7882079B2 (en) * 2005-11-30 2011-02-01 Oracle International Corporation Database system configured for automatic failover with user-limited data loss
US8255369B2 (en) * 2005-11-30 2012-08-28 Oracle International Corporation Automatic failover configuration with lightweight observer
US7734596B2 (en) * 2005-11-30 2010-06-08 Stephen John Vivian Automatic failover configuration with redundant abservers
US7502776B2 (en) * 2005-12-01 2009-03-10 Oracle International Corporation Dynamic connection establishment using an object link
US9268659B2 (en) * 2006-01-05 2016-02-23 Emc Corporation Detecting failover in a database mirroring environment
JP5121234B2 (ja) * 2007-01-12 2013-01-16 キヤノン株式会社 データ管理装置および方法、ならびにプログラム
US7599967B2 (en) * 2007-03-20 2009-10-06 Oracle International Corporation No data loss system with reduced commit latency
WO2008126297A1 (ja) * 2007-03-30 2008-10-23 Fujitsu Limited バックアップ制御装置
US8290912B1 (en) * 2010-01-29 2012-10-16 Symantec Corporation Endpoint virtualization aware backup
US8555105B2 (en) * 2010-04-12 2013-10-08 International Business Machines Corporation Fallover policy management in high availability systems
US8751443B1 (en) * 2011-05-15 2014-06-10 Pivotal Software, Inc. Online mirror state transitions for good quality of service and high availability in databases
US10585766B2 (en) 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
CN102841897B (zh) * 2011-06-23 2016-03-02 阿里巴巴集团控股有限公司 一种实现增量数据抽取的方法、装置及系统
CN107015876B (zh) * 2016-10-10 2020-07-28 阿里巴巴集团控股有限公司 一种业务请求处理方法及装置
CN106648963B (zh) * 2016-10-11 2020-10-20 广东工业大学 一种恢复数据同步备份的方法及系统
US11914482B2 (en) 2020-11-20 2024-02-27 Pelatro Pte. Ltd. System and method for robust, efficient, adaptive streaming replication application protocol with dancing recovery for high-volume distributed live subscriber datasets
US11863407B2 (en) 2021-08-06 2024-01-02 Pelatro Pte. Ltd. System and method for efficient numerical data model, memory management, streaming aggregation and contextual event checks in large semi-structured datasets
CN115529332B (zh) * 2022-09-28 2023-06-16 润芯微科技(江苏)有限公司 一种用于车机中控的云车机系统及远程访问方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132441A (ja) * 1998-10-23 2000-05-12 Nec Corp 分散データベースシステム、処理装置及びデータベースアクセス方法
JP2002041345A (ja) * 2000-07-27 2002-02-08 Hitachi Ltd コンピュータシステム及びそのデータバックアップ方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE500656C2 (sv) * 1992-12-08 1994-08-01 Ellemtel Utvecklings Ab System för backuptagning i en distribuerad databas
US5515502A (en) * 1993-09-30 1996-05-07 Sybase, Inc. Data backup system with methods for stripe affinity backup to multiple archive devices
US5530939A (en) * 1994-09-29 1996-06-25 Bell Communications Research, Inc. Method and system for broadcasting and querying a database using a multi-function module
US5852715A (en) * 1996-03-19 1998-12-22 Emc Corporation System for currently updating database by one host and reading the database by different host for the purpose of implementing decision support functions
US6360330B1 (en) * 1998-03-31 2002-03-19 Emc Corporation System and method for backing up data stored in multiple mirrors on a mass storage subsystem under control of a backup server
US6694447B1 (en) * 2000-09-29 2004-02-17 Sun Microsystems, Inc. Apparatus and method for increasing application availability during a disaster fail-back
US6832330B1 (en) * 2001-09-05 2004-12-14 Emc Corporation Reversible mirrored restore of an enterprise level primary disk
JP3832423B2 (ja) 2002-11-19 2006-10-11 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置、画像形成装置、およびプログラム
US7210060B2 (en) 2004-12-30 2007-04-24 Emc Corporation Systems and methods for restoring data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132441A (ja) * 1998-10-23 2000-05-12 Nec Corp 分散データベースシステム、処理装置及びデータベースアクセス方法
JP2002041345A (ja) * 2000-07-27 2002-02-08 Hitachi Ltd コンピュータシステム及びそのデータバックアップ方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014170567A (ja) * 2009-10-26 2014-09-18 Amazon Technologies Inc 複製されたデータインスタンスのためのフェイルオーバーおよび復旧
JP2015018508A (ja) * 2013-07-12 2015-01-29 日本電信電話株式会社 分散処理システム

Also Published As

Publication number Publication date
CN101208668B (zh) 2010-08-18
CN101208668A (zh) 2008-06-25
WO2006073847A3 (en) 2007-11-08
EP1851636B1 (en) 2019-02-06
EP3514688A1 (en) 2019-07-24
EP1851636A4 (en) 2012-02-08
EP1851636A2 (en) 2007-11-07
US20060149797A1 (en) 2006-07-06
WO2006073847A2 (en) 2006-07-13
US7526514B2 (en) 2009-04-28
EP3514688B1 (en) 2021-06-30
JP4705649B2 (ja) 2011-06-22

Similar Documents

Publication Publication Date Title
JP4705649B2 (ja) 動的なデータバックアップのためのシステムおよび方法
JP4712816B2 (ja) データを復元するためのシステム及び方法
US9268659B2 (en) Detecting failover in a database mirroring environment
US8332442B1 (en) Automated restoration of links when restoring individual directory service objects
US7287045B2 (en) Backup method, storage system, and program for backup
JP4744955B2 (ja) データ管理システム
US7657796B1 (en) System and method for distributed storage verification
US8473462B1 (en) Change tracking for shared disks
US7120768B2 (en) Snapshot acquisition method, storage system and disk apparatus
JP4508554B2 (ja) 複製ボリュームを管理するための方法と装置
US6978282B1 (en) Information replication system having automated replication storage
JP5165206B2 (ja) バックアップシステムおよびバックアップ方法
US8046446B1 (en) System and method for providing availability using volume server sets in a storage environment employing distributed block virtualization
US7185048B2 (en) Backup processing method
JP2005521114A (ja) 情報バックアップシステム及び方法
JP2005031716A (ja) データバックアップの方法及び装置
JP2005523517A (ja) ディザスタ・リカバリのための方法およびシステム
US7584339B1 (en) Remote backup and restore operations for ISB protocol systems
US7487310B1 (en) Rotation policy for SAN copy sessions of ISB protocol systems
CN100573462C (zh) 数据恢复系统和方法
JP2003296167A (ja) ファイル管理システムおよびファイル管理方法
US7587565B1 (en) Generating automated and scheduled SAN copy sessions for ISB protocol systems
US7685460B1 (en) Multiple concurrent restore using same user interface
US20060282631A1 (en) Discovering data storage for backup
CN103559100A (zh) 利用服务器保存客户端数据的方法及服务器

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100323

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100623

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110126

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110311

R150 Certificate of patent or registration of utility model

Ref document number: 4705649

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250