JP2007156679A - サーバの障害回復方法及びデータベースシステム - Google Patents

サーバの障害回復方法及びデータベースシステム Download PDF

Info

Publication number
JP2007156679A
JP2007156679A JP2005348918A JP2005348918A JP2007156679A JP 2007156679 A JP2007156679 A JP 2007156679A JP 2005348918 A JP2005348918 A JP 2005348918A JP 2005348918 A JP2005348918 A JP 2005348918A JP 2007156679 A JP2007156679 A JP 2007156679A
Authority
JP
Japan
Prior art keywords
server
data area
area
processing
database
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
JP2005348918A
Other languages
English (en)
Other versions
JP4920248B2 (ja
Inventor
Tsunehiko Baba
恒彦 馬場
Norihiro Hara
憲宏 原
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005348918A priority Critical patent/JP4920248B2/ja
Priority to US11/347,202 priority patent/US20070130220A1/en
Publication of JP2007156679A publication Critical patent/JP2007156679A/ja
Application granted granted Critical
Publication of JP4920248B2 publication Critical patent/JP4920248B2/ja
Expired - Fee Related 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/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2038Error 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 processing functionality is redundant with a single idle spare processing component

Abstract

【課題】障害が生じたノードを除いたクラスタ構成のサーバシステムにおいて、各サーバが均等な負荷を有して、性能の劣化を抑制するような縮退運転を実現する。
【解決手段】データベース処理のトランザクションを分割して実行する複数のDBサーバ120〜320と、サーバ120がアクセスするデータ領域600とログ領域500とを予め設定したストレージ装置と、複数のDBサーバ120〜320に割り当てるトランザクションを管理する管理サーバ420と、を備え、複数のDBサーバ120〜320のうち障害の発生したDBサーバが利用していたデータ領域とログ領域とをそれぞれ特定し、障害が発生したDBサーバ120〜320がアクセスするデータ領域600を障害が発生したサーバがアクセスしていたログ領域500で回復する。
【選択図】図2

Description

本発明は無共有型データベース管理システム(DBMS)を構築する障害許容性のあるコンピュータシステムに関し、特にDBMS内のコンピュータのプログラム若しくはオペレーティングシステムに障害があった時に、障害の発生したコンピュータを取り除いた構成へと縮退する技術に関する。
無共有型データベース管理システム(以下、DBMS)では、トランザクションを処理するDBサーバと処理結果を保存するデータ領域が論理的または物理的に1対1に対応する。また、DBMSの性能は、各コンピュータ(ノード)が均一な性能を持つ場合、そのノード上のDBサーバが有するデータ領域の量に依存する。そのため、DBMSの性能の劣化を抑えるためには各ノードのDBサーバが有するデータ領域が同量である必要がある。
ここで、あるノードで障害が発生した場合に、障害が発生したノード(障害ノード)上のDBサーバとそのDBサーバが利用するデータとを別のノードに引き継ぐ系切り替え手法を無共有DBMSに適用する場合を考える。この場合、DBサーバが稼動するノードで障害が発生した場合、障害ノード上のDBサーバ(障害DBサーバ)とその障害DBサーバが有するデータ領域とを対とし、稼動中の別のノードに引き継ぎ、引継ぎ先のノード上で回復処理が行なわれる。
この系切り替え手法では、障害DBサーバと同一の構成でDBサーバとデータ領域とを一対として別のノードに引き継ぐため、障害発生後のDBMSの性能を最大限に引き出すためには、他ノードに均等にDBサーバを分配することが必要であり、ノード当たりのDBサーバ数を事前に設計しておく必要がある。たとえば、NノードのDBMSの場合、1ノード障害に対応するためには、稼動中の(N−1)台に均等分配されるように、(N−1)の倍数となるDBサーバを1ノード当たりに用意しておく必要がある。
一方で、近年、システムの複雑化・大規模化に伴い、DBMSが扱うデータ量も増大しており、DBMSはクラスタ構成をとることで、処理能力を高めている。また、クラスタ構成システムを構築するプラットフォームとして、容易にクラスタ構成システムに必要とされるノードを追加可能なブレードサーバが普及している。
しかし、このように構成を容易に変更可能なプラットフォームでは、クラスタを構成するノード数が可変になるため、全てのクラスタ構成に対して、上述のような障害時の系切り替えにおいて、系切り替え後もDBMS性能の劣化を抑制可能なDBサーバ数やデータ領域を事前に設計することは不可能である。従って、全ノードが正常稼動中はデータ領域の量が均等に割り振られた構成であっても、系切り替え後にノード毎のデータ領域の量が不均等となる場合が生じるという問題がある。
クラスタ構成の無共有型DBMSにおいて、上記のようにノード当たりのデータ領域の量が不均等となる上述の課題に対して、DBサーバが有するデータ領域の量を変更することで、ノード当たりのデータ量を均等化する方法があり、その一例として、特許文献1に記載される技術がある。
特許文献1では、無共有DBMSにおいて、データ領域を物理的あるいは論理的に複数の領域に分割し、その領域を各DBサーバに割り当てることで、DBサーバの総数やノード当たりのDBサーバ数が増減した場合に、DBMS性能の劣化を抑制するように各DBサーバのデータ領域の量を変更することを可能とする技術が記載される。しかし、該技術では、全データ領域のDBサーバへの割り当てを変更する技術であり、データ領域の整合性を保証するために、DBMSがトランザクション処理を実行していない状態を保証する必要がある。すなわち、該技術による構成変更を適用するためには、業務が完了した状態まで待つ必要がある。
特開2005−196602号
上記のようなクラスタ構成をとる無共有型DBMSでは、ノード障害の発生による系切り替え後にノード毎のデータ処理量またはスループットが不均等となる場合に対して、DBサーバとデータ領域を別のノードに引き継ぐ系切り替えを行なった後、上記特許文献1の技術を用いた構成変更を行なうことで、DBMSの性能の劣化を抑制することが可能なクラスタ構成をとることが可能となる。しかし、この場合、系切り替えと構成変更とにより二度の業務停止が生じるという問題がある。
また、ノード障害が発生した場合に、系切り替えの代わりに、上記特許文献1の技術を用いて構成変更を適用しようとした場合、稼動中のトランザクションが全て終了している必要がある。そのため、障害発生時に縮退運転を実現する場合には、障害DBサーバが実行していた処理と全く関係がないトランザクションの終了を待つ必要があり、縮退を行なうまでに、即座に障害DBサーバを別ノードに引き継ぐ系切り替え手法と比べ、時間を要するという問題点がある。
そこで本発明は、上記問題点に鑑みてなされたもので、障害が生じたノードを除いたクラスタ構成のサーバシステムにおいて、各サーバが均等な負荷を有して、性能の劣化を抑制することが出来るような縮退運転を実現することを目的とする。
本発明は、データベース処理のトランザクションを分割して実行する複数のサーバと、前記サーバがアクセスするデータ領域とログ領域とを予め設定したストレージ装置と、前記複数のサーバに割り当てるトランザクションを管理する管理サーバと、を備え、前記複数のサーバのうちの何れかに障害が発生したときには、障害のない正常なサーバに前記トランザクションを引き継ぐサーバの障害回復方法であって、前記複数のサーバのうち障害の発生したサーバを特定し、前記障害が発生したサーバが利用していたストレージ装置のデータ領域とログ領域とをそれぞれ特定し、前記障害が発生したサーバで実行されていた処理に関連するトランザクションを実行していた他のサーバの処理を中断し、前記障害が発生したサーバがアクセスする前記データ領域を正常な他のサーバに割り当てて、前記障害が発生したサーバがアクセスする前記ログ領域を、前記障害が発生したサーバのデータ領域が割り当てられたサーバで共有し、前記障害が発生したサーバがアクセスするデータ領域を割り当てられたサーバが、前記共有したログ領域に基づいて処理を中断した時点まで前記データ領域を回復する。
したがって、本発明は、複数のサーバの何れかに障害が発生した場合に、そのサーバとデータ領域を対にして別のノードで引き継ぐのではなく、そのサーバのデータ領域を稼動中の他のサーバに割り当て、また、障害が発生したサーバのログを共有させ、割り当て先のサーバで実行中のトランザクションの回復処理を行なうことにより、障害が生じたサーバを除いたクラスタ構成のサーバにおいて、各サーバが均等な負荷を有して、性能の劣化を抑制することが出来るような縮退運転を実現することができる。
以下、本発明の一実施形態を添付図面に基づいて説明する。
図1は実施形態を示し、本発明を適用する計算機システムのハードウェア構成を示すブロック図である。
図1において、ネットワーク7にはクラスタ構成によりデータベース業務を提供する複数のデータベースノード(以下、DBノード)100、200、300から構成される現用系の計算機群と、これらDBノード100〜300を管理するデータベース管理システム及びクラスタ管理プログラムを実行する管理ノード(サーバ)400と、現用系のDBノード100〜300に障害生じたとき、障害が発生したノード(以下、障害ノード)の業務を引き継ぐ複数のDBノード1100〜1300から構成される待機系の計算機群と、管理ノード400を介してDBノード100〜300からデータベースを利用するクライアントコンピュータ150が接続されている。なお、ネットワーク7は、例えば、IPネットワークで構成される。
管理ノード400は、演算処理を行うCPU401と、プログラムやデータを格納するメモリ402と、ネットワーク7を介して他の計算機と通信を行うネットワークインターフェース403と、SAN(Storage Area Network)405を介してストレージ装置406にアクセスを行うI/Oインターフェース(ホストバスアダプタ)404を備える。
DBノード100は、複数の計算機から構成され、本実施形態では3つの計算機で構成した例を示す。DBノード100は、演算処理を行うCPU101と、データベースの処理を行うプログラムやデータを格納するメモリ102と、ネットワーク7を介して他の計算機と通信を行う通信インターフェース103と、SAN4を介してストレージ装置5にアクセスを行うI/Oインターフェース(ホストバスアダプタ)104を備える。DBノード200、300は、DBノード100と同様に構成される。なお、待機系のDBノード1100〜1300も上記現用系のDBノード100〜300と同様である。
ストレージ装置5は複数のディスクドライブを備え、現用系のDBノード100〜300と管理ノード4と待機系のノード1100〜1300からアクセス可能な記憶領域として領域(ボリューム)510〜512及び601〜606が設定される。これらのボリュームは、領域510〜512が各DBノード100〜300のデータベースのログを格納するログ領域500として利用され、領域601〜606が各DBノード100〜300に割り当てられたデータベースを格納するデータ領域600として利用される。
図2は、クラスタ構成のデータベースシステムに本発明を適用した場合のソフトウェアを主体とした機能ブロック図である。
図2において、データベースシステムは、管理ノード400で稼働するデータベース管理サーバ420が、クライアント150からのクエリー(問い合わせ)を受け、データベース処理(トランザクション)を各DBノード100〜300で稼働するDBサーバ120、220、320に分配し、DBサーバ120〜320の処理結果をまとめ、クエリーの結果をクライアント150に返す。
DBサーバ120〜320には、ストレージ装置5のデータ領域600とログ領域500がそれぞれ割り当てられており、各DBサーバ120〜320は割り当てられた領域を占有してデータベース処理を行う、所謂無共有型(Shared−nothing)データベース管理システム(DBMS)を構成する。また、管理ノード400は、各DBノード100〜300とクラスタ構成を管理するクラスタプログラム(クラスタ管理部)410を実行している。
まず、DBノード100は、各DBノードの稼動状態を監視するクラスタプログラム100と、データベース管理サーバ(以下DB管理サーバ)420の配下でトランザクションを処理するDBサーバ120とを有する。
クラスタプログラム100は、あるDBノードに障害が発生した場合に、そのDBノードが有するDBサーバを引き継ぐ系切り替え先を定義する系切替定義110と、クラスタを構成する他ノードの生死を管理するノード管理表112を有する。ここで、系切替定義110は、明示的に系切り替え先となるノードを記載しても良いし、系切り替え先となるノードを一意に定める方法が記載されていても良い。また、ノード管理表112に管理される他ノードの生死状態は、他ノードのクラスタプログラムと通信することで監視する方法であってもよい。
次に、DBサーバ120は、トランザクションを実行するトランザクション実行部121と、トランザクションの実行状況(更新履歴)をログに書き込むログ読書部122と、前記ログ読書部122によって書き込まれトランザクションの実行状態に基づいたデータ更新を行なうログ適用部123と、前記ログ適用部123がデータを書き込む対象となるデータ領域を記憶しておく領域管理部124と、障害が発生した場合に、前記ログ読書部122を用いてログを読み出し、前記ログ適用部123を用いて、前記領域管理部124に記載されたデータ領域上のデータの整合性が保たれるように、データの更新処理を行なう回復処理部125を含む。また、DBサーバ120は、割り当てられたデータ領域を保持する領域管理表126を備える。なお、DBノード200、300も同様に管理ノード400のデータベース管理サーバ420の配下で処理を行うDBサーバ220、320と、DBノードを相互に監視するクラスタプログラム210、310を実行する。各DBノード100〜300の構成要素は、図2において、DBノード100が100番台で記述し、DBノード200が200番台で記述し、DBノード300は300番台で記述する。
次に、管理ノード400は、前記クラスタプログラム100と同様の構成からなるクラスタプログラム410と、DB管理サーバ420からなる。DB管理サーバ420は、前記DBサーバ120〜320に割り当てられたデータ領域600との対応付けを行なう領域割当て管理部431と、外部から入力されたトランザクションを各DBサーバで実行し、実行結果を外部へと返すトランザクション制御部433と、DBノード100〜300のいずれかに障害が発生した場合に各DBサーバに対して回復処理を行なうように指示する回復処理管理部432と、さらに各DBサーバにどのデータ領域が割り当てられているかを対応づける領域・サーバ対応表434と、DB管理サーバ420に対して外部から送られたトランザクションがどのデータ領域に対する要求かを対応づけるトランザクション・領域対応表435を有する。
ここで、前記領域割当て管理部431は、DBサーバ120〜320に割り当てられたデータ領域600との対応付けを領域・サーバ対応表434に格納する。次に、前記DB管理サーバ420は、外部から送信されたトランザクションをデータ領域毎の処理単位である小トランザクションに分割する。そして、DB管理サーバ420は、トランザクションをデータ領域に応じて分割した小トランザクションを実行するデータ領域との対応をトランザクション・領域対応表435に格納してから、前記サーバ対応表434の対応を元に処理対象となるデータ領域を有するDBサーバに小トランザクションを投入する。
また、DB管理サーバ420は、投入した小トランザクションの処理結果を各DBサーバ120〜320から受信し、前記対応表435を元に、全ての小トランザクションを受信した後に小トランザクションから構成される元のトランザクションの結果を組み立てて、トランザクションの送信元に対して返し、その後、前記対応表435から当該トランザクションのエントリを消去する。
さらに、ストレージ装置5のデータ領域600は各DBサーバ100〜300への割り当て単位となる複数の領域A601〜F606から構成される。また、ログ領域500は、各DBサーバ120〜320にストレージ装置5に設けたログ領域510、520、530を有する。前記ログ領域510〜512、520〜522、530〜532は、ログ領域を有するDBサーバ100〜300がデータ領域600に対して行なったコミットの有無を含めた変更内容と、その変更を生じたトランザクションとが記載されたログ511を有する。
図3〜図15は、本実施形態における各ノードにおけるクラスタプログラム、DB管理サーバとDBサーバの動作を表したフローチャートである。
まず、図3、図4は、DBノード100〜300で障害が発生した場合に、DBノード上のDBサーバ120〜320を別ノードで引き継ぐ系切り替え処理と、DBサーバが利用していたデータ領域を別ノード上のDBサーバに引き継ぐ縮退(稼働するDBサーバ数を低減する)運転処理を選択し、その処理を表したフローチャートである。
図3では、あるノードのクラスタプログラム4001が他ノードのクラスタプログラム4001を監視することで他ノードの障害を検知する(通知3001)。なお、図3、図4のクラスタプログラム4001は、上記DBノード100〜300または管理ノード400のクラスタプログラム110、210、320、410のいずれかを示し、同じく図中クラスタプログラム4001は、上記クラスタプログラム110〜410の他のいずれかを示す。以下では、DBノード100のクラスタプログラム110の例について説明する。
前記通知(障害検知)3001により、前記クラスタプログラム4001が他ノードの障害を検出し、稼動ノードと障害ノードとをノード管理表112に保持する(処理1011)。前記処理1011の後、クラスタプログラム4001は系切り替え定義111を用いて、障害ノードを含めた各ノード上で動作しているDBサーバの数を取得する(処理1012)。続いて、クラスタプログラム4001は、処理1013においてDB管理サーバ420に領域・サーバ対応表434の取得要求(通知3002)を行ない、前記対応表434を取得する(通知3003)。領域・サーバ対応表434は、図1で示すように、データ領域A,B(601,602)がDBサーバ120に割り当てられ、データ領域C、D(603,604)がDBサーバ220に割り当てられ、データ領域E,F(605,606)がDBサーバ320に割り当てられていることを示している。
ここで、図4において、前記通知(取得要求)3002を受けたDB管理サーバ420上の領域割当て管理部431は、前記領域・サーバ対応表434を読み込み(処理1021)、その対応表を要求元であるクラスタプログラム4001に転送する(処理1022、通知3003)。続いて、図3の処理1014において、クラスタプログラム4001は、系切り替えを行なう場合と縮退を行なう場合のコスト計算を行なう。
このコスト計算は、例えば、DBノードの性能(例えば、スループットやトランザクション処理能力など)に着目した場合には、前記処理1012で取得したDBサーバ数から障害ノード上のDBサーバ数が、前記処理1011で検出した稼動中のノード数で割り切れるかを計算する方法や、前記処理1013で取得した前記対応表434を用い、障害ノード上のDBサーバが利用していたデータ領域が均等に稼動ノード上のDBサーバ数で割り切れるかを計算する方法により、系切り替え後あるいは縮退後の各DBノード当たりのデータ領域量を算出することが可能である。
また、コスト計算は、DBノード100〜300上のDBサーバ120〜320の負荷率(例えば、CPUの負荷率)を求めてもよい。
さらに、ユーザが系切り替えと縮退のどちらを用いるかを明示的にクラスタプログラム4001に指示する方法や、縮退により業務停止が許容されるDBサーバの負荷量(データ領域量やDBノード当たりのトランザクション処理量)を指定することで、障害発生時のDBサーバの負荷量から縮退するか、系切り替えするかを選択する方法であっても良い。加えて、これらの方法にそれぞれ重みを付け、組み合わせる方法をとっても良い。
前記処理1014でコスト計算を行なった結果から、系切り替えを実施した方がよいかどうかを判断し(処理1015)、系切り替えを実施すべきであれば、系切り替え処理を実行し(処理1016)、そうでなければ、縮退運転を実行する(処理1017)。
例えば、障害による停止時間を短くするために高速な障害回復を実現する場合は、縮退運転を選択し、DBノードのハードウェア性能が低い等の理由により、DBサーバを引き継ぐことで生じるDBMSの処理性能の低下を許容できず、DBMS性能の劣化を抑制する必要性がある場合には、系切替を選択することができる。
あるいは、障害DBノード上のDBサーバ数が、前記処理1011で検出した稼動中のDBノード数で割り切れる場合には縮退を選択し、割り切れない場合には系切り換えを選択する。あるいは、コスト計算の結果、縮退を行った場合の負荷量が予め設定したしきい値を超える場合には、系切り換えを選択し、負荷量がしきい値以内であれば縮退を選択するようにしても良い。
または、上述したコストとして処理負荷(例えば、CPUの負荷率)を求める場合では、縮退と系切り替えの内、正常なDBノード100〜300間で処理負荷(例えば、CPU負荷率)が等しくなる方(換言すれば、処理負荷の偏りが少ない方)を選択するようにしてもよい。特に、DBノード100〜300の処理能力に差がある場合、すなわち、DBノード100〜300のハードウェア構成に差異がある場合、CPUの負荷率の偏りが少なくなるように、縮退または系切替を選択するようにしても良い。
前記処理1016、処理1017では、それぞれ系切り替え処理と縮退運転処理とをDB管理サーバに通知する(通知3004)。前記通知3004(データベース管理サーバ420への縮退運転指示)では、障害DBサーバや障害ノードをDB管理サーバに通知してもよい。
図5、図6は、外部(クライアント150)からのトランザクションを受信したDB管理サーバ420が各DBサーバ120〜320に処理を実行させ、その処理結果を要求元に対して返信する処理を表したフローチャートである。ここで、トランザクションは依存関係を有するデータ操作要求群を意味する。従って、トランザクションが異なる場合は、操作対象となるデータに依存関係が無く、独立して処理できる。
図5で、DB管理サーバ420上のトランザクション制御部433はクライアント150からトランザクション(通知(トランザクション要求)3005)を受信すると(処理1031)、前記トランザクション3005をDB管理サーバ420が管理するデータ領域600の各領域601〜606毎の処理に対応する小トランザクションに分離する(処理1032)。その後、前記トランザクション制御部433は、前記処理1032によって分離された小トランザクションが対応する各領域と前記トランザクション3005とを対応させ、トランザクション・領域対応表435に登録し(処理1033)、領域・サーバ対応表434を元に各小トランザクションを対応するDBサーバ120〜320で実行する(処理1034、通知(小トランザクション実行要求)3006)。
図6の小トランザクション完了通知3007によって各DBサーバ120〜320で実行された小トランザクションの実行結果は、再び前記トランザクション制御部433で受信された後(処理1041、通知3007)、送信元であるクライアント150に対して結果を送信する(処理1042、通知3008)。前記処理1042により、トランザクション3005の実行が完了したため、前記トランザクション・領域対応表435から前記トランザクション3005のエントリを消去する。
以上、図5、図6により、クライアント150からのトランザクションに対し、DB管理サーバ420はどのデータ領域が、どのDBサーバ上で実行されているかを判断するための対応表434、435とを有し、小トランザクションに分割して各DBサーバ120〜320に処理を依頼する。各DBサーバ120〜320は並列的に小トランザクションを実行し、実行結果をDB管理サーバ420に返す。DB管理サーバ420は、受信した実行結果を上記対応表434,435に基づいて組み立てて、クライアント150に返信する。
図7〜図12は、障害が発生したDBノードが有するデータ領域を稼動中の別のDBノード上のDBサーバに割り当て、回復処理を実行した後、割当て先のDBサーバが処理を継続することで、障害ノードを縮退させる処理を表したフローチャートである。
図7、図8は、クラスタプログラム4001からの縮退運転実行の指示を契機に、DB管理サーバ420が障害DBサーバで実行中だった処理に関連するトランザクションを他のノードで実行しているかを判断し、実行中の各DBサーバにその処理の中止を指示し、各DBサーバが中止する処理を表したフローチャートである。なお、以下に述べるトランザクション実行部2005はDBサーバ120〜320のトランザクション実行部121〜321を示す。
図7では、DB管理サーバ420の回復処理管理部432は、クラスタプログラム4001から縮退運転を実施するように通知(縮退運転指示)3004を受信すると(処理1051)、前記通知3004を元に障害DBサーバを検出する(処理1052)。ここで、前記処理1052では、前記通知3004が障害DBサーバの情報を含む場合には、この障害情報を利用することで障害DBサーバを検出可能である。
また、前記通知3004に障害DBサーバの情報を含まない場合には、DB管理サーバ420あるいはクラスタプログラム4001に問い合わせることで障害DBサーバを検出することが可能である。前記障害検出処理1052を実行後、DB管理サーバ420のトランザクション制御部433は、トランザクション・領域対応表435を参照し、前記処理1052で検出された障害DBサーバで実行していた処理に関連するトランザクションを抽出し(処理1053)、障害により中断された前記トランザクションから前記処理1032で生成された小トランザクションが障害DBサーバ以外で実行中かどうかを判断する(処理1054)。
前記処理1054で、該当する小トランザクションが前記障害DBサーバ以外で実行されていた場合には、領域・サーバ対応表434を用いて、前記小トランザクションを実行中の各DBサーバにトランザクション破棄を通知し(通知3009)、小トランザクション破棄の完了通知3010を受信する(処理1055)。
図8では、DBサーバ120〜320の回復処理部2004及びトランザクション実行部2005は前記破棄要求通知3010を受信し(処理1061)、対象となる小トランザクションの実行を中止する(処理1062)。そして、DBサーバ120〜320は、小トランザクション中止完了通知3011をDB管理サーバ420に対して送信する(処理1063)。一方、図7の前記処理1054で該当するDBサーバが存在しない場合には、そのまま処理を終了する。なお、回復処理部2004は、図2のDBサーバ120〜320の回復処理部125,225,325を示す。
以上により、DB管理サーバ420が主体となって、障害DBサーバで実行されていた処理に関連するトランザクションの全処理を中断することが可能となり、以降に説明する回復処理を行なうことが出来る。
図9、図10は、障害DBサーバのデータ領域を他ノードで稼動中のDBサーバに割り当てる処理を表したフローチャートである。
図9では、DB管理サーバ420の回復処理管理部432は、領域・サーバ対応表434とトランザクション・領域対応表435を参照することで、障害DBサーバのデータ領域を抽出する(処理1071)。そして、回復処理管理部432で抽出したデータ領域を稼動中のDBサーバ120〜320に割り当てるように前記対応表434を更新する(処理1072)。そして、DB管理サーバ420は、各DBサーバに前記対応表434で更新したデータ領域の割り当てを実行するように通知する(通知(領域割当通知)3011)。DB管理サーバ420は、割り当てを指示したDBサーバ120〜320からのデータ領域のマウントが終了したことを示す完了通知3012を受信する(処理1073)。前記通知3012は、前記対応表434をそのまま送信しても良い。
以上により、DB管理サーバ420は、障害DBサーバに割り当てられていたデータ領域を、正常に稼働しているDBサーバ120〜320に配分する。
図10では、各DBサーバ120〜320の領域管理部124〜324における処理を示す。なお、図10において、領域管理部2006は、各DBサーバ120〜320の領域管理部124〜324を示す。
領域管理部2006が前記通知(領域割当通知)3011を受信し(処理1081)、前記領域・サーバ対応表434で更新された通りに各DBサーバ120〜320の領域管理表126,226,326を更新し(処理1082)、更新完了後、その完了をDB管理サーバ420へ通知する(処理1083、通知3012)。
以上の図9、図10の処理を、図7、図8で行なったトランザクションの中止要求に続けて実行することで 障害DBサーバが有するデータ領域は、正常に稼動中のDBサーバに引き継がれる。
図11、図12は、図9、図10に続いて実行することで、前記破棄完了通知3010の小トランザクション中止要求と障害によって中止された小トランザクションによって処理中だったデータ領域の回復を行なう処理を表したフローチャートである。
図11では、DB管理サーバ420の回復処理管理部432が領域・サーバ対応表434とトランザクション・領域対応表435を元に、障害と前記完了通知3010によって中止されたトランザクションを実行していたデータ領域の回復を行なうようにDBサーバ120〜320に破棄(中止)トランザクション回復処理要求を通知し(通知3013)、その完了通知3014をDBサーバ120〜320から受信する(処理1091)。前記処理1091が完了した後に、中止したトランザクションを前記トランザクション・領域対応表435より消去する。そして、クラスタプログラム4001に縮退が完了した通知3015を送信する(処理1092)。
以上により、障害発生により中止したトランザクションで不整合が生じていたデータ領域の回復が完了し、障害ノードが取り除かれたクラスタ構成への変更が完了したため、縮退が完了する。
図12では、各DBサーバ120〜320の回復処理部125,225,325における処理を示す。なお、図12では、各DBサーバ120〜320のログ読書部122,222,322の総称をログ読書部2008とする。
各DBサーバ120〜320の回復処理部2007が、前記通知3013を受信し(処理1101)、障害DBサーバが有していたデータ領域を回復するために障害DBサーバが有していたログの共有を行なう(処理1102)。続いて、ログ読み書き部2007が、前記処理1102によって共有されたログ領域500からログを読み込む(処理1103)。
前記処理1103で読み出したログが、自DBサーバに割り当てられている障害DBサーバが有していたデータ領域を対照としているかを判断する(処理1104)。前記処理1104で自DBサーバに障害DBサーバのデータ領域が割り当てられている場合にはそのログを自DBサーバのログ領域へ書き出す(処理1105)。そして、処理1106を実行する。一方、前記処理1104で自DBサーバに割り当てられていたデータ領域でない場合には、処理1106を実行する。
処理1106では、前記処理1102で共有したログを全部読み終えたかを判断し(処理1106)、全て読み終えてない場合には、前記処理1103へ戻り、読み終えた場合には、処理1107をログ適用部2009で、読み込んだログを適用して自DBサーバに割り当てられたデータ領域に障害DBサーバから引き継いだデータを回復する。なお、ログ適用部2009は、各DBサーバ120〜320のログ適用部123、223、323を示す。
以上の処理1103〜処理1106により、障害DBサーバが有したデータ領域を割り当てられたDBサーバでは、障害DBサーバが有したログから割り当てられたデータ領域に関するログだけを抜き出し、自サーバのログ領域に書き込みが完了した状態となり、自DBサーバが有するログ領域には、自DBサーバが有するデータ領域に関する全てのログが書き込まれた状態となる。したがって、ノード障害によって中止したトランザクションに関するデータ領域を回復する処理が実行することが出来る(処理1107)。前記処理1107により、自DBサーバの有するデータ領域の回復が完了した後、各DBサーバ120〜320の回復処理部125,225,325は、その完了通知3014を管理サーバ420に通知する(処理1108)。
ここで、前記処理1102〜処理1106は、説明の簡略化のため、全DBサーバで行なう処理としたが、障害DBサーバが有するデータ領域を割り当てられたDBサーバでのみ選択的に実行するようにしても良い。同様に、前記処理1107も、障害DBサーバが有するデータ領域を割り当てられたDBサーバと、前記通知3010によって処理を中断したDBサーバでのみ選択的に実行するようにしても良い。
以上の図7〜図12の処理を行なうことで、障害DBサーバが有するデータ領域は、障害によって生じたデータ領域の不整合を回復した状態で稼動中のDBサーバに引き継がれ、縮退運転を実現することができる。
ここで、図2では、DB管理サーバ420の領域割当て管理部431、回復処理管理部432、トランザクション制御部433を一つのサーバとし、DBノード100〜300とは別のノードに有する構成を持つDBMSを例にしたが、これらの各部は独立のサーバとし、それぞれ別のノードに配置してもよいし、DBノード100〜300と同一のノード上に配置するような構成であってもよい。この場合、別のサーバ、別のノード間で情報を交換する場合は、それぞれ通信を行なうことで第1の実施形態に示した処理を実現することができる。
例えば、本発明の実施形態の一変形例として、図13に示すように、トランザクション制御部422とトランザクション・領域対応表435、さらに縮退時にデータ領域の回復処理を実行する回復処理管理部432をDB管理サーバ420とは独立した別のサーバであるフロントエンドサーバ720とし、DB管理ノード100〜300とは別のノードであるフロントエンドノード700とした構成してもよい。
さらに、前記処理1012〜1014では、系切り替えと縮退運転の選択指標として、負荷量の計算対象として、無共有型DBMSにおけるデータ領域を用いて述べたが、この他クラスタ型アプリケーションのうち、サーバによる系切り替えと、縮退運転とを行なうことができるアプリケーションであっても良く、例えばWEBアプリケーションがある。このようなクラスタ型アプリケーションに適用する場合は、DBMSにおける負荷量を決定するデータ領域量ではなく、そのアプリケーションの負荷量を決定するデータの量を用いればよく、例えば、前記WEBアプリケーションでは、接続されているトランザクション量であれば良い。
以上のように、第1の実施形態によれば、クラスタ構成をとる無共有型DBMS(データベース管理サーバ420及び各DBサーバ120〜320)において、あるノード(DBノードまたはDBサーバ)に障害が発生した場合に、ユーザが求める要件に基づき、系切り替えと縮退運転とを選択的に実行することが可能となる。
さらに、縮退運転を実行する場合において、障害ノードのDBサーバで実行されていた処理に関連するトランザクションを実行していた他ノードのDBサーバの処理を中断し、障害ノードのDBサーバが有するデータ領域を他ノードのDBサーバに割り当て、障害DBサーバが有していたログ領域を引き継ぎ先となるDBサーバで共有する。これにより障害ノードで実行していた処理に関連するトランザクションの回復処理を、障害DBサーバが有していたデータ領域を含む全てのデータ領域で実行することが可能となる。
以上の動作から、第1の実施形態では、無共有型DBMSにおいて、ノードの障害が生じた場合に、全DBサーバの処理を停止させることなく、障害ノードを除いたクラスタ構成への縮退を実現することが可能となるため、縮退運転によって生じるDBMS性能の劣化を抑制するクラスタ構成を高速に実現する高可用性無共有型DBMSを提供することが可能となる。
<第2実施形態>
図14〜図17は、第2の実施形態を示し、前記第1の実施形態に示したフローチャートを置き換えて新たな処理を表したフローチャートである。本第2実施形態では、第一の実施形態における図7、図9、図11、図12の処理を図14,図15、図16、図17と置き換えたものであり、その他の処理は前記第1の実施形態と同様である。
まず、クラスタプログラムから送られる任意の時点での縮退運転の指示を契機に、縮退対象のDBサーバが実行中の処理に関連するトランザクションを中止する。そして、縮退対象のDBサーバが有していたデータ領域を他の稼動中のDBサーバに割り当てた後、中止したトランザクションによって不整合となったデータ領域の回復処理を行なう。さらに中止したトランザクションを構成変更後のデータ領域の割り当てを元に再実行する。以上の処理により、ノード障害以外の任意の時点において、DBMSの縮退を実現することが可能となる。
以下では、図14〜図17について、前記第1実施形態から置換した図の処理との処理の相違点を述べる。
まず、図14は前記第1実施形態の図7を置き換えたもので、前記第1実施形態の図8と共に動作することで、クラスタプログラム4001や管理コンソール(図示省略)等の外部4005から任意の時点で縮退運転の指示(通知3002)を受信し(処理1111)、それを契機に縮退処理を行なう。処理1112〜1115は、前記処理1052〜1055に対応し、障害DBサーバの代わりに、前記通知3004で指示された縮退対象となるDBサーバを対象とした処理を行なう。
これにより、前記通知3004によって指示されたDBサーバで実行されていた処理に関連するトランザクションを中止することが可能となる。
次に、図15は図10の処理と共に、上記図14と図8の処理に続いて実行される。図15の処理1121〜処理1123は、前記第1実施形態の図9に示した処理1071〜処理1073に対応し、障害DBサーバの代わりに前記通知3004で指示された縮退対象となるDBサーバを対象とした処理を行なう。これにより、前記通知3002によって指示されたDBサーバが有したデータ領域を他ノードで稼動中のDBサーバに割り当てることが可能となる。
さらに、図16と図17は、それぞれ前記第1実施形態の図11と図12に対応する処理で、図14と図10の処理に続いて実行される。上記図16の処理1131は図11の処理1091に対応し、図17の処理1141〜1148は、図12の処理1101〜処理1108に対応し、それぞれ障害DBサーバの代わりに前記通知3004で指示された縮退対象となるDBサーバを対象とした処理を行なう。
これにより、処理1131が完了した時点において、DBサーバが縮退し、前記通知3004によって指示されたDBサーバが有したデータ領域は、稼動中のDBサーバに割り当てられ、さらに前記処理1113で抽出されたトランザクションが実行前の整合性が取れた状態にある。前記処理1131の後、処理1132〜1134は、前記第1実施形態の図5に示した処理1032〜1034に対応し、クライアントからのトランザクションの代わりに、前記処理1115で中止されたトランザクションを用い、図14と図10により割り当てが変更された後の全データ領域を対照とした処理を行なう。すなわち、前記処理1132〜処理1134によって、縮退を行なうために図14の処理1115で中止したトランザクションを縮退構成によって再度実行された状態となり、縮退前の構成において処理中だったトランザクションが縮退後の構成で処理されている状態となる。
以上のように、図14〜図17と図8、図10の処理を行なうことで、任意の時点で、トランザクションの損失無しで、あるDBサーバのデータ領域を稼動中のDBサーバに引き継ぐ縮退運転を実現することができる。
ここで、第2の実施形態も、前記第1の実施形態と同様に、図2に示す各処理部は、独立のサーバとし、それぞれ別のノードに配置してもよいし、DBノードと同一のノード上に配置するようなしてもよく、前記図13に示すような構成がある。
さらに、本第2実施形態では、系切り替えと縮退運転の選択指標として、負荷量の計算対象として、無共有型DBMSにおけるデータ領域を用いて述べたが、クラスタ型アプリケーションのうち、サーバによる系切り替えと、縮退運転とを行なうことができるアプリケーションであっても良く、例えばWEBアプリケーションがある。このようなクラスタ型アプリケーションに適用する場合は、DBMSにおける負荷量を決定するデータ領域量ではなく、そのアプリケーションの負荷量を決定するデータの量を用いればよく、例えば、前記WEBアプリケーションでは、接続されているトランザクション量であれば良い。
以上のように第2の実施形態では、クラスタ構成をとる無共有型DBMSにおいて、あるノードを縮退させる指示に基づき、縮退対象ノードのDBサーバで実行されていた処理に関連するトランザクションを実行していた他ノードのDBサーバの処理を中断する。そして、縮退対象ノードのDBサーバが有するデータ領域を他ノードのDBサーバに割り当て、縮退対象DBサーバが有するログ領域を引き継ぎ先となるDBサーバで共有することで、縮退対象ノードで実行していた処理に関連するトランザクションの回復処理を、縮退対象DBサーバが有したデータ領域を含む全てのデータ領域で実行することが可能となる。
さらに、回復処理が完了した後、上記で中断したトランザクションを縮退したクラスタ構成のDBMSで再実行することにより、縮退運転前後でトランザクションの損失を生じることのない縮退技術が実現される。
以上の動作から、第2の実施形態では、無共有型DBMSにおいて、任意の時点で全DBサーバの処理を停止させることなく、縮退対象ノードを除いたクラスタ構成への縮退を実現することが可能となるため、縮退運転によって生じるDBMS性能の劣化を抑制するクラスタ構成を高速に実現する高可用性の無共有型DBMSを提供することが可能となる。
また、上記の第1、第2の実施形態によれば、無共有型DBMSと、データ領域を用いた縮退運転について述べたが、クラスタ型アプリケーションのうち、サーバによる系切り替えと、縮退運転とを行なうことができるアプリケーションであっても良く、その場合も縮退運転によって生じるアプリケーションシステムの性能劣化を削減するクラスタ構成を高速に実現することが可能となる。このようなアプリケーションとしては、例えばWEBアプリケーションがある。このようなクラスタ型アプリケーションに適用する場合は、DBMSにおける負荷量を決定する単位はデータ領域量ではなく、そのアプリケーションの負荷量を決定するデータの量またはスループットを用いればよく、例えば、前記WEBアプリケーションでは、接続されているトランザクション量を用いることで、縮退運転によって生じるアプリケーションシステムの性能劣化を抑制するクラスタ構成が高速に実現することが可能となる。
また、サーバによる系切り替えと、縮退運転とを行なうことができるクラスタ型のアプリケーションとしては、上記無共有型DBMSの他に、共有型DBMSであってもよい。
以上のように、本発明によればサーバによる系切り替えと、縮退運転とを行なうことができるクラスタ型のアプリケーションを運用する計算機システムに適用することができ、特に、クラスタ型のDBMSに適用することで可用性を向上させることができる。
本発明を適用する計算機システムのブロック図。 本発明の第1の実施形態を示し、ソフトウェアを中心とするシステムブロック図。 障害発生時にクラスタプログラムで実行される縮退運転のコスト計算と回復方法の判断を行う処理の一例を示すフローチャート。 クラスタプログラムが縮退運転のコスト計算を行なうために必要となる情報を、DBMSより取得する処理の一例を示すフローチャート。 データベース管理サーバで行われる小トランザクションの生成処理の一例を示すフローチャート。 データベース管理サーバで行われる小トランザクションの集計処理の一例を示すフローチャート。 DBサーバで障害が発生した場合に、障害DBサーバで実行中だった小トランザクション及び関連する小トランザクションの中断処理の一例を示すフローチャート。 DBサーバで行われる小トランザクションの中断処理の一例を示すフローチャート。 データベース管理サーバで行われる、稼動中のDBサーバにデータ領域を割り当てる処理の一例を示すフローチャート。 データベース管理サーバの指示に応じてデータ領域を割り当てるDBサーバの処理の一例を示すフローチャート。 データベース管理サーバで行われるデータ領域の回復処理の一例を示すフローチャート。 DBサーバで行われるデータ領域の回復処理の一例を示すフローチャート。 図2の変形例を示し、ソフトウェアを中心とするシステムブロック図。 第2の実施形態を示し、DBサーバで障害が発生した場合に、障害DBサーバで実行中だった小トランザクション及び関連する小トランザクションの中断処理の一例を示すフローチャート。 同じく、第2の実施形態を示し、データベース管理サーバで行われる、稼動中のDBサーバにデータ領域を割り当てる処理の一例を示すフローチャート。 同じく、第2の実施形態を示し、データベース管理サーバで行われるデータ領域の回復処理の一例を示すフローチャート。 同じく、第2の実施形態を示し、DBサーバで行われるデータ領域の回復処理の一例を示すフローチャート。
符号の説明
100、200、300 DBノード
120、220、320 DBサーバ
110、210、310、410 クラスタプログラム
420 データベース管理サーバ
500 ログ領域
600 データ領域
431 領域割当管理部
432 回復処理管理部
433 トランザクション制御部
434 領域・サーバ対応表
435 トランザクション・領域対応表

Claims (9)

  1. データベース処理のトランザクションを分割して実行する複数のサーバと、前記サーバがアクセスするデータ領域とログ領域とを予め設定したストレージ装置と、前記複数のサーバに割り当てるトランザクションを管理する管理サーバと、を備え、前記複数のサーバのうちの何れかに障害が発生したときには、障害のない正常なサーバに前記トランザクションを引き継ぐサーバの障害回復方法であって、
    前記複数のサーバのうち障害の発生したサーバを特定する手順と、
    前記障害が発生したサーバが利用していたストレージ装置のデータ領域とログ領域とをそれぞれ特定する手順と、
    前記障害が発生したサーバで実行されていた処理に関連するトランザクションを実行していた他のサーバの処理を中断する手順と、
    前記障害が発生したサーバがアクセスする前記データ領域を正常な他のサーバに割り当てる手順と、
    前記障害が発生したサーバがアクセスする前記ログ領域を、前記障害が発生したサーバのデータ領域が割り当てられたサーバで共有する手順と、
    前記障害が発生したサーバがアクセスするデータ領域を割り当てられたサーバが、前記共有したログ領域に基づいて処理を中断した時点まで前記データ領域を回復する処理と、
    を含むことを特徴とするサーバの障害回復方法。
  2. 前記複数のサーバは、現用系のサーバと待機系のサーバを有して、
    前記障害が発生したサーバがアクセスする前記データ領域を正常な他のサーバに割り当てる手順は、
    前記サーバの負荷に基づいて縮退と系切り替えの一方を選択する手順と、
    前記系切り替えを選択した場合には、待機系のサーバで障害の発生した現用系のサーバの処理を引き継ぐ手順と、
    前記縮退を選択した場合には、前記障害が発生したサーバのデータ領域を引き継ぐサーバの負荷が等しくなるように前記データ領域を正常なサーバに割り当てる手順と、
    を含むことを特徴とする請求項1に記載のサーバの障害回復方法。
  3. 前記サーバの負荷に基づいて縮退と系切り替えの一方を選択する手順は、
    縮退を選択したときのサーバの負荷と、系切り替えを選択したときのサーバの負荷を比較して、サーバの負荷の偏りが少ない方を選択することを特徴とする請求項2に記載のサーバの障害回復方法。
  4. データベース処理のトランザクションを分割して実行する複数のサーバと、前記サーバがアクセスするデータ領域とログ領域とを予め設定したストレージ装置と、前記複数のサーバに割り当てるトランザクションを管理する管理サーバと、を備え、縮退運転の指示のあったサーバのトランザクションを他のサーバへ障害回復方法であって、
    前記複数のサーバのうち縮退運転の指示があったサーバを特定する手順と、
    前記縮退対象のサーバが利用していたストレージ装置のデータ領域とログ領域とをそれぞれ特定する手順と、
    前記縮退対象のサーバで実行されていた処理に関連するトランザクションを実行していた他のサーバの処理を中断する手順と、
    前記縮退対象のサーバがアクセスする前記データ領域を他のサーバに割り当てる手順と、
    前記縮退対象のサーバがアクセスする前記ログ領域を、前記縮退対象のサーバのデータ領域が割り当てられたサーバで共有する手順と、
    前記縮退対象のサーバがアクセスするデータ領域を割り当てられたサーバが、前記共有したログ領域に基づいて処理を中断した時点まで前記データ領域を回復する処理と、
    を含むことを特徴とするサーバの障害回復方法。
  5. 前記縮退対象のサーバがアクセスする前記データ領域を他のサーバに割り当てる手順は、
    前記縮退対象のサーバのデータ領域を引き継ぐサーバの負荷が等しくなるように前記データ領域をサーバに割り当てることを特徴とする請求項4に記載のサーバの障害回復方法。
  6. 業務を分割して実行する複数のサーバと、前記サーバがアクセスする領域を予め設定したストレージ装置と、前記複数のサーバに割り当てる業務を管理する管理サーバと、を備え、前記複数のサーバのうちの何れかに障害が発生したときには、障害のない正常なサーバに前記業務を引き継ぐサーバの障害回復方法であって、
    前記複数のサーバのうち障害の発生したサーバを特定する手順と、
    前記障害が発生したサーバが利用していたストレージ装置の前記領域を特定する手順と、
    前記障害が発生したサーバで実行されていた処理に関連する処理を実行していた他のサーバの処理を中断する手順と、
    前記障害が発生したサーバがアクセスする前記領域を正常な他のサーバに割り当てる手順と、
    前記障害が発生したサーバがアクセスする領域を割り当てられたサーバが、前記処理を中断した時点まで前記領域のデータを回復する処理と、
    を含むことを特徴とするサーバの障害回復方法。
  7. ネットワークを介して接続されて現用系と待機系からなる複数のデータベースサーバと、
    前記データベースサーバのデータを格納する複数のデータ領域と、
    前記データベースサーバのログを格納する複数のログ領域と、
    前記データベースサーバとデータ領域の対応関係と、前記データベースサーバとログ領域の対応関係とを管理する管理サーバと、
    前記複数のデータ領域と、複数のログ領域を予め設定したストレージ装置と、を備えたデータベースシステムにおいて、
    前記管理サーバは、
    前記複数のデータ領域及びログ領域にアクセスするデータベースサーバを割り当てる領域割り当て管理部と、
    前記複数のデータベースサーバにトランザクションを配分するトランザクション制御部と、
    障害が発生した場合には縮退または系切り替えを行う回復処理管理部と、を有し、
    前記複数のデータベースサーバを監視するクラスタ管理部は、
    前記データベースサーバに障害が発生したことを検知する障害検知部と、
    前記管理サーバから前記データベースサーバと前記データ領域及びログ領域の対応関係を取得して、縮退または系切り替えの何れかを選択する回復処理選択部と、
    前記縮退を選択したときには、前記障害が発生したデータベースサーバのトランザクションを、現用系のデータベースサーバの負荷が等しくなるように前記回復処理管理部に引き継ぎの指令を送る縮退処理部と、
    前記系切り替えを選択したときには、前記待機系のデータベースサーバで障害が発生したデータベースサーバのトランザクションを引き継ぐように前記回復処理管理部に指令を送る系切り替え処理部と、を備えたことを特徴とするデータベースシステム。
  8. 前記回復処理管理部は、
    前記縮退処理部から指令があったときには、障害が発生したデータベースサーバが利用していたデータ領域を正常な現用系のデータベースサーバに割り当て、前記障害が発生したデータベースサーバがアクセスする前記ログ領域を前記現用系のデータベースサーバで共有させるよう、前記領域割当割り当て管理部を更新し、前記トランザクションを引き継ぐ現用系のデータベースサーバに前記ログ領域を適用して障害が発生したデータ領域を回復するように指令することを特徴とする請求項7に記載のデータベースシステム。
  9. 回復処理選択部は、
    前記縮退を選択したときのデータベースサーバの負荷と、系切り替えを選択したときのデータベースサーバの負荷を比較して、データベースサーバ間の負荷の偏りが少ない方を選択することを特徴とする請求項7に記載のデータベースシステム。
JP2005348918A 2005-12-02 2005-12-02 サーバの障害回復方法及びデータベースシステム Expired - Fee Related JP4920248B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005348918A JP4920248B2 (ja) 2005-12-02 2005-12-02 サーバの障害回復方法及びデータベースシステム
US11/347,202 US20070130220A1 (en) 2005-12-02 2006-02-06 Degraded operation technique for error in shared nothing database management system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005348918A JP4920248B2 (ja) 2005-12-02 2005-12-02 サーバの障害回復方法及びデータベースシステム

Publications (2)

Publication Number Publication Date
JP2007156679A true JP2007156679A (ja) 2007-06-21
JP4920248B2 JP4920248B2 (ja) 2012-04-18

Family

ID=38120023

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005348918A Expired - Fee Related JP4920248B2 (ja) 2005-12-02 2005-12-02 サーバの障害回復方法及びデータベースシステム

Country Status (2)

Country Link
US (1) US20070130220A1 (ja)
JP (1) JP4920248B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010128644A (ja) * 2008-11-26 2010-06-10 Hitachi Ltd 障害復旧方法、プログラムおよび管理サーバ
JP2011008419A (ja) * 2009-06-24 2011-01-13 Nec System Technologies Ltd 分散型情報処理システム及び制御方法並びにコンピュータプログラム
JP2011054860A (ja) * 2009-09-04 2011-03-17 Hitachi High-Technologies Corp 半導体装置の製造検査装置、および半導体装置の製造検査装置の制御方法
JP2013161266A (ja) * 2012-02-06 2013-08-19 Nippon Telegr & Teleph Corp <Ntt> 呼処理情報の冗長化制御システムおよびこれに利用する予備保守サーバ
JP2013161252A (ja) * 2012-02-03 2013-08-19 Fujitsu Ltd 冗長コンピュータ制御プログラム、方法、及び装置
JP2014139706A (ja) * 2013-01-21 2014-07-31 Nec Corp フォールトトレラントシステム

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080140734A1 (en) * 2006-12-07 2008-06-12 Robert Edward Wagner Method for identifying logical data discrepancies between database replicas in a database cluster
US8126848B2 (en) * 2006-12-07 2012-02-28 Robert Edward Wagner Automated method for identifying and repairing logical data discrepancies between database replicas in a database cluster
US20150113314A1 (en) * 2013-07-11 2015-04-23 Brian J. Bulkowski Method and system of implementing a distributed database with peripheral component interconnect express switch
CN103984768B (zh) 2014-05-30 2017-09-29 华为技术有限公司 一种数据库集群管理数据的方法、节点及系统
WO2016046951A1 (ja) * 2014-09-26 2016-03-31 株式会社日立製作所 計算機システム及びそのファイル管理方法
JP2023104302A (ja) * 2022-01-17 2023-07-28 株式会社日立製作所 クラスタシステム、復旧方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06250869A (ja) * 1993-03-01 1994-09-09 Hitachi Ltd 分散制御システム
JP2001084234A (ja) * 1999-09-14 2001-03-30 Hitachi Ltd オンライン処理システム
JP2001184325A (ja) * 1999-12-27 2001-07-06 Mitsubishi Electric Corp 通信制御装置、プロセッサモジュール及び記録媒体
JP2003131900A (ja) * 2001-10-24 2003-05-09 Hitachi Ltd サーバシステム運用管理方式
JP2003258997A (ja) * 2002-02-27 2003-09-12 Nippon Telegr & Teleph Corp <Ntt> サービス制御ノードシステムの予備方式
JP2004318744A (ja) * 2003-04-21 2004-11-11 Hitachi Ltd 高可用性を提供するデータベース処理方法
JP2005301436A (ja) * 2004-04-07 2005-10-27 Hitachi Ltd クラスタシステムおよびクラスタシステムにおける障害回復方法
JP2007501455A (ja) * 2003-08-01 2007-01-25 オラクル・インターナショナル・コーポレイション 非故障ノードによる並列な回復

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287501A (en) * 1991-07-11 1994-02-15 Digital Equipment Corporation Multilevel transaction recovery in a database system which loss parent transaction undo operation upon commit of child transaction
US5497487A (en) * 1994-04-28 1996-03-05 The United States Of America As Represented By The Secretary Of The Navy Merge, commit recovery protocol for real-time database management systems
US5860137A (en) * 1995-07-21 1999-01-12 Emc Corporation Dynamic load balancing
US6523130B1 (en) * 1999-03-11 2003-02-18 Microsoft Corporation Storage system having error detection and recovery
US6732186B1 (en) * 2000-06-02 2004-05-04 Sun Microsystems, Inc. High availability networking with quad trunking failover
EP1368736A2 (en) * 2001-01-11 2003-12-10 Z-Force Communications, Inc. File switch and switched file system
US6954884B2 (en) * 2001-06-01 2005-10-11 Lucent Technologies Inc. System and method for effecting recovery of a network
US6950833B2 (en) * 2001-06-05 2005-09-27 Silicon Graphics, Inc. Clustered filesystem
US7178050B2 (en) * 2002-02-22 2007-02-13 Bea Systems, Inc. System for highly available transaction recovery for transaction processing systems
US9087319B2 (en) * 2002-03-11 2015-07-21 Oracle America, Inc. System and method for designing, developing and implementing internet service provider architectures
US20040107381A1 (en) * 2002-07-12 2004-06-03 American Management Systems, Incorporated High performance transaction storage and retrieval system for commodity computing environments
JP2005196602A (ja) * 2004-01-09 2005-07-21 Hitachi Ltd 無共有型データベース管理システムにおけるシステム構成変更方法
US7403945B2 (en) * 2004-11-01 2008-07-22 Sybase, Inc. Distributed database system providing data and space management methodology

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06250869A (ja) * 1993-03-01 1994-09-09 Hitachi Ltd 分散制御システム
JP2001084234A (ja) * 1999-09-14 2001-03-30 Hitachi Ltd オンライン処理システム
JP2001184325A (ja) * 1999-12-27 2001-07-06 Mitsubishi Electric Corp 通信制御装置、プロセッサモジュール及び記録媒体
JP2003131900A (ja) * 2001-10-24 2003-05-09 Hitachi Ltd サーバシステム運用管理方式
JP2003258997A (ja) * 2002-02-27 2003-09-12 Nippon Telegr & Teleph Corp <Ntt> サービス制御ノードシステムの予備方式
JP2004318744A (ja) * 2003-04-21 2004-11-11 Hitachi Ltd 高可用性を提供するデータベース処理方法
JP2007501455A (ja) * 2003-08-01 2007-01-25 オラクル・インターナショナル・コーポレイション 非故障ノードによる並列な回復
JP2005301436A (ja) * 2004-04-07 2005-10-27 Hitachi Ltd クラスタシステムおよびクラスタシステムにおける障害回復方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010128644A (ja) * 2008-11-26 2010-06-10 Hitachi Ltd 障害復旧方法、プログラムおよび管理サーバ
JP4648447B2 (ja) * 2008-11-26 2011-03-09 株式会社日立製作所 障害復旧方法、プログラムおよび管理サーバ
JP2011008419A (ja) * 2009-06-24 2011-01-13 Nec System Technologies Ltd 分散型情報処理システム及び制御方法並びにコンピュータプログラム
JP2011054860A (ja) * 2009-09-04 2011-03-17 Hitachi High-Technologies Corp 半導体装置の製造検査装置、および半導体装置の製造検査装置の制御方法
JP2013161252A (ja) * 2012-02-03 2013-08-19 Fujitsu Ltd 冗長コンピュータ制御プログラム、方法、及び装置
JP2013161266A (ja) * 2012-02-06 2013-08-19 Nippon Telegr & Teleph Corp <Ntt> 呼処理情報の冗長化制御システムおよびこれに利用する予備保守サーバ
JP2014139706A (ja) * 2013-01-21 2014-07-31 Nec Corp フォールトトレラントシステム

Also Published As

Publication number Publication date
US20070130220A1 (en) 2007-06-07
JP4920248B2 (ja) 2012-04-18

Similar Documents

Publication Publication Date Title
JP4920248B2 (ja) サーバの障害回復方法及びデータベースシステム
US9769259B2 (en) Network storage systems having clustered RAIDs for improved redundancy and load balancing
US8195777B2 (en) System and method for adding a standby computer into clustered computer system
JP4920391B2 (ja) 計算機システムの管理方法、管理サーバ、計算機システム及びプログラム
US8713362B2 (en) Obviation of recovery of data store consistency for application I/O errors
US9477743B2 (en) System and method for load balancing in a distributed system by dynamic migration
US7318138B1 (en) Preventing undesired trespass in storage arrays
US7409586B1 (en) System and method for handling a storage resource error condition based on priority information
US10298715B2 (en) Distributed processing system, task processing method, and storage medium
US20060155912A1 (en) Server cluster having a virtual server
WO2011074284A1 (ja) 仮想計算機の移動方法、仮想計算機システム及びプログラムを格納した記憶媒体
US8078904B2 (en) Redundant configuration method of a storage system maintenance/management apparatus
JP6850771B2 (ja) 情報処理システム、情報処理システムの管理方法及びプログラム
JP2007115019A (ja) ストレージのアクセス負荷を分散する計算機システム及びその制御方法
US7409588B2 (en) Method and system for data processing with high availability
WO2015063889A1 (ja) 管理システム、プラン生成方法、およびプラン生成プログラム
EP2645635B1 (en) Cluster monitor, method for monitoring a cluster, and computer-readable recording medium
US7849264B2 (en) Storage area management method for a storage system
US7886186B2 (en) Storage system and management method for the same
US9262289B2 (en) Storage apparatus and failover method
US10884881B2 (en) Scale-out storage system and configuration information control method for implementing high-availability, high-speed failover
JP5071518B2 (ja) データベース処理方法、データベース処理システム及びデータベース管理プログラム
JP7057408B2 (ja) 記憶システム及びその制御方法
WO2016072015A1 (ja) コピー処理管理システム及びコピー処理管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100622

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110106

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110825

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111128

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4920248

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees