(57)【特許請求の範囲】
【請求項１】
マスタデータを管理する複数のマスタノードと、
前記マスタデータをコピーしたレプリカデータを管理する複数のレプリカノードと、
負荷分散装置と、を備え、
前記負荷分散装置は、
前記複数のレプリカノードの中から、前記レプリカデータのリフレッシュ要求を発行させる一のレプリカノードを選択する第１の選択手段と、
前記第１の選択手段によって選択されたレプリカノードが発行したリフレッシュ要求を受け付けると、前記受け付けたリフレッシュ要求に応答する一のマスタノードを、前記複数のマスタノードの中から選択する第２の選択手段と、を備え、
前記第１の選択手段によって選択されたレプリカノードがリフレッシュ要求を発行することによって、前記第２の選択手段によって選択されたマスタノードから前記マスターデータを取得し、取得した前記マスターデータに基づいて、前記レプリカデータを更新するデータベースシステム。
【請求項２】
前記負荷分散装置が、前記複数のレプリカノードのうちのいずれかからレプリカノード選択要求を受け付けると、前記第１の選択手段が、前記複数のレプリカノードの中から、前記リフレッシュ要求を発行させる一のレプリカノードを選択することを特徴とする請求項１記載のデータベースシステム。
【請求項３】
前記複数のレプリカノードのそれぞれは、他のレプリカノードを監視する監視手段を備え、
第１のレプリカノードの監視手段が、前記レプリカノード選択要求を発行すべき第２のレプリカノードが前記レプリカノード選択要求を発行できないことを検知すると、前記第１のレプリカノードが前記レプリカノード選択要求を発行することを特徴とする請求項１または２に記載のデータベースシステム。
【請求項４】
前記複数のレプリカノードには、予め、前記レプリカノード選択要求発行の優先順位が割り当てられていて、
前記第１のレプリカノードに割り当てられている優先順位が、前記第２のレプリカノードに割り当てられている優先順位の次に高い順位であるときに、第１のレプリカノードの監視手段が、前記レプリカノード選択要求を発行すべき第２のレプリカノードが前記レプリカノード選択要求を発行できないことを検知すると、前記第１のレプリカノードが前記レプリカノード選択要求を発行する請求項３記載のデータベースシステム。
【請求項５】
第１のレプリカノードは、
前記レプリカノード選択要求を、第１の周期で発行する第１のプロセスと、
前記レプリカデータがリフレッシュされてから、前記第１の周期よりも長い第２の時間が経過したときに、前記負荷分散装置へレプリカノード選択要求を行う第２のプロセスと、を有することを特徴とする請求項１または２に記載のデータベースシステム。
【請求項６】
前記第１のプロセスは、各レプリカノードのＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）上のプロセスであり、
前記第２のプロセスは、前記レプリカデータを管理するデータベース管理システム上のプロセスであることを特徴とする請求項５記載のデータベースシステム。
【請求項７】
マスタデータを管理する複数のマスタノードと、前記マスタデータをコピーしたレプリカデータを管理する複数のレプリカノードと、負荷分散装置と、を備えたデータベースシステムにおいて、
前記負荷分散装置が、前記複数のレプリカノードの中から、前記レプリカデータのリフレッシュ要求を発行させる一のレプリカノードを選択し、
前記選択されたレプリカノードがリフレッシュ要求を発行し、
前記負荷分散装置が、前記発行されたリフレッシュ要求を受け付けると、前記受け付けたリフレッシュ要求に応答する一のマスタノードを、前記複数のマスタノードの中から選択して、選択されたマスタノードへ前記リフレッシュ要求を送信し、
前記選択されたレプリカノードが、前記負荷分散装置を介して前記選択されたマスタノードから前記マスターデータを取得し、取得した前記マスターデータに基づいて、前記レプリカデータを更新する、データベースシステムにおけるレプリカデータの更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタサイトのある時点におけるマスタデータを、スレーブサイトにコピーしてレプリカデータとして保存する技術に関し、特にマスタサイト及びスレーブサイトに配置した複数のノードにおいて、レプリカデータをコピーする処理の負荷分散をする技術に関する。
【背景技術】
【０００２】
従来、マスタサイトにマスタデータを保存し、スレーブサイトにある時点のマスタデータをレプリカデータとして保存するデータベースシステムがある。これをＯＲＡＣＬＥ（登録商標）データベースにおいて実現する場合、マテリアライズド・ビュー（Ｍａｔｅｒｉａｌｉｚｅｄ  Ｖｉｅｗ：以下、Ｍ−Ｖｉｅｗと称する）を用いることができる。
【０００３】
このＭ−Ｖｉｅｗでは、図６に示すような手順でレプリカデータの更新（リフレッシュ）が行われる。すなわち、レプリカノード６００がマスタノード５００へＡ表のレプリカデータ（レプリカＡ）のリフレッシュ要求を発行する（Ｓ５１０）と、マスタノード５００がＡ表のマスタデータ（マスタＡ）の更新履歴を示すログＡを参照する（Ｓ５２０）。そして、マスタノード５００がログＡに基づいて、前回のリフレッシュ後に更新されたデータを特定し、前回のリフレッシュ後に更新されたデータをマスタＡから取得する（Ｓ５３０）。マスタノード５００は、マスタＡから取得したデータをレプリカノード６００へ通知し（Ｓ５４０）、レプリカノード６００がレプリカＡを更新する（Ｓ５５０）。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ここで、システムの規模が大きくなると、リフレッシュ処理の負荷も大きくなる。そこで、リフレッシュ処理を複数のノードで負荷分散して実現したい。
【０００５】
しかしながら、特にＭ−Ｖｉｅｗにおいては、ＯＲＡＣＬＥ（登録商標）の仕様により、ノードが固定されてしまうという問題があった。
【０００６】
そこで、本発明の目的は、マスタサイトのマスタデータを、スレーブサイトのレプリカデータとしてコピーするリフレッシュ処理の負荷分散をすることである。
【課題を解決するための手段】
【０００７】
本発明の一つの実施態様に従うデータベースシステムは、マスタデータを管理する複数のマスタノードと、前記マスタデータをコピーしたレプリカデータを管理する複数のレプリカノードと、負荷分散装置と、を備える。前記負荷分散装置は、前記複数のレプリカノードの中から、前記レプリカデータのリフレッシュ要求を発行させる一のレプリカノードを選択する第１の選択手段と、前記第１の選択手段によって選択されたレプリカノードが発行したリフレッシュ要求を受け付けると、前記受け付けたリフレッシュ要求に応答する一のマスタノードを、前記複数のマスタノードの中から選択する第２の選択手段と、を備え、前記第１の選択手段によって選択されたレプリカノードがリフレッシュ要求を発行することによって、前記第２の選択手段によって選択されたマスタノードから前記マスターデータを取得し、取得した前記マスターデータに基づいて、前記レプリカデータを更新する。
【０００８】
好適な実施形態では、前記負荷分散装置が、前記複数のレプリカノードのうちのいずれかからレプリカノード選択要求を受け付けると、前記第１の選択手段が、前記複数のレプリカノードの中から、前記リフレッシュ要求を発行させる一のレプリカノードを選択するようにしてもよい。
【０００９】
好適な実施形態では、前記複数のレプリカノードのそれぞれは、他のレプリカノードを監視する監視手段を備え、第１のレプリカノードの監視手段が、前記レプリカノード選択要求を発行すべき第２のレプリカノードが前記レプリカノード選択要求を発行できないことを検知すると、前記第１のレプリカノードが前記レプリカノード選択要求を発行するようにしてもよい。
【００１０】
好適な実施形態では、前記複数のレプリカノードには、予め、前記レプリカノード選択要求発行の優先順位が割り当てられていて、前記第１のレプリカノードに割り当てられている優先順位が、前記第２のレプリカノードに割り当てられている優先順位の次に高い順位であるときに、第１のレプリカノードの監視手段が、前記レプリカノード選択要求を発行すべき第２のレプリカノードが前記レプリカノード選択要求を発行できないことを検知すると、前記第１のレプリカノードが前記レプリカノード選択要求を発行してもよい。
【００１１】
好適な実施形態では、第１のレプリカノードは、前記レプリカノード選択要求を、第１の周期で発行する第１のプロセスと、前記レプリカデータがリフレッシュされてから、前記第１の周期よりも長い第２の時間が経過したときに、前記負荷分散装置へレプリカノード選択要求を行う第２のプロセスと、を有していてもよい。
【００１２】
好適な実施形態では、前記第１のプロセスは、各レプリカノードのＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）上のプロセスであり、前記第２のプロセスは、前記レプリカデータを管理するデータベース管理システム上のプロセスであってもよい。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の一実施形態に係るデータベースシステムについて、図面を参照して説明する。
【００１４】
図１は、本実施形態に係るデータベースシステムの構成図である。本システムは、マスタサイト１０と、スレーブサイト３０と、負荷分散装置５０とを備える。
【００１５】
各マスタノード１１及び各レプリカノード３１は、いずれも例えば汎用的なコンピュータシステムにより構成され、以下に説明する各ノード１１，３１内の個々の構成要素または機能は、例えば、コンピュータプログラムを実行することにより実現される。さらに、マスタデータベース１５及びレプリカデータベース３５は、何れもコンピュータシステムの記憶装置上に実現される。特に本実施形態では、ＯＲＡＣＬＥ（登録商標）データベースなどのようなデータベースシステムにより実現されたデータであってもよい。
【００１６】
マスタサイト１０は、複数台のマスタノード１１と、マスタデータ１５１を記憶したマスタデータベース１５とを備える。本実施形態では、マスタノード１１は４台構成（１１ａ〜１１ｄ）とするが、マスタノード１１の台数は任意に定めることができる。各マスタノード１１は同一の構成を有する。マスタデータベース１５には、複数のデータ表に別れているマスタデータ１５１及び各データ表の更新履歴を示すログデータ１５３が記憶されている。図１の例では、マスタデータベース１５に、Ａ表、Ｂ表及びＣ表のマスタデータ１５１であるマスタＡ，Ｂ，Ｃ及びマスタＡ，Ｂ，Ｃのログデータ１５３であるログＡ，Ｂ，Ｃが格納されている。
【００１７】
マスタデータベース１５に記憶されているマスタＡ，Ｂ，Ｃは、図示しない所定のアプリケーションプログラムが参照及び更新をする。マスタＡ，Ｂ，Ｃが更新されたときには、対応するログＡ，Ｂ，Ｃに、それぞれ更新内容が追加される。後述するリフレッシュ要求に応じてスレーブサイト３０へ送ったマスタデータに対応するログは、ログＡ，Ｂ，Ｃから消去される。
【００１８】
スレーブサイト３０は、複数台のレプリカノード３１と、マスタデータのある時点におけるコピーであるレプリカデータ３５１を記憶したレプリカデータベース３５とを備える。本実施形態では、レプリカノード３１も４台構成（３１ａ〜３１ｄ）とするが、レプリカノード３１の台数は任意に定めることができる。各レプリカノード３１は同一の構成を有する。レプリカデータベース３５には、レプリカデータ３５１と、リフレッシュ時刻３７と、管理テーブル３９とが記憶されている。
【００１９】
レプリカデータ３５１には、マスタＡ，Ｂ，ＣのそれぞれのレプリカデータであるレプリカＡ，Ｂ，Ｃが記憶されている。本実施形態では、レプリカデータ３５１は、ＯＲＡＣＬＥ（登録商標）データベースのＭ−Ｖｉｅｗを用いて生成する。
【００２０】
リフレッシュ時刻３７は、レプリカデータ３５１を更新した時刻を示す。リフレッシュ時刻３７は、レプリカデータ３５１の各データ表別の更新時刻を含む。
【００２１】
管理テーブル３９は、例えば図２に示すような構成を有する。すなわち、同図に示すように、管理テーブル３９は、ノードＩＤ３９１と、タイムスタンプ３９３と、優先順位３９５とをデータ項目として有する。タイムスタンプ３９３は、各レプリカノード３１が正常に動作していることを確認するために、各レプリカノード３１によって定期的書き込まれるタイムスタンプである。優先順位３９５は、いずれか一つのレプリカノード３１が行う処理について、各レプリカノード３１に割り当てられた優先順位である。ここでは、レプリカノード選択処理の優先順位３９５１が登録されている。
【００２２】
図３は、スレーブサイト３０の詳細な構成図である。
【００２３】
レプリカノード３１（３１ａ〜３１ｄ）は、何れも共通の構成を有するので、まずは、その共通の構成について説明する。すなわち、レプリカノード３１は、レプリカデータベース３５を管理するデータベースデータベース管理システム（ＤＢＭＳ）３２（３２ａ〜３２ｄ）と、レプリカノード選択要求プロセス３３（３３ａ〜３３ｄ）と、他のレプリカノード３１を監視する監視プロセス３４（３４ａ〜ｄ）とを有する。ここで、レプリカノード選択要求プロセス３３及び監視プロセス３４は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）上で動作するプロセスである。
【００２４】
データベース管理システム３２上では、コピー処理部３２１（３２１ａ〜３２１ｄ）と、データベース処理部３２３（３２３ａ〜３２３ｄ）と、自動ジョブ実行部３２５（３２５ａ〜３２５ｄ）とが動作している。
【００２５】
コピー処理部３２１は、リフレッシュ要求を発行する。リフレッシュ要求とは、レプリカデータ３５１を最新のマスタデータ１５１と同期させるための更新要求である。リフレッシュ要求には、リフレッシュ対象となるデータ表を示す情報が含まれる。本実施形態では、リフレッシュ要求は負荷分散装置５０に対して発行される。リフレッシュ要求に対する応答として、コピー処理部３２１は、リフレッシュ要求で指定したデータ表のマスタデータをマスタノード１１から取得する。コピー処理部３２１が取得するマスタデータは、レプリカデータの前回のリフレッシュからの差分データである。
【００２６】
コピー処理部３２１は、負荷分散装置５０からリフレッシュ要求発行指示を受けたときに、リフレッシュ要求を発行する。つまり、どのレプリカノード３１がリフレッシュ要求を発行するかは、負荷分散装置５０が決定する。これにより、レプリカノード１１ａ〜１１ｄの負荷分散が実現される。コピー処理部３２１は、リフレッシュ要求発行指示に含まれるリフレッシュ対象のデータ表を示す情報を、リフレッシュ要求に含める。
【００２７】
データベース処理部３２３は、コピー処理部３２１が取得したマスタデータの差分データを、レプリカデータベース３５に格納して、レプリカデータ３５１を更新（リフレッシュ）する。データベース処理部３２３は、レプリカデータ３５１を更新したときは、その更新したデータ表のリフレッシュ時刻３７もあわせて更新する。
【００２８】
自動ジョブ実行部３２５は、予め定められた周期で予め登録されているジョブを実行する。例えば、本実施形態では、自動ジョブ実行部３２５は、レプリカデータ３５１がリフレッシュされた時刻を監視し、最後のリフレッシュ時刻から、予め定められた時間（自動ジョブ実行時間）が経過すると、負荷分散装置５０に対してレプリカノード選択要求を発行する。自動ジョブ実行部３２５が発行するレプリカノード選択要求では、レプリカデータ３５１の全データ表を対象として指定してもよい。ここで、本実施形態では、後述するように、自動ジョブ実行部３２５によるレプリカノード選択要求の発行は、次に説明するレプリカノード選択要求プロセス３３が行う処理のバックアップの位置づけである。
【００２９】
なお、自動ジョブ実行部３２５は、何れのレプリカノード１１ａ〜１１ｄでも実行可能であるが、データベース管理システム３２ａ〜３２ｄ間で調整を行って、いずれか一つのレプリカノード１１で動作するようにしてもよい。
【００３０】
レプリカノード選択要求プロセス３３は、予め定められた周期で負荷分散装置５０に対してレプリカノード選択要求を発行する。例えば、本実施形態では、レプリカノード選択要求プロセス３３は、前回のレプリカノード選択要求発行時刻を保持していて、その時刻から予め定められた時間（リフレッシュ時間）が経過すると、レプリカノード選択要求を発行する。レプリカノード選択要求には、同一のリフレッシュグループに属する一以上のデータ表を示す情報が含まれる。リフレッシュグループとは、同じ周期でリフレッシュを行うデータ表のグループである。本実施形態では、リフレッシュ時間が異なる複数のリフレッシュグループを登録することができ、レプリカノード選択要求プロセス３３は、リフレッシュグループごとに、それぞれの周期に従いレプリカノード選択要求を発行する。
【００３１】
ここで、どのリフレッシュグループのリフレッシュ時間も、自動ジョブ実行部３２５の自動ジョブ実行時間よりも短い。つまり、レプリカノード選択要求プロセス３３が正常に動作している限り、自動ジョブ実行部３２５からレプリカノード選択要求が発行されることはない。何らかの事情でレプリカノード選択要求プロセス３３からレプリカノード選択要求が発行されず、レプリカデータ３５１のリフレッシュが行われなかったときに、自動ジョブ実行部３２５がレプリカノード選択要求を発行し、レプリカデータ３５１がリフレッシュされる。
【００３２】
監視プロセス３４は、他のレプリカノード３１を監視する。例えば、監視プロセス３４は、管理テーブル３９のタイムスタンプ３９３に定期的に現在時刻（タイムスタンプ３９３）を書き込む。このときに、他のレプリカノード３１が書き込んだタイムスタンプ３９３を確認することによって、他のレプリカノード３１が正常に動作しているか否かの確認を行う。つまり、タイムスタンプ３９３に記憶されている時刻から所定以上の時間が経過しているレプリカノード３１があれば、そのレプリカノード３１は何らかのトラブルが発生していると考えられる。監視プロセス３４は、同じノードで特定のプロセス（例えば、レプリカノード選択要求プロセス３３）が正常動作していることが確認されたときに、タイムスタンプ３９３を更新してもよい。これにより、その特定のプロセスだけがダウンしている場合であっても、他のレプリカノード３１は、その特定のプロセスのダウンを検出できる。
【００３３】
上述したように、各レプリカノード３１は共通の構成を有しているが、一部の設定の相違により、異なる動作をする場合がある。例えば、レプリカノード選択要求プロセス３３は、いずれか一つのレプリカノード３１だけで動作する。レプリカノード選択要求プロセス３３が動作するレプリカノード３１は、優先順位３９５によって定まる。つまり、稼働中のレプリカノード３１の中で、優先順位３９５の「レプリカノード選択」における優先順位が最も上位の１台でレプリカノード選択要求プロセス３３が動作する。各レプリカノード３１の監視プロセス３４が、管理テーブル３９を参照して、自ノードの優先順位３９５を確認し、それよりも上位のノードが動作していないときは、自ノードのレプリカノード選択要求プロセス３３を起動するようにしてもよい。
【００３４】
例えば、図３の例では、正常時には、レプリカノード３１ａのレプリカノード選択要求プロセス３３ａだけで動作している。そして、レプリカノード３１ｂの監視プロセス３４ｂが管理テーブル３９を参照して、レプリカノード３１ａのタイムスタンプ３９３が更新されていないことを検知すると、レプリカノード選択要求プロセス３３ｂを起動して、レプリカノード３１ｂがレプリカノード選択要求を発行する。
【００３５】
次に、図１に戻ると、負荷分散装置５０は、いずれかのレプリカノード３１が発行するレプリカノード選択要求を受けると、レプリカノード３１ａ〜ｄのいずれかを選択するレプリカ選択部５２を有する。そして、レプリカ選択部５２は、選択したレプリカノード３１に対してリフレッシュ要求発行指示を行う。このリフレッシュ要求発行指示には、レプリカノード選択要求に含まれている表を指定する情報が含まれる。
【００３６】
また、負荷分散装置５０は、選択されたレプリカノード３１がリフレッシュ要求発行指示に応じて発行したリフレッシュ要求を受け付けると、マスタノード１１ａ〜ｄのいずれかを選択するマスタ選択部５４を有する。そして、マスタ選択部５４は、選択したマスタノード１１に対してリフレッシュ要求を送信する。このリフレッシュ要求には、リフレッシュ対象となる表を特定する情報が含まれる。
【００３７】
なお、レプリカ選択部５２及びマスタ選択部５４がレプリカノード３１またはマスタノード１１を選択する際のアルゴリズムには任意のものを用いることができ、例えば、ラウンドロビンあるいは疑似乱数による選択などでもよい。
【００３８】
負荷分散装置５０は、いずれかのマスタノード１１からリフレッシュ要求に係る差分データを取得すると、リフレッシュ要求発行元のレプリカノード１１へ送信する。
【００３９】
マスタノード１１（１１ａ〜ｄ）は、何れも共通の構成を有する。マスタサイト１０では、負荷分散装置５０によって選択されたいずれか一つのレプリカノード１１が、リフレッシュ要求を受け付ける。選択されたマスタノード１１は、リフレッシュ要求で指定されたデータ表のログデータ１５３を参照する。ここで、ログデータ１５３が存在する場合、前回のリフレッシュ以降、マスタデータ１５１が更新されたことを意味する。従って、リフレッシュ要求を受け付けたマスタノード１１は、リフレッシュ要求において指定されたデータ表のログデータ１５３を参照し、更新履歴が含まれていれば、対応するマスタデータ１５１を取得する。そして、選択されたマスタノード１１は、取得した差分のマスタデータを負荷分散装置５０へ送信する。このとき、指定されたデータ表のログデータ１５３は削除される。
【００４０】
次に、図４に、Ａ表（レプリカＡ）のリフレッシュを行う手順に係るフローチャートを示す。図１、図３及び図４を参照しながら、このリフレッシュ処理を説明する。
【００４１】
まず、この例では、レプリカノード３１ａにおいてレプリカノード選択要求プロセス３３ａが動作している。そこで、レプリカノード選択要求プロセス３３ａが、前回のリフレッシュ時刻（前回のレプリカノード選択要求発行時刻）からリフレッシュ時間が経過したか否かを判定する（Ｓ１０）。前回のリフレッシュ時刻からリフレッシュ時間が経過すると（Ｓ１０：Ｙｅｓ）、レプリカノード選択要求プロセス３３ａが負荷分散装置５０に対してレプリカノード選択要求を発行する（Ｓ１１）。
【００４２】
負荷分散装置５０では、レプリカ選択部５２がこのレプリカノード選択要求を受け付けると、レプリカノード３１ａ〜ｄからいずれか一つのレプリカノード３１を選択して、選択したレプリカノード３１へリフレッシュ要求発行指示を送る（Ｓ１２）。この例では、レプリカノード３１ｂが選択されたものとする。
【００４３】
負荷分散装置５０からのリフレッシュ要求発行指示に従って、レプリカノード３１ｂがリフレッシュ要求を負荷分散装置５０に対して発行する（Ｓ１３）。
【００４４】
負荷分散装置５０では、マスタ選択部５４がこのリフレッシュ要求を受け付けると、このリフレッシュ要求の送信先をマスタノード１１ａ〜ｄの中から選択する（Ｓ１４）。この例では、マスタノード１１ｃが選択されたものとする。そして、負荷分散装置５０は、選択したマスタノード１１ｃに対して、リフレッシュ要求を送信する（Ｓ１５）。
【００４５】
マスタノード１１ｃは、リフレッシュ要求で指定されたデータ表（ここではＢ表）のログデータ１５３を参照して、差分データの有無を判定する。そして、差分データがあれば、マスタノード１１ｃは、その差分のマスタデータ１５１を取得する（Ｓ１６）。そして、マスタノード１１ｃは、差分のマスタデータを負荷分散装置５０へ送信する。さらに、負荷分散装置５０は、マスタノード１１ｃから送信された差分のマスタデータを、リフレッシュ要求の発行元であるレプリカノード３１ｂへ送信する（Ｓ１７）。
【００４６】
レプリカノード３１ｂでは、データベース処理部３２３ｂがレプリカデータ３５１を更新する（Ｓ１８）。なお、このときに、データベース処理部３２３ｂは、リフレッシュ時刻３７もあわせて更新する。
【００４７】
これにより、Ｍ−Ｖｉｅｗを用いてレプリカデータのリフレッシュ処理において、負荷分散をすることができる。
【００４８】
次に、図５は、各レプリカノード３１の監視プロセス３４によるレプリカデータ選択要求のバックアップ処理の手順を示すフローチャートである。同図の処理は、所定時間（監視時間）周期で起動される。
【００４９】
監視プロセス３４が、管理テーブル３９のタイムスタンプ３９３を、現在の時刻に更新する（Ｓ２０）。さらに、監視プロセス３４は、自ノードの「レプリカノード選択」の優先順位を確認する（Ｓ２１）。
【００５０】
ここで、監視プロセス３４は、レプリカノード選択要求プロセス３３が自ノードで既に起動されているか否かを判定する（Ｓ２２）。
【００５１】
そして、既にレプリカノード選択要求プロセス３３が自ノードで起動されていれば（Ｓ２２：Ｙｅｓ）、処理を終了する。
【００５２】
これに対して、レプリカノード選択要求プロセス３３が自ノードで起動されていないときは（Ｓ２２：Ｎｏ）、レプリカノード選択の優先順位３９５１に関して、自ノードよりも優先順位が上位のノードが正常に稼働しているか否かを判定する（Ｓ２３）。この判定は、自ノードよりも優先順位の高いノードのタイムスタンプ３９３と現在時刻との差が一定時間（例えば、監視時間の２倍）内であるか否かで行う。
【００５３】
そして、自ノードよりも優先順位の高いレプリカノード３１が正常に稼働しているときは（Ｓ２３：Ｙｅｓ）、処理を終了する。
【００５４】
一方、自ノードよりも優先順位の高いノードが正常に稼働していないときは（Ｓ２３：Ｎｏ）、監視プロセス３４は、自ノードのレプリカノード選択要求プロセス３３を起動する（Ｓ２４）。
【００５５】
これにより、管理テーブル３９に設定されている優先順位に従って、いずれかのレプリカノード３１でレプリカノード選択要求プロセス３３を動作させることができる。
【００５６】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【００５７】
例えば、本実施形態では、レプリカノード選択要求を何れかのレプリカノードが発行しているが、いずれかのマスタノードや他のシステムなど、レプリカノード以外がレプリカノード選択要求を発行してもよい。
【図面の簡単な説明】
【００５８】
【図１】本発明の一実施形態に係るデータベースシステムの構成図である。
【図２】管理テーブル３９のデータ構成の一例である。
【図３】スレーブサイト３０の詳細な構成図である。
【図４】レプリカＡのリフレッシュを行う手順に係るフローチャートである。
【図５】各レプリカノード３１の監視プロセス３４によるレプリカデータ選択要求のバックアップ処理の手順を示すフローチャートである。
【図６】従来技術におけるレプリカデータのリフレッシュ処理を示す。
【符号の説明】
【００５９】
１０       マスタサイト
１１ａ-ｄ             マスタノード
１５       マスタデータベース
３０       スレーブサイト
３１ａ-ｄ             レプリカノード
３２       データベース管理システム
３３       レプリカノード選択要求プロセス
３４       監視プロセス
３５       レプリカデータベース
３７       リフレッシュ時刻
３９       管理テーブル
５０       負荷分散装置
５２       レプリカ選択部
５４       マスタ選択部
【図１】
0005079561.tif 000002
【図２】
0005079561.tif 000003
【図３】
0005079561.tif 000004
【図４】
0005079561.tif 000005
【図５】
0005079561.tif 000006
【図６】
0005079561.tif 000007