JP4461147B2 - リモートデータミラーリングを用いたクラスタデータベース - Google Patents

リモートデータミラーリングを用いたクラスタデータベース Download PDF

Info

Publication number
JP4461147B2
JP4461147B2 JP2006549582A JP2006549582A JP4461147B2 JP 4461147 B2 JP4461147 B2 JP 4461147B2 JP 2006549582 A JP2006549582 A JP 2006549582A JP 2006549582 A JP2006549582 A JP 2006549582A JP 4461147 B2 JP4461147 B2 JP 4461147B2
Authority
JP
Japan
Prior art keywords
site
server
sites
data
write operation
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.)
Active
Application number
JP2006549582A
Other languages
English (en)
Other versions
JP2007518195A (ja
Inventor
チャンドラセカラン,サシカンス
キホー,ウィリアム・エフ
Original Assignee
オラクル・インターナショナル・コーポレイション
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 オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2007518195A publication Critical patent/JP2007518195A/ja
Application granted granted Critical
Publication of JP4461147B2 publication Critical patent/JP4461147B2/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/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
    • G06F11/2079Bidirectional techniques
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • 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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • 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/2069Management of state, configuration or failover
    • 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/2094Redundant storage or storage space

Description

発明の分野
本発明は複数のサイト間のデータのミラーリングに関する。
発明の背景
データミラーリングは、データが第1の記憶装置に記憶されると同時に、このデータが第1の記憶装置から1つ以上の第2の記憶装置へコピーされる方法である。第1の記憶装置から1つ以上の第2の記憶装置へコピーされたデータは、第1の記憶装置で記憶されるデータの正確なコピーである。それゆえに、ミラーリングされたデータをバックアップすること、および災害の後に適時な方法によってデータを回復することの両方に、データミラーリングが有用である。データミラーリングは、データがミラー元から地理的に近い位置にコピーされるかまたは遠隔地にコピーされるかには依存しない。
図1は、データミラーリングへの第1のアプローチを利用するシステム100を示すブロック図である。このブロック図において、サイトAで記憶されたデータが、サイトBにミラーリングされている。ファイルサーバ130は、データベース140において記憶されたデータをデータベース142に同期式に複製する。データベースサーバ120によって発行され、データベース140内のデータブロックを変更するトランザクションをファイルサーバ130が処理するたびに、ファイルサーバ130はこの変更を反映するメッセージをファイルサーバ132に伝送する。メッセージを受信すると即座に、ファイルサーバ132がデータベース142において記憶されたデータを更新し、データベース140でなされた変更を反映する。データベース142の更新は、たとえば、データベース140に実行されたのと同じ処理をデータベース142に実行する、またはデータベース142の不揮発性メモリを更新してデータベース140に記憶されたデータの現在の状態を反映する等、様々な方法を用いて行うことができる。
クライアント110およびクライアント112等のクライアントは、データベースのデータの読出または書込を行うために、データベースサーバにI/O要求を出してもよい。データベース140および142の整合性を確実にするために、システム100の全てのクライアントは、全てのI/O要求をサイトAのデータベースサーバ120を介して出し、したがってクライアントに関連するサイトに関係なく、全てのクライアントがミラーリングされているデータについて同じ画面を表示することを保証する。
図1に示されるデータミラーリングのためのアプローチには、いくつかの問題がある。第1に、クライアント112等サイトAに関連しないクライアントからのI/O要求は全て、性能上の不利益をこうむる可能性がある。それは、これらのクライアントが、異なるサイトのデータベースサーバにI/O要求を伝送しなければならないためである。クライアントからの全てのI/O要求は単一のデータベースサーバを介して送られるが、このデータベースサーバは要求側クライアントから地理的に遠隔に位置しうるため、遠隔に位置するこれらのクライアントが、I/O要求について伝送の大幅な遅延に直面する可能性がある。さらに、この単一のデータベースサーバは、システム100のクライアントからの全てのI/O要求に対するボトルネックとして作用することになる。
第2に、サイトAが作動できなくなると、たとえばファイルサーバl30がクラッシュ
し利用できなくなると、ついで、サイトB等、故障したサイトAのシステムと置き換わるバックアップシステムが動作可能となるまで、データベースサーバ120およびデータベースサーバ120に接続するシステム100の全てのクライアントは、一時的に使えなくなる。
第3に、ファイルサーバ130がファイルサーバ132に書込動作を複製することができない場合、それはおそらく、ファイルサーバ130およびファイルサーバ132間の通信リンクが実行できなくなるためであるが、1つ以上の書込動作が複製されることができないために、データベース140および142がもはや相互に同期化されないので、その結果、発生した問題から回復するためにデータベース140またはデータベース142がバックアップシステムとして使用されなければならないかどうかを、注意して決定しなければならない。あるデータベースがバックアップシステムとして選ばれ、その選ばれたデータベースがシステムの全てのデータベースに実行された書込動作を全て反映しなければ、データベースになされた変更は失われることになる。
図2は、データミラーリングのための第2のアプローチを示すブロック図である。図2が示すように、各サイトに格納された各データベースは、2つ以上のパーティションに分割される。たとえば、データベース240は、パーティションAおよびB’を有し、データベース242はパーティションA’およびBを有する。データベース240におけるパーティションAに記憶されたデータは、データベース242におけるパーティションA’にミラーリングされ、データベース242におけるパーティションBに記憶されたデータは、データベース240におけるパーティションB’にミラーリングされる。データベース240はパーティションAのプライマリサイトと考えられ、データベース242はパーティションBのプライマリサイトと考えられる。
クライアントからのデータの書込または読出要求がローカルに実行され得る(すなわち、要求を出すクライアントおよび要求にサービスするデータベースが両方とも同じサイト内にある)のは、その要求がそのサイトでミラーリングされているパーティションにおいて記憶されたデータに関与するとき、かつそのときに限る。たとえば、クライアント210が書込または読出要求をパーティションAのデータブロックに出すと、その要求がデータベース240でローカルに実行され得る。しかしながら、クライアント210が、パーティションBのデータブロックに書込または読出要求を出すと、その要求がデータベース242で実行可能になるようにデータベースサーバ220はファイルサーバ232にその要求を送る。この方法によってはプライマリサイトがリモートサイトであるパーティション内のデータに対するトランザクションを処理する性能遅延は減少しないが、このようにデータを分割することによって、プライマリサイトがローカルサイトであるパーティション内のデータに対するトランザクションを処理する性能遅延が減少するのに役に立つ。
しかしながら、データがサイト間で複製されることができない場合、または、特定のサイトが実行不可能になる場合には、このアプローチには問題がある。データが第1のサイト(プライマリサイト)の1つのパーティションから第2のサイト(セカンダリサイト)の対応するパーティションに複製されることができないときには、プライマリサイトのデータベースは複製が成功していなかったことを通知されない。その結果、セカンダリサイトの反復データを記憶するパーティションは、古くなる可能性がある。それ以降、プライマリサイトが実行不可能になる場合、その中に記憶されるデータが古いために、ついで、セカンダリサイトの反復データを記憶するパーティションは、プライマリサイトを実行不可能な状態から復旧するのに使用されることができない。古いデータを使用することは、データベースの一貫性の原則を妨げる。
したがって、従来技術において取り組まれていない必要性があり、その必要性とはデー
タをミラーリングしつつ、上述のアプローチに関連付けられる問題を回避することである。
この項に記述されるアプローチは、実行されることのできる方法であるが、必ずしも前述で考えられたか、または実行された方法ではない。したがって、特に明記しない限り、単にこの項に含まれるだけで、この項に記述された方法のいずれもが従来の方法として見なすものと想定されるべきではない。
本発明は、添付の図面により、限定するものとしてではなく、例として示されており、この図面において、同じ参照番号は類似の要素を示す。
発明の詳細な説明
複数のサイト間のデータをミラーリングするための方法およびシステムが記載されている。以下の記載では、説明の目的で、本発明を完全に理解するための数多くの具体的な詳細が記載される。しかしながら、これらの具体的な詳細なしで、本発明が実施されてもよいことは明らかである。他の例では、本発明を不必要に不明確にすることを回避するために、よく知られた構造およびデバイスがブロック図形式で示される。
(アーキテクチャの概要)
図3は、本発明の一実施形態による、データミラーリングシステム300を示すブロック回路図である。データミラーリングシステム300は、データミラーリングシステム300の各サイト間のデータを双方向に複製するために使用されることができる。さらに、本願明細書において記述されるように、データミラーリングシステム300を使用して、他の利点が達成され得る。図3のデータミラーリングシステム300は、サイト310およびサイト312と、クライアント320およびクライアント322と、データベースサーバ330およびデータベースサーバ332と、ファイルサーバ340およびファイルサーバ342と、データベース350およびデータベース352と、クォーラムデバイス360と、通信リンク370、372、374および376とを含む。
概して本願明細書において使用されるように、サイトはデータミラーリングシステム300における物理的なコンポーネントの論理グループを示す。データミラーリングシステム300において、データは第1のサイトから第2のサイトに複製されることができる。データミラーリングシステム300の数多くのコンポーネントが、単一サイトに格納されることができる。たとえば、単一サイトは、1つ以上のクライアントと、1つ以上のデータベースサーバと、1つ以上のファイルサーバと、1つ以上のデータベースと、1つ以上のクォーラムデバイスとを備えることができる。サイトの物理的なコンポーネントの論理グループは、様々な大きさの領域内に物理的に設置されることができる。たとえば、サイトは、特定の建物や、建物の特定の階、または、建物の特定の部屋に対応することができる。サイトは、他のひとつに物理的に間近にあっても遠隔にあってもよい。説明を簡単にするために、図3は2つのサイトのみを記載するが、実施形態におけるサイトの数はいくつであってもよく、サイトが1つだけのものも含まれる。
概して本願明細書において使用されるように、クライアントは、サービスのための要求を出すことの可能な、任意のソフトウェアまたはハードウェアコンポーネントを示す。たとえば、データベースサーバに要求を出すことの可能なコンポーネントは、一般的にデータベースクライアントと呼ばれる。説明を簡単にするために、図3において各サイトは単一のクライアントで示されるが、サイトは多くのクライアントを含んでもよい。クライアント320および322等の、クライアントの限定されない例示の実施例は、ソフトウェ
アアプリケーションと、パーソナルコンピュータと、データベースサーバに要求を出すことのできるマシンと、データベースサーバとを含む。
データベースサーバ330およびデータベースサーバ332等のデータベースサーバは、データを管理するために使用される1つ以上のソフトウェアおよび/またはハードウェアコンポーネントである。データベース管理の他の機能のうち、データベースサーバは、一般的に、データベースへのアクセスを制御し促進し、かつ、データベースクライアントによる要求を処理してデータベースにアクセスする。2台のデータベースサーバ、すなわちデータベースサーバ330およびデータベースサーバ332のみが図3に表されるが、多くのデータベースサーバが、データミラーリングシステム300において用いられることができる。
本願明細書において広く使用されるように、ファイルサーバはファイル処理および記憶機能性を実行できるどのようなハードウェアまたはソフトウェアコンポーネントをも示す。ファイルサーバ340およびファイルサーバ342等のファイルサーバは、データベースサーバから受信されてデータベースに実行される書込および読取動作を処理する。データベース管理システムまたはデータベース管理システムの中のモジュールと分離し独立して実行するシステムをファイルサーバが含むことができるため、「ファイルサーバ」なる用語が広く本願明細書において使用されることに注意されたい。
データベース350およびデータベース352等のデータベースは、電子情報の持続的記憶装置である。データベースの限定されない例示の実施例は、リレーショナルデータベースと、オブジェクト指向データベースと、多次元的データベースと、コンピュータの分散されたクラスタにあるデータベースと、サーバブレードのグリッドにあるデータベースとを含む。データベースサーバの分散されたクラスタは、全体として本願明細書に引用している米国特許番号第6353836号においてさらに詳細に説明される。データベースサーバの一組が走るグリッドは、全体として本願明細書に引用している米国仮特許出願番号第60/500050号においてさらに詳細に説明される。
本願明細書において広く使用されるように、クォーラムデバイスはメンバーシップ投票の動作を実行することのできるソフトウェアコンポーネントのあらゆるハードウェアを示す。一実施形態において、メンバーシップの投票動作は、どのデータベースサーバ(複数)が複製メンバーシップから取ら除かれるべきかを決定する。クォーラムデバイス360等のクォーラムデバイスの動作は、「双方向多重化」と題される項において以下にさらに詳細に説明されるものとする。説明を簡単にするために、1つのクォーラムデバイスのみが図3に表されるが、データミラーリングシステム300の実施形態は、多くのクォーラムデバイスを含むことができる。
データベースサーバ、たとえば、データベースサーバ330またはデータベースサーバ332およびクォーラムデバイス360の間のデータを交換するための任意の媒体またはメカニズムによって、通信リンク370および372が実行されることが可能である。ファイルサーバ、たとえばファイルサーバ340およびファイルサーバ342の間のデータを交換するための任意の媒体またはメカニズムによって、通信リンク374および376が実行されることが可能である。通信リンク370、372、374および376の例としては、ローカルエリアネットワーク(Local Area Network)、ワイドエリアネットワーク(Wide Area Network)、イーサネットまたはインターネット等のネットワークか、1つ以上の地上リンク、または衛星リンク、あるいは無線リンクが挙げられるが、これらに限定されるものではない。
(ミラーリング環境におけるエラー処理の概要)
複数のサイト間でデータをミラーリングするための方法およびメカニズムが示されている。1つの方法によれば、レプリケーション関係は、第1のサイトおよび第2のサイトを含む複数のサイトの間で確立される。一実施形態において、レプリケーション関係によって、複数のサイトのいずれかのサイトでなされた少なくともいくつかの変更が、複数のサイトの互いのサイトで複製される。
レプリケーション関係にある第1のサイトに関連付けられる第1のデータベースサーバは、書込動作の実行を要求する。その後、書込動作が第1のサイトで実行される。書込動作がレプリケーション関係にある第2のサイトでミラーリングされるよう要求するメッセージが、送信される。
説明のために、第2のサイトによって書込動作が首尾よく実行されなかったと想定する。その結果、第1のデータベースサーバは、第2のサイトにおいて書込動作が首尾よく実行されなかったという指示を受信する。それに応じて、第1のデータベースサーバは、メンバーシップの投票動作を開始して、第1のデータベースサーバか第2のサイトに関連付けられる第2のデータベースサーバのどちらをレプリケーションメンバーシップから取り除くべきかを決定する。
一実施形態において、クォーラムデバイスと通信することによって、第1のデータベースサーバがメンバーシップの投票動作を開始する。クォーラムデバイスは、メンバーシップの投票動作を実行することのできるハードウェアまたはソフトウェアコンポーネントである。どのデータベースサーバがより重要でありより信頼性が高いものであるか等、多くの要因に基づいてどのデータベースサーバがレプリケーションメンバーシップから取り除かれなければならないかを、このクォーラムデバイスが決定することができる。メンバーシップを決定するために、クォーラムデバイスは様々なメンバーシップの投票プロトコルを用いることができる。
第2のサイトに関連付けられる第2のデータベースサーバがレプリケーションメンバーシップから取り除かれるべきだと決定されると、第1のデータベースサーバは、第1のサイトにあるファイルサーバに、第2のサイトで書込動作がもはや複製されることになっていないことを示すメッセージを送信することができる。追加の実施形態は、下記に詳述されている。
(優先順位に基づくコミット処理の概要)
トランザクションに関連付けられる優先順位の値に基づくトランザクションのコミットを処理するための方法もまた、提供される。1つの方法によれば、データが複数のサイト間でミラーリングされる。複数のサイトのうち第1のサイトで先頭レコードが維持され、その先頭レコードは、第1のサイトで実行されたどのトランザクションがそれらのリドゥ情報を複数のサイトのうち他のサイトに複製するかを識別する。広く本願明細書において使用されるように、リドゥ情報はトランザクションを説明する情報を示す。また第2のサイトでは、第2のレコードが維持され、その第2のレコードは、第1のサイトで実行されたどのトランザクションが、それらのリドゥ情報を信頼性の高い記憶装置に第1のサイトで記録するかを識別する。
第1のサイトで実行されるようになるトランザクションに関連付けられる優先順位の値が決定される。トランザクションは、データブロックへの変更を特定する。リドゥ情報は、一般的にリドゥログファイルに記憶される。ほとんどの実施態様において、リドゥログファイルは、トランザクションがコミットする順番にリドゥ情報を順次記憶する。したがって、高優先度のトランザクション(トランザクションが発行されたサイトが作動できなくなると、トランザクションが失敗してはならないことを指示する優先順位の値を有する
トランザクション)に関連付けられるリドゥ情報が確実に複製されることによって、高優先度のトランザクションより前にコミットした低優先度のトランザクション(トランザクションが発行されたサイトが作動できなくなると、トランザクションが失敗する可能性のあることを示す優先順位の値を有するトランザクション)に関連付けられるリドゥ情報もまた確実に複製される。
優先順位の値が、第1のサイトが作動できなくなる場合にトランザクションが失敗してはならないことを示すと、ついで、第1のサイトでのトランザクションの前にコミットされた他のトランザクションのすべてが、それぞれのリドゥ情報を複数のサイトの他のサイトに複製することを先頭レコードが指示す後にだけ、トランザクションがコミットされる。
しかしながら、一実施形態において、優先順位の値が、第1のサイトが作動できなくなる場合にトランザクションが失敗する可能性があることを示すと、ついで、第1のサイトでのトランザクションの前にコミットされた他のトランザクションのすべてが、それぞれのリドゥ情報を複数のサイトの他のサイトに複製することを先頭レコードが指示する前に、トランザクションがコミットされる。別の一実施形態において、優先順位の値が、第1のサイトが作動できなくなる場合にトランザクションが失敗する可能性があることを示すと、第1のサイトでのトランザクションの前にコミットされた他のトランザクションのすべてが、それぞれのリドゥ情報を信頼性の高い記憶装置に第1のサイトで記憶することを第2のレコードが指示する後に、トランザクションがコミットされる。
追加の実施形態を、下記に詳述する。
(双方向レプリケーション)
以下にさらに詳細に説明されるように、実施形態は、システム300の各サイトにおける、同時のローカルの読み取り動作およびローカルの書込動作をサポートする。書込動作は、同期的に、または、非同期的に、システム300の他の各サイトに複製されることができる。一実施形態において、別のサイトへの書込動作のレプリケーションを遅らせることによって、書込動作の性能を強化することができる。たとえば、高優先度のトランザクションがコミットする必要があるまで、あるいは、書込前の記録または書込後の記録が保存される必要のあるポイントまで、別のサイトへの書込動作のレプリケーションを遅らせることができる。書込動作を遅らせることにより、書込動作のレプリケーションを能率的にバッチ処理することが可能となる。
図4は、一実施形態による、複数のサイト間でデータをミラーリングするステップを示すフローチャート400である。まず、ステップ410において、レプリケーション関係が複数のサイト間で確立される。一実施形態において、レプリケーション関係は、データミラーリングシステム300における各サイトに確立される。たとえば、レプリケーション関係は、図3におけるサイト310およびサイト312に確立される。一実施形態において、レプリケーション関係によって、データミラーリングシステム300におけるいずれかのサイトでなされた少なくともいくつかの変更が、データミラーリングシステム300における他の各サイトで複製される。ステップ410を実行した後、処理がステップ420へと進む。
ステップ420において、複数のサイトの中の第1のサイトに関連付けられる第1のデータベースサーバが、書込動作の実行を要求する。一実施形態において、サイト310にあり、書込動作の実行を要求するデータベースサーバ330によって、ステップ420が実行されることができる。書込動作は、データベース350等の第1のサイトに設置されるデータベースにデータを書き込む動作であってもよい。ステップ420を実行した後、処理がステップ430へと進む。
ステップ430において、ステップ420において要求された書込動作が第1のサイトで実行される。一実施形態において、書込動作は、データベース350で書込動作を実行するようファイルサーバ340に指示するデータベースサーバ330によってサイト310で実行されることができ、その後で、ファイルサーバ340は、データベース350で書込動作を実行する。また、ステップ430において、書込動作が第2のサイトでミラーリングされることを要求するメッセージが送信される。一実施形態において、ファイルサーバ340は、書込動作がサイト312でファイルサーバ342にミラーリングされる要求を送信することができる。ステップ430を実行した後で、処理がステップ440へと進む。
書込動作がシステムの各サイトで実行されるのは、各サイトで各データベースサーバがメカニズムを使用して、確実に1つ以上の書込動作がディスクに持続的に記憶される同一のデータブロックを同時に変更するためであることに注意されたい。様々な方法を使用して、このようなメカニズムは実行されることができ、その方法には、グローバルなロック管理(共有ディスククラスタ)の形式、または、ディスクのパーティショニング(非共有クラスタ)が含まれる。
ステップ440において、第1のデータベースサーバは、書込動作が第2のサイトで首尾よく実行されなかった指示を受信する。たとえば、データベースサーバ330は、書込動作がサイト312で首尾よく実行されなかったという指示を受信する。一実施形態において、その指示は、メンバーシップの投票動作が実行されるべきであることを指示する入出力エラーである。入出力エラーは、データベースサーバ330によるメッセージにおいて受信される独特のエラーコードを使用して表すことができる。サイト310で受信される指示は、書込動作がサイト312で複製できないことを識別する入出力エラーであってもよい。一実施形態において、データミラーリングシステム300の1つのサイトがデータミラーリングシステム300の別のサイトで実行された書込動作を反映しないときには、この指示は、ステップ440において受信されるだけである。すなわち、その結果として、データベースサーバ332が故障すると、ステップ440の指示がサイト310によって受信されない。一実施形態において、ファイルサーバ342が故障するか、データベース352が故障するか、通信リンク374が失敗するか、または通信リンク376が失敗する場合には、サイト310はステップ440の指示を受信する。ステップ440を実行した後、処理がステップ450へと進む。
ステップ450において、第1のデータベースサーバは、メンバーシップの投票動作を開始し、第1のデータベースサーバまたは第2のサイトに関連付けられる第2のデータベースサーバのどちらが、レプリケーションメンバーシップから取り除かれなければならないかを決定する。たとえば、メンバーシップの投票動作を開始し、データベースサーバ330またはデータベースサーバ332がレプリケーションメンバーシップから取り除かれなければならないかを決定するステップ450は、データベースサーバ330によって実行されることができる。
一実施形態において、クォーラムデバイスと通信することによって、第1のデータベースサーバはメンバーシップの投票動作を開始する。たとえば、通信リンク370を介してクォーラムデバイス360と通信することによって、データベースサーバ330がメンバーシップの投票動作を開始する。
図5は、本発明の一実施形態によるメンバーシップの投票動作を開始する機能ステップを示すフローチャートである。ステップ510において、クォーラムデバイスは書込動作が首尾よく実行されなかったことを通知される。たとえば、通信リンク370を介してク
ォーラムデバイス360に書込動作がサイト312で首尾よく実行されなかったことを通知するステップ510が、データベースサーバ330によって実行されることができる。ステップ510のパフォーマンスの後、処理がステップ520へと進む。
ステップ520において、ステップ510において通知されたクォーラムデバイスは、どのデータベースサーバがレプリケーションメンバーシップから取り除かれるべきかを決定する。たとえば、クォーラムデバイス360によって、どのデータベースサーバがレプリケーションメンバーシップから取り除かれるべきかを決定するステップ520が実行されることができる。一実施形態において、どのデータベースサーバがレプリケーション関係から取り除かれるべきかの決定は、どのデータベースサーバがより重要であるか、またはより信頼性が高いかを決定することを含む。データミラーリングシステム300のデータベースサーバすべてが同様に重要であるか、または同様に信頼性が高い場合、デフォルトデータベースサーバが、クォーラムデバイスによって選択されることができる。
一実施形態において、データベースサーバ332がレプリケーションメンバーシップから取り除かれるべきであるとクォーラムデバイス360が決定すると、ついで、データベースサーバ330が、サイト310で実行された書込動作はサイト312でもはや複製されることにならないことを示すメッセージを、ファイルサーバ340に送信する。あるいは、サイト310がレプリケーションメンバーシップから取り除かれるべきであるとクォーラムデバイス360が決定すると、ついで、データベースサーバ332は、データがサイト310でもはや複製されることにならないことを、ファイルサーバ342に知らせる。たとえ書込動作が異なるサイトにもはや複製されなくても、ファイルサーバは読み取りおよび書込の動作をローカルに処理することが可能である。
一実施形態において、クォーラムデバイス360は複数のミラーリングされたデバイスからなり、ステップ510はプライマリファイルサーバによって実行される。プライマリファイルサーバは、複数のサイトのうちの1つに関連付けられるファイルサーバであり、このプライマリサーバを介して、複数のサイトの他のサイトに関連付けられる他の全てのファイルサーバがクォーラムデバイスと通信する。たとえば、データベースサーバ330は、プライマリファイルサーバであってもよい。その結果として、データベースサーバ332は、データベースサーバ330を介してクォーラムデバイス360と通信する。
一実施形態において、異なる障害ドメインに関連付けられるデータミラーリングシステム300の他のいかなるサイトとも異なるサイトに、クォーラムデバイス360が設置される。この実施形態において、データミラーリングシステム300の各データベースサーバは、クォーラムデバイス360と直接交信することができる。しかしながら、クォーラムデバイス360が故障すると、ついで、データミラーリングシステム300の各サイトが故障するのは、たとえこれらのサイトが他の点では異常がなく、ネットワークおよび入出力を相互に接続するとしても、各サイトがクォーラムデバイス360と通信することができないためである。
一実施形態において、サイトのデータベースサーバがレプリケーションメンバーシップから取り除かれるべきであるとクォーラムデバイスが決定したあとに、サイトがレプリケーション関係を再結合することができる。たとえば、サイト312がレプリケーション関係から取り除かれたとしても、ついで、サイト312がレプリケーション関係を再結合することができる。レプリケーション関係を再結合するサイト312に応じて、サイト312内のデータがサイト310のデータによって再同期化され、データベース352が据え替えられる。
(リドゥ情報の書込パフォーマンスの改良)
書込動作の同期式レプリケーションによって、書込動作の呼び出し時間およびコストが上昇する。ほかの場所で開始しまだ複製されていない書込動作、および、まさに発行されようとしている書込動作を調整するのに注意を払わなければならないにもかかわらず、ファイルサーバは非同期式に書込動作を複製してもよい。非同期式レプリケーションを有利に用いる数多くの実施形態を以下に述べる。
非同期式レプリケーションによってリドゥ情報を書込の実行を改良するいくつかの実施形態を、以下に述べる。本願明細書において広く使用されるように、リドゥ情報はトランザクションを説明する情報を示す。一実施形態において、リドゥ情報は、コミットしたか、またはコミットしようとしているトランザクションを説明する。一実施形態において、リドゥ情報は、リドゥログファイルにおいて記録されることができる。リドゥ情報は、コミットされたトランザクションをロールバックするか、または、「アンドゥする」のに使用されることができる。
図6は、本発明の一実施形態による、複数のサイト間でデータをミラーリングするステップを示すフローチャートである。図6において示されるステップは、複数のサイト間でリドゥ情報をミラーリングするのに使用されることができる。まず、ステップ610において、先頭レコードが複数のサイトの第1のサイトで維持され、この先頭レコードは、第1のサイトで実行されたどのトランザクションが、これらのリドゥ情報を複数のサイトのうちの他のサイトに複製したかを識別する。ステップ610は、サイト310のデータベースサーバ330によって実行されることができる。一実施形態において、一部のリドゥログファイルを識別することによって、ステップ610が実行されることができる。ステップ610のリドゥログファイルの識別された部分に反映されたトランザクションはすべて、複数のサイトの他のサイトに複製されている。
それぞれのリドゥ情報が複数のサイトの他のサイトに複製されるリドゥログファイルに反映される特定のトランザクションを識別し、最も数字の大きいログシーケンス番号(Log Sequence Number)に関連付けられるレコードを維持することによって、たとえば、ステップ610において識別されたリドゥログファイルの部分が識別されることができる。リドゥログファイルにあり、特定のトランザクションに関連付けられるLSNより小さなLSNを有するトランザクションはすべて、それらのリドゥ情報を複数のサイトの他のサイトに複製するリドゥログファイルの識別された部分にある。ステップ610を実行した後、処理がステップ620へと進む。
ステップ620において、第1のサイトで実行されたどのトランザクションが、リドゥ情報が信頼性の高い記憶装置に第1のサイトで記録したかを識別する第2のレコードが、複数のサイトのうちの第1のサイトで維持される。ステップ620は、サイト310のデータベースサーバ330によって実行されることができる。一実施形態において、リドゥログファイルの一部を識別することによって、ステップ620が実行されることができる。ステップ620のリドゥログファイルの識別された部分に反映されたトランザクションはすべて、第1のサイトで信頼性の高い記憶装置に記録されている。
それぞれのリドゥ情報が第1のサイトで信頼性の高い記憶装置に記録されるリドゥログファイルに反映される特定のトランザクションを識別し、最も数字の大きいログシーケンス番号(LSN)に関連付けられるレコードを維持することによって、たとえば、ステップ620において識別されたリドゥログファイルの部分が識別されることもできる。ログファイル中にあり、特定のトランザクションに関連付けられるLSNより小さいか、または等しいLSNを有するトランザクションはすべて、リドゥログファイルの識別された部分にあり、このトランザクションによって、リドゥ情報が第1のサイトで信頼性の高い記憶装置に記録される。ステップ620を実行した後、処理がステップ630へと進む。
ステップ630において、トランザクションに関連付けられる優先順位の値が決定される。トランザクションの重要性に基づいてトランザクションがいつコミットされなければならないかを決定するのに、優先順位の値が使用されることができる。たとえば、第1のサイトが実行できなくなる場合に特定のトランザクションが失敗しなければ、ついで、トランザクションは、第1のサイトが実行できなくなる場合に失敗する可能性のあるトランザクションよりも高い優先順位の値を与えられることができる。
一実施形態において、ステップ630の優先順位の値に関連付けられるトランザクションは、第1のサイトで実行されることになる。一実施形態において、トランザクションは、少なくとも1つのデータブロックに変更がなされることになることを指示する。トランザクションによって変更されたデータブロックは、サイト310のデータベース350に存在することができる。説明を簡単にするために、トランザクションが2個以上のデータブロックを変更することができるにもかかわらず、このトランザクションは1つのデータブロックを変更するものとして述べられている。ステップ630は、サイト310のデータベースサーバ330によって実行されることができる。ステップ630を実行した後、処理がステップ640へと進む。
ステップ640において、第1のサイトが実行できなくなる場合に、トランザクションが失敗できないことを先の数値が示すかどうかに関する決定がなされる。ステップ640は、サイト310のデータベースサーバ330によって実行されることができる。
ステップ640の決定が肯定的な(第1のサイトが実行できなくなると、優先順位の値はトランザクションが失敗してはならないことを示す)場合、ついで、処理がステップ650へと進む。ステップ650において、トランザクションがコミットされるのは、トランザクションに関連付けられるリドゥ情報がデータミラーリングシステム300の他の各サイトに複製されたことを先頭レコードが示したあとだけである。ステップ650は、サイト310のデータベースサーバ330によって実行されることができる。
一実施形態において、トランザクションに関連付けられるコミットレコードを先頭レコードと比較することによって、トランザクションに関連付けられるリドゥ情報が複数のサイトの他のサイトに複製されたかどうかの決定が、ステップ650において実行される。
ステップ640の決定が否定的な(第1のサイトが実行できなくなると、優先順位の値が、トランザクションが失敗する可能性のあることを示す)場合、ついで、処理がステップ660へと進む。ステップ660において、トランザクションがコミットされるのは、トランザクションに関連付けられるリドゥ情報が、信頼性の高い記憶装置に第1のサイトで記憶されたことを、第2のレコードが示したあとだけである。ステップ660は、サイト310のデータベースサーバ330によって実行されることができる。
一実施形態において、トランザクションに関連付けられるコミットレコードを第2のレコードと比較することによって、トランザクションに関連付けられるリドゥ情報が信頼性の高い記憶装置に記憶されたかどうかの決定が、ステップ660において実行される。
代替実施形態(図6において示さず)において、トランザクションに関連付けられるリドゥ情報が複数のサイトの他のサイトに複製されたことを先頭レコードが示す前にトランザクションをコミットすることによって、ステップ660が実行されることができる。一実施形態において、トランザクションに関連付けられるリドゥ情報が複数のサイトの他のサイトに複製されたことを先頭レコードが示す前に、サイト310のデータベースサーバ330がトランザクションをコミットする。トランザクションによって生成されるリドゥ
情報は、トランザクションに関連付けられるのと考えられる。
上述の実施形態によって、トランザクションの重要性に基づいて、いつトランザクションをコミットするかを有利に決定することができる。たとえば、特定のトランザクションが極めて重要なトランザクションである(そのトランザクションがいかなる状況下であっても失敗してはならない)場合、ついで、先頭レコードがトランザクションの前にコミットされた他のトランザクションすべてが、それぞれのリドゥ情報を他のサイトに複製することを示したあとに、トランザクションがコミットされるだけである。しかしながら、それほど重要ではないトランザクションは、トランザクションの前にコミットされた他のトランザクションすべてがそれぞれのリドゥ情報を第1のサイトにある信頼性の高い記憶装置に記憶することを第2のレコードが示したあとに、コミットされることができる。この方法では、コミットされたトランザクションに関連付けられる変更が複数のサイトの他のサイトにおいてミラーリングされる前にもし第1のサイトが実行できなくなると、それほど重要でない確約されたトランザクションが失敗する可能性があるにもかかわらず、それほど重要ではないトランザクションは極めて重要なトランザクションよりも前に確約されることができる。
書込動作のレプリケーションが遅延し、書込動作を出した特定のサイトが実行できなくなると、ついで、実行できないサイトのリカバリを開始する前に、残存しているサイトは実行できないサイトから伝送された全てのメッセージが複数のサイトの相互のサイトで受信されるのを待たなければならない。このように実行することによって確実となるのは、実行できなくなっているそのサイトより前に実行できないサイトから送信され、まだ受信されていないメッセージが、実行できないサイトのリカバリを開始したかまたは完了した後では、残存しているサイトによって処理されないことである。あるいは、1つ以上の残存しているサイトが、実行不可能なサイトのリカバリを開始したかまたは完了した後では、残存しているサイトは実行できないサイトから伝送されたいかなるメッセージも無視することができる。
図7は、本発明の一実施形態による、複数のサイト間でデータをミラーリングするステップを示すフローチャートである。図7に示されるステップは、有利には、リドゥログへの書込動作のレプリケーションを遅延させるために使用されることができる。データベースサーバがデータをリドゥログに書き込む呼び出し時間を減少させるのに、有利である。データベースサーバは、最近のコミットされたトランザクションが失敗しているリドゥログへの書込のレプリケーションを遅延することができ、そしてサイトが故障したときには耐えることができる。後述する本発明の実施形態は、有利には、持続的に記憶されなかった変更を反映するデータブロックが、持続的に記憶されるかまたは別のサイトに転送されるまで、リドゥログへの書込のレプリケーションを遅延させる。
まず、ステップ710において、複数のサイトの第1のサイトでトランザクションが処理される。ステップ710は、書込動作等のトランザクションを処理するサイト310のデータベースサーバ330によって実行されることができる。
ステップ720において、処理されたトランザクションを反映する情報が生成される。この情報は、揮発性メモリにおいて生成されることができる。この情報は、処理されたトランザクションに関するリドゥ情報を含むことができる。ステップ720は、サイト310のデータベースサーバ330によって実行されることができる。処理されたトランザクションを反映する情報が生成された後、処理がステップ730へと進む。
ステップ730において、処理されたトランザクションに関連付けられるデータブロックが持続的に記憶されるか、または、このデータブロックが別のサイトへ転送されるかの
どちらかの前に、ステップ720において生成される情報が持続的に記憶されているかどうかに関する決定がなされる。ステップ730は、サイト310のデータベースサーバ330によって実行されることができる。
ステップ730の決定が肯定的な(処理されたトランザクションに関連付けられるデータブロックが持続的に記憶されるか、または、データブロックが別のサイトへ転送されるかどちらかの前に、ステップ720において生成される情報が持続的に記憶されている)場合、ついで、処理がステップ740へと進む。ステップ740において、データブロックが持続的に記憶されるか、または、データブロックが複数のサイトの別のサイトへ転送されるかどちらの前に、ステップ720において生成される情報が持続的に記憶される。
一実施形態において、複数トランザクションに関する情報が持続的に記憶されるように、ステップ740が実行されることができる。たとえば、第1のサイトで、第2のトランザクションが処理されることができ、処理された第2のトランザクションを反映する情報が第1のサイトで揮発性メモリに生成されることができる。処理された第2のトランザクションに関連付けられる第2のデータブロックが持続的に記憶されるか、または、第2のデータブロックが複数のサイトの別のサイトへ転送されるかどちらかの前に、ステップ720で生成された情報(以下、「第1の情報」)、および、第2のトランザクションを反映する情報(以下、「第2の情報」)が記憶されず、第2のデータブロックが持続的に記憶されるか、または、第2のデータブロックは複数のサイトの別のサイトへ転送されるかどちらかの前に、バッチ処理を使用することにより、第1の情報および第2の情報が持続的に記憶されることができる。一実施形態において、バッチ処理を使用することにより、データベースサーバ330が持続的に第1の情報および第2の情報を記憶する。一実施形態において、バッチ処理は非同期式であってもよい。たとえばUNIXのaio_result_tの入出力結果記述子を使用して、非同期式バッチ処理の結果が決定されてもよい。いつバッチ処理が完了したかを決定するのに非同期入出力結果記述子が使用されることができる。
ステップ730の決定が否定的な(処理されたトランザクションに関連付けられるデータブロックが持続的に記憶されるか、または、データブロックが別のサイトへ転送されるかどちらかの前に、ステップ720において生成される情報が持続的に記憶されなかった)場合、ついで、処理は、ステップ750へ進む。ステップ750において、処理されたトランザクションに関連付けられるデータブロックは、持続的に記憶されるか、または転送される。
(データベースファイルへの書込の実行の改良)
非同期式レプリケーションによってデータベースファイルへの書込の実行を改良する実施形態をいくつか後述する。図8は、本発明の一実施形態による、複数のサイト間でデータをミラーリングするステップを示すフローチャートである。図8に示されるステップは、ライトアヘッドロギング方式を使用して、データベースファイルに書き込むのに使用されることができる。
まず、ステップ810において、先頭レコードが複数のサイトの第1のサイトで維持され、そのレコードは第1のサイトの1つ以上のデータブロックになされたどの変更が、関連付けられたリドゥ情報を複数のサイトの他のサイトに複製したかを識別する。第1のサイトは、ライトアヘッドロギング方式を実行する。ライトアヘッドロギング方式において、持続的に記憶されない変更を反映するバッファキャッシュのデータブロック(「故障付きの」データブロック)が持続的に記憶されるのは、1つ以上のデータブロックに関連付けられるリドゥ情報が持続的に記憶された後だけである。一実施形態において、トランザクションを実行すると、第1のサイトは複数のサイトのうち他のサイトに非同期式にトラ
ンザクションを複製する。ステップ810は、先頭レコードを維持しているサイト310のデータベースサーバ330によって実行されることができ、そのレコードは、サイト310でデータベース350に記憶された1つ以上のデータブロックになされたどの変更が、関連付けられたリドゥ情報をサイト312に複製したのかを識別する。複数のサイトのうち他のサイトに複製されるリドゥ情報を関連付ける1つ以上のデータブロックになされた変更は、各変更をリドゥログのログシーケンス番号(LSN)に割り当て、複製されたごく最新の変更のログシーケンス番号を記憶することによって、追跡されることができる。さらに、特定のデータブロックになされる最新の変更に関連付けられるLSNは、特定のデータブロックのヘッダに記憶される。ステップ810を実行した後、処理がステップ820へと進む。
ステップ820において、第2のレコードが複数のサイトの第1のサイトで維持され、そのレコードは第1のサイトの1つ以上のデータブロックになされたどの変更が、関連付けられたリドゥ情報を複数のサイトの第1のサイトで信頼性の高い記憶装置に記録したかを識別する。複数のサイトのうちの第1のサイトで信頼性の高い記憶装置に記録されるリドゥ情報に関連付ける1つ以上のデータブロックになされた変更は、各変更をリドゥログのログシーケンス番号(LSN)に割り当て、信頼性の高い記憶装置に記録されたごく最新の変更のログシーケンス番号を記憶することによって、追跡されることができる。サイト310のデータベース350において記憶された1つ以上のデータブロックになされたどの変更が、サイト310で記録されるリドゥ情報を関連する信頼性の高い記憶装置に関連付けるのかを識別する第2のレコードを維持するステップ820が、サイト310のデータベースサーバ330によって、実行されることができる。ステップ820を実行した後、処理はステップ830へと進む。
ステップ830において、書込トランザクションが第1のサイトで出されたのと同じ順番で、第1のサイトが書込トランザクションを複製するかどうかに関する決定がなされる。サイト310のデータベースサーバ330は、ステップ830を実行することができる。
ステップ830の決定が肯定的な(書込トランザクションが第1のサイトで完了したのと同じ順番で、第1のサイトが書込トランザクションを複製する)場合、ついで、処理がステップ840へと進む。ステップ840において、データブロックは持続的に記憶されるのは、第1のサイトで記憶された1つ以上のデータブロックになされるいずれかの変更が、リドゥ情報を信頼性の高い記憶装置に記録したことを第2のレコードが示した後である。データブロックになされる変更は、1つ以上のトランザクションによって実行されることができる。データベース350の特定データブロックを持続的に記憶することによってステップ840が実行されることができるのは、サイト310でデータベース350に記憶されるデータブロックになされるいずれかの変更が、関連付けられたリドゥ情報を信頼性の高い記憶装置にサイト310で記録したことを第2のレコードが示した後である。
ステップ830の決定が否定的な(書込トランザクションが第1のサイトで完了したのと同じ順番で、第1のサイトが書込トランザクションを複製されない)場合、ついで、処理がステップ850へと進む。ステップ850において、データブロックが持続的に記憶されるのは、第1のサイトで記憶された1つ以上のデータブロックになされるいずれかの変更が、リドゥ情報を複数のサイトの他のサイトに複製したことを先頭レコードが示した後である。1つ以上のデータブロックになされる変更は、1つ以上のトランザクションによって実行されることができる。サイト310のデータベース350の特定のデータブロックを持続的に記憶することによってステップ850が実行されることができるのは、サイト310でデータベース350に記憶される1つ以上のデータブロックになされるいずれかの変更が、関連付けられたリドゥ情報を複数のサイトの他のサイトに複製したことを
先頭レコードが示した後である。特定のデータブロックになされた変更が複数のサイトの他のサイトに複製されたことを先頭レコードが示したあと、ついで、データブロックと関連付けられるロックが解除されることができる。詳しくは、共有ディスクにおいて、または、共有キャッシュクラスタデータベースにおいて、グローバルロック管理を使用してデータブロックに対する並列アクセスが調整されるが、データブロックに関連付けられるロックが解除されることができるのは、先頭レコードがデータブロックになされる変更に関連付けられるリドゥ情報が複数のサイトの他のサイトに複製されたことを示した後だけである。このことによって確実となるのは、データブロックになされた先の変更に関連付けられるあらゆる先のリドゥ情報がサイトの局所の信頼性の高い記憶装置に利用可能とならない限り、リモートサイトからデータブロックを受信するいかなるサイトも、データブロックを読み取り書き込んだりしないことである。
図8に表される実施形態を使用して、書込動作が出される順番で、異なるファイルへの書込動作が複製されると、ついで、第2のレコードが特定のデータブロックを更新するトランザクションすべてを反映するとすぐに、特定のデータブロックが持続的に記憶されることができる。このように、1つ以上のトランザクションによって特定データブロックになされる変更に関連付けられるリドゥ情報が複製された後にだけ、特定のデータブロックを複製する。
本発明の実施形態は、ライトバックロギング方法を使用して、データベースファイルへの書込の実行を改良する。ライトバックロギング方法において、データブロックのためのリドゥ情報が生成する前に、データブロックが持続的に記憶される。図9は、本発明の一実施形態による、複数のサイト間でデータをミラーリングするステップを示すフローチャートである。図9において示されるステップは、ライトバックロギング方法を使用して、ファイルをデータベースに書き込むのに使用されることができる。まず、ステップ910において、複数のサイトの第1のサイトで、データブロックになされる変更に関するリドゥ情報を持続的に記憶する前に、データブロックが持続的に記憶される。サイト310のデータベースサーバ330によって、データブロックになされる変更に関するリドゥ情報を持続的に記憶する前に、データベース350にあるデータブロックを持続的に記憶するステップ910が実行されることができる。ステップ910を実行した後に、処理がステップ920へと進む。
ステップ920において、第1のサイトで、データブロックになされる変更を反映するリドゥ情報が持続的に記憶されるのは、この変更が複数のサイトの他のサイトに複製された後である。サイト310のデータベースサーバ330によって、変更がサイト312に複製されたあとにデータブロックになされる変更を反映するリドゥ情報を持続的に記憶するステップ920が実行されることができる。
一実施形態において、ステップ920において、データブロックになされる変更がいつ複数のサイトの他のサイトに複製されたかに関する決定がなされる。一実施形態において、サイト310のデータベースサーバ330は、データブロックになされた変更がいつサイト312に複製されたかに関して決定する。
一実施形態において、単一の処理は、各々がデータブロックに対する変更を行う1つ以上のトランザクションを発行することができる。別の一実施形態において、1つ以上のトランザクションは、2つ以上の処理によって発行されることができる。データベースサーバ330は、1つ以上のデータブロックに対する変更を行う1つ以上のトランザクションがいつ完了するかを決定することができる。1つ以上のデータブロックに対する変更を行う1つ以上のトランザクションが完了した後、ステップ910に記載されているように、1つ以上のデータブロックが持続的に記憶されることができる。
図9に示すステップを使用して、データベースサーバは、書込動作のためのリドゥ情報を持続的に記憶する前に、持続的に記憶されたデータブロックにファイルサーバが全ての書込動作のレプリケーションを完了するまで、待つことができる。たとえば、サイト310のデータベースサーバ330はデータベースサーバ330がデータベース350の書込動作のためのリドゥ情報を持続的に記憶する前に、ファイルサーバ340がサイト310で持続的に記憶されたデータブロックへの全ての書込動作のサイト312に対するレプリケーションを完了するまで、待つことができる。
(サイトリカバリ)
一実施形態において、データミラーリングシステム300の特定のサイトが実行できなくなると、ついで、特定のサイトからデータミラーリングシステム300の他の各サイトに伝送されたメッセージすべてがその相手先で受信されたことが決定された後に、特定のサイトのリカバリが開始される。たとえば、図3に表される実施形態において、サイト310が作動できなくなる場合、ついで、サイト310からサイト312まで伝送されたメッセージすべてがサイト312で受信されたことが決定された後までは、サイト310のリカバリは開始されない。あるいは、1つ以上の残存しているサイトが作動できないサイトのリカバリを開始したかまたは完了した後は、残存しているサイトは、作動できないサイトから伝送されたいかなるメッセージも無視することができる。
(テンポラリファイルへの書込の実行の改良)
ソートやハッシュ結合等の特定のデータベース操作においては、データベースはテンポラリファイルを用いてもよい。テンポラリファイルは、限られた時間の間データを保持するために、メモ用紙のように用いられる。このテンポラリファイルの空き領域の割当てに関するメタデータの変更を複製する必要がある場合もある。しかしながら、テンポラリファイルが複数のサイトの他のサイトによって必要とされなければ、テンポラリファイルは複製される必要はない。
一実施形態において、テンポラリファイル等のデータ構造が複数のサイトの他の各サイトに複製されることになっているかどうかに関する決定が、複数のサイトの第1のサイトでのデータベースサーバでなされる。データ構造が複数のサイトの他の各サイトに複製されることになっていないことが決定されなければ、第1のサイトのデータ構造は、複数のサイトの他の各サイトに複製される。たとえば、図3に表される実施形態において、サイト310のデータベースサーバ330は、特定のテンポラリファイルがサイト312に複製される必要はないことを決定することができる。その結果として、データベースサーバ330は、サイト312にテンポラリファイルを複製しない。
(メカニズムの実行)
図10は、本発明の一実施形態が実行されることのできるコンピュータシステム1000を示すブロック図である。コンピュータシステム1000は、バス1002または情報を通信するための他の通信メカニズム、および、情報を処理するためのバス1002に結合されるプロセッサ1004を含む。コンピュータシステム1000はまた、ランダムアクセスメモリ(RAM)または他の動的記憶装置等のメインメモリ1006を含み、メインメモリはプロセッサ1004によって実行されるべき情報および指示を記憶するためのバス1002に結合される。プロセッサ1004によって実行されるべき指示を実行する間に、メインメモリ1006はまた、一時変数または他の中間の情報を記憶するために使用されることができる。コンピュータシステム1000は、バス1002に結合されプロセッサ1004のための静的情報および指示を記憶するための読み出し専用メモリ(ROM)1008または他の静的記憶装置をさらに含む。磁気ディスクまたは光ディスク等の記憶装置1010が設けられ、情報および指示を記憶するためのバス1002に結合され
る。
コンピュータシステム1000は、コンピュータユーザに情報を表示するために、バス1002を介してブラウン管(CRT)等のディスプレイ1012に結合されることができる。英数字および他のキーを含む入力装置1014は、プロセッサ1004に情報および命令の選択を通信するためにバス1002に結合される。別のタイプのユーザ入力デバイスは、マウスや、トラックボール、またはカーソル方向キー等のカーソル制御機器1016であり、プロセッサ1004に方向情報および命令選択を通信し、ディスプレイ1012上でカーソル移動を制御するためのものである。この入力装置は、一般的に2本の軸、すなわち第1軸(たとえばx)および第2軸(たとえばy)において2つの自由度を有し、このことにより、デバイスが平面の位置を特定することが可能となる。
本発明は、本願明細書において説明される方法を実行するためのコンピュータシステム1000の使用に関する。本発明の一実施形態によると、これらの方法は、メインメモリ1006に含まれる1つ以上の指示の1つ以上のシーケンスを実行するプロセッサ1004に応じて、コンピュータシステム1000によって実行される。このような指示は、記憶装置1010等の別のコンピュータ可読媒体からメインメモリ1006の中に読み取られることができる。メインメモリ1006に含まれる指示のシーケンスを実行することによって、プロセッサ1004は本願明細書において説明される処理ステップを実行する。代替実施形態において、本発明を実行するために、配線による回路が、ソフトウェア指示の代わりに、または、ソフトウェア指示と組み合わせて使用されることができる。したがって、本発明の実施形態はハードウェア回路及びソフトウェアの特定の組み合わせに限定されない。
本明細書中で使用する「コンピュータ可読媒体」なる用語は、プロセッサ1004への指示を実行する際に関与するいかなる媒体をも示す。このような媒体は、不揮発性媒体、揮発性媒体および伝送媒体を含むが、これらに限定されない多くの形を取り得る。不揮発性媒体は、たとえば、記憶装置1010等の光学ディスクまたは磁気ディスクを含む。揮発性媒体は、メインメモリ1006等の動的メモリを含む。伝送媒体は同軸ケーブル、銅線および光ファイバを含み、バス1002を備えるワイヤを含む。伝送媒体はまた、電波および赤外線データ通信中に生成されるような音波または光波の形を取り得る。
コンピュータ可読媒体の一般的な形は、たとえば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープまたは他のいかなる磁気媒体、CD−ROM、他のいかなる光媒体、パンチカード、紙テープ、孔のパターン有する他のいかなる物理メディア、RAM、PROMおよびEPROM、フラッシュEPROM、他のいかなるメモリーチップまたはカートリッジ、後述するようなキャリア波、または、コンピュータがそこから読み取ることのできる他のいかなる媒体を含む。
プロセッサ1004への1つ以上の指示の1つ以上のシーケンスを実行するために、コンプイータ可読媒体の様々な形が含まれることができる。たとえば、命令は、まずリモートコンピュータの磁気ディスクに実行されることができる。リモートコンピュータは、指示をその動的メモリに読み取り、モデムを使用して電話線を介して命令を送信することができる。ローカルなコンピュータシステム100にローカルなモデムが、電話線上のデータを受信し、データを赤外線信号に変換するための赤外線トランスミッターを使用することができる。赤外線探知器は赤外線信号で伝えられたデータを受信し、適切な回路はバス1002上のデータを設定することができる。バス1002はメインメモリ1006へデータを伝送し、プロセッサ1004は指示を取り出して実行する。メインメモリ1006によって受信された命令は、プロセッサ1004によって実行される前か後のどちらでも、記憶装置1010に随意に記憶されることができる。
コンピュータシステム1000はまた、バス1002に結合する通信インタフェース1018を含む。通信インタフェース1018は、ローカルネットワーク1022に接続されるネットワークリンク1020に結合する双方向データ通信を提供する。たとえば、通信インタフェース1018は、データ通信を対応するタイプの電話線に接続する総合サービスデジタルネットワーク(Integrated Services Digital
Network)カードまたはモデムであってもよい。別の実施例として、通信インタフェース1018は、データ通信を互換性のあるLANに接続するローカルエリアネットワーク(LAN)カードであってもよい。無線リンクもまた実行されることができる。いずれの種類のインプリメンテーションにおいても、通信インタフェース1018は、さまざまな情報を示すデジタルデータストリームを伝える電気信号、電磁気信号、または光学信号を送受信する。
ネットワークリンク1020は、一般的に、1つ以上のネットワークを介してデータ通信を他のデータ装置に提供する。たとえば、ネットワークリンク1020は、ホストコンピュータ1024に、または、インターネットサービスプロバイダ(Internet Service Provider)1026によって運営されるデータ装置に、ローカルネットワーク1022を介して接続することができる。ISP1026は、今では一般に「インターネット」1028と呼ばれる世界的なパケットデータ通信網を介して、次々にデータ通信サービスを提供する。ローカルネットワーク1022およびインターネット1028は両方とも、デジタルデータストリームを伝える電気信号、電磁気信号、または光学信号を使用する。様々なネットワークを介する信号およびリンク1020上にあり通信インタフェース1018をネットワーク化する信号は、ディジタルデータをコンピュータシステム1000に/から伝え、情報を伝送するキャリア波の典型的な形である。
コンピュータシステム1000は、ネットワーク(複数)、ネットワークリンク1020、および、通信インタフェース1018を介して、メッセージを送信しデータを受信することができ、それはプログラムコードを含むものである。インターネットの実施例において、サーバ1030は、インターネット1028、ISP1026、ローカルネットワーク1022、および、通信インタフェース1018を介して、アプリケーションプログラム用の要求されたコードを伝送することができよう。
コードが受信され、および/または記憶装置1010または後に実行するための他の不揮発性記憶装置に記憶されるので、受信されたコードはプロセッサ1004によって実行されてもよい。このように、コンピュータシステム1000は、キャリア波の形でアプリケーションコードを得ることができる。
前述の仕様において、インプリメンテーションからインプリメンテーションまで変動させることができる数多くの具体的な詳細を参照しつつ、本発明の実施形態が説明されている。したがって、ただひとつの独占的な指標は、何が本発明であって出願人によって何が本発明を意味するものであるかは、このような請求項が出る特定の形式においてこの出願から出る請求項の一組であって、その後のいかなる修正をも含んでいる。このような請求項に含まれる用語のために、本願明細書において明確に記載するいかなる定義も、請求項において用いられているように、このような用語の意味に適用される。したがって、請求項において明白に詳述されない限定、要素、特性、特徴、利点または属性は、いかなる形であれこのような請求項の範囲を制限するものではない。したがって、明細書および図面は、制限的な意味よりもむしろ例示的な意味に考えられるものである。
データミラーリングの第1のアプローチを示すブロック図である。 データミラーリングの第2のアプローチを示すブロック図である。 本発明の一実施形態によるデータミラーリングシステムを示すブロック回路図である。 本発明の一実施形態による複数のサイト間のデータをミラーリングするステップを示すフローチャートである。 本発明の一実施形態によるメンバーシップの投票動作を開始する機能ステップを示すフローチャートである。 本発明の一実施形態による複数のサイト間のデータをミラーリングするステップを示すフローチャートである。 本発明の一実施形態による複数のサイト間のデータをミラーリングするステップを示すフローチャートである。 本発明の一実施形態による複数のサイト間のデータをミラーリングするステップを示すフローチャートである。 本発明の一実施形態による複数のサイト間のデータをミラーリングするステップを示すフローチャートである。 本発明の実施形態が実行されるコンピュータシステムを示すブロック図である。

Claims (15)

  1. 複数のサイト間でデータをミラーリングするための方法であって、
    第1のサイトおよび第2のサイトを含む前記複数のサイト間でレプリケーション関係を確立するステップと、
    クォーラムデバイスとして特定のデバイスを確立するステップと、
    前記複数のサイトのいずれかのサイトでなされる少なくともいくつかの変更を前記複数のサイトの他のサイトそれぞれに複製するステップと、
    前記第1のサイトに関連付けられる第1のサーバが、書込動作の実行を要求するステップと、
    前記要求に応じて、前記第1のサイトで前記書込動作を実行し、前記書込動作を前記第2のサイトでミラーリングすることを要求するメッセージを送信するステップと、
    前記第1のサーバが、前記書込動作は前記第2のサイトで首尾よく実行されなかったという指示を受信するステップと、
    前記指示に応じて、前記第1のサーバが、メンバーシップの投票動作を開始して、前記第1のサーバおよび前記第2のサイトに関連付けられる第2のサーバのうちのどちらが前記レプリケーション関係から取り除かれなければならないかを決定するステップとを備え、
    前記メンバーシップの投票動作を開始するステップは、
    前記書込動作が首尾よく実行されなかったことを前記クォーラムデバイスに通知するステップと、
    前記クォーラムデバイスが、前記第1のサーバおよび前記第2のサイトに関連付けられる前記第2のサーバのうちどちらが前記レプリケーション関係から取り除かれなければならないかを決定するステップとを含み、
    前記第2のサイトに関連付けられる前記第2のサーバが前記レプリケーション関係から取り除かれなければならないことが決定されると、前記第1のサーバが、書込動作が前記の第2のサイトでもはや複製されることになっていないことを示すメッセージを、前記第1のサイトに関連付けられるファイルサーバに送信するステップとを備え、前記ファイルサーバは、書込動作をローカルに実行可能であり、
    前記第1のサーバおよび前記第2のサイトに関連付けられる前記第2のサーバのうちどちらが前記レプリケーション関係から取り除かれなければならないかを決定する前記ステップは、前記クォーラムデバイスによって行われるメンバーシップの投票動作の結果に基づいて、どちらが前記レプリケーション関係から取り除かれなければならないかを決定するステップを含み、
    前記方法は、
    前記メンバーシップの投票動作の間に、前記第1のサイトが前記レプリケーションメンバーシップから取り除かれなければならないことが決定されると、データが前記第1のサイトでもはや複製されることになっていないことを前記第2のサイトに通知するステップをさらに備える、データをミラーリングするための方法。
  2. 前記第2のサイトが前記レプリケーション関係を再結合するステップと、
    前記第2のサイトが前記レプリケーション関係を再結合することに応じて、前記第2のサイトに関連付けられるデータを前記第1のサイトに存在するデータに再同期化させるために前記第2のサイトに関連付けられるデータベースの内容を前記第1のサイトに関連付けられるデータベースの内容に更新するステップをさらに備える、請求項1に記載の方法。
  3. 通知する前記ステップは、前記第2のサイトに関連付けられるファイルサーバまたは前記第2のサーバに、データが前記第1のサイトでもはや複製されることになっていないことを前記第2のサイトで通知するステップを備える、請求項1に記載の方法。
  4. 前記書込動作が前記第2のサイトで首尾よく実行されなかったという指示は、前記第1のサイトで受信される入出力エラーである、請求項1に記載の方法。
  5. 前記複数のサイトのうち特定のサイトが作動できなくなると、前記特定のサイトから前記複数のサイトの他の各サイトに伝送されたメッセージすべてがそれらの相手先で受信されたことが確定したあとに、前記特定のサイトのリカバリを開始するステップをさらに備える、請求項1に記載の方法。
  6. 複数のサイト間でデータをミラーリングするためのプログラムを記憶する、機械読み取り可能な媒体であって、
    前記プログラムは、1つ以上のプロセッサに、
    前記第1のサイトおよび第2のサイトを含む複数のサイト間でレプリケーション関係を確立するステップと、
    クォーラムデバイスとして特定のデバイスを確立するステップと、
    前記複数のサイトのいずれかのサイトでなされる少なくともいくつかの変更を前記複数のサイトの他のサイトそれぞれに複製するステップと、
    前記第1のサイトに関連付けられる第1のサーバが書込動作を実行することを要求するステップと、
    前記要求に応じて、前記第1のサイトで前記書込動作を実行し、前記書込動作を前記第2のサイトでミラーリングすることを要求するメッセージを送信するステップと、
    前記第1のサーバが、前記書込動作が前記第2のサイトで首尾よく実行されなかったという指示を受信するステップと、
    前記指示に応じて、前記第1のサーバがメンバーシップの投票動作を開始して、前記第1のサーバおよび前記第2のサイトに関連付けられる第2のサーバのうちのどちらが前記レプリケーション関係から取り除かれなければならないかを決定するステップとを実行させ、
    前記メンバーシップの投票動作を開始するステップは、
    前記書込動作が首尾よく実行されなかったことを前記クォーラムデバイスに通知するステップと、
    前記クォーラムデバイスが、前記第1のサーバおよび前記第2のサイトに関連付けられる前記第2のサーバのうちどちらが前記レプリケーション関係から取り除かれなければならないかを決定するステップとを含み、
    前記第2のサイトに関連付けられる前記第2のサーバが前記レプリケーション関係から取り除かれなければならないことが決定されると、前記第1のサーバが、書込動作は前記の第2のサイトでもはや複製されることになっていないことを示すメッセージを、前記第1のサイトに関連付けられるファイルサーバに送信するステップを実行させ、前記ファイルサーバは、書込動作をローカルに実行可能であり、
    前記第1のサーバおよび前記第2のサイトに関連付けられる前記第2のサーバのうちどちらが前記レプリケーション関係から取り除かれなければならないかを決定する前記ステップは、前記クォーラムデバイスによって行われるメンバーシップの投票動作の結果に基づいて、どちらが前記レプリケーション関係から取り除かれなければならないかを決定するステップを含み、
    前記プログラムは、前記1つ以上のプロセッサに、
    前記メンバーシップの投票動作の間に、前記第1のサイトが前記レプリケーションメンバーシップから取り除かれなければならないことが決定されると、データが前記第1のサイトでもはや複製されることになっていないことを前記第2のサイトに通知するステップをさらに実行させる、機械読み取り可能な媒体。
  7. 前記プログラムは、前記1つ以上のプロセッサに、
    前記第2のサイトが前記レプリケーション関係を再結合するステップと、
    前記第2のサイトが前記レプリケーション関係を再結合することに応じて、前記第2のサイトに関連付けられるデータを前記第1のサイトに存在するデータに再同期化させるために前記第2のサイトに関連付けられるデータベースの内容を前記第1のサイトに関連付けられるデータベースの内容に更新するステップとをさらに実行させる、請求項6に記載の機械読み取り可能な媒体。
  8. 通知する前記ステップは、前記第2のサイトに関連付けられるファイルサーバまたは前記第2のサーバに、データが前記第1のサイトでもはや複製されることになっていないことを前記第2のサイトで通知するステップを備える、請求項6に記載の機械読み取り可能な媒体。
  9. 前記書込動作が前記第2のサイトで実行できなかったという指示は、前記第1のサイトで受信される入出力エラーである、請求項6に記載の機械読み取り可能な媒体。
  10. 前記1つ以上のプロセッサによる前記1つ以上の指示のシーケンスの実行は、前記1つ以上のプロセッサに、
    前記複数のサイトのうち特定のサイトが作動できなくなると、前記特定のサイトから前記複数のサイトの他の各サイトまで伝送されたメッセージすべてがそれらの相手先で受信されたあとに、前記特定のサイトのリカバリを開始するステップをさらに実行させる、請求項6に記載の機械読み取り可能な媒体。
  11. 複数のサイト間でデータをミラーリングするためのプログラムであって、前記プログラムは、1つ以上のプロセッサに、
    前記第1のサイトおよび第2のサイトを含む複数のサイト間でレプリケーション関係を確立するステップと、
    クォーラムデバイスとして特定のデバイスを確立するステップと、
    前記複数のサイトのいずれかのサイトでなされる少なくともいくつかの変更を前記複数のサイトの他のサイトそれぞれに複製するステップと、
    前記第1のサイトに関連付けられる第1のサーバが書込動作を実行することを要求するステップと、
    前記要求に応じて、前記第1のサイトで前記書込動作を実行し、前記書込動作を前記第2のサイトでミラーリングすることを要求するメッセージを送信するステップと、
    前記第1のサーバが、前記書込動作が前記第2のサイトで首尾よく実行されなかったという指示を受信するステップと、
    前記指示に応じて、前記第1のサーバがメンバーシップの投票動作を開始して、前記第1のサーバおよび前記第2のサイトに関連付けられる第2のサーバのうちのどちらが前記レプリケーション関係から取り除かれなければならないかを決定するステップとを実行させ、
    前記メンバーシップの投票動作を開始するステップは、
    前記書込動作が首尾よく実行されなかったことを前記クォーラムデバイスに通知するステップと、
    前記クォーラムデバイスが、前記第1のサーバおよび前記第2のサイトに関連付けられる前記第2のサーバのうちどちらが前記レプリケーション関係から取り除かれなければならないかを決定するステップとを含み、
    前記第2のサイトに関連付けられる前記第2のサーバが前記レプリケーション関係から取り除かれなければならないことが決定されると、前記第1のサーバが、書込動作は前記の第2のサイトでもはや複製されることになっていないことを示すメッセージを、前記第1のサイトに関連付けられるファイルサーバに送信するステップを実行させ、前記ファイルサーバは、書込動作をローカルに実行可能であり、
    前記第1のサーバおよび前記第2のサイトに関連付けられる前記第2のサーバのうちどちらが前記レプリケーション関係から取り除かれなければならないかを決定する前記ステップは、前記クォーラムデバイスによって行われるメンバーシップの投票動作の結果に基づいて、どちらが前記レプリケーション関係から取り除かれなければならないかを決定するステップを含み、
    前記プログラムは、前記1つ以上のプロセッサに、
    前記メンバーシップの投票動作の間に、前記第1のサイトが前記レプリケーションメンバーシップから取り除かれなければならないことが決定されると、データが前記第1のサイトでもはや複製されることになっていないことを前記第2のサイトに通知するステップをさらに実行させる、プログラム。
  12. 前記プログラムは、前記1つ以上のプロセッサに、
    前記第2のサイトが前記レプリケーション関係を再結合するステップと、
    前記第2のサイトが前記レプリケーション関係を再結合することに応じて、前記第2のサイトに関連付けられるデータを前記第1のサイトに存在するデータに再同期化させるために前記第2のサイトに関連付けられるデータベースの内容を前記第1のサイトに関連付けられるデータベースの内容に更新するステップとをさらに実行させる、請求項11に記載のプログラム。
  13. 通知する前記ステップは、前記第2のサイトに関連付けられるファイルサーバまたは前記第2のサーバに、データが前記第1のサイトでもはや複製されることになっていないことを前記第2のサイトで通知するステップを含む、請求項11に記載のプログラム。
  14. 前記書込動作が前記第2のサイトで実行できなかったという指示は、前記第1のサイトで受信される入出力エラーである、請求項11に記載のプログラム。
  15. 前記プログラムは、前記1つ以上のプロセッサに、
    前記複数のサイトのうち特定のサイトが作動できなくなると、前記特定のサイトから前記複数のサイトの他の各サイトまで伝送されたメッセージすべてがそれらの相手先で受信されたあとに、前記特定のサイトのリカバリを開始するステップをさらに実行させる、請求項11に記載のプログラム。
JP2006549582A 2004-01-15 2005-01-12 リモートデータミラーリングを用いたクラスタデータベース Active JP4461147B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/760,013 US6859811B1 (en) 2004-01-15 2004-01-15 Cluster database with remote data mirroring
PCT/US2005/001056 WO2005071575A2 (en) 2004-01-15 2005-01-12 Cluster database with remote data mirroring

Publications (2)

Publication Number Publication Date
JP2007518195A JP2007518195A (ja) 2007-07-05
JP4461147B2 true JP4461147B2 (ja) 2010-05-12

Family

ID=34136916

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006549582A Active JP4461147B2 (ja) 2004-01-15 2005-01-12 リモートデータミラーリングを用いたクラスタデータベース

Country Status (9)

Country Link
US (1) US6859811B1 (ja)
EP (1) EP1704480B1 (ja)
JP (1) JP4461147B2 (ja)
CN (1) CN100388225C (ja)
AU (1) AU2005207572B2 (ja)
CA (1) CA2550614C (ja)
DE (1) DE602005002532T2 (ja)
HK (1) HK1090711A1 (ja)
WO (1) WO2005071575A2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4575762B2 (ja) * 2004-06-03 2010-11-04 株式会社日立製作所 データ処理方法および装置並びにストレージ装置およびその処理プログラム
US7194486B2 (en) * 2004-06-03 2007-03-20 Hitachi, Ltd. Method and system for data processing with data replication for the same
US7827141B2 (en) * 2005-03-10 2010-11-02 Oracle International Corporation Dynamically sizing buffers to optimal size in network layers when supporting data transfers related to database applications
US7689607B2 (en) * 2005-04-15 2010-03-30 Microsoft Corporation Database page mirroring
US7644305B2 (en) 2006-05-18 2010-01-05 Microsoft Corporation Quorum establishment based on a vote from a voting device
US8041985B2 (en) * 2006-08-11 2011-10-18 Chicago Mercantile Exchange, Inc. Match server for a financial exchange having fault tolerant operation
US8156082B2 (en) * 2006-10-06 2012-04-10 Sybase, Inc. System and methods for temporary data management in shared disk cluster
US20080243782A1 (en) * 2007-03-28 2008-10-02 Microsoft Corporation Client collection membership evaluation
US8818960B2 (en) 2011-03-18 2014-08-26 Microsoft Corporation Tracking redo completion at a page level
US9953305B2 (en) * 2012-10-22 2018-04-24 Oonetic Online payment system and method according to the mirror authorization server principle
US9588855B2 (en) * 2015-04-22 2017-03-07 PernixData, Inc. Management and utilization of fault domains in distributed cache systems
CN105426275B (zh) * 2015-10-30 2019-04-19 成都华为技术有限公司 双活集群系统中容灾的方法及装置
US10387273B2 (en) * 2016-09-16 2019-08-20 Oracle International Corporation Hierarchical fault tolerance in system storage
US10416905B2 (en) * 2017-02-09 2019-09-17 Hewlett Packard Enterprise Development Lp Modifying membership of replication groups via journal operations
CN110019091A (zh) * 2017-12-03 2019-07-16 中国直升机设计研究所 一种异地数据协同系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5917998A (en) * 1996-07-26 1999-06-29 International Business Machines Corporation Method and apparatus for establishing and maintaining the status of membership sets used in mirrored read and write input/output without logging
US6144999A (en) * 1998-05-29 2000-11-07 Sun Microsystems, Incorporated Method and apparatus for file system disaster recovery
US6163856A (en) * 1998-05-29 2000-12-19 Sun Microsystems, Inc. Method and apparatus for file system disaster recovery
US6643795B1 (en) * 2000-03-30 2003-11-04 Hewlett-Packard Development Company, L.P. Controller-based bi-directional remote copy system with storage site failover capability
US6505307B1 (en) * 2000-09-06 2003-01-07 Unisys Corporation Method and apparatus for ensuring data integrity
US6785678B2 (en) * 2000-12-21 2004-08-31 Emc Corporation Method of improving the availability of a computer clustering system through the use of a network medium link state function
US7016946B2 (en) * 2001-07-05 2006-03-21 Sun Microsystems, Inc. Method and system for establishing a quorum for a geographically distributed cluster of computers
US7421509B2 (en) * 2001-09-28 2008-09-02 Emc Corporation Enforcing quality of service in a storage network
US6757790B2 (en) * 2002-02-19 2004-06-29 Emc Corporation Distributed, scalable data storage facility with cache memory
US6880052B2 (en) * 2002-03-26 2005-04-12 Hewlett-Packard Development Company, Lp Storage area network, data replication and storage controller, and method for replicating data using virtualized volumes
US7542986B2 (en) * 2002-03-26 2009-06-02 Hewlett-Packard Development Company, L.P. System and method for maintaining order for a replicated multi-unit I/O stream

Also Published As

Publication number Publication date
WO2005071575A2 (en) 2005-08-04
WO2005071575A3 (en) 2006-01-12
AU2005207572B2 (en) 2008-03-13
US6859811B1 (en) 2005-02-22
CA2550614C (en) 2011-01-04
DE602005002532D1 (de) 2007-10-31
CN100388225C (zh) 2008-05-14
DE602005002532T2 (de) 2008-06-19
EP1704480B1 (en) 2007-09-19
AU2005207572A1 (en) 2005-08-04
CA2550614A1 (en) 2005-08-04
HK1090711A1 (en) 2006-12-29
EP1704480A2 (en) 2006-09-27
CN1910556A (zh) 2007-02-07
JP2007518195A (ja) 2007-07-05

Similar Documents

Publication Publication Date Title
JP4461147B2 (ja) リモートデータミラーリングを用いたクラスタデータベース
JP5559821B2 (ja) データを記憶する方法、データをミラーリングする方法、命令シーケンスを担持する機械読み取り可能な媒体、および、当該方法をコンピュータに実行させるためのプログラム
US8027952B2 (en) System and article of manufacture for mirroring data at storage locations
US6904503B2 (en) Storage system making possible data synchronization confirmation at time of asynchronous remote copy
US7693882B2 (en) Replicating data across the nodes in a cluster environment
US7600087B2 (en) Distributed remote copy system
US20060182050A1 (en) Storage replication system with data tracking
US20050193248A1 (en) Computer system for recovering data based on priority of the data
US8626722B2 (en) Consolidating session information for a cluster of sessions in a coupled session environment
JP2006023889A (ja) リモートコピーシステム及び記憶装置システム
US7107355B2 (en) High availability lightweight directory access protocol service
JP5292351B2 (ja) メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム
CN115858236A (zh) 一种数据备份方法和数据库集群
JP5292350B2 (ja) メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム
WO2024051027A1 (zh) 一种大数据的数据配置方法和系统

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090421

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090717

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090908

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091208

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091221

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: 20100126

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100215

R150 Certificate of patent or registration of utility model

Ref document number: 4461147

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130219

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130219

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140219

Year of fee payment: 4

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250