(57)【要約】【課題】  並列データベース管理システムにおけるトランザクション単位での更新内容を保証する。【解決手段】  データベース管理システムは、複製データベース２３を管理する複製データベース管理部１４を備え、生成された何れかのトランザクションが全てのデータベース管理部１０２で有効であり、かつ、他のトランザクションは全てのデータベース管理部１０２で無効であるタイミングで、同期化情報を更新ログ１７に記録し、更新ログ１７から、複製データベース２３を作成するための更新情報及び同期化情報を抽出し、複製データベース管理部１４に、同期化情報が記録された以前に有効となったトランザクションの更新情報を反映させる。【選択図】  図１
2006092005.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータベース管理部を有するデータベース管理システムにおいて、前記データベース管理部ごとに割り当てられたデータ領域にトランザクションによってアクセスし、前記トランザクションによって生成される更新ログを記録して複製データベースを作成するデータ処理方法であって、
前記データベース管理システムは、前記複製データベースを管理する複製データベース管理部を備え、
生成された何れかのトランザクションが全てのデータベース管理部で有効であり、かつ、他のトランザクションは全てのデータベース管理部で無効であるタイミングで、同期化情報を更新ログに記録し、
前記更新ログから、前記複製データベースを作成するための更新情報及び前記同期化情報を抽出し、
前記複製データベース管理部に、前記同期化情報が記録された以前に有効となったトランザクションの前記更新情報を反映させることを特徴とするデータ処理方法。
【請求項２】
所定のタイミングで前記更新ログから前記同期化情報を抽出し、
前記抽出した同期化情報を前記反映部に送信し、
前記複製データベース管理部に、前記同期化情報が記録された以前に有効となったトランザクションの前記更新情報を反映させることを特徴とする請求項１に記載のデータ処理方法。
【請求項３】
所定のタイミングで前記更新ログから前記同期化情報及び前記更新情報を抽出し、
前記抽出した同期化情報及び更新情報を前記反映部に送信し、
前記複製データベース管理部に、前記同期化情報が記録された以前に有効となったトランザクションの前記更新情報を反映させることを特徴とする請求項１に記載のデータ処理方法。
【請求項４】
前記データベース管理システムは、前記更新ログへの記録を制御する制御リソースを備え、
前記制御リソースを制御することで、前記更新情報と前記更新情報とを、排他的に前記更新ログに記録させることを特徴とする請求項１に記載のデータ処理方法。
【請求項５】
前記同期化情報及び前記更新情報を受信すると、前記受信した更新情報を、複製トランザクションとして、前記複製データベース管理部に送信し、
前記更新ログに記録された同期化情報のタイミングで、前記複製データベース管理部の前記複製トランザクションを全て有効にさせることを要求して、前記更新情報を反映させることを特徴とする請求項１に記載のデータ処理方法。
【請求項６】
複数のデータベース管理部を有するデータベース管理システムにおいて、前記データベース管理部ごとに割り当てられたデータ領域にトランザクションによってアクセスし、前記トランザクションによって生成される更新ログを記録して複製データベースを作成するデータ処理方法であって、
前記データベース管理システムは、前記複製データベースを管理する複製データベース管理部を備え、
生成された何れかのトランザクションが全てのデータベース管理部で有効であり、かつ、他のトランザクションは全てのデータベース管理部で無効であるタイミングで、同期化情報を更新ログに記録し、
前記更新ログから、前記複製データベースを作成するための更新情報及び同期化情報を抽出し、
前記抽出された前記更新情報及び同期化情報を、前記複製データベースに反映し、
前記複製データベース管理部に、前記同期化情報が記録された以前に有効となったトランザクションの前記更新情報を反映させることを特徴とするデータ処理方法。
【請求項７】
複数のデータベース管理部を有するデータベース管理システムにおいて、前記データベース管理部ごとに割り当てられたデータ領域にトランザクションによってアクセスし、前記トランザクションによって生成される更新ログを記録して複製データベースを作成するデータ処理方法であって；
前記データベース管理システムは、
前記複製データベースを管理する複製データベース管理部と、
前記更新ログから、前記複製データベースを作成するための更新情報及び同期化情報を抽出する抽出部と、
前記抽出された前記更新情報及び同期化情報を、前記複製データベースに反映させる反映部と、を備え；
生成された何れかのトランザクションが全てのデータベース管理部で有効であり、かつ、他のトランザクションは全てのデータベース管理部で無効であるタイミングで、前記同期化情報を更新ログに記録し、
所定のタイミングで前記更新ログから前記更新情報及び前記同期化情報を抽出し、
前記抽出した同期化情報及び前記更新情報をキューに格納し、
前記キューを順次読み出し、前記同期化情報及び有効となったトランザクションの更新情報を送信し、
前記受信した情報に基づいて、前記複製データベース管理部に、前記同期化情報が記録された以前に有効となったトランザクションの前記更新情報を反映させることを特徴とするデータ処理方法。
【請求項８】
複数のデータベース管理部を有するデータベース管理システムにおいて、前記データベース管理部ごとに割り当てられたデータ領域にトランザクションによってアクセスし、前記トランザクションによって生成される更新ログを記録して複製データベースを作成するデータ処理方法であって；
前記データベース管理システムは、
前記複製データベースを管理する複製データベース管理部と、
前記更新ログから、前記複製データベースを作成するための更新情報及び同期化情報を抽出する抽出部と、
前記抽出された前記更新情報及び同期化情報を、前記複製データベースに反映させる反映部と、を備え；
生成された何れかのトランザクションが全てのデータベース管理部で有効であり、かつ、他のトランザクションは全てのデータベース管理部で無効であるタイミングで、前記同期化情報を更新ログに記録し、
前記抽出された同期化情報及び更新情報を参照し、
前記更新情報を参照した場合は、前記複製データベース管理部に、前記更新情報を複製トランザクションとして要求し、
前記同期化情報を参照した場合は、当該同期化情報のタイミングで、前記複製データベース管理部の前記複製トランザクションを全て有効にすることで、前記更新情報を反映させることを特徴とするデータ処理方法。
【請求項９】
複数のデータベース管理部を有するデータベース管理システムにおいて、前記複数のデータベース管理部が、前記データベース管理部ごとに割り当てられたデータ領域にトランザクションによってアクセスすると共に、トランザクションによって生成される更新ログを記録するデータベースシステムに接続されるストレージ装置に、複製データベースを作成するデータ処理方法であって；
前記データベース管理システムは、
前記データ領域、前記更新ログを保存する領域及び前記複製データベースを保存する複製データベース領域と、
前記複製データベースを管理する複製データベース管理部と、を備え；
前記複製データベース管理部は、
所定のタイミングで前記更新ログから更新情報及び同期化情報を抽出する抽出部と、
前記更新情報及び同期化情報を参照し、前記複製データベースの複製に反映させる反映部と、を備え；
前記更新ログから前記更新情報及び前記同期化情報を抽出し、
前記同期化情報及び前記トランザクションによって有効となった全ての前記更新情報を前記反映部に送信し、
前記送信された同期化情報及び更新情報を順次参照し、
更新情報を参照した場合は、前記複製データベースに前記更新情報を送信し、
前記同期化情報を参照した場合は、前記同期化情報が記録された以前に有効となったトランザクションの前記更新情報を反映させることを特徴とするデータ処理方法。
【請求項１０】
複数のデータベース管理部を有し、前記複数のデータベース管理部が、複数の前記データベース管理部ごとに割り当てられたデータ領域にトランザクションによってアクセスし、前記トランザクションによって生成される更新ログを記録するデータベースシステムにおいて、
前記データベースの複製を格納する複製データベースを管理する複製データベース管理部と、
前記更新ログから、前記複製データベースを作成するための更新情報及び同期化情報を抽出する抽出部と、
前記抽出された前記更新情報及び同期化情報を、前記複製データベースに反映する反映部と、を備え、
前記データベース管理部は、生成された何れかのトランザクションが全てのデータベース管理部で有効であり、かつ、他のトランザクションは全てのデータベース管理部で無効であるタイミングで、前記同期化情報を更新ログに記録し、
前記反映部は、前記複製データベース管理部に、前記同期化情報が記録された以前に有効となったトランザクションの前記更新情報を反映させることを特徴とするデータベースシステム。
【請求項１１】
前記抽出部は、所定のタイミングで前記更新ログから前記同期化情報を抽出し、前記抽出した同期化情報を前記反映部に送信し、
前記反映部は、前記複製データベース管理部に、前記同期化情報が記録された以前に有効となったトランザクションの前記更新情報を反映させることを特徴とする請求項１０に記載のデータベースシステム。
【請求項１２】
前記抽出部は、所定のタイミングで前記更新ログから前記同期化情報及び前記更新情報を抽出し、前記抽出した同期化情報及び更新情報を前記反映部に送信し、
前記反映部は、前記複製データベース管理部に、前記同期化情報が記録された以前に有効となったトランザクションの前記更新情報を反映させることを特徴とする請求項１０に記載のデータベースシステム。
【請求項１３】
前記更新ログへの記録を制御する制御リソースを備え、
前記データベースシステムが、前記制御リソースを制御することで、前記更新情報と前記更新情報とを、排他的に前記更新ログに記録することを特徴とする請求項１０に記載のデータベースシステム。
【請求項１４】
前記反映部は、
前記同期化情報及び前記更新情報を受信し、
前記受信した更新情報を、複製トランザクションとして、前記複製データベース管理部に送信し、
前記更新ログに記録された同期化情報のタイミングで、前記複製データベース管理部の前記複製トランザクションを全て有効にさせることを要求して、前記更新情報を反映させることを特徴とする請求項１０に記載のデータベースシステム。
【請求項１５】
複数のデータベース管理部を有し、前記複数のデータベース管理部が、複数の前記データベース管理部ごとに割り当てられたデータ領域にトランザクションによってアクセスすると共に、前記トランザクションによって生成される更新ログを記録するデータベースシステムにおいて、
前記複製データベースを管理する複製データベース管理部を備え、
前記複製データベース管理部は、
前記更新ログから、前記複製データベースを作成するための更新情報及び同期化情報を抽出する抽出部と、
前記抽出された前記更新情報及び同期化情報を、前記複製データベースに反映させる反映部と、を備え、
前記データベース管理システムは、生成された何れかのトランザクションが全てのデータベース管理部で有効であり、かつ、他のトランザクションは全てのデータベース管理部で無効であるタイミングで、前記同期化情報を更新ログに記録し、
前記反映部は、前記複製データベース管理部に、前記同期化情報が記録された以前に有効となったトランザクションの前記更新情報を反映させることを特徴とするデータベースシステム。
【請求項１６】
複数のデータベース管理部を有し、前記複数のデータベース管理部が、複数の前記データベース管理部ごとに割り当てられたデータ領域にトランザクションによってアクセスすると共に、前記トランザクションによって生成される更新ログを記録するデータベースシステムにおいて；
複製データベースを管理する複製データベース管理部と、
前記更新ログから、前記複製データベースを作成するための更新情報及び同期化情報を抽出する抽出部と、
前記抽出された前記更新情報及び同期化情報を、前記複製データベースに反映させる反映部と、を備え；
前記データベース管理システムは、生成された何れかのトランザクションが全てのデータベース管理部で有効であり、かつ、他のトランザクションは全てのデータベース管理部で無効であるタイミングで、前記同期化情報を更新ログに記録し；
前記抽出部は、
所定のタイミングで前記更新ログから前記更新情報及び前記同期化情報を抽出し、
前記抽出した同期化情報及び前記更新情報をキューに格納し、
前記キューを順次読み出し、前記同期化情報及び有効となったトランザクションの更新情報を送信し；
前記反映部は、前記受信した情報に基づいて、前記複製データベース管理部に、前記同期化情報が記録された以前に有効となったトランザクションの前記更新情報を反映させることを特徴とするデータベースシステム。
【請求項１７】
複数のデータベース管理部を有し、前記複数のデータベース管理部が、複数の前記データベース管理部ごとに割り当てられたデータ領域にトランザクションによってアクセスすると共に、前記トランザクションによって生成される更新ログを記録するデータベースシステムにおいて；
複製データベースを管理する複製データベース管理部と、
前記更新ログから、前記複製データベースを作成するための更新情報及び同期化情報を抽出する抽出部と、
前記抽出された前記更新情報及び同期化情報を、前記複製データベースに反映させる反映部と、を備え；
前記データベース管理システムは、生成された何れかのトランザクションが全てのデータベース管理部で有効であり、かつ、他のトランザクションは全てのデータベース管理部で無効であるタイミングで、前記同期化情報を更新ログに記録し；
前記反映部は、
前記抽出された同期化情報及び更新情報を参照し、
前記更新情報を参照した場合は、前記複製データベース管理部に、複製トランザクションとして前記更新情報を送信し、
前記同期化情報を参照した場合は、当該同期化情報のタイミングで、前記複製データベース管理部の前記複製トランザクションを全て有効にすることで、前記更新情報を反映させることを特徴とするデータベースシステム。
【請求項１８】
複数のデータベース管理部を有し、前記複数のデータベース管理部が、複数の前記データベース管理部ごとに割り当てられたデータ領域にとランザクションによってアクセスすると共に、トランザクションによって生成される更新ログを格納するデータベースシステムに接続されるストレージ装置において、
前記データ領域、前記更新ログを保存する領域及び複製データベースを保存する複製データベース領域と、
前記複製データベースを管理する複製データベース管理部と、を備え；
前記複製データベース管理部は、
所定のタイミングで前記更新ログから更新情報及び同期化情報を抽出する抽出部と、
前記更新情報及び同期化情報を参照し、前記複製データベースの複製に反映させる反映部と、を備え；
前記抽出部は、
前記更新ログから前記更新情報及び前記同期化情報を抽出し、前記同期化情報及び前記トランザクションによって有効となった全ての前記更新情報を、前記反映部に送信し；
前記反映部は、
前記送信された同期化情報及び更新情報を順次参照し、
更新情報を参照した場合は、前記複製データベースに前記更新情報を送信し、
前記同期化情報を参照した場合は、前記同期化情報が記録された以前に有効となったトランザクションの前記更新情報を反映させることを特徴とするストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列データベース管理システムにおける、レプリカデータベースのレプリケーション方法に関する。
【背景技術】
【０００２】
データベースのレプリケーションシステムでは、データ処理の業務分散やデータを格納する情報処理装置が、障害発生等による業務停止を回避するために、マスタデータベースの複製であるレプリカデータベースを作成する。
【０００３】
レプリカデータベースは、マスタデータベースと論理的に一致した内容のデータを参照できる必要がある。このため、マスタデータベースが更新された場合には、その更新内容をレプリカデータベースに反映する必要がある。マスタデータベースの更新内容をレプリカデータベースに反映するために、データベース管理システムが、マスタデータベースへの更新内容を記録した更新ログファイルから、更新情報を抽出し、その更新情報を元にレプリカデータベースに更新内容を反映している（例えば、特許文献１参照。）。
【０００４】
複数のＤＢアクセスサーバがそれぞれに割り当てられたデータ領域にアクセスするシェアード・ナッシング方式に基づいた並列データベース管理システムでは、ＤＢアクセスサーバが複数あり、各サーバに割り当てられたデータ領域への更新内容は、個々のサーバが管理している更新ログファイルに記録される。このため、このような並列データベース管理システムによって管理されるマスタデータベースの複製を作成するためには、個々のＤＢアクセスサーバが管理する更新ログファイルごと、つまり、ＤＢアクセスサーバ単位の更新内容ごとにレプリカデータベースへの反映処理が実行され、それぞれの反映処理が非同期にレプリカデータベースに反映する。
【特許文献１】特開２００１−１７５６８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前述した従来技術では、マスタデータベース側でのトランザクションについて考慮されていない。複数のＤＢアクセスサーバがそれぞれに割り当てられたデータ領域中のデータを更新するトランザクションの場合には、そのトランザクションにおける全ての更新内容の反映が完了していない状態で、レプリカデータベースを参照すると、そのトランザクションの一部の更新結果のみを参照してしまう可能性がある。
【０００６】
トランザクションの一部の更新結果のみを参照してしまうと、レプリカデータベースにおいてマスタデータベースのトランザクション単位の更新内容が保証できない。このために、レプリカデータベースを参照した場合に、トランザクションの一部の更新内容しか反映されておらず、整合性の取れていないデータを参照する可能性がある。
【０００７】
本発明は、抽出側のデータベース管理システムにおけるトランザクション単位での更新内容を、レプリカデータベースで保証することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、複数のデータベース管理部を有するデータベース管理システムにおいて、データベース管理部ごとに割り当てられたデータ領域にトランザクションによってアクセスし、トランザクションによって生成される更新ログを記録して複製データベースを作成するデータ処理方法であって、データベース管理システムは、複製データベースを管理する複製データベース管理部を備え、生成された何れかのトランザクションが全てのデータベース管理部で有効であり、かつ、他のトランザクションは全てのデータベース管理部で無効であるタイミングで、同期化情報を更新ログに記録し、更新ログから、前記複製データベースを作成するための更新情報及び同期化情報を抽出し、複製データベース管理部に、同期化情報が記録された以前に有効となったトランザクションの前記更新情報を反映させることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、抽出側のデータベース管理システムにおけるトランザクション単位での更新内容が、レプリカデータベースで保証され、データ処理の業務分散やデータを格納している情報処理装置の障害発生時の代替運用時にレプリカデータベースから、マスタデータベース側のトランザクション単位で整合性の取れたデータを参照することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１１】
図１は、第１の実施の形態のデータベースシステムの構成のブロック図である。
【００１２】
図１のデータベースシステムは、抽出側データベース管理システム１０、抽出側レプリケーションシステム（Ａ及びＢ）１２、反映側レプリケーションシステム１３及び反映側データベース管理システム１４によって構成される。
【００１３】
抽出側データベース管理システム１０は、処理要求受付サーバ１０１、システムマネジャサーバ１０３及びＤＢアクセスサーバ（Ａ及びＢ）１０２によって構成されている。
【００１４】
処理要求受付サーバ１０１は、ユーザアプリケーション（ＵＡＰ）１１からの処理要求を受け付けるフロントエンドサーバとして機能する。処理要求を受け付けた処理要求受付サーバ１０１は、その処理要求を解析し、データ操作要求を生成し、ＤＢアクセスサーバ１０２にデータ操作要求を送る。そして、データ操作の結果を必要に応じてＵＡＰ１１に返す。
【００１５】
システムマネジャサーバ１０３は、抽出側データベース管理システム１０を管理する。また、データベースの同期化情報の記録を指示する。
【００１６】
ＤＢアクセスサーバ１０２は、ハードディスク等によって構成されるマスタデータベースのデータ領域へのデータを書き込み及び読み出す、データベース管理部として機能するバックエンドサーバである。
【００１７】
本実施形態のデータベースシステムは、シェアード・ナッシング方式による並列データベースシステムを構成する。マスタデータベースＡは、対応するＤＢアクセスサーバＡ１０２によって、マスタデータベース（ＤＢ）領域Ａ１５に保存される。マスタデータベースＢは、対応するＤＢアクセスサーバＢ１０２によって、マスタデータベース（ＤＢ）領域Ｂ１６に保存される。
【００１８】
ＤＢアクセスサーバ１０２は、処理要求受付サーバ１０１からのデータ操作要求を受付、該要求を解析する。そして、要求に従って、対応するマスタデータベースのデータ領域（マスタＤＢデータ領域Ａ１５又はマスタＤＢデータ領域Ｂ１６）のデータを操作する。操作の結果は必要に応じて処理要求受付サーバ１０１に返す。また、対応するマスタデータベースの更新ログファイルを、更新ログファイル領域（更新ログファイルＡ１７、または更新ログファイルＢ１８）に記録する。また、システムマネジャサーバ１０３によって同期化ポイント取得コマンドが実行され、同期化ポイントが取得された場合には、そのタイミングで同期化情報を更新ログファイル領域に記録する。
【００１９】
抽出側レプリケーションシステム１２は、マスタデータベースの更新ログファイルから更新情報や同期化情報を抽出し、これを更新情報抽出キューとして保存する。反映側レプリケーションシステム１３に送る。そして、更新情報抽出キューに格納された更新情報や同期化情報を、あるタイミングで反映側レプリケーションシステム１３に、トランザクションの完了点順に送信する。
【００２０】
抽出側レプリケーションシステムＡ１２は、ＤＢアクセスサーバＡ１０２に対応しており、更新情報抽出キューＡ１９を生成する。抽出側レプリケーションシステムＢ１２は、ＤＢアクセスサーバＢ１０２に対応しており、更新情報抽出キューＢ２０を生成する。
【００２１】
反映側レプリケーションシステム１３は抽出側レプリケーションシステム１２から送信された更新情報や同期化情報を受け取り、対応するマスタデータベース毎に更新情報反映キュー（更新情報反映キューＡ２１、及び更新情報反映キューＢ２２）に格納する。また、格納した更新情報を取り出し、その更新情報を元に更新要求を生成し、反映側データベース管理システム１４に更新を要求する。
【００２２】
反映側データベース管理システム１４は、反映側レプリケーションシステム１３からの更新要求に従って、レプリカＤＢ２３中のデータを更新する。
【００２３】
なお、「サーバ」とは、データベース管理システム内の論理的なコンポーネントであり、物理的な装置すなわち情報処理装置（コンピュータ）のことを指しているわけではない。本実施形態での各種サーバの機能は、プログラムやオブジェクト、プロセス、スレッドによって実現されるものである。同様に、「システム」も、プログラムやオブジェクト、プロセス、スレッドによって実現されるものである。
【００２４】
図２は第１の実施の形態のデータベースシステムのハードウェア構成の一例を表すブロック図である。
【００２５】
データベースシステムは、複数の情報処理装置（３０００、３１００、３２００、３３００、３４００）から構成される。
【００２６】
これらの情報処理装置は、いずれも次のような構成を備える。
【００２７】
通信制御装置（３００３、３１０３、３２０３、３３０３、３４０３）は、ネットワーク３００７とでデータを送受信するインターフェースである。
【００２８】
ＣＰＵ（３００２、３１０２、３２０２、３３０２、３４０２）は、主記憶装置（３００１、３１０１、３２０１、３３０１、３４０１）に格納されているプログラムを実行することによって情報制御装置の処理を制御する。
【００２９】
主記憶装置（３００１、３１０１、３２０１、３３０１、３４０１）は、データやプログラム等を格納する。
【００３０】
Ｉ／Ｏ制御装置（３００４、３１０４、３２０４、３３０４、３４０４）は端末からの入力を受け付けるインターフェースである。
【００３１】
情報処理装置３０００はデータベースへの処理を要求するＵＡＰ１１を実行することで処理を要求する。情報処理装置３１００は処理要求受付サーバ１０１を実行することでＵＡＰ１１からの要求を処理する。また、システムサーバマネージャ１０３を実行することで同期化ポイントを取得する。情報処理装置３２００及び３３００は、ＤＢアクセスサーバ１０２を実行することでデータベースにアクセスする。また、抽出側レプリケーションシステム１２を実行することで更新ログを抽出する。情報処理装置３４００は反映側レプリケーションシステム１３を実行することで、データベースのレプリケーションを作成する。
【００３２】
これらの情報処理装置は、ネットワーク３００７を介して接続されている。
【００３３】
情報処理装置３０００は、ＣＰＵ３００２、主記憶装置３００１、通信制御装置３００３、Ｉ／Ｏ制御装置３００４によって構成されている。また、Ｉ／Ｏ制御装置３００４を介して端末３００６が接続されている。
【００３４】
主記憶装置３００１には、ＵＡＰ１１が格納されており、ＣＰＵ３００２によって実行される。このＵＡＰ１１は、抽出側データベース管理システム１０Ａの処理要求受付サーバ１０１に処理を要求する。
【００３５】
この処理要求は、情報処理装置３０００の通信制御装置３００３によって、ネットワーク３００７を経由して情報処理装置３１００に送られる。情報処理装置３１００の通信制御装置３００３は、この処理要求を処理要求受付サーバ１０１に送る。
【００３６】
情報処理装置３１００は、ＣＰＵ３１０２、主記憶装置３１０１、通信制御装置３１０３、Ｉ／Ｏ制御装置３１０４、ハードディスク等の外部記憶装置３１０５によって構成されている。また、Ｉ／Ｏ制御端末３１０４を介して端末３００６が接続されている。
【００３７】
外部記憶装置３００５は、抽出側データベース管理システム１０Ｃを実現する処理プログラム３１０８を保存する。
【００３８】
主記憶装置３１０１には処理プログラム３１０８が読み込まれ、これがＣＰＵ３１０２によって実行されることで抽出側データベース管理システム１０Ｃとして機能する。この抽出側データベース管理システム１０Ｃは、システムマネジャサーバ１０３と処理要求受付サーバ１０１と含む。
【００３９】
システムマネジャサーバ１０３や処理要求受付サーバ１０１は、通信制御装置３１０３を介して、ネットワーク３００７で接続された他の情報処理装置とでデータや要求を送受信する。
【００４０】
情報処理装置３２００は、ＣＰＵ３２０２、主記憶装置３２０１、通信制御装置３２０３、Ｉ／Ｏ制御装置３２０４によって構成されている。また、Ｉ／Ｏ制御装置３２０を介して、ハードディスク等の外部記憶装置３２０５及び端末３２０６が接続されている。
【００４１】
外部記憶装置３２０５は、抽出側データベース管理システム１０Ａが管理するデータをマスタＤＢデータ領域Ａ１５に保存する。また、マスタＤＢデータ領域Ａ１５の更新ログデータを更新ログファイルＡ１７に保存する。また、抽出側データベース管理システム１０Ａ及び抽出側レプリケーションシステム１２Ａを実現する処理プログラム３２０８を保存する。
【００４２】
主記憶装置３２０１には、処理プログラム３２０８が読み込まれ、これがＣＰＵ３２０２によって実行されることで抽出側データベース管理システム１０Ａ及び抽出側レプリケーションシステム１２Ａとして機能する。抽出側データベース管理システム１０Ａは、ＤＢアクセスサーバ１０２Ａを含む。
【００４３】
ＤＢアクセスサーバ１０２Ａ及び抽出側レプリケーションシステム１２は、Ｉ／Ｏ制御装置３２０４を介して外部記憶装置３２０５のマスタＤＢデータ領域Ａ１５又は更新ログファイルＡ１７のデータを読み出し及び書き込む。また、通信制御装置３２０３を介して、ネットワーク３００７に接続された他の情報処理装置とデータや要求を送受信する。
【００４４】
情報処理装置３３００は、ＣＰＵ３３０２、主記憶装置３３０１、通信制御装置３３０３、Ｉ／Ｏ制御装置３３０４によって構成されている。また、Ｉ／Ｏ制御装置３３０４を介して、ハードディスク等の外部記憶装置３３０５及び端末３３０６が接続されている。
【００４５】
外部記憶装置３３０５は、抽出側データベース管理システム１０Ｂが管理するデータをマスタＤＢデータ領域Ｂ１５に保存する。また、マスタＤＢデータ領域Ｂ１５の更新ログデータを更新ログファイルＢ１７に保存する。また、抽出側データベース管理システム１０Ｂ及び抽出側レプリケーションシステム１２Ｂを実現する処理プログラム３３０８を保存する。
【００４６】
主記憶装置３３０１には、処理プログラム３３０８が読み込まれ、これがＣＰＵ３３０２によって実行されることで抽出側データベース管理システム１０Ａ及び抽出側レプリケーションシステム１２Ｂとして機能する。抽出側データベース管理システム１０Ｂは、ＤＢアクセスサーバ１０２Ｂを含む。
【００４７】
ＤＢアクセスサーバ１０２Ｂ及び抽出側レプリケーションシステム１２Ｂは、Ｉ／Ｏ制御装置３３０４を介して外部記憶装置３３０５のマスタＤＢデータ領域Ｂ１５又は更新ログファイルＢ１７のデータを読み出し及び書き込む。また、通信制御装置３３０３を介して、ネットワーク３００７に接続された他の情報処理装置とデータや要求を送受信する。
【００４８】
情報処理装置３４００は、ＣＰＵ３４０２、主記憶装置３４０１、通信制御装置３４０３、Ｉ／Ｏ制御装置３４０４によって構成されている。またＩ／Ｏ制御装置３４０４を介して、ハードディスク等の外部記憶装置３００５及び端末３００６が接続されている。
【００４９】
外部記憶装置３４０５には、反映側データベース管理システム１４が管理するレプリカＤＢ２３を保存する。また、反映側データベース管理システム１４及び反映側レプリケーションシステム１３を実現する処理プログラム３４０８を保存する。
【００５０】
主記憶装置３４０１には、処理プログラム３４０８が読み込まれ、これがＣＰＵ３４０２によって実行されることで、反映側データベース管理システム１４及び反映側レプリケーションシステム１３として機能する。
【００５１】
反映側データベース管理システム１４及び反映側レプリケーションシステム１３は、Ｉ／Ｏ制御装置３４０４を介して、外部記憶装置３４０５のレプリカＤＢ２３のデータを読み出し及び書き込む。また、通信制御装置３４０３を介して、ネットワーク３００７に接続された他の情報処理装置とデータや要求を送受信する。
【００５２】
この図２は、５つの情報処理装置が、ＵＡＰ１１、抽出側データベース管理システム１０、抽出側レプリケーションシステム１２、反映側レプリケーションシステム１３及び反映側データベース管理システム１４として機能する例を示した。しかし、この構成例によらず、図１に示した機能を実現できる構成であれば、他のハードウェア構成であってもよいし、複数の機能が一つのハードウェアで実現されていてもよい。
【００５３】
図３は、本発明の第１の実施の形態のデータベースシステムの処理の説明図である。
【００５４】
図３は、抽出側データベース管理システム１０が、更新ログファイルＡ１７及びＢ１８に行う処理を図面左側から時系列に示す。また、反映側レプリケーションシステム１３が、更新情報反映キューＡ２１及びＢ２２からデータを取得し、反映側データベース管理システム１４に反映させる処理を図面左側から時系列に示す。
【００５５】
抽出側データベース管理システム１０は、ＵＡＰ１１等からの要求によって、トランザクション１（ＴＲＮ１）、トランザクション２（ＴＲＮ２）、及びトランザクション３（ＴＲＮ３）を生成する。それぞれのトランザクションは、ＴＲＮ１処理１０１１１、ＴＲＮ２処理１０１１２、及びＴＲＮ３処理１０１１３によって処理される。なお、ＴＲＮ１はマスタデータベースＡのみになされ、ＴＲＮ２及びＴＲＮ３はマスタデータベースＡ及びＢになされる。
【００５６】
抽出側データベース管理システム１０は、各トランザクションの処理において、ＵＡＰ１１等からＣＯＭＭＩＴ要求を受け取ると、トランザクションのログを更新ログファイルに記録してトランザクションを確定させる。
【００５７】
ＴＲＮ１処理１０１１１は、ＣＯＭＭＩＴ要求を受け取ると、更新ログファイルＢ１８にＴＲＮ１のＣＯＭＭＩＴログを記録する（１０１１１１）。ログが更新ログファイルに記録されることで、トランザクション１が有効となる。
【００５８】
同様に、ＴＲＮ２処理１０１１２は、ＣＯＭＭＩＴ要求を受け取ると、更新ログファイルＡ１７及び更新ログファイルＢ１８にトランザクション２のＣＯＭＭＩＴログを記録する（１０１１２１、１０１１２２）。これによってトランザクション２が有効となる。
【００５９】
このとき、システムサーバマネージャ１０３等から、同期化ポイント取得コマンドが発行された場合を説明する。同期化ポイント取得コマンドが発行されると、同期化ポイント取得コマンド処理１０３１１によって処理される。
【００６０】
同期化ポイント取得コマンド処理１０３１１は、トランザクションが、全てのＤＢアクセスサーバ１０２において完了している、又は、完了していない、のいずれかの状態となるタイミングを同期化ポイントとして取得する。
【００６１】
図３の例では、ＴＲＮ１及びＴＲＮ２は、全てのＤＢアクセスサーバにおいて完了している。一方、ＴＲＮ３は、何れのＤＢアクセスサーバにおいても完了していない。従って、このタイミングで同期化ポイントを取得する。
【００６２】
同期化ポイント取得コマンド処理１０３１１は、同期化ポイントを取得すると、そのタイミングで更新ログファイルＡ１７及び更新ログファイルＢ１８に同期化情報を記録する（１０３１１１、１０３１１２）。
【００６３】
次に、ＴＲＮ３処理１０１１３においてＣＯＭＭＩＴ要求を受け取ると、更新ログファイルＡ１７及び更新ログファイルＢ１８にトランザクション３のＣＯＭＭＩＴログを記録する（１０１１３１、１０１１３２）。これによってトランザクション３が有効となる。
【００６４】
以上のような処理によって、抽出側データベース管理システムは、更新ログファイルにＴＲＮログ及び同期化情報を記録する。
【００６５】
抽出側データベース管理システム１０に含まれる抽出側レプリケーションシステム１２は、所定のタイミングで、更新ログファイルＡ１７及びＢ１７に記録された更新ログや同期化情報を抽出し、反映側レプリケーションシステム１３に送信する。反映側レプリケーションシステム１３は、送信された更新ログや同期化情報を、更新情報反映キューＡ２０及びＢ２２に格納する。
【００６６】
反映側レプリケーションシステム１３は、更新情報反映キューに格納された更新情報や同期化情報を読み出し、更新情報反映処理として処理する。
【００６７】
更新情報反映キューＡ２１に格納された更新情報や同期化情報は、更新情報反映処理Ａ１３３１によって読み出される。同様に更新情報反映キューＢ２２に格納された更新情報や同期化情報は、更新情報反映処理Ｂ１３３２によって読み出される。
【００６８】
まず、更新情報反映処理Ｂ１３３２は、更新情報反映キューＢ２２からＴＲＮ１の更新情報を読み出し（１３３２１）、反映側データベース管理システム１４に更新を要求する（１３３２２）。
【００６９】
次に、更新情報反映処理Ａ１３３１は、更新情報反映キューＡ２１からＴＲＮ２の更新情報を読み出し（１３３１１）、反映側データベース管理システム１４に更新を要求する（１３３１２）。次に、更新情報反映処理Ｂ１３３２は、更新情報反映キューＢ２２からＴＲＮ２の更新情報を読み出す（１３３２３）。そして、読み出した更新情報を、更新要求として反映側データベース管理システム１４に送信する（１３３２４）。
【００７０】
ここで、更新情報反映処理Ａ１３３１は、更新情報反映キューＡ２１から同期化情報を読み出すと（１３３１３）、更新情報反映処理Ｂ１３３２が同期化情報を検出するまで待機する。更新情報反映処理Ｂ１３３２が更新情報反映キューＢ２２から同期化情報を読み出すと（１３３２５）、更新情報反映処理Ａ１３３１と更新情報反映処理Ｂ１３３２とが、反映側データベース管理システム１４に対してＣＯＭＭＩＴ要求を送る（１３３１４、１３３２６）。
【００７１】
反映側データベース管理システム１４は、このＣＯＭＭＩＴ要求を受けて、既に更新要求によって受け取っている更新情報をレプリカＤＢ２３に反映する。これによって、ＴＲＮ１の更新情報及びＴＲＮ２の更新情報が確定する。
【００７２】
その後、更新情報反映処理Ａ１３３１は、更新情報反映キューＡ２１からＴＲＮ３の更新情報を読み出し（１３３１５）、反映側データベース管理システム１４に更新を要求する（１３３１６）。次に、更新情報反映処理Ｂ１３３２は、更新情報反映キューＢ２２からＴＲＮ３の更新情報を読み出し（１３３２７）、反映側データベース管理システム１４に更新要求を送る（１３３２８）。
【００７３】
このＴＲＮ３の更新内容は、次に更新情報反映処理Ａ１３３１及び更新情報反映処理Ｂ１３３２が同期化情報を検出し、反映側データベース管理システム１４にＣＯＭＭＩＴ要求時に確定する。
【００７４】
この図３のように、抽出側データベース管理システム１０は、同期化ポイントを取得し、そのタイミングを反映側レプリケーションシステム１３の反映処理に通知する。反映側レプリケーションシステム１３は、同期化ポイント以前に有効となったトランザクションの更新内容全てを、同期化ポイントのタイミングで、反映側データベース管理システム１４が管理するレプリカデータベースに反映する。このようにすることで、トランザクションの一部の更新内容のみを反映した状態のレプリカデータベースを参照することがなくなり、トランザクション単位の更新内容を保証できる。
【００７５】
なお、反映側レプリケーションシステム１３の、同期化ポイントのタイミングの通知方法は、同期化ポイント取得コマンドによって更新ログファイルに同期化情報を記録して、反映側のレプリケーションシステム１３はこの同期化情報を検出するように構成している。しかし、この方法に限らない。更新情報反映処理が同期化ポイント以前に有効となったトランザクションの更新情報を判別することができれば、他の通知方法を用いてもよい。
【００７６】
図４は、抽出側データベース管理システム１０で行われるトランザクション処理のブロック図である。
【００７７】
このトランザクション処理は、処理要求受付サーバ１０１、及びＤＢアクセスサーバ１０２によって実現される。
【００７８】
ＵＡＰ１１が、抽出側データベース管理システム１０に処理を要求する。
【００７９】
この処理要求は、処理要求受付サーバ１０１の処理要求制御部１０１１が受け付け、処理要求の内容を解析する。処理要求受付サーバ１０１は、その解析結果からデータ操作要求を作成する。そして、操作対象のデータを格納しているデータベース（マスタＤＢデータ領域Ａ１５又はマスタＤＢデータ領域Ｂ１６）を管理するＤＢアクセスサーバ（Ａ又はＢ）１０２にデータ操作要求を送る。
【００８０】
この処理要求がＣＯＭＭＩＴ要求であった場合には、処理要求制御部１０１１は各ＤＢアクセスサーバとの間で二相ＣＯＭＭＩＴプロトコルを用いてＣＯＭＭＩＴ処理を送る。二相ＣＯＭＭＩＴプロトコルとは、ＣＯＭＭＩＴ要求の前にＣＯＭＭＩＴの準備要求（ＰＲＥＰＡＲＥ−ＣＯＭＭＩＴ要求）を行い、準備の完了を待機する。そして、準備が完了した時点でＣＯＭＭＩＴ要求を送り、ＣＯＭＭＩＴを実行する。
【００８１】
処理要求制御部１０１１が送ったデータ操作要求は、ＤＢアクセスサーバ１０２のデータ操作制御部１０２１が受け取る。
【００８２】
データ操作制御部１０２１は、受け取ったデータ操作要求の内容を解析し、マスタＤＢデータ領域（マスタＤＢデータ領域Ａ１５又はマスタＤＢデータ領域Ｂ１６）に対してデータを操作する。また、データ操作の更新ログは、更新ログファイル（更新ログファイルＡ１７又は更新ログファイルＢ１８）に保存する。また、データ操作制御部１０２１は、処理要求制御部１０１１からＰＲＥＰＡＲＥ−ＣＯＭＭＩＴ要求を受け取った場合は、処理開始時に同期化制御リソース１０２３の共有ロックを取得する。共有ロックの取得後、ＣＯＭＭＩＴ要求を受け取った場合は、マスタＤＢデータ領域にＣＯＭＭＩＴ処理を行う。そして、処理終了時に同期化制御リソース１０２３のロックを解除する。また、データ操作制御部１０２１は、必要に応じて、データ操作の結果を処理要求制御部１０１１に返す。
【００８３】
なお、このデータ操作部１０２１の処理は、図９で詳述する。
【００８４】
以上のように、データ操作処理部１０２１はＣＯＭＭＩＴ処理期間中に、同期化制御リソース１０２３の共有ロックを取得する。これによって、図５において後述するよう同期化ポイント取得コマンド実行時の処理との排他制御をする。また、共有ロックであるため、ユーザアプリケーションプログラム間のＣＯＭＭＩＴ処理においては、ロック取得待ちは発生しない。
【００８５】
図５は、抽出側データベース管理システム１０で行われる同期化ポイントの取得処理のブロック図である。
【００８６】
この同期化ポイント取得コマンド実行時の制御は、システムマネジャサーバ１０３、及びＤＢアクセスサーバ１０２によって実現される。
【００８７】
抽出側データベース管理システム１０において、システムサーバマネージャ１０３に対して同期化ポイント取得コマンドを実行する。
【００８８】
システムマネジャサーバ１０３の同期化ポイント取得コマンド制御部１０３１は、同期化ポイント取得コマンドを受け取ると、全てのＤＢアクセスサーバ（Ａ及びＢ）１０２の同期化情報出力処理部（Ａ及びＢ）１０２２を呼び出す。
【００８９】
呼び出された同期化情報出力処理部１０２２は、同期化ポイント取得処理を開始する。このときに、同期化リソース１０２３に対して占有ロックを取得する。次に、更新ログファイル（更新ログファイルＡ１７又は更新ログファイルＢ１８）に同期化情報を出力して、同期化ポイントを取得する。同期化ポイント取得処理の終了時に、同期化制御リソース１０２３に対して占有ロックを解除する。
【００９０】
なお、この同期化ポイント取得コマンド制御部１０３１及び同期化情報出力処理部１０２２の処理は、図１０で詳述する。
【００９１】
以上のようにして、同期化情報出力処理部１０２２が、更新ログファイルに同期化情報を出力することで同期化ポイントを取得する。この同期化情報出力処理中に、同期化制御リソース１０２３の占有ロックを取得することで、ＵＡＰ１１等の他の処理要求によるデータ操作処理で行われるＣＯＭＭＩＴ処理との排他制御をする。
【００９２】
図６は、本実施形態の抽出側レプリケーションシステム１２及び反映側レプリケーションシステム１３の機能ブロック図である。
【００９３】
本実施形態のレプリケーション生成処理は、抽出側レプリケーションシステム（Ａ及びＢ）１２、反映側レプリケーションシステム１３、及び反映側データベース管理システム１４によって実現される。
【００９４】
抽出側レプリケーションシステム１２において、更新情報抽出処理部１２１が、抽出側データベース管理システム１０が管理する更新ログファイル（更新ログファイルＡ１７又は更新ログファイルＢ１８）から更新情報及び同期化情報を抽出する。更新情報抽出処理部１２１は、この更新情報及び同期化情報を予め決められたタイミングで抽出する。抽出した更新情報及び同期化情報は、更新情報抽出キュー（更新情報抽出キューＡ１９又は更新情報抽出キューＢ２０）に格納する。
【００９５】
なお、この更新情報抽出処理部１２１の処理は、図１１で詳述する。
【００９６】
更新情報送信処理部１２２は、更新情報抽出キュー（更新情報抽出キューＡ１９又は更新情報抽出キューＢ２０）に格納されている更新情報及び同期化情報を、所定のタイミングで反映側レプリケーションシステム１３に送信する。この際に、更新情報及び同期化情報を、トランザクションの完了点順に送信する。
【００９７】
反映側レプリケーションシステム１３において、更新情報受信処理部１３１は、それぞれの抽出側レプリケーションシステム１２から送信された情報を受信し、抽出側レプリケーションシステム１２毎に保持している更新情報反映キュー（更新情報反映キューＡ２１又は更新情報反映キューＢ２２）にそれぞれ格納する。
【００９８】
なお、この更新情報送信処理部１２２及び更新情報受信処理部１３１の処理は、図１２で詳述する。
【００９９】
更新情報反映処理部１３３は、更新情報反映キュー（更新情報反映キューＡ２１又は更新情報反映キューＢ２２）ごとに格納された更新情報を読み込み、反映側データベース管理システム１４への更新要求を生成し、更新を要求する。
【０１００】
また、更新情報反映処理部１３３は、更新情報反映キューから読み込んだ情報が同期化情報であることを検出した場合は、反映同期制御部１３２に同期化情報検出を通知する。同期化情報検出を通知すると、反映同期制御部１３２からＣＯＭＭＩＴ要求が送られるまで待機する。
【０１０１】
反映同期制御部１３２は、いずれかの更新情報反映処理部（Ａ又はＢ）１３３から同期化情報検出通知を受け取ると、全ての更新情報反映処理部１３３から同期化情報検出通知を受け取るまで待機する。そして、全ての更新情報反映処理部１３３から同期化情報検出通知を受け取った場合は、全ての更新情報反映処理部１３３に対してＣＯＭＭＩＴ要求をする。
【０１０２】
更新情報反映処理部１３３は、反映同期制御部１３２からＣＯＭＭＩＴ要求を受け取った場合は、反映側データベース管理システム１４にＣＯＭＭＩＴ要求を送る。
【０１０３】
反映側データベース管理システム１４は、このＣＯＭＭＩＴ要求を受け取ると、既に受け取った更新要求に含まれるデータをレプリカデータベース２３に反映する。
【０１０４】
なお、この更新情報反映処理部１３３及び反映同期制御部１３２の処理は、図１３で詳述する。
【０１０５】
以上のように、反映同期制御部１３２によって、更新情報反映処理部１３３が反映側データベース管理システム１４に対するＣＯＭＭＩＴ要求の発行を同期させるように制御する。
【０１０６】
図７は、同期化ポイント取得処理の排他制御の説明図である。
【０１０７】
図７の例は、ＤＢアクセスサーバ１０２において、トランザクション２に対するデータ操作制御部の処理１０２１１及びトランザクション３に対するデータ操作制御部の処理１０２１２の実行時に、同期化ポイント取得コマンドが実行された場合の処理である。
【０１０８】
ＤＢアクセスサーバ１０２において、トランザクション２（ＴＲＮ２）を処理するデータ操作制御部の処理１０２１１は、ＰＲＰＥＰＡＲＥ−ＣＯＭＭＩＴ要求を受け取ると、同期化制御リソース１０２３に共有ロックを取得する（１０２１１１）。次に、処理１０２１１は、ＣＯＭＭＩＴ要求を受け取ると、更新ログファイルＡ１７に対してＴＲＮ２のＣＯＭＭＩＴログを出力する（１０２１１２）。この処理が完了すると、取得した同期化制御リソース１０２３のロックを解除する（１０２１１３）。
【０１０９】
このＴＲＮ２のデータ操作制御部の処理１０２１１の処理中に、同期化情報出力処理部の処理１０２２１が、同期化制御リソースに占有ロックを要求（１０２２１１）した場合について説明する。
【０１１０】
既に、ＴＲＮ２のデータ操作制御部の処理１０２１１が同期化制御リソース１０２３に対して共有ロックを取得しているので、同期化情報出力処理部の処理１０２２１の占有ロック要求１０２２１１は失敗する。そこで、この同期化情報出力処理部の処理１０２２１は終了し、所定の時間待機する。
【０１１１】
所定の時間待機した後に実行された同期化情報出力処理部の処理１０２２２は、同期化制御リソース１０２３に対して占有ロックを要求する（１０２２２１）。このときＴＲＮ２のデータ操作制御部の処理１０２１１によって取得された共有ロック（１０２１１１）は既に解除されている。そのため、占有ロックを取得できる。そして、同期化情報出力処理部の処理１０２２２は、更新ログファイルＡ１７に同期化情報を出力する（１０２２２２）。この処理が完了すると、取得した同期化制御リソース１０２３の占有ロックを解除する（１０２２２３）。
【０１１２】
次に、この同期化情報出力処理部の処理１０２２２の処理中に、トランザクション３（ＴＲＮ３）を処理するデータ操作制御部１０２１２が、同期化制御リソースに共有ロックを要求（１０２１２１）した場合について説明する。
【０１１３】
ＴＲＮ３のデータ操作制御部の処理１０２１２は、ＰＲＥＰＡＲＥ−ＣＯＭＭＩＴ要求を受け取ると、同期化制御リソース１０２３に対して共有ロックを要求する（１０２１２１）。このとき、既に同期化情報出力処理部の処理１０２２２が占有ロックを取得しているので、ＴＲＮ３のデータ操作制御部の処理１０２１２の共有ロック要求１０２１２１は失敗する。ＴＲＮ３のデータ操作制御部の処理１０２１２は、この占有ロックが解除されるまで待機する。
【０１１４】
同期化情報出力処理部の処理１０２２２によって占有ロックが解除されると（１０２２２３）、ＴＲＮ３のデータ操作制御部の処理１０２１２は、同期化制御リソース１０２３に共有ロックを取得する（１０２１２２）。次に、ＴＲＮ３のデータ操作制御部の処理１０２１２は、ＣＯＭＭＩＴ要求を受け取ると、更新ログファイルＡ１７にトランザクション３のＣＯＭＭＩＴログを出力する（１０２１２２）この処理が完了すると、同期化制御リソース１０２３のロックを解除する（１０２１２３）。
【０１１５】
以上のように、ＤＢアクセスサーバにおいて、データ操作制御部１０２１及び同期化情報出力処理部１０２２は、同期化制御リソース１０２３をロックすることで、排他制御を行っている。例えば、トランザクション処理において、データ操作制御部１０２１は、ＰＲＥＰＡＲＥ−ＣＯＭＭＩＴ要求を受け取ってからＣＯＭＭＩＴ要求に対応する処理の完了までの処理期間中に同期化制御リソースに共有ロックを取得する。この間は同期化情報出力処理部１０２２からの処理は受け付けない。
【０１１６】
このようにすることで、抽出側データベース管理システム１０を構成する全てのＤＢアクセスサーバ１０２において、同期化情報を出力した時点（同期化ポイントを取得した時点）では、生成されたトランザクションは、全てのＤＢアクセスサーバ１０２において有効である状態（一律有効）、かつ、全てのＤＢアクセスサーバ１０２において有効でない状態（一律無効）となる。
【０１１７】
図８は、図７の処理によって記録される更新ログファイルＡ１７の構成図である。
【０１１８】
更新ログファイルＡ１７には、ＤＢアクセスサーバ１０２によって、更新ログがトランザクションを構成する個々のオペレーション単位に時系列に並べて記録される。各オペレーションの更新ログには、更新時刻１７０１、更新ログ番号１７０２、トランザクションＩＤ１７０３、オペレーションコード１７０４、及び更新詳細情報１７０５が含まれる。
【０１１９】
更新詳細情報１７０５には、更新対象の表情報、列情報、更新前後のデータなどが含まれる。なお、オペレーションコードが「ＣＰ」である更新ログ１７０８は同期化情報であることを示す。
【０１２０】
この更新ログファイルは、図６の処理によって、反映側レプリケーションシステム１３の更新情報反映キューに保存される。反映側レプリケーションシステム１３は、更新情報反映キューの同期化情報によって示される同期化ポイントによってＣＯＭＭＩＴ処理を行い、レプリカＤＢ２３に反映する。この場合、同期化情報１７０８よりも前にＣＯＭＭＩＴログを出力し、内容の確定したトランザクション（ここではトランザクション２）の更新ログが更新情報となる。すなわち、更新ログ１７０６及び更新ログ１７０７に基づく更新内容が、同期化情報１７０８が示す同期化ポイントに対応するＣＯＭＭＩＴ処理によってレプリカデータベース２３に反映される。
【０１２１】
なお、ここではオペレーションコードが「ＣＰ」である更新ログを同期化情報として識別する例を示したが、同期化ポイントを識別できる情報であれば、この方法に限らない。
【０１２２】
図９は、データ操作制御部１０２１の処理のフローチャートである。
【０１２３】
データ操作制御部１０２１は、処理要求受付サーバ１０１の処理要求制御部１０１１からデータ操作要求を受け取ると（ステップ１０２１０１）、まず、そのデータ操作要求の種類が何であるかを判別する（ステップ１０２１０２）。
【０１２４】
データ操作要求がＰＲＥＰＡＲＥ−ＣＯＭＭＩＴ要求であった場合は、そのデータ操作制御部１０２１が含まれるＤＢアクセスサーバ１０２の同期化制御リソース１０２３に共有ロックを取得する。このとき、既に他の処理によって占有ロックが取得されており、共有ロックが取得できない場合は、共有ロックを取得できるまで待機する（ステップ１０２１０３）。占有ロックが取得されている場合とは、同期化ポイント取得コマンドによって、同期化情報が出力中の場合である。
【０１２５】
次に、現在のトランザクションの処理のＣＯＭＭＩＴ準備処理を行う（ステップ１０２１０４）。そして、このＣＯＭＭＩＴ準備処理が完了したか否かを判定する（ステップ１０２１０２５）。
【０１２６】
ＣＯＭＭＩＴ準備が完了した場合は、データ操作要求の要求元である処理要求制御部１０１１にＣＯＭＭＩＴ準備完了を通知して（ステップ１０２１０６）、ステップ１０２１１２に移行する。一方、ＣＯＭＭＩＴ準備が完了していない場合は、処理要求制御部１０１１に「ａｂｏｒｔ」を通知して（ステップ１０２１０７）、ステップ１０２１１２に移行する。
【０１２７】
ステップ１０２１０２において、データ操作要求がＣＯＭＭＩＴ要求であった場合は、更新ログファイルに現在のトランザクションのＣＯＭＭＩＴログを出力する（ステップ１０２１０８）。次に、そのデータ操作制御部１０２１を含むＤＢアクセスサーバ１０２の同期化制御リソース１０２３に、取得していた共有ロックの解除を要求する（ステップ１０２１０９）。次に、データ操作要求の要求元である処理要求制御部１０１１にＣＯＭＭＩＴ完了を通知し（ステップ１０２１１０）、ステップ１０２１１２に移行する。
【０１２８】
ステップ１０２１０２において、データ操作要求がＰＲＥＰＡＲＥ−ＣＯＭＭＩＴ要求又はＣＯＭＭＩＴ要求の何れの要求でもない場合は、そのデータ操作要求に従って、所定のデータ操作処理を行い（ステップ１０２１１１）、ステップ１０２１１２に移行する。
【０１２９】
ステップ１０２１１２では、処理要求制御部１０１１からトランザクションの終了要求があったか否かを判定する。トランザクションの終了要求があった場合は、処理を終了する。一方、トランザクションの終了要求がない場合は、ステップ１０２１０１に戻り、次のデータ操作要求を受け取る。
【０１３０】
以上のように、データ操作処理部１０２１は、ＰＲＥＰＡＲＥ−ＣＯＭＭＩＴ処理開始時からＣＯＭＭＩＴ処理終了時までのＣＯＭＭＩＴ処理期間中に、同期化制御リソース１０２３の共有ロックを取得する。このようにすることで、同期化ポイント取得コマンド実行時の処理との排他制御をする。また、共有ロックであるため、データ操作制御部における処理間のＣＯＭＭＩＴ処理においては、ロック取得待ちは発生しない。
【０１３１】
図１０は、同期化ポイント取得コマンド処理部１０３１及び同期化情報出力処理部１０２２の処理のフローチャートである。
【０１３２】
同期化ポイントの取得の処理は、システムサーバマネージャ１０３の同期化ポイント取得コマンド制御部１０３１及びＤＢアクセスサーバ１０２の同期化情報出力処理部１０２２によって行われる。
【０１３３】
抽出側データベース管理システム１０によって同期化ポイント取得コマンドが実行されると、システムマネジャサーバ１０３の同期化ポイント取得コマンド制御部１０３１による処理が開始される。
【０１３４】
同期化ポイント取得コマンド制御部１０３１は、抽出側データベース管理システム１０を構成する全てのＤＢアクセスサーバ１０２の同期化情報出力処理部１０２２を起動する（ステップ１０３１０１）。次に、起動した同期化情報出力処理部１０２２からのロック成功通知１０２２０２１又はロック失敗通知１０２２０７１を受け取るまで、任意の時間待機する（ステップ１０３１０２）。そして、ステップ１０３１０１において起動した全ての同期化情報出力処理部１０２２からロック成功通知１０２２０２１又はロック失敗通知１０２２０７１のいずれかを受け取ったか否か判定する（ステップ１０３１０３）。
【０１３５】
まだ全ての同期化情報出力処理部１０２２からの通知を受け取っていない場合はステップ１０３１０１に戻り、再び任意の時間待機する。
【０１３６】
一方、全ての全ての同期化情報出力処理部１０２２から通知を受け取った場合は、次に１つ以上の同期化情報出力処理部１０２２からロック失敗通知１０２２０２１を受け取っているか否かを判定する（ステップ１０３１０４）。同期化情報出力処理部１０２２からの通知が全てロック成功通知１０２２０２１であった場合、すなわち、同期化情報処理部１０２２全てが同期化リソース１０２３の占有ロックを取得している場合は、ステップ１０３１０１に移行する。ステップ１０２１０１では、起動した全ての同期化情報出力処理部１０２２に対して同期化情報出力要求１０３１０５１を行い（ステップ１０３１０５）、処理を終了する。
【０１３７】
ステップ１０３１０４において、１つ以上の同期化情報出力処理部１０２２からロック失敗通知１０２２０７１を受け取った場合、すなわち、トランザクションのＣＯＭＭＩＴ処理を行っているＤＢアクセスサーバ１０２がある場合は、ステップ１０３１０６に移行する。ステップ１０３１０６では、ロック成功通知を通知した全ての同期化情報出力処理部１０２２に対して、ロック解除要求１０３１０６１を行い（ステップ１０３１０６）、ステップ１０３１０１に戻る。
【０１３８】
一方、ステップ１０３１０１において起動された同期化情報出力処理部１０２２は、その同期化情報出力処理部１０２２を含むＤＢアクセスサーバ１０２の同期化制御リソース１０２３の占有ロックの取得を試みる（ステップ１０２２０１）。占有ロックに失敗した場合、すなわち、トランザクションのＣＯＭＭＩＴ処理中を行っているデータ操作制御部１０２１の処理がある場合は、同期化ポイント取得コマンド制御部１０３１にロック失敗通知１０２２０７１を行い（ステップ１０２２０７）、処理を終了する。
【０１３９】
一方、占有ロックに成功した場合は、同期化ポイント取得コマンド１０３１にロック成功通知１０２２０２１を送る（ステップ１０２２０２）。次に、同期化ポイント取得コマンド制御部１０３１からの要求があるまで任意の時間待機する（ステップ１０２２０３）。
【０１４０】
その後、同期化ポイント取得コマンド制御部１０３１から要求を受け取った場合は、その要求が同期化情報出力要求１０３１０５１であるか、ロック解除要求１０３１０６１であるか否かを判定する（ステップ１０２２０４）。
【０１４１】
受け取った要求が同期化情報出力要求１０３１０５１である場合は、更新ログファイルに同期化情報を出力する（ステップ１０２２０５）。そして、同期化制御リソース１０２３の占有ロックを解除して（ステップ１０２２０６）、処理を終了する。
【０１４２】
一方、ステップ１０２２０４で受け取った要求がロック解除要求１０３１０６１の場合は、同期化制御リソース１０２３の占有ロックを解除して（ステップ１０２２０６）、処理を終了する。
【０１４３】
以上のように、同期化情報処理部１０２２全てが同期化リソース１０２３の占有ロックを取得した場合、すなわち、トランザクションのＣＯＭＭＩＴ処理中であるデータ操作制御部１０２１がない場合のみ、同期化情報を更新ログファイルに出力する。このようにすることで、あるトランザクションにおいて、同期化ポイントをまたぐＣＯＭＭＩＴログが記録されることがない。そのため、同期化情報を記録した同期化ポイントでは、全てのＤＢアクセスサーバ１０２において一律有効、または一律無効のいずれかとなる。
【０１４４】
図１１は、更新情報抽出処理部１２１の処理のフローチャートである。
【０１４５】
更新情報抽出処理部１２１は、抽出タイミングとなるまで待機している（ステップ１２１１）。抽出のタイミングは、例えば、所定の間隔で定期的であってもよいし、所定のトランザクション数又は所定の更新ログ数を超えた場合であってもよい。
【０１４６】
抽出タイミングであると判定した場合は、更新ログファイル（Ａ１７又はＢ１８）の更新ログが、全て読み出し済みであるか否かを判定する（ステップ１２１２）。全ての更新ログが読み出し済みである場合はステップ１２１１に戻り、次回の抽出タイミングとなるまで待つ。
【０１４７】
まだ読み出されていない更新ログがある場合は、更新ログファイルから、未読み出しの更新ログを１つ読み込む（ステップ１２１３）。次に、読み込んだ更新ログの更新情報を更新情報抽出キューに格納する。その後、ステップ１２１２に戻り、再度、更新ログが全て読み出し済みか否かを判定する。
【０１４８】
この処理によって、更新情報抽出処理部１２１が、更新ログファイル中の更新ログから更新情報を抽出して、更新情報抽出キューに格納する。
【０１４９】
図１２は、更新情報送信処理部１２２及び更新情報受信処理部１３１の処理のフローチャートである。
【０１５０】
更新情報送信処理部１２２は、更新情報を送信するタイミングとなるまで待機している（ステップ１２２１）。送信のタイミングは、例えば、所定の間隔で定期的であってもよいし、更新情報抽出キューが所定の量を超えた場合であってもよい。
【０１５１】
送信タイミングとなったら、更新情報抽出キューに格納されている情報は、全て読み出し済みであるか否かを判定する（ステップ１２２２）。全ての情報が読み出し済みである場合は、送信バッファに格納された情報や同期化情報を反映側レプリケーションシステム１３の更新情報受信処理部１３１に送信する（ステップ１２２９）。
【０１５２】
一方、また読み出されていない更新情報がある場合は、更新情報抽出キューから情報（更新情報又は同期化情報を含む）を１つ読み出す（ステップ１２２３）。そして、この読み出した情報が同期化情報であるか否かを判定する（ステップ１２２４）。
【０１５３】
読み出した情報が同期化情報である場合は、当該同期化情報を送信バッファに格納して（ステップ１２２８）、ステップ１２２２に戻る。
【０１５４】
一方、読み出した情報が同期化情報でないと判定した場合は、トランザクションごとに設けられたバッファに更新情報を格納する（ステップ１２２５）。次に、バッファに格納した更新情報がＣＯＭＭＩＴの更新情報であるか否かを判定する（ステップ１２２６）、ＣＯＭＭＩＴの更新情報である場合は、当該トランザクションのバッファ中の更新内容を送信バッファに格納し（ステップ１２２７）、ステップ１２２２に戻る。
【０１５５】
一方、バッファに格納した更新情報がＣＯＭＭＩＴの更新情報でないと判定した場合は、ステップ１２２２に戻る。
【０１５６】
更新情報受信処理部１３１は、ステップ１２２９において抽出側レプリケーションシステム１２の更新情報送信処理部１２２から送信された更新情報を受信する（ステップ１３１１）。受信した更新情報を、送信元の抽出側レプリケーションシステム１２に対応する更新情報反映キューに更新情報を格納する（ステップ１３１１）。そして、ステップ１３１１に戻り、更新情報が送信されるのを待機する。
【０１５７】
以上のように、更新情報送信処理部１２２及び更新情報受信処理部１３１によって、各抽出側レプリケーションシステム１２の更新情報反映キューに更新情報が読み込まれる。この更新情報は、更新情報抽出キューに格納された更新情報のうち、既に有効となったトランザクションの更新情報と同期化情報のみが、トランザクション完了点順に格納される。
【０１５８】
図１３は更新情報反映処理部１３３及び反映同期制御部１３２の処理のフローチャートである。
【０１５９】
更新情報反映処理部１３３は、更新情報反映キューの先頭から、１トランザクション分の更新情報を取り出す（ステップ１３３０１）。そして、取り出された情報が、同期化情報であるか否かを判定する（ステップ１３３０２）。
【０１６０】
取り出した情報が同期化情報でない場合は、取り出した更新情報を元に更新要求を作成して、反映側データベース管理システム１４に更新を要求する（ステップ１３３０３）。その後、ステップ１３３０１に戻る。
【０１６１】
取り出した情報が同期化情報であると判定した場合は、反映同期制御部１３２に対して同期化情報検出通知１３３０４１を送る（ステップ１３３０４）。そして、反映同期制御部１３２からＣＯＭＭＩＴ発行要求が通知されるまで任意の時間待機する（ステップ１３３０５）。
【０１６２】
反映同期制御部１３２からＣＯＭＭＩＴ発行要求１３２０４１が通知され、当該ＣＯＭＭＩＴ発行要求１３２０４１を受け取ると（ステップ１３３０６）、反映側データベース管理システム１４に対してＣＯＭＭＩＴ要求を送る（ステップ１３３０７）。その後、ステップ１３３０１に戻る。
【０１６３】
反映同期制御部１３２では、更新情報反映処理部１３３からの同期化情報検出通知１３３０４１を待機している（ステップ１３２０１）。
【０１６４】
更新情報反映処理部１３３から同期化情報検出通知１３３０４１を受け取った場合は（ステップ１３２０２）、ステップ１３２０３に移行する。ステップ１３２０３では、反映側レプリケーションシステム１３における全ての更新情報反映処理部１３３から同一の同期化ポイントの同期化情報検出通知１３３０４１を受け取ったか否かを判定する（ステップ１３２０３）。
【０１６５】
全ての更新情報反映処理部１３３から、同一の同期化ポイントを受け取った場合は、同期化情報検出通知１３３０４１の通知元の更新情報反映処理部１３３の全てにＣＯＭＭＩＴ発行要求１３２０４１を送る（ステップ１３２０４）。その後、ステップ１３２０１に戻り、更新情報反映処理部１３３からの同期化情報検出通知１３３０４１を待機する。
【０１６６】
一方、何れかの更新情報反映処理部１３３から、同一の同期化ポイントを受け取っていない場合は、ステップ１３２０１に戻り、更新情報反映処理部１３３からの同期化情報検出通知１３３０４１を待機する。
【０１６７】
以上のように、更新情報反映処理部１３３は、同期化情報検出通知１３３０４１を反映同期制御部１３２に送る。反映同期制御部１３２は、全ての更新情報反映処理部１３３から同期化情報検出通知１３３０４１を受け取った場合に、全ての更新情報反映処理部１３３にＣＯＭＭＩＴ要求を送る。これを受けて反映側レプリケーションシステム１３がＣＯＭＭＩＴを要求することで、更新情報反映処理部１３３における反映側データベース管理システム１４へのＣＯＭＭＩＴ要求発行の同期化ができる。
【０１６８】
なお、以上説明した各種処理部及び制御部は、プログラムやオブジェクト、プロセス、スレッドにより実現されるものである。
【０１６９】
以上のように構成された本発明の第１の実施の形態では、抽出側データベース管理システム１０において、抽出側データベース管理システム１０を構成する全てのＤＢアクセスサーバ１０２においてトランザクションが一律有効、又は、一律無効であるタイミングを同期化ポイントとして取得する。一方、反映側レプリケーションシステム１３は、抽出側レプリケーションシステム１２から更新情報及び同期化情報を受け取る。そして、受け取った同期化ポイントのタイミングを検知して、そのタイミングで更新情報をレプリカデータベース２３に反映する。
【０１７０】
このようにすることで、レプリカデータベース２３に反映された更新情報は、全てのＤＢアクセスサーバ１０２において有効となった更新情報のみとなる。そのため、他のホストが、レプリカデータベース２３を参照するときに、確定していないトランザクションを参照することがなくなる。
【０１７１】
次に、本発明の第２の実施の形態のデータベースシステムについて説明する。
【０１７２】
第２の実施の形態では、レプリケーションの生成処理を外部記憶装置側が処理するように構成した。なお、第１の実施の形態と同一の構成には同一の符号を付し、その説明は省略する。
【０１７３】
図１４は、第２の実施の形態のデータベースシステムのブロック図である。
【０１７４】
第２の実施形態のデータベースシステムは、マスタデータベースを管理する抽出側データベース管理システム１０及び外部記憶装置２４から構成される。
【０１７５】
抽出側データベース管理システム１０は、処理要求受付サーバ１０１、システムマネジャサーバ１０３及びＤＢアクセスサーバ（Ａ及びＢ）１０２を備える。
【０１７６】
外部記憶装置２４は、抽出側データベース管理システム１０の各ＤＢアクセスサーバ１０３が管理するマスタＤＢデータ領域Ａ１５及びマスタＤＢデータ領域Ｂ１６並びに更新ログファイルＡ１７及び更新ログファイルＢ１８を保存する。また、データベースのレプリケーションであるレプリカＤＢ２３を保存する。また、レプリケーション処理に用いられるＤＢ−ディスクブロック変換テーブル２４０７を保存する。
【０１７７】
また、外部記憶装置２４には、ディスク制御処理部２４０１を備える。このディスク制御処理部２４０１は、レプリケーション制御部２４０１１を含んでいる。
【０１７８】
レプリケーション制御部２４０１１は、更新ログファイルＡ１７及び更新ログファイルＢ１８に保存された更新ログから更新内容を抽出し、レプリカＤＢ２３に反映する。このとき、レプリケーション制御部２４０１１は、ＤＢ−ディスクブロック変換テーブル２４０７を参照して、更新情報中に示されている更新データの位置情報を外部記憶装置２４上の物理的な位置情報に変換する。そして、その変換した物理的な位置情報によって表される外部記憶装置２４上のレプリカＤＢ２３のデータを、更新情報に従って更新する。
【０１７９】
なお、「サーバ」とは、データベース管理システム内の論理的なコンポーネントであり、物理的な装置すなわち情報処理装置のことを指しているわけではない。本実施形態での各種サーバの機能は、プログラムやオブジェクト、プロセス、スレッドによって実現されるものである。同様に、「システム」も、プログラムやオブジェクト、プロセス、スレッドによって実現されるものである。
【０１８０】
図１５は、本実施形態のレプリケーション制御部２４０１１の機能ブロック図である。
【０１８１】
レプリケーション制御部２４０１１は、更新情報抽出処理部１２１、更新情報反映処理部１３３、反映同期制御部１３２、更新情報編集処理部２４０１１１及び更新要求制御部２４０１１２を備える。
【０１８２】
更新情報抽出処理部１２１が、抽出側データベース管理システム１０が管理する更新ログファイル（更新ログファイルＡ１７又は更新ログファイルＢ１８）から更新情報及び同期化情報を抽出する。更新情報抽出処理部１２１は、この更新情報及び同期化情報を予め決められたタイミングで抽出する。抽出した更新情報及び同期化情報は、更新情報抽出キュー（更新情報抽出キューＡ１９又は更新情報抽出キューＢ２０）に格納する。
【０１８３】
更新情報編集処理部２４０１１１は、所定のタイミングで、更新情報抽出キュー（更新情報抽出キューＡ１９又は更新情報抽出キューＢ２０）に格納されている更新情報を抽出し、更新情報反映キュー（更新情報反映キューＡ２１又は更新情報反映キューＢ２２）に、トランザクションの完了点順に格納する。なお、更新情報編集処理部２４０１１１の処理は、図１６で詳述する。
【０１８４】
更新情報反映処理部１３３は、更新情報反映キュー（更新情報反映キューＡ２１又は更新情報反映キューＢ２２）に格納された更新情報を、更新情報反映キューごとに読み込む。そして、レプリカデータベース２３への更新要求を生成し、更新要求制御部２４０１１２に更新を要求する。
【０１８５】
また、更新情報反映処理部１３３は、更新情報反映キューから読み込んだ情報が同期化情報であることを検出した場合は、反映同期制御部１３２に同期化情報検出を通知する。同期化情報検出を通知すると、反映同期制御部１３２からＣＯＭＭＩＴ要求が送られるまで待機する。
【０１８６】
反映同期制御部１３２は、いずれかの更新情報反映処理部１３３から同期化情報検出通知を受け取ると、全ての更新情報反映処理部１３３から同期化情報検出通知を受け取るまで待機する。そして、全ての更新情報反映処理部１３３から同期化情報検出通知を受け取った場合は、全ての更新情報反映処理部１３３に対してＣＯＭＭＩＴ要求を送る。
【０１８７】
更新情報反映処理部１３３は、反映同期制御部１３２からＣＯＭＭＩＴ要求を受け取った場合は、更新要求制御部２４０１１２にＣＯＭＭＩＴ要求を送る。
【０１８８】
更新要求制御部２４０１１２は、更新情報反映処理部１３３から更新要求を受け取ると、それを更新要求バッファに格納する。また、更新情報反映部からＣＯＭＭＩＴ要求を受け取ると、バッファに格納した更新情報をレプリカデータベース２３に更新する。このとき、更新情報の全てについて、ＤＢ−ディスクブロック変換テーブル２４０７を参照し、更新情報中に示された更新データの位置情報を外部記憶装置２４上の物理的な位置情報に変換する。そして、変換された物理的な位置情報で表される外部記憶装置２４上のレプリカＤＢ２３のデータを、更新情報に従って更新する。なお、更新要求制御部２４０１１２の処理は、図１７で詳述する。
【０１８９】
図１６は更新情報編集処理部２４０１１２の処理のフローチャートである。
【０１９０】
更新情報編集処理２４０１１２は、編集タイミングとなるまで待機している（ステップ２４０１１２１）。編集タイミングは、例えば、所定の間隔で定期的であってもよいし、所定のトランザクション数又は所定の更新ログ数を超えた場合であってもよい。
【０１９１】
編集タイミングとなったら、更新情報抽出キュー１９に格納されている情報は、全て読み出し済みであるか否かを判定する（ステップ２４０１１２２）。全ての情報が読み出し済みである場合はステップ２４０１１２１に戻り、次の編集タイミングになるまで待機する。
【０１９２】
一方、まだ読み出されていない情報がある場合は、更新情報抽出キューから情報（更新情報又は同期化情報を含む）を一つ読み込む（ステップ２４０１１２３）。そして、この読み出した情報が同期化情報であるか否かを判定する（ステップ２４０１１２４）。
【０１９３】
読み出した情報が同期化情報である場合は、当該同期化情報を更新情報反映キューに格納して（ステップ２４０１１２８）、ステップ２４０１１２２に戻る。
【０１９４】
一方、読み出した情報が同期化情報でないと判定した場合は、トランザクションごとに設けられたバッファに更新情報を格納する（ステップ２４０１１２５）。次に、バッファに格納した更新情報がＣＯＭＭＩＴの更新情報であるか否かを判定する（ステップ２４０１１２６）。ＣＯＭＭＩＴの更新情報である場合は、該当トランザクションのバッファ中の更新情報を更新情報反映キューに格納して（ステップ２４０１１２７）、ステップ２４０１１２２に戻る。
【０１９５】
一方、バッファに格納した更新情報がＣＯＭＭＩＴの更新情報でないと判定した場合は、ステップ２４０１１２２に戻る。
【０１９６】
以上のように、更新情報編集処理部２４０１１１によって、各更新情報反映キューに更新情報が読み込まれる。この更新情報は、更新情報抽出キューに格納された更新情報のうち、既に有効となったトランザクションの更新情報と同期化情報のみが、トランザクション完了点順に格納される
図１７は、更新要求制御部２４０１１５の処理のフローチャートである。
【０１９７】
更新要求制御部２４０１１５は、更新情報反映処理部１３３からの要求を受け取ると（ステップ２４０１１５１）、まず、その要求の種類を判別する（ステップ２４０１１５２）。
【０１９８】
受け取った要求の種類が更新要求であると判定した場合は、その要求を更新要求格納バッファに格納して（ステップ２４０１１５３）、ステップ２４０１１５１に戻る。
【０１９９】
一方、受け取った要求の種類がＣＯＭＭＩＴ要求であると判定した場合は、更新要求格納バッファの中の更新要求は全て取り出し済みであるか否かを判定する（ステップ２４０１１５４）。
【０２００】
更新情報格納バッファの中の更新要求が全て取り出し済みである場合は、ステップ２４０１１５１に戻る。
【０２０１】
一方。更新情報格納バッファの中の更新要求は、まだ全てが取り出し済みでない場合は、まず、更新要求格納バッファから更新要求を１つ取り出す（ステップ２４０１１５５）。
【０２０２】
次に、ＤＢ−ディスクブロック変換テーブル２４０７を参照して、取り出した更新要求に含まれている位置情報から、レプリカデータベース２３のディスクの物理的な位置情報を取得する（ステップ２４０１１５６）。そして、取得した位置情報によって示されるディスク上の物理的な位置にあるデータを、更新要求に従って更新する（ステップ２４０１１５７）。その後、ステップ２４０１１５４に戻る。
【０２０３】
以上のように、更新要求制御部２４０１１２の処理によって、更新情報反映処理部１３３からＣＯＭＭＩＴ要求を受け取るまでディスク上のデータの更新を行わず、ＣＯＭＭＩＴ要求を受け取った際に実際のディスク上のデータを更新する。このようにすることで、更新情報反映処理部１３３の間での更新内容の反映の同期をとることができる。
【０２０４】
以上のように、本発明の第２の実施の形態では、第１の実施の形態と同様に、レプリカデータベース２３に反映された更新情報は、全てのＤＢアクセスサーバ１０２において有効となった更新情報のみとなる。そのため、他のホストが、レプリカデータベース２３を参照するときに、確定していないトランザクションを参照することがなくなる。
【０２０５】
特に、データベースのデータ領域、更新ログファイル、レプリカＤＢを外部記憶装置（ストレージ装置）側で一元に管理するような構成においても、第１の実施の形態と同様の効果を奏する。
【０２０６】
なお、本発明は、シェアード・ナッシング方式に基づいた並列データベースシステムを例に説明したが、これを共有型データベース型のシステムにも同様に適応することができる。
【図面の簡単な説明】
【０２０７】
【図１】第１の実施の形態のデータベースシステムのブロック図である。
【図２】第１の実施の形態のハードウェア構成の一例のブロック図である。
【図３】第１の実施の形態のシステムの処理の構成図である。
【図４】第１の実施の形態のトランザクション処理のブロック図である。
【図５】第１の実施の形態の同期化ポイントの取得処理のブロック図である。
【図６】第１の実施の形態の抽出側レプリケーションシステム１２及び反映側レプリケーションシステム１３の機能ブロック図である。
【図７】第１の実施の形態の同期化ポイント取得処理の排他制御の説明図である。
【図８】第１の実施の形態の更新ログファイルＡ１７の内容の説明図である。
【図９】第１の実施の形態のデータ操作制御部１０２１の処理のフローチャートである。
【図１０】第１の実施の形態の同期化ポイント取得コマンド処理部１０３１及び同期化情報出力処理部１０２２の処理のフローチャートである。
【図１１】第１の実施の形態の更新情報抽出処理部１２１の処理のフローチャートである。
【図１２】第１の実施の形態の更新情報送信処理部１２２及び更新情報受信処理部１３１の処理のフローチャートである。
【図１３】第１の実施の形態の更新情報反映処理部１３３及び反映同期制御部１３２の処理のフローチャートである。
【図１４】第２の実施の形態のデータベースシステムのブロック図である。
【図１５】第２の実施の形態のレプリケーション制御部２４０１１の機能ブロック図である。
【図１６】第２の実施の形態の更新情報編集処理部２４０１１２の処理のフローチャートである。
【図１７】第２の実施の形態の更新要求制御部２４０１１５の処理のフローチャートである。
【符号の説明】
【０２０８】
１０  抽出側データベース管理システム
１１  ユーザアプリケーションプログラム（ＵＡＰ）
１２  抽出側レプリケーションシステム
１３  反映側レプリケーションシステム
１４  反映側データベース管理システム
１５、１６  マスタＤＢデータ領域
１７、１８  更新ログファイル
１９、２０  更新情報抽出キュー
２１、２２  更新情報反映キュー
２３  レプリカＤＢ
【図１】
2006092005.tif 000003
【図２】
2006092005.tif 000004
【図３】
2006092005.tif 000005
【図４】
2006092005.tif 000006
【図５】
2006092005.tif 000007
【図６】
2006092005.tif 000008
【図７】
2006092005.tif 000009
【図８】
2006092005.tif 000010
【図９】
2006092005.tif 000011
【図１０】
2006092005.tif 000012
【図１１】
2006092005.tif 000013
【図１２】
2006092005.tif 000014
【図１３】
2006092005.tif 000015
【図１４】
2006092005.tif 000016
【図１５】
2006092005.tif 000017
【図１６】
2006092005.tif 000018
【図１７】
2006092005.tif 000019