(57)【要約】【課題】マスタースレーブ構成をもつデータベースにおいて、大量のデータによるデータベースへの更新処理を、より短時間で効率よく行う。【解決手段】マスタースレーブ構成をもつデータベース６を更新するデータベース更新システムであって、複数の要求データ４を入力し当該要求データ４に基づいてデータベース６を更新するための複数のトランザクションデータを生成する生成手段１と、複数のトランザクションデータを用いてスレーブデータベース６１を更新する更新手段２と、更新手段２によるスレーブデータベース６１の更新終了後、更新後のスレーブデータベース６１を一括してマスターデータベース６３に複製する複製手段２、３とを有する。【選択図】図１
2010277348.tif 000002
【特許請求の範囲】
【請求項１】
マスタースレーブ構成をもつデータベースを更新するデータベース更新方法であって、
データ更新システムは、
複数の要求データを入力し、当該要求データに基づいてデータベースを更新するための複数のトランザクションデータを生成する生成ステップと、
前記複数のトランザクションデータを用いて、スレーブデータベースを更新する更新ステップと、
前記更新ステップの終了後、更新後の前記スレーブデータベースを一括してマスターデータベースに複製する複製ステップと、を行うこと
を特徴とするデータベース更新方法。
【請求項２】
請求項１記載のデータベース更新方法であって、
前記マスタースレーブ構成をもつデータベースは、複数のスレーブデータベースを備え、
前記更新ステップは、前記複数のトランザクションデータを用いて、所定の１つのスレーブデータベースのみを更新し、
前記更新ステップの終了後、更新後の前記所定のスレーブデータベースを一括して、他のスレーブデータベースに複製する複製ステップと、をさらに行うこと
を特徴とするデータベース更新方法。
【請求項３】
請求項１または請求項２記載のデータベース更新方法であって、
前記生成ステップは、前記複数の要求データの形式および値が、あらかじめ定められた形式および値であるか否かを判別し、あらかじめ定められた形式または値を有しない要求データの場合、当該要求データのトランザクションの生成を行わないこと
を特徴とするデータベース更新方法。
【請求項４】
請求項１から請求項３のいずれか１項に記載のデータベース更新方法であって、
前記生成ステップは、前記複数の要求データを所定の数のグループにグルーピングし、複数グループの前記トランザクションデータの生成処理を並列して行うこと
を特徴とするデータベース更新方法。
【請求項５】
マスタースレーブ構成をもつデータベースを更新するデータベース更新システムであって、
複数の要求データを入力し、当該要求データに基づいてデータベースを更新するための複数のトランザクションデータを生成する生成手段と、
前記複数のトランザクションデータを用いて、スレーブデータベースを更新する更新手段と、
前記更新手段による前記スレーブデータベースの更新終了後、更新後の前記スレーブデータベースを一括してマスターデータベースに複製する複製手段と、を有すること
を特徴とするデータベース更新システム。
【請求項６】
請求項５記載のデータベース更新システムであって、
前記マスタースレーブ構成をもつデータベースは、複数のスレーブデータベースを備え、
前記更新手段は、前記複数のトランザクションデータを用いて、所定の１つのスレーブデータベースのみを更新し、
前記複製手段は、前記所定のスレーブデータベースへの更新終了後、更新後の前記所定のスレーブデータベースを一括して、他のスレーブデータベースに複製すること
を特徴とするデータベース更新システム。
【請求項７】
請求項５または請求項６記載のデータベース更新システムであって、
前記生成手段は、前記複数の要求データの形式および値が、あらかじめ定められた形式および値であるか否かを判別し、あらかじめ定められた形式または値を有しない要求データの場合、当該要求データのトランザクションの生成を行わないこと
を特徴とするデータベース更新システム。
【請求項８】
請求項５から請求項７のいずれか１項に記載のデータベース更新システムであって、
前記生成手段は、前記複数の要求データを所定の数のグループにグルーピングし、複数グループの前記トランザクションデータの生成処理を並列して行うこと
を特徴とするデータベース更新システム。
【請求項９】
マスタースレーブ構成をもつデータベースを更新するデータベース更新装置であって、
複数の要求データに基づいて生成された複数のトランザクションデータを用いて、スレーブデータベースを更新する更新手段と、
前記更新手段による前記スレーブデータベースの更新終了後、更新後の前記スレーブデータベースを一括してマスターデータベースに複製する複製手段と、を有すること
を特徴とするデータベース更新装置。
【請求項１０】
コンピュータシステムが実行する、マスタースレーブ構成をもつデータベースを更新するデータベース更新プログラムであって、
前記コンピュータシステムに、
複数の要求データを入力し、当該要求データに基づいてデータベースを更新するための複数のトランザクションデータを生成する生成ステップと、
前記複数のトランザクションデータを用いて、スレーブデータベースを更新する更新ステップと、
前記更新ステップの終了後、更新後の前記スレーブデータベースを一括してマスターデータベースに複製する複製ステップと、を実行させること
を特徴とするデータベース更新プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスターデータベースと、当該マスターデータベースの複製であるスレーブデータベースとを有するマスタースレーブ構成のデータベースを更新するデータベース更新技術に関する。
【背景技術】
【０００２】
システムの負荷分散、または障害時におけるシステムの信頼性向上のために、マスターデータベースと当該マスターデータベースの複製であるスレーブデータベースとを有するマスタースレーブ構成のデータベースが使用されている。
【０００３】
このマスタースレーブ構成のデータベースでは、マスターデータベースが更新されると、スレーブデータベースではマスターデータベースと同じ更新処理が行われる。これにより、マスターデータベースとスレーブデータベースとは常に同期がとれ、データの整合性が確保される。
【０００４】
なお、データベースの更新技術については、例えば特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−１８７６１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
さて、マスタースレーブ構成をもつデータベースにおいては、個々のトランザクションデータ毎に、マスターデータベースへトランザクションデータを投入して更新し、マスターデータベース管理システムからスレーブデータベース管理システムにトランザクションデータを転送し、スレーブデータベースへトランザクションデータを投入して更新する等の一連の処理を行う必要がある。したがって、一度に大量のデータをデータベース（マスターデータベースおよびスレーブデータベース）に投入して更新する場合には、非常に多くの時間を要する。
【０００７】
また、データベースへのデータ更新の並列化を目的として、データ更新時には更新対象のデータにのみロック（排他制御）をかけ、更新対象外のデータに対する更新を並列に行うことが行われている。例えば、データ１の更新中にはデータ１のみにロックをかけることで、データ１の更新中にそれとは異なるデータ２の更新を可能とする。しかしながら、複数のデータ間に相関関係を設けて設計されたデータベースにおいては、データ１を更新中に、データ１と相関関係を有するデータ２を更新することはできない。この場合、データ１の更新中には、データ１だけではなく、テーブル全体、もしくはデータベース全体にロックをかける必要がある。
【０００８】
このように、個々のトランザクションデータを投入し、データベースのデータを更新中に、テーブル全体またはデータベース全体にロックをかける必要があるデータベースシステムにおいては、全トランザクションデータの投入・更新を、直列に実施する必要があるためさらに多くに時間を要することになる。
【０００９】
本発明は上記事情に鑑みてなされたものであり、本発明の目的は、マスタースレーブ構成をもつデータベースにおいて、大量のデータによるデータベースへの更新処理を、より短時間で効率よく行うデータベース更新技術を提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、マスタースレーブ構成をもつデータベースを更新するデータベース更新方法であって、データ更新システムは、複数の要求データを入力し、当該要求データに基づいてデータベースを更新するための複数のトランザクションデータを生成する生成ステップと、前記複数のトランザクションデータを用いて、スレーブデータベースを更新する更新ステップと、前記更新ステップの終了後、更新後の前記スレーブデータベースを一括してマスターデータベースに複製する複製ステップと、を行う。
【００１１】
また、本発明は、マスタースレーブ構成をもつデータベースを更新するデータベース更新システムであって、複数の要求データを入力し、当該要求データに基づいてデータベースを更新するための複数のトランザクションデータを生成する生成手段と、前記複数のトランザクションデータを用いて、スレーブデータベースを更新する更新手段と、前記更新手段による前記スレーブデータベースの更新終了後、更新後の前記スレーブデータベースを一括してマスターデータベースに複製する複製手段と、を有する。
【００１２】
また、本発明は、マスタースレーブ構成をもつデータベースを更新するデータベース更新装置であって、複数の要求データに基づいて生成された複数のトランザクションデータを用いて、スレーブデータベースを更新する更新手段と、前記更新手段による前記スレーブデータベースの更新終了後、更新後の前記スレーブデータベースを一括してマスターデータベースに複製する複製手段と、を有する。
【００１３】
また、本発明は、コンピュータシステムが実行する、マスタースレーブ構成をもつデータベースを更新するデータベース更新プログラムであって、前記コンピュータシステムに、複数の要求データを入力し、当該要求データに基づいてデータベースを更新するための複数のトランザクションデータを生成する生成ステップと、前記複数のトランザクションデータを用いて、スレーブデータベースを更新する更新ステップと、前記更新ステップの終了後、更新後の前記スレーブデータベースを一括してマスターデータベースに複製する複製ステップと、を実行させる。
【発明の効果】
【００１４】
本発明によれば、マスタースレーブ構成をもつデータベースにおいて、大量のデータによるデータベースへの更新処理を、より短時間で効率よく行うデータベース更新技術を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係るデータベース更新システムの一例を示すブロック図である。
【図２】データベースへの大量データの更新処理を示すフローチャートである。
【図３】要求データの一例を示す図である。
【図４】トランザクションデータの一例を示す図である。
【図５】識別番号管理テーブルの一例を示す図である。
【図６】変換後のトランザクションデータの一例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態について説明する。
【００１７】
図１は、本発明の実施形態に係るデータベース更新システムの構成を示すブロック図である。図示するデータベース更新システムは、要求データ処理部１と、スレーブデータベース管理部２と、マスターデータベース管理部３と、マスタースレーブ構成をもつデータベース６と、を有する。本実施形態のデータベース６は、複数のスレーブデータベース６１、６２（図示する例では、２重化されたスレーブデータベース６１、６２）を有する。
【００１８】
そして、図示するデータベース更新システムは、通常運用時においては、マスターデータベース管理部３は、図示しないアプリケーションサーバ等から入力される各トランザクションデータを、マスターデータベース６３に投入して、マスターデータベース６３の所定のデータを更新する。
【００１９】
そして、当該入力されたトランザクションデータは、マスターデータベース管理部３からスレーブデータベース管理部２に転送され、スレーブデータベース管理部２は、当該トランザクションデータをスレーブデータベース６１、６２に投入して、スレーブデータベース６１、６２のデータを、マスターデータベース６３と同様に更新する。
【００２０】
そして、スレーブデータベース管理部２がスレーブデータベース６１、６２への更新が終了したことをマスターデータベース管理部３に応答し、マスターデータベース管理部３が当該応答を受信したことにより、当該トランザクションデータの更新が終了する。これにより、マスターデータベース６３とスレーブデータベース６１、６２との間で同期を取ることができる。
【００２１】
本実施形態のデータベース更新システムでは、上記通常運用時の更新処理の他に、大量のデータベース６を更新する要求データがある場合に、当該大量の要求データによる大量データ更新処理を行う。
【００２２】
この大量データ更新処理を行うために、図示する要求データ処理部１は、大量の要求データを入力するとともに要求データ解析部１２およびトランザクションデータ生成部１３の処理を制御する制御部１１と、各要求データを解析およびチェックする要求データ解析部１２と、各要求データに基づいてトランザクションデータを生成するトランザクションデータ生成部１３とを備える。
【００２３】
スレーブデータベース管理部２は、トランザクションデータの識別子を識別番号に変換するトランザクションデータ変換部２１と、識別子と識別番号との対応を管理する識別番号管理部２２と、トランザクションデータに基づいて所定のスレーブデータベース６１を更新するデータベース更新部２３と、更新後の所定のスレーブデータベース６１を一括してマスターデータベース６３および他のスレーブデータベース６２に複製するデータベース複製部２４とを備える。
【００２４】
マスターデータベース管理部３は、スレーブデータベース管理部２のデータベース複製部２４と連携して、更新後の所定のスレーブデータベース６１を一括してマスターデータベース６３に複製するデータベース複製部３１を備える。
【００２５】
上記説明した要求データ処理部１、スレーブデータベース管理部２およびマスターデータベース管理部３には、例えば、ＣＰＵと、メモリと、ＨＤＤ等の外部記憶装置と、入力装置と、出力装置とを備えた汎用的なコンピュータシステム（サーバ等）を用いることができる。このコンピュータシステムにおいて、ＣＰＵがメモリ上にロードされた所定のプログラムを実行することにより、各部１、２、３の各機能が実現される。
【００２６】
次に、本実施形態の処理について説明する。
【００２７】
図２は、大量の要求データが発生した場合に、データベースを更新する大量データ更新処理を示すフローチャートである。
【００２８】
なお、図２に示す更新処理を行っている間、図示しないアプリケーションサーバからマスターデータベース６３へのアクセスは、参照要求（例えば、SELECTなど）のみを許可し、更新要求（例えば、UPDATE、INSERT、DELETEなど）については禁止することとする。これにより、マスターデータベース６３とスレーブデータベース６１、６２との間のデータ整合性を確保する。
【００２９】
まず、要求データ処理部１の制御部１１は、大量の要求データ４を入力し、当該要求データ４をあらかじめ定められた所定の数のグループに分割（グルーピング）し、グループ化された要求データを要求データ解析部１２に送出する（Ｓ１１）。図３は、要求データの一例を示すものである。
【００３０】
要求データ解析部１２は、グルーピングされた各要求データの解析およびチェックを行う（Ｓ１２）。すなわち、要求データ解析部１２は、各要求データを解析し、当該要求データの形式および値が、データベース６に入力可能なあらかじめ定められた形式および値であるか否かを判別する。具体的には、各種のチェックテーブルなどを用いて、フォーマットチェック、単項目チェック、相関チェックなどを行う。要求データ解析部１２は、所定の形式または値を有しない要求データについては、当該要求データをエラーファイルに出力するなどしてグループから削除し、後述するトランザクションの生成を行わないものとする。
【００３１】
なお、要求データ解析部１２は、Ｓ１２の解析・チェック処理を、複数グループで並列に処理するものとする。これにより、全ての要求データを直列で処理する場合に比べて、処理時間を短縮することができる。要求データ解析部１２は、エラーとなった要求データを除いた正常な要求データを、グループ単位でトランザクションデータ生成部１３に送出する。
【００３２】
トランザクションデータ生成部１３は、要求データを受け付けると、当該要求データに基づいて、データベース６を更新するためのトランザクションデータ５を生成する（Ｓ１３）。図４は、トランザクションデータ５の一例を示す図である。図示するトランザクションデータ５は、ＳＱＬによるデータ操作言語で記述されている。なお、１つの要求データから、１つまたは複数のトランザクションデータ５が生成される。また、トランザクションデータ生成部１３は、Ｓ１３の生成処理を、複数グループで並列に処理するものとする。これにより、処理時間を短縮することができる。
【００３３】
そして、制御部１１は、トランザクションデータ生成部１３が生成したトランザクションデータ５を、スレーブデータベース管理部２に送出する。なお、制御部１１は、Ｓ１２およびＳ１３の処理を複数グループで並列に処理するための制御を行う。
【００３４】
スレーブデータベース管理部２のトランザクションデータ変換部２１は、トランザクションデータ５を受け付ける。そして、トランザクションデータ変換部２１は、識別番号管理部２２を参照して、各トランザクションデータ５に設定されている識別子を、当該識別子に対応する識別番号に変換する（Ｓ１４）。
【００３５】
図５は、識別番号管理部２２に記憶されている識別番号管理テーブルの一例を示す図である。図示する識別番号管理テーブルは、識別子であるユーザＩＤと、識別番号とを対応づけたテーブルである。識別番号は、データベースのキー情報であって、図示する例では連続した識別番号が設定されている。図６は、変換後のトランザクションデータの一例を示す図である。
【００３６】
具体的には、トランザクションデータ変換部２１は、トランザクションデータ５に設定された識別子が「ＩＤ＝ＵＳＥＲ  Ａ」の場合（図４参照）、識別番号管理テーブル２２（図５参照）から「ＵＳＥＲ  Ａ」に対応する識別番号「１」を取得し、当該識別子を識別番号「ＮＯ＝１」に変換する（図６参照）。
【００３７】
なお、トランザクションデータ変換部２１は、Ｓ１４の変換処理を、複数グループで並列に処理することとしてもよい。そして、トランザクションデータ変換部２１は、変換したトランザクションデータをデータベース更新部２３に送出する。
【００３８】
データベース更新部２３は、変換後のトランザクションデータの各々に基づいて所定のスレーブデータベース６１を更新する（Ｓ１５）。
【００３９】
全てのトランザクションデータの更新処理が終了した後、データベース複製部２４は、更新後の所定のスレーブデータベース６１のデータを、他のスレーブデータベース６２に一括して複製する（Ｓ１６）。すなわち、データベース複製部２４は、更新後の所定のスレーブデータベース６１の全データを出力（ダンプ）し、出力された所定のスレーブデータベース６１の全データを他のスレーブデータベース６２にコピーし、所定のスレーブデータベース６１の複製（レプリカ）を生成する。
【００４０】
そして、データベース複製部２４は、他のスレーブデータベース６２への複製処理が終了した後、制御部１１に通知する。
【００４１】
制御部１１は、データベース複製部２４から終了通知を受け付けると、マスターデータベース６３へのアクセス（参照要求）を停止するようマスターデータベース管理部３に指示する。そして、制御部１１は、スレーブデータベース管理部２のデータベース複製部２４と、マスターデータベース管理部３のデータベース複製部３１とを用いて、更新後の所定のスレーブデータベース６１のデータを一括して、マスターデータベースに複製するよう指示する（Ｓ１７）。
【００４２】
すなわち、マスターデータベース管理部３は、アプリケーションサーバからマスターデータベース６３へのアクセスを禁止する。そして、スレーブデータベース管理部２のデータベース複製部２４は、更新後の所定のスレーブデータベース６１の全データを出力（ダンプ）する。そして、マスターデータベース管理部３のデータベース複製部３１は、出力された所定のスレーブデータベース６１の全データをマスターデータベース６３にコピーし、スレーブデータベース６１の複製（レプリカ）を生成する。
【００４３】
そして、マスターデータベース管理部３は、アプリケーションサーバからマスターデータベース６３への全てのアクセス（参照要求および更新要求）を許可する。これにより、本データベース更新システムは、前述の通常運用時の更新処理を行う。
【００４４】
以上説明した本実施形態では、大量の更新データが存在する場合には、当該大量の更新データに基づく大量のトランザクションデータを、まず所定のスレーブデータベース６１にのみ投入して、所定のスレーブデータベース６１を更新する。そして、更新後の所定のスレーブデータベース６１のデータを一括してマスターデータベース６３および他のスレーブデータベース６１に複製（コピー）する。
【００４５】
これにより、本実施形態では、マスタースレーブ構成をもつデータベースにおいて、大量のデータによるデータベースへの更新処理を、より短時間で効率よく行うことができる。すなわち、本実施形態では、トランザクションデータによる更新処理はマスターデータベース６３ではなく、所定のスレーブデータベース６１で行われている。このため、所定のスレーブデータベース６１での更新処理の間、マスターデータベース６３は利用可能（参照要求のアクセスが可能）であり、マスターデータベース６３を利用できない時間を、スレーブデータベース６１を一括して複製するごく短い時間に限定することができる。
【００４６】
また、本実施形態では、入力された大量の要求データを所定の数にグループ化して、要求データの解析・チェック処理（Ｓ１２）およびトランザクション生成処理（Ｓ１３）を複数グループで並行して行う。これにより、処理時間を短縮することができる。
【００４７】
なお、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【符号の説明】
【００４８】
１    要求データ処理部
１１  制御部
１２  要求データ解析部
１３  トランザクションデータ生成部
２    スレーブデータベース管理部
２１  トランザクションデータ変換部
２２  識別番号管理部
２３  データベース更新部
２４  データベース複製部
３    マスターデータベース管理部
３１  データベース複製部
４    要求データ
５    トランザクションデータ
６    マスタースレーブ構成のデータベース
６１、６２  スレーブデータベース
６３  マスターデータベース
【図１】
2010277348.tif 000003
【図２】
2010277348.tif 000004
【図３】
2010277348.tif 000005
【図４】
2010277348.tif 000006
【図５】
2010277348.tif 000007
【図６】
2010277348.tif 000008