(57)【要約】【課題】レプリカ表の元となるマスタ表のＤＤＬが予め管理されていなくても、レプリカ表を生成し得る、レプリカ表生成装置、レプリカ表生成方法、及びプログラムを提供する。【解決手段】マスタサイト１２０のマスタ表１２４に対応するレプリカ表１３４をレプリカサイト１３０に生成する、レプリカ表生成装置１１０を用いる。レプリカ表生成装置１１０は、マスタサイト１２０のデータベースからマスタ表１２４の定義情報を取得する、情報取得部１１４と、情報取得部１１４によって取得された定義情報に基づいて、レプリカサイト１３０のデータベースにレプリカ表１３４を生成する、レプリカ表生成部１１２とを備えている。【選択図】図１
2010218219.tif 000002
【特許請求の範囲】
【請求項１】
マスタサイトのマスタ表に対応するレプリカ表をレプリカサイトに生成する、レプリカ表生成装置であって、
前記マスタサイトのデータベースから前記マスタ表の定義情報を取得する、情報取得部と、
前記情報取得部によって取得された前記定義情報に基づいて、前記レプリカサイトのデータベースに前記レプリカ表を生成する、レプリカ表生成部と、
を備えることを特徴とするレプリカ表生成装置。
【請求項２】
前記レプリカ表生成部が、前記レプリケーションの開始時に、前記レプリカサイトのデータベースに前記レプリカ表が存在しているかどうかを判定し、存在していない場合に、前記レプリカ表を生成する、請求項１に記載のレプリカ表生成装置
【請求項３】
前記マスタサイトのデータベースと前記レプリカサイトのデータベースとが、リレーショナルデータベースであり、
前記情報取得部が取得した前記定義情報を用いて、前記レプリカ表を生成するためのＤＤＬを生成するＤＤＬ生成部を更に備え、
前記レプリカ表生成部が、前記ＤＤＬ生成部が生成した前記ＤＤＬを用いて、前記レプリカ表を生成する、請求項１または２に記載のレプリカ表生成装置。
【請求項４】
前記マスタサイト及び前記レプリカサイトそれぞれのＳＱＬが異なっている場合に、
前記ＤＤＬ生成部が、取得した前記定義情報に加えて、前記マスタサイトのＳＱＬと前記レプリカサイトのＳＱＬとの相違点を用いて、前記レプリカ表を生成するための前記ＤＤＬを生成する、請求項３に記載のレプリカ表生成装置。
【請求項５】
前記レプリカ表に対する、予定されたＳＱＬによる操作を解析するＳＱＬ解析部を更に備え、
前記ＤＤＬ生成部が、生成した前記ＤＤＬを、前記ＳＱＬ解析部による解析の結果に適合させる、請求項４に記載のレプリカ表生成装置。
【請求項６】
マスタサイトのマスタ表に対応するレプリカ表をレプリカサイトに生成するためのレプリカ表生成方法であって、
（ａ）前記マスタサイトのデータベースから前記マスタ表の定義情報を取得する、ステップと、
（ｂ）前記（ａ）のステップで取得された前記定義情報に基づいて、前記レプリカサイトのデータベースに前記レプリカ表を生成する、ステップと、
を有することを特徴とするレプリカ表生成方法。
【請求項７】
前記（ｂ）のステップで、前記レプリケーションの開始時に、前記レプリカサイトのデータベースに前記レプリカ表が存在しているかどうかを判定し、存在している場合に、前記レプリカ表を生成する、請求項６に記載のレプリカ表生成方法。
【請求項８】
前記マスタサイトのデータベースと前記レプリカサイトのデータベースとが、リレーショナルデータベースであり、
（ｃ）前記（ｂ）のステップの実行前に、前記（ａ）のステップで取得された前記定義情報を用いて、前記レプリカ表を生成するためのＤＤＬを生成する、ステップを更に有し、
前記（ｂ）のステップで、前記（ｃ）のステップで生成した前記ＤＤＬを用いて、前記レプリカ表を生成する、請求項６または７に記載のレプリカ表生成方法。
【請求項９】
前記マスタサイト及び前記レプリカサイトそれぞれのＳＱＬが異なっている場合に、
前記（ｃ）のステップで、前記（ａ）のステップで取得された前記定義情報に加えて、前記マスタサイトのＳＱＬと前記レプリカサイトのＳＱＬとの相違点を用いて、前記レプリカ表を生成するための前記ＤＤＬを生成する、請求項８に記載のレプリカ表生成方法。
【請求項１０】
（ｄ）前記（ｃ）のステップの実行前に、前記レプリカ表に対する、予定されたＳＱＬによる操作を解析する、ステップを更に有し、
前記（ｃ）のステップで、生成した前記ＤＤＬを、前記（ｄ）のステップによる解析の結果に適合させる、請求項９に記載のレプリカ表生成方法。
【請求項１１】
コンピュータによって、マスタサイトのマスタ表に対応するレプリカ表をレプリカサイトに生成するためのプログラムであって、
前記コンピュータに、
（ａ）前記マスタサイトのデータベースから前記マスタ表の定義情報を取得する、ステップと、
（ｂ）前記（ａ）のステップで取得された前記定義情報に基づいて、前記レプリカサイトのデータベースに前記レプリカ表を生成する、ステップと、
を実行させることを特徴とするプログラム。
【請求項１２】
前記（ｂ）のステップで、前記レプリケーションの開始時に、前記レプリカサイトのデータベースに前記レプリカ表が存在しているかどうかを判定し、存在している場合に、前記レプリカ表を生成する、請求項１１に記載のプログラム。
【請求項１３】
前記マスタサイトのデータベースと前記レプリカサイトのデータベースとが、リレーショナルデータベースであり、
（ｃ）前記（ｂ）のステップの実行前に、前記（ａ）のステップで取得された前記定義情報を用いて、前記レプリカ表を生成するためのＤＤＬを生成する、ステップを更に前記コンピュータに実行させ、
前記（ｂ）のステップで、前記（ｃ）のステップで生成した前記ＤＤＬを用いて、前記レプリカ表を生成する、請求項１１または１２に記載のプログラム。
【請求項１４】
前記マスタサイト及び前記レプリカサイトそれぞれのＳＱＬが異なっている場合に、
前記（ｃ）のステップで、前記（ａ）のステップで取得された前記定義情報に加えて、前記マスタサイトのＳＱＬと前記レプリカサイトのＳＱＬとの相違点を用いて、前記レプリカ表を生成するための前記ＤＤＬを生成する、請求項１３に記載のプログラム。
【請求項１５】
（ｄ）前記（ｃ）のステップの実行前に、前記レプリカ表に対する、予定されたＳＱＬによる操作を解析する、ステップを更に前記コンピュータに実行させ、
前記（ｃ）のステップで、生成した前記ＤＤＬを、前記（ｄ）のステップによる解析の結果に適合させる、請求項１４に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レプリケーションで必要となるレプリカ表を生成可能なレプリカ表生成装置、レプリカ表生成方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、サーバ装置での負荷の分散や、ネットワークにおける負荷の軽減を図るため、複数のサイトでのデータの共有を可能とするレプリケーションが注目されている（例えば、特許文献１及び特許文献２参照）。レプリケーションは、あるデータベースと同じ内容のデータベース（レプリカ）を、ネットワーク上に配置し、両者の間でデータの同期を取る仕組みのことである。
【０００３】
また、レプリケーションにおいて、通常、データベースとしては、リレーショナルデータベース（ＲＤＢ：Relational Data Base）が利用される。この場合、レプリケーション元（以下「マスタサイト」）のＲＤＢのレプリケーション対象表（以下「マスタ表」）と、レプリケーション先（以下「レプリカサイト」）のＲＤＢのレプリケーション対象表（以下「レプリカ表」）との間で、データレコードの同期が取られる。
【０００４】
よって、利用者によるレプリカサイトでの業務のため、アプリケーションによってレプリカ表へのアクセスが行われる。更に、レプリケーションは、マスタサイトとなるＲＤＢと、レプリカサイトとなるＲＤＢとが、互いに異種である場合にも適用でき、この場合は、異種ＲＤＢ間でのデータの共有が可能となる。
【０００５】
また、ＲＤＢを用いたレプリケーションを実現するためには、レプリカサイトのＲＤＢ上にデータレコードを格納するためのレプリカ表を事前に生成しておく必要がある。ＲＤＢ上への表の作成は、データ操作や定義を行うための問い合わせ言語であるＳＱＬ（Structured Query Language）のデータ定義言語（ＤＤＬ：Data Definition Language）を用いて行われる。具体的には、システムの管理者が、レプリカ表を生成するための元となるマスタ表のＤＤＬを修正して、レプリカ表のＤＤＬを作成し、これを用いてレプリカサイトのＲＤＢ上にレプリカ表を生成する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１０８６８１号公報
【特許文献１】特開２００５−３０９９２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、ＲＤＢにおいて、表を生成するための定義情報は、ＲＤＢでの管理を容易にするため、ＤＤＬそのものではなく、定義情報を格納した表（以下「システム表」）として、ディレクトリファイル上で管理される。このため、レプリカ表を生成するための元となるマスタ表のＤＤＬは、人の手でライブラリ等によって管理されている必要がある。
【０００８】
しかしながら、レプリカ表の元となるマスタ表のＤＤＬの管理を人の手に委ねた場合は、人為的ミスにより、元となるＤＤＬがライブラリ等に残っていない場合がある。この場合は、レプリカ表の作成に、多くの工数が費やされるという問題が発生する。
【０００９】
また、ＤＤＬは各リレーショナルデータベースの管理システム（ＲＤＢＭＳ：Relation
al Data Base Management System）毎に独自に記述されている場合がある。この場合、異種ＲＤＢ間でのレプリケーションでは、レプリカ表の元となるＤＤＬが残っていないと、更に多くの工数が費やされてしまい、より大きな問題となる。
【００１０】
本発明の目的は、上記問題を解消し、レプリカ表の元となるマスタ表のＤＤＬが予め管理されていなくても、レプリカ表を生成し得る、レプリカ表生成装置、レプリカ表生成方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明におけるレプリカ表生成装置は、マスタサイトのマスタ表に対応するレプリカ表をレプリカサイトに生成する、レプリカ表生成装置であって、
前記マスタサイトのデータベースから前記マスタ表の定義情報を取得する、情報取得部と、
前記情報取得部によって取得された前記定義情報に基づいて、前記レプリカサイトのデータベースに前記レプリカ表を生成する、レプリカ表生成部と、
を備えることを特徴とする。
【００１２】
また、上記目的を達成するため、本発明におけるレプリカ表生成方法は、マスタサイトのマスタ表に対応するレプリカ表をレプリカサイトに生成するためのレプリカ表生成方法であって、
（ａ）前記マスタサイトのデータベースから前記マスタ表の定義情報を取得する、ステップと、
（ｂ）前記（ａ）のステップで取得された前記定義情報に基づいて、前記レプリカサイトのデータベースに前記レプリカ表を生成する、ステップと、
を有することを特徴とする。
【００１３】
更に、上記目的を達成するため、本発明におけるプログラムは、コンピュータによって、マスタサイトのマスタ表に対応するレプリカ表をレプリカサイトに生成するためのプログラムであって、
前記コンピュータに、
（ａ）前記マスタサイトのデータベースから前記マスタ表の定義情報を取得する、ステップと、
（ｂ）前記（ａ）のステップで取得された前記定義情報に基づいて、前記レプリカサイトのデータベースに前記レプリカ表を生成する、ステップと、
を実行させることを特徴とする。
【発明の効果】
【００１４】
以上の特徴により、本発明における、レプリカ表生成装置、レプリカ表生成方法、及びプログラムによれば、レプリカ表の元となるマスタ表のＤＤＬが予め管理されていなくても、レプリカ表を生成することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明の実施の形態１におけるレプリカ表生成装置の概略構成を示すブロック図である。
【図２】図２は、本発明の実施の形態１におけるレプリカ表生成装置の動作を示すフロー図である。
【図３】図３は、本発明の実施の形態１においてレプリカサイトに格納されているシステム表の一例を示す図である。
【図４】図４は、本発明の実施の形態１においてマスタサイトに格納されているシステム表の一例を示す図である。
【図５】図５は、本発明の実施の形態１で生成されたＤＤＬの一例を示す図である。
【図６】図６は、本発明の実施の形態２においてマスタサイトに格納されているシステム表の一例を示す図である。
【図７】図７は、本発明の実施の形態２で生成されたＤＤＬの一例を示す図である。
【発明を実施するための形態】
【００１６】
（実施の形態１）
以下、本発明の実施の形態１における、レプリカ表生成装置、レプリカ表生成方法、及びプログラムについて、図１〜図４を参照しながら説明する。最初に、本実施の形態１におけるレプリカ表生成装置とそれを用いたレプリケーションシステムとの概略構成を図１に基づいて説明する。図１は、本発明の実施の形態１におけるレプリカ表生成装置の概略構成を示すブロック図である。
【００１７】
図１に示すように、本実施の形態におけるレプリカ表生成装置１１０は、マスタサイト１２０及びレプリカサイト１３０と共にレプリケーションシステムを構成する。そして、レプリカ表生成装置１１０は、マスタサイト１２０のマスタ表１２４に対応するレプリカ表１３４をレプリカサイト１３０に生成する。
【００１８】
また、図１に示すように、レプリカ表生成装置１１０は、情報取得部１１４と、レプリカ表生成部１１２とを備えている。情報取得部１１４は、マスタサイト１２０のデータベースからマスタ表１２４の定義情報を取得する。レプリカ表生成部１１２は、情報取得部１１４によって取得された定義情報に基づいて、レプリカサイト１３０のデータベースにレプリカ表１３４を生成する。
【００１９】
本実施の形態において、マスタサイト１２０及びレプリカサイト１３０は、共に、サーバコンピュータによって構築されている。また、マスタサイト１２０のデータベースは、システム表１２２を含むマスタディレクトリファイル１２１と、マスタ表１２４を含むマスタデータベースファイル１２３とによって構成されている。マスタ表１２４の定義情報は、システム表１２２に含まれている。更に、レプリカサイト１３０のデータベースは、システム表１３２を含むレプリカディレクトリファイル１３１と、レプリカ表１３４を含むレプリカデータベースファイル１３３とによって構成されている。
【００２０】
このように、レプリカ表生成装置１１０は、マスタサイト１２０のデータベース上のマスタディレクトリファイル１２１から、マスタ表の定義情報を取得することができる。よって、レプリカ表生成装置１１０によれば、レプリカ表の元となるマスタ表のＤＤＬがライブラリ等によって管理されていなくても、工数をかけることなく、自動的にレプリカ表を生成することが可能となる。
【００２１】
ここで、レプリカ表生成装置１１０の構成について、更に具体的に説明する。本実施の形態１では、レプリカ表生成装置１１０は、後述するようにコンピュータによって実現することができる。また、本実施の形態１では、マスタサイト１２０のデータベースと、レプリカサイト１３０のデータベースとは、共に、リレーショナルデータベース（ＲＤＢ）であるが、それぞれＳＱＬにおいて独自の記述を持っている。両者のＳＱＬの間には相違点が存在する。
【００２２】
そして、マスタサイト１２０とレプリカサイト１３０とのレプリケーションは、異種ＲＤＢシステム間のレプリケーションに相当する。また、マスタサイト１２０のマスタ表１２４とレプリカサイト１３０のレプリカ表１３４とのデータレコードの同期が取られながら、レプリカサイト１３０の業務でレプリカ表に対してアプリケーション１１８からアクセスが行われる。
【００２３】
図１に示すように、本実施の形態１では、レプリカ表生成装置１１０は、情報取得部１１４及びレプリカ表生成部１１２に加えて、レプリケーション制御部１１１と、ＤＤＬ生成部１１３と、情報記録部１１５と、ＳＱＬ解析部１１７とを備えている。
【００２４】
本実施の形態１では、情報取得部１１４は、レプリカ表１３４の元となるマスタ表１２４の定義情報を取得するため、マスタディレクトリファイル１２１に格納されているシステム表１２２にアクセスする。そして、情報取得部１１４は、システム表１２２が管理しているマスタ表１２４の列情報（図４参照）の中から、対象となるマスタ表１２４の表名に基づいて、対象となるマスタ表１２４の列情報をＳＱＬによって検索する。本実施の形態１では、このとき検索されたマスタ表１２４の列情報が定義情報となる。
【００２５】
更に、情報取得部１１４は、ＤＤＬ生成部１１３の一部を構成している。ＤＤＬ生成部１１３は、情報取得部１１４が取得した定義情報を用いて、レプリカ表１３４を生成するためのＤＤＬ１１３ａを生成する。また、上述したように、マスタサイト１２０とレプリカサイト１３０とがＳＱＬにおいて異なっているため、ＤＤＬ生成部１１３は、定義情報に加えて、ＳＱＬの相違点も用いて、ＤＤＬ１１３ａを生成する。
【００２６】
具体的には、本実施の形態１では、情報記録部１１５が、マスタサイト１２０のＳＱＬの独自の記述と、レプリカサイト１３０のＳＱＬの独自の記述とを特定する情報（ＤＢＭＳ−ＳＱＬ情報）を記録している。そして、ＤＤＬ生成部１１３は、レプリカサイト１３０におけるＲＤＢシステムの独自の記述を情報記録部１１５から読み出し、目的のＤＢＭＳ−ＳＱＬ情報を取得する。その後、ＤＤＬ生成部１１３は、定義情報として取得されたマスタ表１２４の列情報と、ＤＢＭＳ−ＳＱＬ情報とを用いて、レプリカ表１３４を生成するためのＤＤＬ１１３ａを生成する。
【００２７】
よって、本実施の形態では、情報記録部１１５により、異種ＲＤＢシステム間のレプリケーションにおいても、レプリカ表１３４の元となるＤＤＬ１１３ａをライブラリなどに管理する必要がなく、又管理していなくても多くの工数が費やされることもない。そして、この場合も、レプリケーションを初めて開始する際に自動でレプリカ表が生成される。
【００２８】
また、ＤＤＬ生成部１１３は、レプリカ表１３４に対する、予定されたＳＱＬによる操作に基づき、ＤＤＬ１１３ａの最適化を行うこともできる。具体的には、図１に示すように、外部のクライアントコンピュータ１１９において、レプリカ表１３４に対してＳＱＬによる操作を行うアプリケーション１１８が実行される予定であるとする。この場合、ＳＱＬ解析部１１７は、ＤＬＬ１１３ａによって生成されるレプリカ表１３４について、アプリケーション１１８からの予定される操作を解析し、解析結果をＤＤＬ生成部１１３に入力する。ＤＤＬ生成部１１３は、ＳＱＬ解析部１１７によって解析された結果を用いて、レプリカサイト１３０の業務に適したレプリカ表１３４が生成されるように、ＤＤＬ１１３ａに修正を加え、最適化を実行する。
【００２９】
また、本実施の形態１では、レプリカ表生成部１１２は、レプリカ表１３４がレプリカサイト１３０のデータベースシステム上に存在しているかどうかを判定し、存在してない場合に、レプリカ表１３４の生成を行っている。具体的には、レプリカ表生成部１１２は、レプリカディレクトリファイル１３１にアクセスし、そこに存在する表の表名を管理しているシステム表１３２に対して、レプリカ表１３４の表名を元にＳＱＬによって検索を実行する。
【００３０】
レプリカ表生成部１１２は、検索の結果、求める表名が見つからなかった場合は、レプリカ表１３４が存在していないと判定する。また、レプリカ表生成部１１２は、判定の結
果を、レプリケーション制御部１１１に通知する。そして、レプリカ表生成部１１２は、存在していない場合に、ＤＤＬ生成部１１３が作成したレプリカ表１３４に対するＤＤＬ１１３ａを用いて、レプリカサイト１３０のデータベースシステム上にレプリカ表１３４を生成する。
【００３１】
レプリケーション制御部１１１は、レプリケーションの制御を行い、マスタ表１２４とレプリカ表１３４とに対し、逐次または特定の時間間隔でデータレコードの同期を実行する。また、レプリケーション制御部１１１は、レプリケーションを初めて開始する際において、レプリカ表生成部１１２からの通知に基づき、レプリケーション対象のレプリカ表１３４がレプリカサイト１３０のデータベースシステム上に存在するか確認する。
【００３２】
そして、確認の結果、レプリカ表１３４が存在しない場合に、レプリケーション制御部１１１は、ＤＤＬ生成部１１３に対して、ＤＤＬ１１３ａの生成を指示する。上述したＤＤＬ生成部１１３によるＤＤＬ１１３ａの生成は、このように、レプリケーション制御部１１１の指示によって開始される。
【００３３】
また、図１に示すように、レプリカ表生成装置１１０には、ＤＢＭＳ−ＳＱＬ情報を情報記録部１１５に入力するため、情報入力装置１１６が接続されている。情報入力装置１１６から、ＤＢＭＳ−ＳＱＬ情報として、マスタサイト１２０及びレプリカサイト１３０それぞれのＲＤＢシステムの独自の記述が情報記録部１１５に入力されると、情報記録部１１５は入力された記述を記録する。
【００３４】
なお、情報入力装置１１６の具体例としては、キーボード等の入力機器や、記録媒体に記憶された情報を読取可能な各種読取装置、ネットワーク等を介して接続された別のコンピュータ等が挙げられる。
【００３５】
次に、本発明の実施の形態１におけるレプリカ表生成装置１１０の動作について図２〜図５を用いて説明する。図２は、本発明の実施の形態１におけるレプリカ表生成装置の動作を示すフロー図である。図３は、本発明の実施の形態１においてレプリカサイトに格納されているシステム表の一例を示す図である。図４は、本発明の実施の形態１においてマスタサイトに格納されているシステム表の一例を示す図である。図５は、本発明の実施の形態１で生成されたＤＤＬの一例を示す図である。
【００３６】
また、本実施の形態１におけるレプリカ表生成方法は、本実施の形態１におけるレプリカ表生成装置１１０を動作させることによって実行することができる。よって、本実施の形態１におけるレプリカ表生成方法の説明は、以下のレプリカ表生成装置１１０の動作の説明に代える。なお、以下の説明においては、適宜図１を参酌する。
【００３７】
図２に示すように、先ずに、レプリケーション制御部１１１が、レプリケーション開始の指示を受ける（ステップＳ４０１）。本実施の形態１では、例えば、マスタ表１２４に含まれる表名Ｔ０１の表と、レプリカ表１３４に含まれる（又は含まれる予定）の表名Ｔ１１の表との間でのレプリケーションの開始が指示される。
【００３８】
具体的には、レプリケーション制御部１１１は、上記のレプリケーションを初めて開始する際、レプリカ表生成部１１２に、対象となるレプリカ表１３４の名称（表名Ｔ１１）と、レプリカサイト１３０のデータベースシステム上での、対象となるレプリカ表（以下「レプリカ表（Ｔ１１）」とする。）の存在の確認を求める命令とを渡す。
【００３９】
次に、レプリカ表生成部１１２は、レプリケーション制御部１１１から、対象となるレプリカ表１３４の名称（表名Ｔ１１）と、レプリカ表（Ｔ１１）の存在の確認命令とを受
け取る。そして、レプリカ表生成部１１２は、レプリカ表（Ｔ１１）がレプリカサイト１３０のデータベース上に存在しているかどうかを確認する（ステップＳ４０２）。
【００４０】
具体的には、レプリカ表生成部１１２は、レプリカディレクトリファイル１３１にアクセスし、そこに構築されたシステム表１３２（図３参照）に対して、レプリカ表１３４の表名Ｔ１１を元に、ＳＱＬによる検索を実行し、判断を行う。システム表１３２は、図３に示すように、レプリカディレクトリファイル１３１に存在する表の表名を管理している。また、この場合、例えば、ＳＱＬとしては、データベースシステムで一般的に使用される検索のＳＱＬ（ＳＥＬＥＣＴ文）が用いられる。また、図３の例では、対象となるレプリカ表１３４（Ｔ１１）は存在していないことになる。
【００４１】
また、ステップＳ４０２の判定が終了すると、レプリカ表生成部１１２は、レプリカ表（Ｔ１１）がレプリカサイト１３０のデータベースシステム上に存在するか存在しないかの結果と、レプリカ表１３４の名称（表名Ｔ１１）とを、レプリケーション制御部１１１に渡す。
【００４２】
ステップＳ４０２の判定の結果、レプリカ表（Ｔ１１）が存在する場合は、レプリケーション制御部１１１は、レプリケーションを開始する（ステップＳ４０９）。ステップＳ４０９では、レプリケーション制御部１１１は、マスタ表１２４（Ｔ０１）とレプリカ表１３４（Ｔ１１）とに対して、逐次または特定の時間間隔でそれぞれのデータレコードを同期させる。
【００４３】
一方、ステップＳ４０２の判定の結果、レプリカ表（Ｔ１１）が存在しない場合は、レプリケーション制御部１１１は、ＤＤＬ生成部１１３に、レプリカ表（Ｔ１１）のＤＤＬ１１３ａを生成する命令と、対象となるマスタ表１２４の表名Ｔ０１及びレプリカ表１３４の表名Ｔ１１とを渡す。これにより、ステップＳ４０３が実行される。
【００４４】
ステップＳ４０３においては、ＤＤＬ生成部１１３は、レプリケーション制御部１１１から、ＤＤＬ１１３ａの生成命令と、表名Ｔ０１及びレプリカ表１３４の表名Ｔ１１とを受け取ると、情報取得部１１４によって、レプリカ表（Ｔ１１）の元となるマスタ表１２４のＴ０１の定義情報を取得する。具体的には、情報取得部１１４は、図４に示すシステム表１２２にアクセスする。システム表１２２は、マスタディレクトリファイル１２１に格納されている。そして、情報取得部１１４は、システム表１２２が管理しているマスタ表１２４の列情報（図４参照）の中から、表名Ｔ０１の列情報をＳＱＬによって検索する。
【００４５】
また、ステップＳ４０３では、検索の際、ＳＱＬとしては、データベースシステムで一般的に使用される検索のＳＱＬ（ＳＥＬＥＣＴ文）を用いることができる。図４に示されたシステム表の場合、マスタ表１２４のＴ０１は、列名Ｃ０１−０１、列名Ｃ０１−０２、列名Ｃ０１−０３の３列から構成されている。
【００４６】
次に、ＤＤＬ生成部１１３は、ステップＳ４０３によってレプリカ表（Ｔ１１）の元となるマスタ表１２４のＴ０１の定義情報を取得すると、レプリカサイト１３０のＲＤＢにおける独自の記述（ＤＢＭＳ−ＳＱＬ情報）を情報記録部１１５から取得する（ステップＳ４０４）。
【００４７】
次に、ＤＤＬ生成部１１３は、ステップＳ４０３で取得したマスタ表（Ｔ０１）の定義情報（列名Ｃ０１−０１、Ｃ０１−０２、Ｃ０１−０３）と、ステップＳ４０４で取得したＤＢＭＳ−ＳＱＬ情報とを用いて、レプリカ表１３４（Ｔ１１）を生成するためのＤＤＬ１１３ａを作成する（ステップＳ４０５）。
【００４８】
具体的には、ステップＳ４０５では、ＤＤＬ生成部１１３は、図５に示すように、データベースシステムで一般的に使用されるＳＱＬ（例えば、ＣＲＥＡＴＥ文）によって、ＤＤＬ１１３ａを生成する。続いて、ＤＤＬ生成部１１３は、ステップＳ４０５が終了すると、ＳＱＬ解析部１１７に対して、レプリカ表１３４（Ｔ１１）にアクセスするアプリケーション１１８の解析命令と、レプリカ表１３４の表名Ｔ１１とを渡す。
【００４９】
次に、ＳＱＬ解析部１１７は、ＤＤＬ生成部１１３からアプリケーション１１８の解析命令とレプリカ表１３４の表名Ｔ１１とを受け取ると、アプリケーション１１８の解析を実行する（ステップＳ４０６）。具体的には、ＳＱＬ解析部１１７は、レプリカ表１３４（Ｔ１１）へのアクセスが予定されるアプリケーション１１８について、予定されるＳＱＬによる操作を解析する。
【００５０】
例えば、ＳＱＬ解析部１１７は、レプリカ表１３４（Ｔ１１）へのアクセスが予定されるアプリケーションのＳＱＬを抽出し、抽出したＳＱＬについて、検索系が多いのか、又は更新系が多いのかを判定する。また、ＳＱＬ解析部１１７は、レプリカ表１３４（Ｔ１１）へのアクセスが予定されるアプリケーションにおいて使用される条件が多い列はどれであるかを判定する。そして、ＳＱＬ解析部１１７は、これらの判定結果を、レプリカ表１３４（Ｔ１１）に対して予定される解析結果として、ＤＤＬ生成部１１３に出力する。
【００５１】
次に、ＤＤＬ生成部１１３は、ＳＱＬ解析部１１７からの解析結果を用いて、ステップＳ４０５で作成されたＤＤＬ１１３ａを、レプリカサイト１３０のレプリカ表１３４（Ｔ１１）をアクセスする業務に適合するように修正する（ステップＳ４０７）。
【００５２】
例えば、ステップＳ４０６において、レプリカ表（Ｔ１１）へのアクセスが予定されるアプリケーション１１８において、検索系の業務が多いと判断されたとする。この場合、ＤＤＬ生成部１１３は、特定の列が検索された場合は、レプリカ表１３４（Ｔ１１）の該当列にインデックスが付加されるように、ＤＤＬ１１３ａを修正することができる。それによって、該当検索系の業務処理は、インデックスの使用によって高速化される。
【００５３】
ステップＳ４０７が終了すると、ＤＤＬ生成部１１３は、レプリケーション制御部１１１に対して、レプリカ表（Ｔ１１）のＤＤＬ１１３ａを生成した旨を通知し、更に、レプリカ表１３４の表名Ｔ１１を渡す。そして、レプリケーション制御部１１１は、これにより、レプリカ表生成部１１２に、レプリカサイト１３０のデータベースシステム上へのレプリカ表（Ｔ１１）の生成命令と、レプリカ表１３４の表名Ｔ１１とを渡す。
【００５４】
次に、レプリカ表生成部１１２は、レプリケーション制御部１１１からレプリカ表（Ｔ１１）の生成命令を受け取ると、ＤＤＬ１１３ａを用いて、レプリカサイト１３０のデータベースシステム上にレプリカ表（Ｔ１１）を生成する。（ステップＳ４０８）。この後、レプリカ表生成部１１２は、レプリケーション制御部１１１に、レプリカ表（Ｔ１１）を生成した旨を通知し、更に、レプリカ表１３４の表名Ｔ１１を渡す。
【００５５】
次に、レプリケーション制御部１１１は、レプリカ表生成部１１２からレプリカ表１３４（Ｔ１１）の生成の通知を受け取ると、レプリカ表（Ｔ１１）がレプリカサイト１３０のデータベースシステム上に存在するので、レプリケーションを開始する（ステップＳ４０９）。
【００５６】
以上のステップＳ４０１〜Ｓ４０９により、レプリケーションが開始されると、レプリケーション制御部１１１は、マスタ表（Ｔ０１）とレプリカ表（Ｔ１１）とに対して、逐次または特定の時間間隔でそれぞれのデータレコードの同期を取る。
【００５７】
また、本実施の形態におけるプログラムは、コンピュータに、図２に示すステップＳ４０１〜Ｓ４０９を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールして実行すれば、本実施の形態におけるレプリカ表生成装置１１０及びレプリカ表生成方法を実現できる。
【００５８】
この場合、コンピュータのＣＰＵ（central processing unit）は、レプリケーション制御部１１１、レプリカ表生成部１１２、ＤＤＬ生成部１１３（情報取得部１１４）、及びＳＱＬ解析部１１７部として機能し、処理を行なう。また、情報記録部１１５は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって実現できる。
【００５９】
以上のように、本実施の形態１では、レプリケーションが開始される際に、マスタサイト１２０のマスタディレクトリファイル１２１からマスタ表１２４の定義情報が自動的に取得され、これを用いてレプリカ表を自動的に生成される。よって、マスタ表１２４のＤＤＬが予めライブラリなどに管理されていなくても良い。また、この場合に、多くの工数がかかることもない。更に、管理者が、一般的なＤＤＬを知らなくても、工数がかかることなく、レプリカサイト１３０にレプリカ表１３４が生成される。
【００６０】
また、本実施の形態１では、各ＲＤＢシステムの独自の記述が記録されており、これらの記述を用いてＤＤＬ１１３ａが生成される。よって、本実施の形態１は、異種ＲＤＢシステム間のレプリケーションシステムにも適用でき、その際、管理者が、それぞれのＲＤＢシステムの独自の記述を知らなくても、工数がかかることなく、レプリカサイト１３０にレプリカ表１３４が自動的に生成される。
【００６１】
更に、本実施の形態１では、レプリカ表にアクセスするアプリケーションによるＳＱＬ操作が解析され、解析結果が、レプリカ表１３４の生成のためのＤＤＬに反映される。よって、本実施の形態１を用いた場合は、自動的に最適なＤＬＬが作成されるので、管理者は、レプリカ表１３４に対する性能等のチューニングを行う必要がない。
【００６２】
（実施の形態２）
次に本発明の実施の形態２における、レプリカ表生成装置、レプリカ表生成方法、及びプログラムについて、図６及び図７を参照しながら説明する。図６は、本発明の実施の形態２においてマスタサイトに格納されているシステム表の一例を示す図である。図７は、本発明の実施の形態２で生成されたＤＤＬの一例を示す図である。
【００６３】
本実施の形態２におけるレプリカ表生成装置では、ＤＤＬ生成部における機能が、実施の形態１において図１に示したレプリカ表生成装置１１０におけるそれと異なっている。それ以外の点については、本実施の形態２におけるレプリカ表生成装置は、図１に示したレプリカ表生成装置１１０と同様に構成されている。また、本実施の形態２におけるレプリカ表生成装置の動作も、図２に示したステップに沿って行われている。以下に相違点について説明する。なお、以下においては適宜図１を参照する。
【００６４】
図４及び図５で示したように、実施の形態１においては、情報取得部１１４（ＤＤＬ生成部１１３）は、定義情報を取得する際に、対象となるマスタ表１２４の列情報全てを取得する。これに対して、本実施の形態２においては、情報取得部１１４は、対象となるマスタ表の列情報の中から幾つかの列情報のみを選択できる。この場合、定義情報は、選択された列情報によって構成される。
【００６５】
具体的には、本実施の形態２では、図４に示したシステム表と共に、図６に示すシステ
ム表もマスタディレクトリファイルに格納されている。図６に示したシステム表では、各表名の列情報のうち、レプリケーションの対象として選択された列情報のみが管理されている。
【００６６】
例えば、図４に示すシステム表では、マスタ表（Ｔ０１）の列情報としては、列名Ｃ０１−０１、列名Ｃ０１−０２、列名Ｃ０１−０３の３列が管理されている。これに対して、図６に示すシステム表では、マスタ表（Ｔ０１）のレプリケーションの対象として選択された列情報として、列名Ｃ０１−０１及び列名Ｃ０１−０３の２列のみが管理されている。そして、ＤＤＬ作成部１１３は、レプリケーション対象となっている列情報（列名Ｃ０１−０１、Ｃ０１−０３）のみを用いて、図７に示すように、レプリカ表（Ｔ１１）を生成するためのＤＤＬを生成する。
【００６７】
このように、本実施の形態２では、マスタサイト１２０のマスタディレクトリファイル１２１には、レプリケーションの対象となる列情報のみを管理するシステム表１２２が配置されている。よって、情報取得部１１４は、対象となるマスタ表の列情報を取得する際に、レプリケーションの対象として選択された列情報のみを取得し、これを定義情報とすることができる。本実施の形態２は、マスタ表の列を選択したレプリカ表に対して有効である。また、本実施の形態２を用いた場合も、実施の形態１で述べた全ての効果を得ることができ、レプリカ表は自動的に生成される。
【産業上の利用可能性】
【００６８】
本発明は、マスタサイトのマスタ表とレプリカサイトのレプリカ表とのデータレコードの同期を取るレプリケーションシステムに有効である。また、本発明は、更に、レプリカサイトの業務でレプリカ表に対してアクセスが行われる異種リレーショナルデータベースシステム間のレプリケーションシステムにも有効である。本発明は、産業上の利用可能性を有するものである。
【符号の説明】
【００６９】
１１０  レプリカ表生成装置
１１１  レプリケーション制御部
１１２  レプリカ表生成部
１１３  ＤＤＬ生成部
１１３ａ  ＤＤＬ
１１４  情報取得部
１１５  情報記録部
１１６  情報入力装置
１１７  ＳＱＬ解析部
１１８  アプリケーション
１１９  クライアントコンピュータ
１２０  マスタサイト（コンピュータ）
１２１  マスタディレクトリファイル
１２２  システム表
１２３  マスタデータベースファイル
１２４  マスタ表
１３０  レプリカサイト（コンピュータ）
１３１  レプリカディレクトリファイル
１３２  システム表
１３３  レプリカデータベースファイル
１３４  レプリカ表
【図１】
2010218219.tif 000003
【図２】
2010218219.tif 000004
【図３】
2010218219.tif 000005
【図４】
2010218219.tif 000006
【図５】
2010218219.tif 000007
【図６】
2010218219.tif 000008
【図７】
2010218219.tif 000009