JP2003186722A - クラスタシステムにおけるデータベースサーバフェイルオーバー方法 - Google Patents

クラスタシステムにおけるデータベースサーバフェイルオーバー方法

Info

Publication number
JP2003186722A
JP2003186722A JP2001387616A JP2001387616A JP2003186722A JP 2003186722 A JP2003186722 A JP 2003186722A JP 2001387616 A JP2001387616 A JP 2001387616A JP 2001387616 A JP2001387616 A JP 2001387616A JP 2003186722 A JP2003186722 A JP 2003186722A
Authority
JP
Japan
Prior art keywords
database
server
master server
database master
address
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.)
Pending
Application number
JP2001387616A
Other languages
English (en)
Inventor
Tomohiro Mizukami
友宏 水上
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 Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co 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 Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2001387616A priority Critical patent/JP2003186722A/ja
Publication of JP2003186722A publication Critical patent/JP2003186722A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

(57)【要約】 【課題】クラスタシステム内のデータベースマスタサー
バに障害が発生した際に、同クラスタシステム内のデー
タベースレプリカサーバに高速かつ効率的に交代し、デ
ータベースマスタサーバの交代をクラスタシステム内の
各ノードに効率的に通知するフェイルオーバー方法を提
供することを目的とする。 【解決手段】交代要求の伝達手段にマルチキャストを用
いることによって、現用・レプリカ双方のデータベース
サーバに同時に要求を伝達する。交代要求を受けたデー
タベースレプリカサーバは、その時点からデータベース
マスタサーバとなるための準備を開始し、準備完了時点
でデータベースマスタサーバとして動作を開始する。ま
た、自分がデータベースマスタサーバとなった旨を全デ
ータベースサーバにマルチキャストする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、サーバの可用性を
高めることを目的としたクラスタシステムにおいて、デ
ータベースサーバに対する障害検出及び障害検出時のフ
ェイルオーバー方法に関する。
【0002】
【従来の技術】オンラインシステムでサーバ計算機に障
害が発生した場合の交代方式に関しては、例えば特開平
8-249281号公報に記載の技術がある。これは、計算機シ
ステム数より少ない台数の交代用計算機を設けて、障害
停止時の計算機システムのバックアップを行い、システ
ムの信頼性を向上させるものである。
【0003】また、複数の計算機から構成されるオンラ
イン処理システムにおいて、1つの計算機システムがサ
ービス停止となった場合のオンライン処理切り替え方式
に関しては、例えば特開昭63-158662号公報に記載の技
術がある。これは、サービス停止となったサーバ計算機
に接続されている端末装置を、他方の計算システムに切
り替えて接続するものである。
【0004】これらの方式は共通して、障害が発生した
計算機に接続されたクライアントに対して個別に交代先
を指示する方式であり、また障害が発生した場合の交代
処理を前提とした方式である。また、該当するデータベ
ースサーバの障害を、定期的な問い合わせ(ポーリン
グ)により検知し、その結果をもとにマスターサーバの
異常を検知して交代処理を行う方式である。
【0005】
【発明が解決しようとする課題】特開平8-249281号公報
に記載の技術では、障害発生時におけるサーバ計算機の
交代には対処できるが、障害発生時ではない正常稼動時
のサーバ計算機の交代には対処できないという問題があ
る。実際のデータベースサーバの運用では、障害発生時
だけではなく、正常に稼動中のデータベースサーバであ
っても、保守を目的とした交代を行いたい場合があり、
このような際にもトランザクション処理を中断せずに稼
働中に安全にかつ高速に交代処理が行える必要がある。
【0006】また、特開昭63-158662号公報に記載の技
術は、障害が発生したサーバ計算機に接続されたクライ
アントに対して個別に交代先を指示する方式であるた
め、クライアントの数が膨大なシステムである場合に手
間がかかるという問題がある。クラスタシステムにおい
てデータベースサーバに障害が発生した際には、データ
ベースサーバが交代した事実と、新データベースマスタ
サーバのアドレスを他のデータベースレプリカサーバや
クライアントに知らせる必要があるが、構成する計算機
(以下、単に「ノード」と呼ぶ)数が1000ノードクラス
のクラスタシステムであっても、データベースサーバの
フェイルオーバー及び障害発生の通知処理が高速にかつ
効率的に行われる必要がある。
【0007】本発明の目的は、クラスタシステム内のデ
ータベースマスタサーバに障害が発生した際に、同クラ
スタシステム内のデータベースレプリカサーバに高速か
つ効率的に交代し、データベースマスタサーバの交代を
クラスタシステム内の各ノードに効率的に通知するフェ
イルオーバー方法を提供することにある。
【0008】
【課題を解決するための手段】上記目的を達成するため
に、請求項1に係る発明は、データベースマスタサーバ
とデータベースレプリカサーバとを含み、システムを停
止することなくデータベースマスタサーバをデータベー
スレプリカサーバと交代することでサーバの可用性を高
めるクラスタシステムにおけるデータベースサーバフェ
イルオーバー方法であって、交代要求元から発行される
データベースマスタサーバ交代要求パケットの送信、及
び、マスタとレプリカとの交代が発生したときのデータ
ベースサーバ間での交代処理同期のためのパケットの送
信に、データベースサーバ群をマルチキャスト・グルー
プとするマルチキャスト通信を用いたことを特徴とす
る。
【0009】これにより、現用のデータベースマスタサ
ーバ及び全データベースレプリカサーバにおいて、交代
のために必要な処理をほぼ同時に開始させ、個別に処理
を行うよりも高速に交代処理を実行することができるよ
うにする。
【0010】請求項2に係る発明は、請求項1に記載の
データベースサーバフェイルオーバー方法において、ク
ラスタシステム内のデータベースサーバに対する障害検
出を、同クラスタシステム内のクライアントプログラム
側で行うステップと、障害を検出したクライアントプロ
グラムが、新データベースマスタサーバと成り得るデー
タベースサーバの捜索を行うステップとを備えたことを
特徴とする。クライアントプログラムでデータベースサ
ーバに対する障害検出及び新データベースマスタサーバ
の捜索を行うので、障害の検出及びデータベースサーバ
の交代時におけるシステムに対する負荷を低減すること
ができる。
【0011】請求項3に係る発明は、請求項2に記載の
データベースサーバフェイルオーバー方法において、ク
ラスタシステム内にデータベースマスタサーバアドレス
の照会を受け付けるエージェントプログラムを配備し、
同一クラスタシステム内のクライアントプログラムがデ
ータベースマスタサーバのアドレスを取得する際には、
このエージェントプログラムから取得するようにし、該
エージェントプログラムは、データベースマスタサーバ
アドレスの照会に対し、現用データベースマスタサーバ
アドレスがキャッシュされている場合は、そのアドレス
を返信し、キャッシュされていない場合は、データベー
スサーバ群に対してマルチキャスト通信を用いてデータ
ベースマスタサーバ捜索パケットを送信し、該パケット
に対して返信される情報に基づいてデータベースマスタ
サーバアドレスを特定し、該データベースマスタサーバ
アドレスを返信するものであることを特徴とする。エー
ジェントが処理することで、データベースマスタサーバ
捜索にかかわる余計な処理の発生を極力抑えることがで
きる。
【0012】請求項4に係る発明は、データベースマス
タサーバとデータベースレプリカサーバとを含み、シス
テムを停止することなくデータベースマスタサーバをデ
ータベースレプリカサーバと交代することでサーバの可
用性を高めるクラスタシステムにおけるデータベースサ
ーバフェイルオーバー方法であって、交代要求元からデ
ータベースサーバ群に対し、新データベースマスタサー
バとなるデータベースサーバのアドレスを指定したデー
タベースマスタサーバ交代要求パケットを、マルチキャ
スト通信を用いて、送信するステップと、前記データベ
ースマスタサーバ交代要求パケットを受信したデータベ
ースサーバのうち新データベースマスタサーバに指定さ
れたデータベースサーバで、自身をデータベースマスタ
サーバに昇格する交代準備処理を行うとともに、交代準
備が完了したことを示す交代準備完了パケットを、交代
要求元に対してはユニキャストで、データベースサーバ
群に対してはマルチキャストで、それぞれ送信するステ
ップと、前記交代準備完了パケットを受信した交代要求
元及びデータベースサーバ群で、その交代準備完了パケ
ットに含まれる新データベースマスタサーバアドレスを
正式なデータベースマスタサーバアドレスとして記憶す
るステップとを備えたことを特徴とする。
【0013】最終的な交代準備完了通知を、交代準備が
完了した新データベースマスタサーバに行わせることに
より、交代処理中である新データベースマスタサーバに
異常が発生した際であっても、現用のデータベースマス
タサーバがそのまま処理を続行するため、データベース
マスタサーバの交代を安全に実行することができる。ま
た、データベースマスタサーバ交代要求の受信時点では
交代は行なわず、新データベースマスタサーバからの最
終的な交代準備完了通知を受けた時点で交代するため、
完全に交代が実行できる時点まで、現用のデータベース
マスタサーバは処理中のトランザクションを継続するこ
とができる。
【0014】請求項5に係る発明は、請求項4に記載の
データベースサーバフェイルオーバー方法において、前
記新データベースマスタサーバに指定されたデータベー
スサーバから送信された交代準備完了パケットを受信し
た現用のデータベースマスタサーバで、自身をマスタサ
ーバからレプリカサーバへと降格する処理を行うととも
に、前記交代準備完了パケットの受信時に処理中であっ
たトランザクションがある場合は、その処理を破棄し、
その旨をそのトランザクションの要求元へ返信すること
を特徴とする。
【0015】請求項6に係る発明は、請求項4に記載の
データベースサーバフェイルオーバー方法において、ク
ライアントプログラムからデータベースマスタサーバに
トランザクション要求を発行した際、そのトランザクシ
ョン要求に対する返信で、該データベースマスタサーバ
に障害が発生していることを検出するステップと、デー
タベースマスタサーバに障害が発生していることを検出
したクライアントで稼動するエージェントプログラムに
て、新データベースマスタサーバとなるデータベースサ
ーバのアドレスを求めるステップと、求めた新データベ
ースマスタサーバのアドレスを含むデータベースマスタ
サーバ交代要求パケットを、クライアントプログラムに
て生成するステップとを、さらに備え、該データベース
マスタサーバ交代要求パケットを用いて請求項4に記載
の通りに交代処理を実行することを特徴とする。
【0016】データベースマスタサーバの障害検出のた
めにポーリングを行うのではなく、各クライアントプロ
グラムにおけるトランザクション要求で障害を検出する
ことで、障害検出のためだけの無駄なポーリングを排除
することができる。
【0017】
【発明の実施の形態】以下、本発明を実施する際の一形
態を図面を用いて具体的に説明する。
【0018】図1は、ネットワークNに接続されたo個の
ノードから構成されるクラスタシステムを示している。
【0019】クラスタシステム内には、データベースマ
スタサーバであるノードm+1、及びそのレプリカサーバ
であるノードm+2〜ノードnを配置する。DMがデータベー
スマスタサーバを表し、DR(1)〜DR(n-m-1)がデータベー
スレプリカサーバを表す。また、データベースマスタサ
ーバのアドレス捜索・照会を行うプログラムであるエー
ジェントA(1)〜A(o)を各ノードにおいて1つ稼動させ
る。データベースマスタサーバとコネクションを確立
し、データベースアクセスを行うプログラムP(1)-1〜P
(o)-1は、任意のノードにて稼動している可能性があ
り、かつ同一ノードにて複数存在する可能性もある。ノ
ード1〜ノードm及びノードn+1〜ノードoは、データベー
スアクセスを行うプログラムP及びエージェントAが稼働
するクライアントである。
【0020】図2に、クラスタシステム内のデータベー
スマスタサーバ及び各データベースレプリカサーバがア
クセスするデータベースのシステム構成を示す。このデ
ータベースは、ディスク共有にて共有されたディスク上
に配置し、これによりデータベースの同期を実現する。
また、データベースマスタサーバ及び各データベースレ
プリカサーバは、システム起動時にマルチキャスト・グ
ループに参加させ、マルチキャストによるパケットを受
信可能な状態としておく。これにより、本グループを指
定して、マルチキャストにより送信されたパケットは、
データベースマスタサーバ及び各データベースレプリカ
サーバに、ほぼ同時に受信可能である。
【0021】本実施形態では、データベースマスタサー
バ交代の際に送受信するデータベースマスタサーバ交代
要求パケットを、データベースマスタサーバ及び各デー
タベースレプリカサーバに対してマルチキャストにより
同時に送信することによって、交代完了までの処理時間
を短縮することを特徴とするものである。また、現用の
データベースマスタサーバと新データベースマスタサー
バとが実際に交代する契機を、新データベースマスタサ
ーバがマルチキャストによって、現用のデータベースマ
スタサーバ及び各データベースレプリカサーバに通知す
ることにより、その通知を受けた各データベースレプリ
カサーバが、ほぼ同時に新データベースマスタサーバの
アドレスを知ることができるようにしている。
【0022】図3に、本実施形態で利用する各パケット
の内容を示す。データベースマスタサーバ交代要求パケ
ットは、交代要求元のクライアントからマルチキャスト
で現用のデータベースマスタサーバ及び各データベース
レプリカサーバに送信するパケットであり、構成要素と
して、データベースマスタサーバ交代要求、要求元クラ
イアントのアドレス、及び新データベースマスタサーバ
のアドレスを含む。交代準備完了通知パケットは、交代
の準備が完了したことを通知するため、新データベース
マスタサーバとなるデータベースレプリカサーバから、
マルチキャストで現用のデータベースマスタサーバ及び
他のデータベースレプリカサーバに、またユニキャスト
で交代要求元のクライアントに、送信するパケットであ
る。交代準備完了通知パケットは、構成要素として、自
アドレスと自属性を含む。データベースマスタサーバ捜
索パケットは、データベースマスタサーバとして稼働し
ているサーバを捜索するために、クライアントからマル
チキャストでデータベースサーバ群に送信するパケット
である。データベースマスタサーバ捜索パケットは、構
成要素として、データベースマスタサーバ捜索要求とエ
ージェントが稼動しているノードのアドレスとを含む。
データベースマスタサーバ捜索応答パケットは、データ
ベースマスタサーバ捜索パケットに対する応答として、
各データベースサーバから捜索要求元のクライアントに
返信するパケットである。データベースマスタサーバ捜
索応答パケットは、自アドレスと自属性(マスタ/レプ
リカ)とを含む。
【0023】図4は、マスタ交代時の各サーバの動作を
示す。現用データベースマスタサーバ(障害は発生して
いない場合)は、データベースマスタサーバ交代要求パ
ケット受信時には、当該データベースマスタサーバ交代
要求パケットに含まれる新データベースマスタサーバの
アドレスを記憶する。この時点で本サーバが実行中の処
理は続行する。また、現用データベースマスタサーバ
は、新データベースマスタサーバからの交代準備完了通
知パケット受信時には、コミット済みの結果を全レプリ
カサーバに通知した後、自身をデータベースレプリカサ
ーバに降格し、自身が管理しているデータベースマスタ
サーバのアドレス情報を、新データベースマスタサーバ
のアドレスで更新する。なお、クライアントから要求さ
れたトランザクションをコミットする前に新データベー
スマスタサーバからの交代準備完了通知パケットを受信
した場合は、当該処理は破棄し、その旨を当該クライア
ントに返信する。
【0024】新データベースマスタサーバ(データベー
スマスタサーバ交代要求パケットで新たにマスタとなる
ことを指定されたサーバ)は、データベースマスタサー
バ交代要求パケット受信時には未だレプリカサーバであ
るので、データベースマスタサーバとなるための準備を
開始する。また、同準備が完了次第、交代準備完了通知
パケットを、現用のデータベースマスタサーバ及び自身
以外の各データベースレプリカサーバに対してマルチキ
ャストにより送信し、更に、データベースマスタサーバ
交代要求パケットの送信元であるクライアントに対して
ユニキャストにより送信し、データベースマスタサーバ
となる。自身が管理しているデータベースマスタサーバ
のアドレス情報は、新データベースマスタサーバのアド
レス(自身のアドレス)で更新する。
【0025】データベースレプリカサーバは、データベ
ースマスタサーバ交代要求パケット受信時には、当該デ
ータベースマスタサーバ交代要求パケットに含まれる新
データベースマスタサーバのアドレスを記憶する。ま
た、新データベースマスタサーバからの交代準備完了通
知パケット受信時には、自身が管理しているデータベー
スマスタサーバのアドレス情報を、新データベースマス
タサーバのアドレスで更新する。
【0026】図5は、データベースマスタサーバ捜索時
の各サーバの動作を示す。現用データベースマスタサー
バは、データベースマスタサーバ捜索パケット受信時に
は、データベースマスタサーバ捜索応答パケットに、自
アドレス、及び、自属性として「マスタ」を設定して、
要求元であるエージェントプログラムに送信する。デー
タベースレプリカサーバは、データベースマスタサーバ
捜索パケット受信時には、データベースマスタサーバ捜
索応答パケットに、自アドレス、及び、自属性として
「レプリカ」を設定して、要求元であるエージェントプ
ログラムに送信する。但しこの際、データベースマスタ
サーバの交代中であった場合には、交代が完了するまで
同パケットの送信は保留し、交代完了後にその時点での
自属性を設定して同パケットを送信する。
【0027】図6に、データベースマスタサーバ交代時
の処理の流れを示す。詳しくは、あるクライアントプロ
グラムCにより、データベースマスタサーバ交代要求パ
ケットがデータベースマスタサーバ交代要求(CNG)と
して、現用のデータベースマスタサーバ及び各データベ
ースレプリカサーバに対して送信された際の、各ノード
の処理フローを示した図である。601はクライアント
プログラムAが稼働しているノードのフロー、602は
クライアントプログラムBが稼働しているノードのフロ
ー、604はクライアントプログラムCが稼働している
ノードのフローを示す。603は現用のデータベースマ
スタサーバのノードのフロー、605は新たにマスタと
なることを指定されたデータベースレプリカサーバのノ
ードのフロー、606は他のデータベースレプリカサー
バのノードのフローを示す。
【0028】まず、現用のデータベースマスタサーバ及
び各データベースレプリカサーバに対して、データベー
スマスタサーバ交代要求パケットがデータベースマスタ
サーバ交代要求(CNG)としてマルチキャストされる(6
11)。この時点で、現用のデータベースマスタサーバ
及び各データベースレプリカサーバは、ほぼ同時に、交
代のための準備を開始する。この際の各データベースサ
ーバにおける準備処理の内容は、図4に示すとおりであ
る。
【0029】このデータベースマスタサーバ交代要求パ
ケットには、図3で示すように、データベースマスタサ
ーバ交代要求、要求元クライアントのアドレス、及び、
新データベースマスタサーバのアドレスが格納されてい
るため、同パケットを受信(612,613)した各サ
ーバは、この段階で要求元であるノードのアドレス及び
新データベースマスタサーバのアドレスを知る。
【0030】この段階では、現用のデータベースマスタ
サーバに対するクライアントプログラムAからの要求(R
EQ A1)は、現用のデータベースマスタサーバ自身が受
信し(621)、その処理結果(RET A1)をクライアン
トプログラムAに対して返信する(622)。
【0031】その後、データベースレプリカサーバの1
つで、データベースマスタサーバ交代要求パケットにお
いてアドレス指定された新データベースマスタサーバ
は、交代の準備が完了した時点で、現用のデータベース
マスタサーバ及び自身以外の各データベースレプリカサ
ーバに対して、図3で示す内容の交代準備完了通知パケ
ット(NTC)をマルチキャストにて送信し(631)、
データベースマスタサーバ交代要求(CNG)の送信元で
あるノードに対しても同パケット(NTC)をユニキャス
トにて送信し、データベースマスタサーバとなる。交代
準備完了通知パケットを受信した現用のデータベースマ
スタサーバは(632)、データベースレプリカサーバ
に降格する(このサーバを旧データベースマスタサーバ
と呼ぶ)。また、交代準備完了通知パケットを受信した
各データベースレプリカサーバは(633)、自らが管
理する現用のデータベースマスタサーバのアドレス情報
を新データベースマスタサーバのアドレスに切り替え
る。
【0032】また、データベースマスタサーバ交代の際
に旧データベースマスタサーバで処理中であったトラン
ザクション(623に示すREQ A2によって開始されたト
ランザクション)は、コミットの時点で破棄し、その旨
を要求元に返信する(624に示すREJ A2)。このトラン
ザクション破棄情報には、新データベースマスタサーバ
のアドレスを付加して返信する。トランザクション発行
元であるクライアントプログラムAは、旧データベース
マスタサーバから受信したトランザクション破棄情報に
含まれる新データベースマスタサーバのアドレスをもと
に、新データベースマスタサーバに対してトランザクシ
ョン処理を要求し(627に示すREQA2')、新データベ
ースマスタサーバとのセッションを確立する。交代準備
完了通知パケットの受信以降に発生したトランザクショ
ン(625に示すREQ B1)については、旧データベースマ
スタサーバにて受け付けられた時点で破棄(626に示
すREJ B1)され、同様にクライアントBは新データベース
マスタサーバにトランザクションを要求(628に示すR
EQ B1')を送信する。
【0033】また、このときデータベースマスタサーバ
の交代、及びダウン等の異常事態の検出に、クライアン
トプログラムからのデータベースアクセス要求自体を利
用する。クライアントプログラムがデータベースマスタ
サーバの異常を検出した際には、クライアントプログラ
ムが現用のデータベースマスタサーバを直接捜索するの
ではなく、各ノードで稼動しているエージェントに新デ
ータベースマスタサーバのアドレスの捜索、或いは照会
処理を依頼する。
【0034】エージェントは、データベースマスタサー
バのアドレスの「捜索」と「照会」の2つの要求を受け
付ける。「捜索」の要求を受理した際には、現用のデー
タベースマスタサーバ、及び各データベースレプリカサ
ーバのアドレスを捜索し、エージェントはこの際に取得
した各データベースサーバのアドレスを自身の管理情報
としてキャッシュした後、要求元であるクライアントプ
ログラムに対して現用のデータベースマスタサーバのア
ドレスを通知する。「照会」の要求を受理した際には、
自身の管理情報としてキャッシュされているデータベー
スマスタサーバのアドレスをクライアントプログラムに
対して通知する。ただし、このときキャッシュされたア
ドレスが存在しない場合には、「捜索」の要求を受理し
た際と同様の処理を実行する。
【0035】図7に、現用のデータベースマスタサーバ
捜索・照会時の処理の流れを示す。これは、データベー
スアクセスを伴うクライアントプログラムがデータベー
スマスタサーバのアドレスを取得する際の処理フローを
示している。701はクライアントプログラムとエージ
ェントが稼働しているノードAのフロー、702は現用
データベースマスタサーバが稼働しているノードBのフ
ロー、703は新データベースマスタサーバとなるデー
タベースレプリカサーバが稼働しているノードCのフロ
ーを示す。
【0036】クライアントプログラムAは、まず、同一
ノード内にて稼動しているエージェントに対して現用の
データベースマスタサーバのアドレス照会(REF A1)を
要求する(711)。この時点で、ノードAのエージェ
ントはまだデータベースマスタサーバのアドレスを知ら
ないとすると、エージェントは、アドレス取得要求(SC
H1)として、図3で示す内容のデータベースマスタサー
バ捜索パケットを現用のデータベースマスタサーバ及び
各データベースレプリカサーバに対してマルチキャスト
にて送信する(712,713)。これに対して、現用
のデータベースマスタサーバ及び各データベースレプリ
カサーバは、自身のアドレス及びその属性(マスタ或い
はレプリカ)を、図3で示す内容のデータベースマスタ
サーバ捜索応答パケットにて返信(ANS 1)する(71
4,715)。
【0037】データベースマスタサーバ捜索応答パケッ
トを受信したノードAのエージェントは、各データベー
スサーバのアドレス及びその属性(マスタ或いはレプリ
カ)を自身の管理情報としてキャッシュし、クライアン
トプログラムAに対しては現用のデータベースマスタサ
ーバのアドレスを返信(ANS A1)する(716)。エー
ジェントから現用のデータベースマスタサーバのアドレ
スを受信したクライアントプログラムAは、同データベ
ースマスタサーバとのセッションを確立し、トランザク
ション(REQ A1)を開始する(717)。現用のデータ
ベースマスタサーバは、該トランザクション(REQ A1)
の処理を実行し、応答(RET A1)を返す(718)。
【0038】現用のデータベースマスタサーバが何らか
の理由(例えば、障害発生720)によりデータベース
レプリカサーバの1つであるノードCと交代した後に、
再度クライアントプログラムAが現用のデータベースマ
スタサーバに対してアクセス要求(REQ A2)を行った際
には(722)、クライアントプログラムA自身が異常
を検出する。この際、クライアントプログラムAは、同
一ノードにて稼動しているエージェントに対してアドレ
ス捜索(SCH A2)を要求する(723)。この要求を受
けたエージェントは、データベースマスタサーバを捜索
(SCH 2)し(724,725)、捜索の結果(72
6)として取得した新データベースマスタサーバである
ノードCと各データベースレプリカサーバのアドレス及
びそれらの属性を自身の管理情報としてキャッシュし、
クライアントプログラムAに返信(ANS A2)する(72
7)。同エージェントは、その後発生するクライアント
プログラムBのアドレス照会(REF B1)に対しては(7
31)、既に自身でキャッシュ済みの新データベースマ
スタサーバ(ノードC)のアドレスを返信(ANS B1)し
(732)、クライアントプログラムBは、ノードC上の
データベースマスタサーバに要求(REQ B1)を送信する
(734)。
【0039】エージェントがマルチキャストにて送信
(724,725)するデータベースマスタサーバ捜索
パケットを受信した現用データベースマスタサーバ及び
各データベースレプリカサーバは、同パケットの送信元
であるエージェントに対して、データベースマスタサー
バ捜索応答パケットを各々ユニキャストにて返信する
(726)。この際、現用のデータベースマスタサーバ
は自身のアドレス及びその属性(マスタ)を、各データ
ベースレプリカサーバは自身のアドレス及びその属性
(レプリカ)を、それぞれデータベースマスタサーバ捜
索応答パケットに設定して送信する。
【0040】各データベースサーバよりデータベースマ
スタサーバ捜索応答パケットを受信したエージェント
は、各データベースサーバのアドレス及びそのサーバの
属性(マスタ或いはレプリカ)を組合せとする情報を要
素としたテーブルを自身の管理情報として作成(キャッ
シュ)する。データベースマスタサーバ捜索パケットを
送信した後、一定時間経過した時点で現用のデータベー
スマスタサーバからのデータベースマスタサーバ捜索応
答パケットが届かない場合(図7では現用のデータベー
スマスタサーバに障害が発生しているので、このサーバ
からのデータベースマスタサーバ捜索応答パケットは届
かないことになる)には、既に届いているデータベース
レプリカサーバの1つを新データベースマスタサーバの
候補として選出し、データベースマスタサーバ捜索パケ
ットの送信元であるクライアントプログラムに送信す
る。
【0041】図8は、エージェントが、データベースマ
スタアドレス照会を受信したときの処理手順を示す。
【0042】いま、エージェントは自身のキャッシュの
中にデータベースマスタサーバの情報を有していないと
する。この状態で、クライアントプログラムAからデー
タベースマスタアドレスの照会を依頼されたとき(80
1)、エージェントは、データベースサーバ群に対して
「データベースマスタ捜索」を行う(802)。エージ
ェントは、「データベースマスタサーバ捜索」の返信
を、各データベースサーバより受信する(803,80
5)。返信されたアドレスはキャッシュに格納する(8
04,806)。この返信は各データベースサーバから
のユニキャストであるため、エージェントは、一定時間
返信を待機する(807)。各データベースサーバによ
る「データベースマスタ捜索」の返信は、データベース
マスタサーバの交代中の場合には、その間保留されるこ
とを考慮し、充分な待機時間を設けておく。待機時間を
経過した後、或いはデータベースマスタサーバからの返
信を受信した時点で、データベースマスタサーバのアド
レスを抽出する(808)。マスタとして稼動している
データベースサーバからの返信が届いている場合には、
そのアドレスをクライアントへ返信する(809)。マ
スタとして稼動しているデータベースサーバからの返信
がない場合には、既に到着しているレプリカデータベー
スサーバの中から新データベースマスタサーバの候補を
選択し、クライアントへ返信する(809)。
【0043】その後、エージェントがクライアントプロ
グラムBからデータベースマスタアドレスの照会を依頼
されたとき(810)、自身のキャッシュの中にデータ
ベースマスタサーバのアドレスを有しているので、その
アドレスをクライアントに対して返信する(811)。
【0044】図9は、正常に稼動している現用データベ
ースマスタサーバが、「データベースマスタサーバ交代
要求パケット」を受信した際の処理手順を示す。
【0045】クライアントプログラムAから「データベ
ースマスタサーバ交代要求パケット」を受信すると(9
01,902)、現用データベースマスタサーバは、当
該パケットに含まれる新データベースマスタサーバのア
ドレスを一時的に記憶する(903)。現用データベー
スマスタサーバは、「データベースマスタサーバ交代要
求パケット」を受信した後であっても、新データベース
マスタサーバからの「交代準備完了通知パケット」を受
信するまでは、クライアントからのリクエストを受信
し、処理結果を返信し続ける(904〜906)。
【0046】新データベースマスタサーバからの「交代
準備完了通知パケット」を受信(908,909)した
時点で処理中のトランザクションがある場合には(90
7)、そのトランザクションを中止し、そのリクエスト
元であるクライアントに対してReject通知(処理を破棄
した旨を伝える通知)を返信する(910,911)。
その後、現用データベースマスタサーバは、データベー
スレプリカサーバへ降格する(912,913)。降格
後にリクエストを送信してきたクライアントに対して
は、Rejectを通知する(914〜916)。
【0047】図10は、データベースレプリカサーバが
「データベースマスタサーバ交代要求パケット」を受信
した際に、同パケットに指定された新データベースマス
タサーバのアドレスが自身のアドレスであった場合の処
理手順を示す。
【0048】クライアントプログラムAから「データベ
ースマスタサーバ交代要求パケット」を受信したデータ
ベースレプリカサーバは(1001,1002)、新た
にデータベースマスタサーバへ昇格するために必要な処
理を開始する(1003〜1006)。昇格の準備が整
った段階で、「交代準備完了通知パケット」を送信す
る。この「交代準備完了通知パケット」は、「データベ
ースマスタサーバ交代要求パケット」の送信元のクライ
アントに対してはユニキャストで(1007)、データ
ベースサーバ群に対してはマルチキャストで(100
8)、それぞれ送信する。昇格後は、通常のデータベー
スマスタサーバとしてクライアントプログラムからのリ
クエストを受信し、処理結果を返信する(1009,1
010)。
【0049】図11は、データベースレプリカサーバが
「データベースマスタサーバ交代要求パケット」を受信
した際に、同パケットに指定されている新データベース
マスタサーバのアドレスが自身のアドレスではなかった
場合の処理手順を示す。
【0050】この場合、データベースレプリカサーバは
特別行う処理はない。「交代準備完了通知パケット」を
受信した際に、自身が管理しているデータベースマスタ
サーバのアドレスを、新データベースマスタサーバのア
ドレスで更新すればよい(1104〜1106)。デー
タベースマスタサーバ交代要求パケットを受信したとき
に新データベースマスタサーバのアドレスを一時的に記
憶する処理は(1101〜1103)、行っても行わな
くてもどちらでもよい。
【0051】図12は、クライアントプログラムにてデ
ータベースマスタサーバの障害を検知した際の処理手順
を示す。
【0052】現用データベースマスタサーバに障害が発
生しており(1201)、現用データベースマスタサー
バへのリクエストが正常に届かない場合(1202)、
クライアントプログラムは、同ノードにて稼動している
エージェントに対してデータベースマスタサーバの再照
会を依頼する(1203)。再照会を要求されたエージ
ェントは、自身の管理するキャッシュの状態に限らず、
あらためてデータベースマスタサーバの捜索を行う(1
204)。その結果、クライアントプログラムは、返信
される新データベースマスタサーバの候補となるサーバ
のアドレスと属性(レプリカ)を受信する。クライアン
トプログラムは、その新データベースマスタサーバの候
補をデータベースマスタサーバへ昇格すべく、「データ
ベースマスタサーバ交代要求パケット」を各データベー
スサーバに対してマルチキャストで送信する(120
7)。
【0053】「データベースマスタサーバ交代要求パケ
ット」の送信後、新データベースマスタサーバから「交
代準備完了通知パケット」を受信した時点で(120
8)、新データベースマスタサーバのアドレスを正式に
記憶し(1209)、その新データベースマスタサーバ
に対してリクエストを再送信する(1210)。なお、
エージェントから返信される新データベースマスタサー
バの候補となるサーバのアドレスは、一時的に記憶して
おいてもよいし(1206)、そうしなくてもよい。
【0054】図13は、クライアントプログラムにて旧
データベースマスタサーバ(現データベースレプリカサ
ーバ)から処理を破棄された場合の処理手順を示す。
【0055】クライアントプログラムが、データベース
マスタサーバに対してリクエストを送信したとき(13
01)、既にそのサーバはマスタからレプリカに降格さ
れていたとする。このとき、当該データベースレプリカ
サーバ(旧データベースマスタサーバ)からはトランザ
クション破棄情報が返される(1302)。トランザク
ション破棄情報には、新データベースマスタサーバのア
ドレスが含まれているので、当該アドレスを正式に記憶
し(1303)、そのアドレスの元へ再度リクエストを
送信する(1304)。
【0056】
【発明の効果】以上説明したように、本発明によれば、
データベースマスタサーバがトランザクション処理中で
あっても、データベースマスタサーバの交代を行うこと
が可能となる。
【0057】また、データベースマスタサーバの交代要
求をマルチキャストで送信することで、データベースマ
スタサーバの交代に必要な処理を、現用のデータベース
マスタサーバサーバ及び各データベースレプリカサーバ
にてほぼ同時に開始することができるため、速やかに交
代処理を行うことが可能となる。
【0058】また、トランザクション要求元であるクラ
イアントプログラムが障害の検出及びデータベースマス
タサーバの捜索を開始するため、障害検出のための余計
なポーリング処理を実行する必要がなく、また、データ
ベースマスタサーバの交代の際に大量のクライアントに
対して個別に交代通知を行う必要もない。加えて、デー
タベースマスタサーバの捜索処理を代行するエージェン
トの存在により、捜索処理結果(現用のデータベースマ
スタサーバのアドレス)がキャッシュされるため、以後
の照会処理をノード内に局所化することができ、ネット
ワークに対する負荷を低減することが可能となる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るクラスタシステムの
ハードウエア構成及びプログラム構成を示す図
【図2】本実施形態で想定するデータベースのシステム
構成を示す図
【図3】データベースマスタサーバ交代時及びデータベ
ースマスタサーバのアドレス捜索時の電文内容を示す図
【図4】データベースマスタサーバ交代時の各サーバの
処理内容を示す図
【図5】データベースマスタサーバ捜索時の各サーバの
処理内容を示す図
【図6】データベースマスタサーバ交代時の処理手順を
示す図
【図7】データベースマスタサーバ捜索時のデータベー
スマスタサーバアドレス取得処理の処理手順を示す図
【図8】エージェントがデータベースマスタアドレス照
会を受信したときの処理手順を示す図
【図9】正常に稼動している現用データベースマスタサ
ーバがデータベースマスタサーバ交代要求パケットを受
信した際の処理手順を示す図
【図10】データベースレプリカサーバがデータベース
マスタサーバ交代要求パケットを受信した際に、同パケ
ットに指定された新データベースマスタサーバのアドレ
スが自身のアドレスであった場合の処理手順を示す図
【図11】データベースレプリカサーバがデータベース
マスタサーバ交代要求パケットを受信した際に、同パケ
ットに指定されている新データベースマスタサーバのア
ドレスが自身のアドレスではなかった場合の処理手順を
示す図
【図12】クライアントプログラムにてデータベースマ
スタサーバの障害を検知した際の処理手順を示す図
【図13】クライアントプログラムにて旧データベース
マスタサーバから処理を破棄された場合の処理手順を示
す図
【符号の説明】
N …各ノードを結ぶネットワーク A(1)〜A(o) …データベースマスタサーバアドレス照会
エージェントプログラム DM …データベースマスタサーバ DR(1)〜DR(n-m-1) …データベースレプリカサーバ P(1)-1〜P(m)-1 …データベースアクセスを伴うクライ
アントプログラム REQ …トランザクション要求 RET …トランザクション結果 REJ …トランザクション要求破棄 CNG …データベースマスタサーバ交代要求 NTC …データベースマスタサーバ交代準備完了通知 SCH …データベースマスタサーバ照会要求 ANS …データベースマスタサーバ照会結果
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 15/177 682 G06F 15/177 682L Fターム(参考) 5B034 BB02 CC04 5B045 BB04 BB28 BB42 DD18 JJ22 JJ25 JJ26 JJ44 5B082 DC07 DE03 5B089 GA11 KA12 ME04

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】データベースマスタサーバとデータベース
    レプリカサーバとを含み、システムを停止することなく
    データベースマスタサーバをデータベースレプリカサー
    バと交代することでサーバの可用性を高めるクラスタシ
    ステムにおけるデータベースサーバフェイルオーバー方
    法であって、 交代要求元から発行されるデータベースマスタサーバ交
    代要求パケットの送信、及び、マスタとレプリカとの交
    代が発生したときのデータベースサーバ間での交代処理
    同期のためのパケットの送信に、データベースサーバ群
    をマルチキャスト・グループとするマルチキャスト通信
    を用いたことを特徴とするデータベースサーバフェイル
    オーバー方法。
  2. 【請求項2】請求項1に記載のデータベースサーバフェ
    イルオーバー方法において、 クラスタシステム内のデータベースサーバに対する障害
    検出を、同クラスタシステム内のクライアントプログラ
    ム側で行うステップと、障害を検出したクライアントプ
    ログラムが、新データベースマスタサーバと成り得るデ
    ータベースサーバの捜索を行うステップとを備えたこと
    を特徴とするデータベースサーバフェイルオーバー方
    法。
  3. 【請求項3】請求項2に記載のデータベースサーバフェ
    イルオーバー方法において、 クラスタシステム内にデータベースマスタサーバアドレ
    スの照会を受け付けるエージェントプログラムを配備
    し、同一クラスタシステム内のクライアントプログラム
    がデータベースマスタサーバのアドレスを取得する際に
    は、このエージェントプログラムから取得するように
    し、 該エージェントプログラムは、データベースマスタサー
    バアドレスの照会に対し、現用データベースマスタサー
    バアドレスがキャッシュされている場合は、そのアドレ
    スを返信し、キャッシュされていない場合は、データベ
    ースサーバ群に対してマルチキャスト通信を用いてデー
    タベースマスタサーバ捜索パケットを送信し、該パケッ
    トに対して返信される情報に基づいてデータベースマス
    タサーバアドレスを特定し、該データベースマスタサー
    バアドレスを返信するものであることを特徴とするデー
    タベースサーバフェイルオーバー方法。
  4. 【請求項4】データベースマスタサーバとデータベース
    レプリカサーバとを含み、システムを停止することなく
    データベースマスタサーバをデータベースレプリカサー
    バと交代することでサーバの可用性を高めるクラスタシ
    ステムにおけるデータベースサーバフェイルオーバー方
    法であって、 交代要求元からデータベースサーバ群に対し、新データ
    ベースマスタサーバとなるデータベースサーバのアドレ
    スを指定したデータベースマスタサーバ交代要求パケッ
    トを、マルチキャスト通信を用いて、送信するステップ
    と、 前記データベースマスタサーバ交代要求パケットを受信
    したデータベースサーバのうち新データベースマスタサ
    ーバに指定されたデータベースサーバで、自身をデータ
    ベースマスタサーバに昇格する交代準備処理を行うとと
    もに、交代準備が完了したことを示す交代準備完了パケ
    ットを、交代要求元に対してはユニキャストで、データ
    ベースサーバ群に対してはマルチキャストで、それぞれ
    送信するステップと、 前記交代準備完了パケットを受信した交代要求元及びデ
    ータベースサーバ群で、その交代準備完了パケットに含
    まれる新データベースマスタサーバアドレスを正式なデ
    ータベースマスタサーバアドレスとして記憶するステッ
    プとを備えたことを特徴とするデータベースサーバフェ
    イルオーバー方法。
  5. 【請求項5】請求項4に記載のデータベースサーバフェ
    イルオーバー方法において、 前記新データベースマスタサーバに指定されたデータベ
    ースサーバから送信された交代準備完了パケットを受信
    した現用のデータベースマスタサーバで、自身をマスタ
    サーバからレプリカサーバへと降格する処理を行うとと
    もに、前記交代準備完了パケットの受信時に処理中であ
    ったトランザクションがある場合は、その処理を破棄
    し、その旨をそのトランザクションの要求元へ返信する
    ことを特徴とするデータベースサーバフェイルオーバー
    方法。
  6. 【請求項6】請求項4に記載のデータベースサーバフェ
    イルオーバー方法において、 クライアントプログラムからデータベースマスタサーバ
    にトランザクション要求を発行した際、そのトランザク
    ション要求に対する返信で、該データベースマスタサー
    バに障害が発生していることを検出するステップと、 データベースマスタサーバに障害が発生していることを
    検出したクライアントで稼動するエージェントプログラ
    ムにて、新データベースマスタサーバとなるデータベー
    スサーバのアドレスを求めるステップと、 求めた新データベースマスタサーバのアドレスを含むデ
    ータベースマスタサーバ交代要求パケットを、クライア
    ントプログラムにて生成するステップとを、さらに備
    え、 該データベースマスタサーバ交代要求パケットを用いて
    請求項4に記載の通りに交代処理を実行することを特徴
    とするデータベースサーバフェイルオーバー方法。
JP2001387616A 2001-12-20 2001-12-20 クラスタシステムにおけるデータベースサーバフェイルオーバー方法 Pending JP2003186722A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001387616A JP2003186722A (ja) 2001-12-20 2001-12-20 クラスタシステムにおけるデータベースサーバフェイルオーバー方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001387616A JP2003186722A (ja) 2001-12-20 2001-12-20 クラスタシステムにおけるデータベースサーバフェイルオーバー方法

Publications (1)

Publication Number Publication Date
JP2003186722A true JP2003186722A (ja) 2003-07-04

Family

ID=27596388

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001387616A Pending JP2003186722A (ja) 2001-12-20 2001-12-20 クラスタシステムにおけるデータベースサーバフェイルオーバー方法

Country Status (1)

Country Link
JP (1) JP2003186722A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100994342B1 (ko) 2008-05-30 2010-11-12 엔에이치엔비즈니스플랫폼 주식회사 분산 파일 시스템 및 복제본 기반 장애 처리 방법
JP2013025765A (ja) * 2011-07-26 2013-02-04 Nippon Telegr & Teleph Corp <Ntt> マスター/スレーブシステム、制御装置、マスター/スレーブ切替方法、および、マスター/スレーブ切替プログラム
WO2013073022A1 (ja) * 2011-11-16 2013-05-23 株式会社日立製作所 計算機システム及び障害検出方法
CN107153699A (zh) * 2017-05-09 2017-09-12 北京恒华伟业科技股份有限公司 一种动态扩展集群服务器的方法及装置
JP2019168807A (ja) * 2018-03-22 2019-10-03 日本電気株式会社 制御装置、制御方法、制御プログラム、及び制御システム
CN112000745A (zh) * 2020-09-03 2020-11-27 中国建设银行股份有限公司 数据库高可用方法及装置
WO2022257719A1 (zh) * 2021-06-09 2022-12-15 北京奥星贝斯科技有限公司 数据库事务处理的方法、系统、电子设备及存储介质

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100994342B1 (ko) 2008-05-30 2010-11-12 엔에이치엔비즈니스플랫폼 주식회사 분산 파일 시스템 및 복제본 기반 장애 처리 방법
JP2013025765A (ja) * 2011-07-26 2013-02-04 Nippon Telegr & Teleph Corp <Ntt> マスター/スレーブシステム、制御装置、マスター/スレーブ切替方法、および、マスター/スレーブ切替プログラム
WO2013073022A1 (ja) * 2011-11-16 2013-05-23 株式会社日立製作所 計算機システム及び障害検出方法
CN107153699A (zh) * 2017-05-09 2017-09-12 北京恒华伟业科技股份有限公司 一种动态扩展集群服务器的方法及装置
CN107153699B (zh) * 2017-05-09 2020-10-02 北京恒华伟业科技股份有限公司 一种动态扩展集群服务器的方法及装置
JP2019168807A (ja) * 2018-03-22 2019-10-03 日本電気株式会社 制御装置、制御方法、制御プログラム、及び制御システム
JP7013988B2 (ja) 2018-03-22 2022-02-01 日本電気株式会社 制御装置、制御方法、制御プログラム、及び制御システム
CN112000745A (zh) * 2020-09-03 2020-11-27 中国建设银行股份有限公司 数据库高可用方法及装置
WO2022257719A1 (zh) * 2021-06-09 2022-12-15 北京奥星贝斯科技有限公司 数据库事务处理的方法、系统、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US8838703B2 (en) Method and system for message processing
US6934247B2 (en) Recovery following process or system failure
US7409420B2 (en) Method and apparatus for session replication and failover
EP1192545B1 (en) Internet server session backup apparatus
US7395328B2 (en) Method and system for detecting a dead server
CN111615066B (zh) 一种基于广播的分布式微服务注册及调用方法
US20020152293A1 (en) Dynamic server directory for distributed computing system
CN109344014B (zh) 一种主备切换方法、装置及通信设备
WO2010115373A1 (zh) 基于对等网络的资源信息备份操作方法及对等网络
CN112328421B (zh) 一种系统故障处理方法、装置、计算机设备和存储介质
EP2418824A1 (en) Method for resource information backup operation based on peer to peer network and peer to peer network thereof
CN106330475A (zh) 一种通信系统中管理主备节点的方法和装置及高可用集群
US6992985B1 (en) Method and system for auto discovery of IP-based network elements
CN111314098A (zh) 一种ha系统中实现vip地址漂移的方法和装置
CN107018159B (zh) 业务请求处理方法及装置、和业务请求方法及装置
CN101262479B (zh) 一种网络文件共享的方法、服务器和网络文件共享的系统
JPH09259096A (ja) ネットワーク高信頼化方式及びシステム
JP2003186722A (ja) クラスタシステムにおけるデータベースサーバフェイルオーバー方法
JPH09293059A (ja) 分散システム及びその運用管理方法
CN104158694B (zh) DHCPv6服务器的热备方法和装置
US8089987B2 (en) Synchronizing in-memory caches while being updated by a high rate data stream
JP2002111713A (ja) ネットワークシステム、ネームサーバ、サーバ、およびネットワークシステムのip通信方法
US20090106781A1 (en) Remote call handling methods and systems
CN114422335A (zh) 通信方法、装置、服务器及存储介质
JP2007249659A (ja) システム切替方法、その計算機システム及びプログラム