(57)【特許請求の範囲】
【請求項１】
データ処理を実行する複数のデータベースサーバと、前記複数のデータベースサーバにデータ領域を提供するストレージ装置と、前記複数のデータベースサーバとネットワークを介して接続され、データベース管理システムを有し、トランザクションを分割して前記複数のデータベースサーバに割り当てる管理サーバと、を備え、前記複数のデータベースサーバによってアクセスされるデータ領域が互いに重複しない無共有型データベースシステムの構成変更方法であって、
前記データベースサーバは、前記ネットワークと接続する第１インターフェイスと、前記第１インターフェイスと接続される第１プロセッサと、前記第１プロセッサと接続される第１メモリと、を備え、
前記管理サーバは、前記ネットワークと接続する第２インターフェイスと、前記第２インターフェイスと接続される第２プロセッサと、前記第２プロセッサと接続される第２メモリと、を備え、
前記第２プロセッサは、
前記トランザクションを分割するとき、前記第２メモリに前記トランザクションと前記トランザクションが実行されるデータ領域との対応情報を記録し、
前記複数のデータベースサーバの構成を変更するとき、移動するデータ領域を特定し、
前記対応情報に基づいて、前記特定されたデータ領域が移動可能であるか否かを判定し、
前記特定されたデータ領域が移動可能と判定されたとき、前記データベース管理システムを停止せずに前記特定されたデータ領域を移動することを特徴とする構成変更方法。
【請求項２】
前記第２プロセッサは、データベースサーバの追加又は削除の指定欄と、前記追加又は削除されるデータベースサーバの識別子の入力欄と、前記データベース管理システムの停止可否の指定欄と、を含む入力画面を生成して、構成変更条件の入力を求め、
前記第２プロセッサは、前記入力された構成変更条件に基づいて、前記複数のデータベースサーバの構成を変更することを特徴とする請求項１に記載の構成変更方法。
【請求項３】
前記第２プロセッサは、前記データ領域でトランザクションが実行されているか否かを判定し、トランザクションが実行されていないデータ領域を移動可能と判定することを特徴とする請求項１に記載の構成変更方法。
【請求項４】
前記第２プロセッサは、トランザクションが実行されているデータ領域を移動可能と判定したとき、前記移動可能と判定されたデータ領域で実行中のトランザクションの終了を待ってデータ領域を移動することを特徴とする請求項１に記載の構成変更方法。
【請求項５】
前記第２プロセッサは、データベースサーバの追加又は削除の指定欄と、前記追加又は削除されるデータベースサーバの識別子の入力欄と、前記データベース管理システムの停止可否の指定欄と、移動対象となるデータ領域の指定欄と、前記移動対象となるデータ領域の割当方法の指定欄と、を含む入力画面を生成して、構成変更条件の入力を求め、
前記第２プロセッサは、前記入力された構成変更条件に基づいて、前記複数のデータベースサーバの構成を変更することを特徴とする請求項４に記載の構成変更方法。
【請求項６】
前記第２プロセッサは、トランザクションが実行されているデータ領域を移動可能と判定したとき、前記実行中のトランザクションを中断し、中断されたトランザクションを実行前の状態に回復し、前記移動対象のデータ領域を移動した後、移動後のデータ領域に対してトランザクションを実行することを特徴とする請求項１に記載の構成変更方法。
【請求項７】
前記第２プロセッサは、データベースサーバの追加又は削除の指定欄と、前記追加又は削除されるデータベースサーバの識別子の入力欄と、前記データベース管理システムの停止可否の指定欄と、移動対象となるデータ領域の指定欄と、前記移動対象となるデータ領域の割当方法の指定欄と、トランザクションの中断有無の指定欄と、トランザクションを中断するとき、前記中断されるトランザクションを選択する基準の指定欄と、を含む入力画面を生成して、構成変更条件の入力を求め、
前記第２プロセッサは、前記入力された構成変更条件に基づいて、前記複数のデータベースサーバの構成を変更することを特徴とする請求項６に記載の構成変更方法。
【請求項８】
データ処理を実行する複数のデータベースサーバと、前記複数のデータベースサーバにデータ領域を提供するストレージ装置と、前記複数のデータベースサーバとネットワークを介して接続され、データベース管理システムを有し、トランザクションを分割して前記複数のデータベースサーバに割り当てる管理サーバと、を備え、前記複数のデータベースサーバによってアクセスされるデータ領域が互いに重複しない無共有型データベースシステムの管理サーバであって、
前記ネットワークと接続するインターフェイスと、前記インターフェイスと接続されるプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリと、を備え、
前記プロセッサは、前記プログラムを実行することによって、
前記複数のデータベースサーバがアクセスするデータ領域に応じてトランザクションを分割し、前記データ領域を占有するデータベースサーバに前記分割したトランザクションの実行を指示するトランザクション制御部と、
前記データベースサーバがアクセスするデータ領域を記録する領域サーバ対応情報と、
前記データベースサーバと前記データベースサーバがアクセスするデータ領域との対応を変更することによって、システムの構成を変更する構成変更制御部と、を構成し、
前記トランザクション制御部は、前記トランザクションを分割するとき、前記メモリに前記トランザクションと前記トランザクションが実行されるデータ領域との対応情報を記録し、
前記構成変更制御部は、
前記複数のデータベースサーバの構成を変更するとき、移動するデータ領域を特定し、
前記対応情報に基づいて、前記特定されたデータ領域が移動可能であるか否かを判定し、
前記特定されたデータ領域が移動可能と判定されたとき、前記データベース管理システムを停止せずに前記特定されたデータ領域を移動することを特徴とする管理サーバ。
【請求項９】
前記プロセッサは、データベースサーバの追加又は削除の指定欄と、前記追加又は削除されるデータベースサーバの識別子の入力欄と、データベースの停止可否の指定欄と、を含む入力画面を生成して、構成変更条件の入力を求め、
前記構成変更制御部は、前記入力された構成変更条件に基づいて、前記複数のデータベースサーバの構成を変更することを特徴とする請求項８に記載の管理サーバ。
【請求項１０】
前記プロセッサは、データベースサーバの追加又は削除の指定欄と、前記追加又は削除されるデータベースサーバの識別子の入力欄と、前記データベース管理システムの停止可否の指定欄と、移動対象となるデータ領域の指定欄と、前記移動対象となるデータ領域の割当方法の指定欄と、を含む入力画面を生成して、構成変更条件の入力を求め、
前記構成変更制御部は、前記入力された構成変更条件に基づいて、トランザクションが実行されているデータ領域を移動可能と判定し、トランザクションが実行されているデータ領域を移動可能と判定したとき、移動可能と判定されたデータ領域で実行中のトランザクションの終了を待ってデータ領域を移動することを特徴とする請求項８に記載の管理サーバ。
【請求項１１】
前記プロセッサは、データベースサーバの追加又は削除の指定欄と、前記追加又は削除されるデータベースサーバの識別子の入力欄と、前記データベース管理システムの停止可否の指定欄と、移動対象となるデータ領域の指定欄と、前記移動対象となるデータ領域の割当方法の指定欄と、トランザクションの中断有無の指定欄と、トランザクションを中断するとき、前記中断されるトランザクションを選択する基準の指定欄と、を含む入力画面を生成して、構成変更条件の入力を求め、
前記構成変更制御部は、前記入力された構成変更条件に基づいて、トランザクションが実行されているデータ領域を移動可能と判定し、トランザクションが実行されているデータ領域を移動可能と判定したとき、前記実行中のトランザクションを中断し、中断したトランザクションを実行前の状態に回復し、前記移動対象のデータ領域を移動した後、移動後のデータ領域に対してトランザクションを実行することを特徴とする請求項８に記載の管理サーバ。
【請求項１２】
データ処理を実行する複数のデータベースサーバと、前記複数のデータベースサーバにデータ領域を提供するストレージ装置と、前記複数のデータベースサーバとネットワークを介して接続され、データベース管理システムを有し、トランザクションを分割して前記複数のデータベースサーバに割り当てる管理サーバと、を備え、前記複数のデータベースサーバによってアクセスされるデータ領域が互いに重複しない無共有型データベースシステムであって、
前記データベースサーバは、前記ネットワークと接続する第１インターフェイスと、前記第１インターフェイスと接続される第１プロセッサと、前記第１プロセッサによって実行されるプログラムを格納する第１メモリと、を備え、
前記管理サーバは、前記ネットワークと接続する第２インターフェイスと、前記第２インターフェイスと接続される第２プロセッサと、前記第２プロセッサによって実行されるプログラムを格納する第２メモリと、を備え、
前記第１プロセッサは、前記第１メモリに格納されたプログラムを実行することによって、
前記管理サーバから指示を受けたトランザクションを実行するトランザクション実行部と、
前記トランザクションを実行するデータ領域を記録する領域管理情報と、
前記領域管理情報を更新する領域管理部と、を構成し、
前記第２プロセッサは、前記第２メモリに格納されたプログラムを実行することによって、
前記複数のデータベースサーバがアクセスするデータ領域に応じてトランザクションを分割し、前記データ領域を占有するデータベースサーバに前記分割したトランザクションの実行を指示するトランザクション制御部と、
前記データベースサーバがアクセスするデータ領域が記録される領域サーバ対応情報と、
前記データベースサーバと前記データベースサーバがアクセスするデータ領域との対応を変更することによって構成を変更する構成変更制御部と、を構成し、
前記トランザクション制御部は、前記トランザクションを分割するとき、前記第２メモリに前記トランザクションと前記トランザクションが実行されるデータ領域との対応情報を記録し、
前記構成変更制御部は、
前記複数のデータベースサーバの構成を変更するとき、移動するデータ領域を特定し、
前記対応情報に基づいて、前記特定されたデータ領域が移動可能であるか否かを判定し、
前記特定されたデータ領域が移動可能と判定されたとき、前記データベース管理システムを停止せずに前記特定されたデータ領域を移動することを特徴とする無共有型データベースシステム。
【請求項１３】
前記管理サーバは、データベースサーバの追加又は削除の指定欄と、前記追加又は削除されるデータベースサーバの識別子の入力欄と、前記データベース管理システムの停止可否の指定欄と、を含む入力画面を生成して、構成変更条件の入力を求め、
前記構成変更制御部は、前記入力された構成変更条件に基づいて、前記複数のデータベースサーバの構成を変更することを特徴とする請求項１２に記載の無共有型データベースシステム。
【請求項１４】
前記構成変更制御部は、前記データ領域でトランザクションが実行されているか否かを判定し、トランザクションが実行されていないデータ領域を移動可能と判定することを特徴とする請求項１２に記載の無共有型データベースシステム。
【請求項１５】
前記構成変更制御部は、トランザクションが実行されているデータ領域を移動可能と判定したとき、移動可能と判定されたデータ領域で実行中のトランザクションの終了を待ってデータ領域を移動することを特徴とする請求項１２に記載の無共有型データベースシステム。
【請求項１６】
前記管理サーバは、データベースサーバの追加又は削除の指定欄と、前記追加又は削除されるデータベースサーバの識別子の入力欄と、前記データベース管理システムの停止可否の指定欄と、移動対象となるデータ領域の指定欄と、前記移動対象となるデータ領域の割当方法の指定欄と、を含む入力画面を生成して、構成変更条件の入力を求め、
前記構成変更制御部は、前記入力された構成変更条件に基づいて、前記複数のデータベースサーバの構成を変更することを特徴とする請求項１５に記載の無共有型データベースシステム。
【請求項１７】
前記構成変更制御部は、トランザクションが実行されているデータ領域を移動可能と判定したとき、前記実行中のトランザクションを中断し、中断したトランザクションを実行前の状態に回復し、前記移動対象のデータ領域を移動した後、移動後のデータ領域に対してトランザクションを実行することを特徴とする請求項１２に記載の無共有型データベースシステム。
【請求項１８】
前記管理サーバは、データベースサーバの追加又は削除の指定欄と、前記追加又は削除されるデータベースサーバの識別子の入力欄と、前記データベース管理システムの停止可否の指定欄と、移動対象となるデータ領域の指定欄と、前記移動対象となるデータ領域の割当方法の指定欄と、トランザクションの中断有無の指定欄と、トランザクションを中断するとき、前記中断されるトランザクションを選択する基準の指定欄と、を含む入力画面を生成して、構成変更条件の入力を求め、
前記構成変更制御部は、前記入力された構成変更条件に基づいて、前記複数のデータベースサーバの構成を変更することを特徴とする請求項１７に記載の無共有型データベースシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無共有型データベース管理システムを構築する構成変更可能な計算機システムに関し、特にシステム構成を変更するときに、データベースを完全に停止することなく構成を変更する技術に関する。
【背景技術】
【０００２】
無共有型データベース管理システム（以下、ＤＢＭＳ）では、トランザクションを処理するＤＢサーバと処理結果を保存するデータ領域が論理的または物理的に１対１に対応する。また、ＤＢＭＳの性能は、各コンピュータ（ノード）が均一な性能を持つ場合には、各ノード上のＤＢサーバのデータ処理量に依存する。そのため、ＤＢＭＳ性能を発揮するためには、各ノードのＤＢサーバのデータ処理量は同量であることが望ましい。
【０００３】
そこで、各ノードのＤＢサーバが処理するデータ領域が不均衡であるとき、ＤＢＭＳに属するノードを追加又は削除して各ノードのデータ処理量を均衡化する。
【０００４】
一方、近年のシステムの複雑化及び大規模化に伴って、ＤＢＭＳが扱うデータ量が増大している。そこで、クラスタ構成を採用して処理能力を高めている。また、クラスタ構成のシステムを構築するプラットフォームとして、容易にノードを追加できるブレードサーバが普及している。
【０００５】
しかし、ブレードサーバは、クラスタを構成するノード数を容易に変更できるため、いかなる構成変更に対応してＤＢＭＳ性能の劣化を抑えるようにＤＢサーバ数及びデータ領域を事前に設計することは困難である。したがって、構成変更前はデータ領域が均等に分割された構成であっても、構成変更後にノード毎のデータ領域の量が不均等となるという問題がある。
【０００６】
そこで、クラスタ構成の無共有型データベース管理システムでは、各ノードのデータ領域の量が不均等となる課題に対し、ＤＢサーバのデータ処理量を再配分することによって、データ処理量を均等化する技術が開示されている（特許文献１参照）。
【特許文献１】特開２００５−１９６６０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１では、無共有型データベース管理システムは、データ領域を物理的又は論理的に複数の領域に分割し、各領域を各ＤＢサーバに割り当てる。そして、ＤＢサーバの総数やノード当たりのＤＢサーバ数が増減すると、各ＤＢサーバの分割されたデータ領域を再配置する。
【０００８】
しかし、特許文献１に記載される技術は、全データ領域のＤＢサーバへの割り当てを変更する技術である。そのため、データ領域の整合性を保証するためにＤＢＭＳがトランザクションを全く実行していない状態を保証する必要がある。したがって、従来技術によって構成を変更するためには、業務が完了するまで待機し、データベースを停止させなければならない問題があった。
【課題を解決するための手段】
【０００９】
本発明の代表的な一形態によると、データ処理を実行する複数のデータベースサーバと、前記複数のデータベースサーバにデータ領域を提供するストレージ装置と、前記複数のデータベースサーバとネットワークを介して接続され、データベース管理システムを有し、トランザクションを分割して前記複数のデータベースサーバに割り当てる管理サーバと、を備え、前記複数のデータベースサーバによってアクセスされるデータ領域が互いに重複しない無共有型データベースシステムの構成変更方法であって、前記データベースサーバは、前記ネットワークと接続する第１インターフェイスと、前記第１インターフェイスと接続される第１プロセッサと、前記第１プロセッサと接続される第１メモリと、を備え、前記管理サーバは、前記ネットワークと接続する第２インターフェイスと、前記第２インターフェイスと接続される第２プロセッサと、前記第２プロセッサと接続される第２メモリと、を備え、前記第２プロセッサは、前記トランザクションを分割するとき、前記第２メモリに前記トランザクションと前記トランザクションが実行されるデータ領域との対応情報を記録し、前記複数のデータベースサーバの構成を変更するとき、移動するデータ領域を特定し、前記対応情報に基づいて、前記特定されたデータ領域が移動可能であるか否かを判定し、前記特定されたデータ領域が移動可能と判定されたとき、前記データベース管理システムを停止せずに前記特定されたデータ領域を移動する。
【発明の効果】
【００１０】
本発明の一形態によれば、データベースを停止させることなく計算機システムの構成を変更することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態を添付図面に基づいて説明する。
【００１２】
（第１の実施の形態）
図１Ａは、第１の実施の形態のデータベースシステムのハードウェア構成を示すブロック図である。
【００１３】
第１の実施の形態のデータベースシステムは、ＤＢ管理ノード１００と、現用系の計算機群２００〜４００と、待機系の計算機群１２００〜１４００とをネットワーク７によって接続するクラスタ構成となっている。ネットワーク７は、例えば、ＩＰネットワークによって構成される。
【００１４】
ＤＢ管理ノード１００は、データベースノード（以下、「ＤＢノード」）２００〜４００を管理するためのデータベース管理システム及びクラスタ管理プログラムを実行する。ＤＢ管理ノード１００は、ＣＰＵ１０１、メモリ１０２、ネットワークインターフェース１０３、及びＩ／Ｏインターフェイス１０４を備える。
【００１５】
ＣＰＵ１０１は、メモリ１０２に格納されたプログラムを実行することによって、各種処理を実行する。メモリ１０２は、ＣＰＵ１０１によって実行されるプログラム及び処理に必要なデータを格納する。
【００１６】
ネットワークインターフェース１０３は、ネットワーク７を介して他の計算機と通信する。Ｉ／Ｏインターフェイス１０４は、ストレージネットワーク４を介してストレージ装置５にアクセスする。ここで，ストレージネットワーク４は、計算機とストレージ装置５を接続するネットワークであり、例えば、ＳＡＮ（Storage Area Network）やｉＳＣＳＩなでであっても良い。
【００１７】
第１の実施の形態の現用系の計算機群は、データベース業務を提供する複数のＤＢノード２００、３００及び４００を備える。
【００１８】
ＤＢノード２００は、ＣＰＵ２０１と、メモリ２０２と、ネットワークインターフェース２０３と、Ｉ／Ｏインターフェイス（ホストバスアダプタ）２０４とを備える。
【００１９】
ＣＰＵ２０１は、メモリ２０２に格納されたプログラムを実行することによって、各種処理を実行する。メモリ２０２は、ＣＰＵ２０１によって実行されるプログラム及び処理に必要なデータを格納する。
【００２０】
ネットワークインターフェース２０３は、ネットワーク７を介して他の計算機と通信する。Ｉ／Ｏインターフェイス２０４は、ストレージネットワーク４を介してストレージ装置５にアクセスする。
【００２１】
なお、ＤＢノード３００及び４００は、ＤＢノード２００と同じハードウェア構成である。
【００２２】
待機系の計算機群は、現用系のＤＢノード２００〜４００に障害が生じたとき、障害が発生したノードの業務を引き継ぐ。待機系の計算機群は、現用系の計算機群のＤＢノード２００〜４００と対応するＤＢノード１２００〜１４００によって構成される。待機系の計算機群のＤＢノード１２００〜１４００は、前述したＤＢノード２００とそれぞれ同じハードウェア構成である。
【００２３】
ストレージ装置５は、複数のディスクドライブを備える。ストレージ装置５は、データ領域７００及びログ領域８００を含む。データ領域７００及びログ領域８００は、現用系のＤＢノード２００〜４００、管理ノード１００及び待機系のノード１２００〜１４００からアクセス可能である。
【００２４】
データ領域７００は、領域（ボリューム）＃Ａ（７３１）〜＃Ｆ（７３６）を含む。データ領域７００に含まれる領域＃Ａ（７３１）〜＃Ｆ（７３６）は、各ＤＢノード２００〜４００のデータベースによって利用されるデータを格納する。
【００２５】
また、ログ領域８００は、領域８４１〜８４３を含む。領域８４１〜８４３は、ＤＢノード２００〜４００のデータベースログを格納する。
【００２６】
ネットワーク７には、クライアント６００が接続される。クライアント６００は、ＤＢ管理ノード１００を介してデータベースを利用する。
【００２７】
図１Ｂは、第１の実施の形態のデータベースシステムのソフトウェアを主体とした機能ブロック図である。前述のように、現用系の計算機群と待機系の計算機群は同じ構成となっているため、図１Ｂでは、待機系の計算機群を省略して記載する。
【００２８】
ＤＢ管理ノード１００は、ＤＢ管理サーバ１１０を含む。ＤＢノード２００は、ＤＢサーバ２２０を含む。また、ＤＢノード３００は、ＤＢサーバ３２０含む。さらに、ＤＢノード４００は、ＤＢサーバ４２０を含む。なお、各ＤＢサーバ２２０、３２０及び４２０の識別子は、それぞれ「ＤＢサーバ（１）」、「ＤＢサーバ（２）」及び「ＤＢサーバ（３）」と表す。
【００２９】
ＤＢサーバ２２０〜４２０は、データ領域７００に含まれる領域＃Ａ（７３１）〜＃Ｆ（７３６）がそれぞれ割り当てられる。また、各ＤＢサーバ２２０〜４２０は、割り当てられた領域を占有してトランザクションを実行する、いわゆる無共有型（Shared-nothing）データベースシステムが構成される。トランザクションとは、依存関係を有するデータ操作要求群である。したがって、異なるトランザクションは、操作対象となるデータに依存関係が無く、独立して処理することが可能である。
【００３０】
さらに、ＤＢサーバ２２０〜４２０は、ログ領域８００に含まれる領域８４１〜８４３が割り当てられる。
【００３１】
ＤＢサーバ２２０は、トランザクション実行部２２１と、回復処理部２２２と、領域管理部２２３と、領域管理表２２４とを含む。トランザクション実行部２２１、回復処理部２２２及び領域管理部２２３は、プログラムであり、プログラムがＣＰＵ２０１に実行されることによって構成される。
【００３２】
トランザクション実行部２２１は、ＤＢ管理サーバ１１０からの処理要求に基づいてトランザクションを実行する。
【００３３】
回復処理部２２２は、トランザクションを中断することによって生じるデータの不整合を、データベースログを用いて、整合性を保つようにデータを回復させる。
【００３４】
領域管理部２２３は、ＤＢサーバ２２０によって占有されるデータ領域を更新する。領域管理表２２４は、ＤＢサーバ２２０が占有するデータ領域の識別子を格納する。
【００３５】
なお、ＤＢサーバ３２０及び４２０は、ＤＢサーバ２２０と同じ構成である。
【００３６】
ＤＢ管理ノード１００は、ＤＢ管理サーバ１１０と、ＤＢ管理コンソール１３０とを含む。ＤＢ管理サーバ１１０は、構成変更制御部１１１と、トランザクション制御部１１２と、回復処理管理部１１３と、領域割当管理部１１４と、領域・サーバ対応表１１５と、トランザクション・領域対応表１１６とを含む。
【００３７】
構成変更制御部１１１は、管理者がＤＢ管理コンソール１３０から入力した構成変更指示を受信し、ＤＢサーバ２２０〜４２０とデータ領域７３１〜７３６との対応付けを変更する。構成の変更とは、特に、このようにＤＢサーバとデータ領域との対応付けを変更することをいう。また、データ領域の割り当てとは、データ領域をＤＢサーバに対応付けることをいう。さらに、データ領域の移動とは、ＤＢサーバが占有するデータ領域を他のＤＢサーバが占有するように変更することをいう。
【００３８】
トランザクション制御部１１２は、クライアント６００から実行の指示を受けたトランザクションを小トランザクションに分割する。小トランザクションは、データ領域ごとに実行される。トランザクション制御部１１２は、各データ領域における小トランザクションの実行がすべて完了すると、実行結果をクライアント６００に送信する。
【００３９】
回復処理管理部１１３は、トランザクションが中断され、データに不整合が生じるおそれがある場合に、ＤＢサーバ２２０〜４２０に対してトランザクション実行前の状態に戻す回復処理を指示する。
【００４０】
領域割当管理部１１４は、ＤＢサーバ２２０〜４２０と各ＤＢサーバが占有するデータ領域とを対応付ける。
【００４１】
領域・サーバ対応表１１５は、ＤＢサーバ２２０〜４２０が占有する各データ領域との対応関係を記録する。
【００４２】
トランザクション・領域対応表１１６は、小トランザクションが実行されているデータ領域を記録する。
【００４３】
ＤＢ管理コンソール１３０は、構成変更指示を入力する構成変更指示入力画面１３１を表示し、管理者からの構成変更指示を受け付ける。
【００４４】
データ領域７００は、複数の領域＃Ａ（７３１）〜＃Ｆ（７３６）から構成される。データ領域＃Ａ（７３１）〜＃Ｆ（７３６）は、それぞれＤＢサーバ２２０〜４２０に割り当てられる。
【００４５】
また、ログ領域８００は、各ＤＢサーバのログ８４１〜８４３を含む。ログ８４１〜８４３は、各ＤＢサーバがデータ領域に対して実行されたトランザクションの情報と、トランザクションの実行による変更情報をコミットの有無とともに格納する。
【００４６】
図２は、第１の実施の形態のＤＢ管理サーバ１１０に格納されるトランザクション・領域対応表１１６の構成図である。
【００４７】
トランザクション・領域対応表１１６は、トランザクション番号９２１と、データ領域９２２と、経過時間９２３と、残り実行予定時間９２４とを含む。トランザクション・領域対応表１１６のレコードは、トランザクションの実行中のみ記録される。すなわち、トランザクションの実行開始とともにレコードが記録され、実行完了とともにレコードが削除される。
【００４８】
トランザクション番号９２１は、クライアント６００からＤＢＭＳに処理が要求されたトランザクションの一意な識別子を格納する。データ領域９２２は、分割された小トランザクションが実行されているデータ領域がそれぞれ格納される。経過時間９２３は、トランザクションが開始されてから経過した時間を格納する。残り実行予定時間９２４は、トランザクションの実行が完了するまでの予測時間を格納する。予測時間の算出については、図１４にて後述する。
【００４９】
なお、第１の実施の形態では、経過時間９２３及び残り実行予定時間９２４は使用されない。
【００５０】
図３は、第１の実施の形態のＤＢ管理サーバ１１０に格納される領域・サーバ対応表１１５の構成図である。
【００５１】
領域・サーバ対応表１１５は、ＤＢサーバ９３１と、データ領域９３２とを含む。
【００５２】
ＤＢサーバ９３１は、ＤＢサーバの一意な識別子を格納する。
【００５３】
データ領域９３２は、指定されたＤＢサーバに割り当てられているデータ領域７００に含まれる各領域の識別子を格納する。
【００５４】
図４は、第１の実施の形態のＤＢサーバ２２０に格納される領域管理表２２４の構成図である。また、ＤＢサーバ３２０及び４２０は、領域管理表２２４と同じ構成の領域管理表３２４及び４２４をそれぞれ格納する。
【００５５】
領域管理表２２４は、ＤＢサーバ２２０が占有するデータ領域７００の各領域の識別子を格納する。
【００５６】
図５は、第１の実施の形態のデータベースシステムの構成を変更する手順を示すフローチャートである。図５では、後述する図７に示した構成変更指示に基づいてデータベースシステムの構成を変更する手順を説明する。なお、領域・サーバ対応表１１５及びトランザクション・領域対応表１１６は、それぞれ図３及び図２に示した内容とする。
【００５７】
まず、管理者は、ＤＢ管理コンソール１３０から構成変更指示を入力する。ＤＢ管理コンソール１３０は、データベースシステムの構成を変更するために、図６に示すＧＵＩによる構成変更指示入力画面１３１を表示する。管理者は、構成変更指示入力画面１３１に必要な情報を入力し、構成変更指示１００１をＤＢ管理サーバ１１０に送信する。
【００５８】
ここで、ＤＢ管理コンソール１３０に表示される構成変更指示入力画面１３１について図６を参照して説明する。
【００５９】
構成変更指示に指定可能な項目は、構成変更種別９０１、対象ＤＢサーバ９０２、データ領域の割当方法９０３、ＤＢＭＳの停止可否９０４、移動対象のデータ領域９０５、トランザクションの中断有無９０６及び中断されるトランザクションの選択方法９０７を含む。また、これらの設定項目は一例であり、システムの態様に応じて適宜項目を追加又は削除することができる。
【００６０】
構成変更種別欄９０１では、構成変更の種類が指定される。例えば、ＤＢサーバの追加又は削除が指定される。
【００６１】
対象ＤＢサーバ欄９０２では、追加又は削除するＤＢサーバの識別子を入力する。ここでは、新たに追加するＤＢサーバの識別子「ＤＢサーバ（３）」を入力する。
【００６２】
データ領域割当方法欄９０３では、構成を変更するために移動するデータ領域を割り当てる方法を指定する。データ領域割当方法には、例えば、各ＤＢサーバが占有するデータ領域の容量がそれぞれ均等になるようにデータ領域を割り当てる方法がある。また、データ領域割当方法には、ＤＢサーバの負荷量を示すデータアクセスの頻度に応じてデータ領域を割り当てる方法を選択できる。さらに、データ領域をＤＢサーバの稼動するＤＢノードの処理能力に応じて割り当てる方法などであってもよい。これらの指定方法を採用する場合には、必要に応じて、データ領域のデータアクセス頻度を示す表又はＤＢノードの処理能力を示す表などを追加するとよい。
【００６３】
ＤＢＭＳ停止可否欄９０４では、構成変更を実行する際に、稼働中のＤＢＭＳを停止するか否かを指定する。
【００６４】
移動対象データ領域欄９０５では、構成変更時に移動対象となるデータ領域を指定する。例えば、全てのデータ領域を移動対象とする指定と、トランザクションが実行されていないデータ領域のみを移動対象とする指定とを選択できる。
【００６５】
トランザクションの中断有無欄９０６では、移動対象のデータ領域に実行中のトランザクションが存在する場合にトランザクションを中断して構成変更するか、又は中断せずに構成変更するかを指定する。
【００６６】
中断トランザクション選択方法欄９０７では、中断対象となったトランザクションが複数存在する場合、優先して中断するトランザクションの選択方法を指定する。例えば、実行中のトランザクションのうち、実行経過時間が小さいトランザクションを選択する指定と、残りの実行予定時間が大きいトランザクションを選択する指定とを選択できる。
【００６７】
ここで、図６に示した構成変更指示入力画面１３１は、一つの代表的なＤＢ管理コンソールの表示画面の例を表したものであり、例えば、構成変更指示に含まれる項目を限定するものではない。また、同様の構成変更指示を与えることができるＣＵＩ（Character-based User Interface）であってもよい。
【００６８】
図７は、第１の実施の形態のＤＢ管理コンソール１３０において指定された構成変更指示の内容を示す図である。
【００６９】
ＤＢ管理コンソール１３０は、構成変更指示画面１３１で指定された構成変更指示を図５の通知１００１として、ＤＢ管理サーバ１１０に送信する。
【００７０】
構成変更指示の各項目９１１〜９１７は、図６のＧＵＩ９０１〜９０７にそれぞれ対応する。
【００７１】
図７を参照すると、第１の実施の形態で実行される構成変更は、ＤＢＭＳを停止せずにＤＢサーバ（３）を追加する。さらに、トランザクションが実行されていないデータ領域を移動対象とし、各ＤＢサーバに割り当てるデータ領域の容量が均等化されるようにデータ領域を割り当てる。なお、トランザクションが実行されていないデータ領域を移動対象とするため、トランザクションの中断９１６及びトランザクションの選択方法９１７は無視される。
【００７２】
ここで、図５のフローチャートの説明に戻る。
【００７３】
ＤＢ管理サーバ１１０の構成変更制御部１１１は、ＤＢ管理コンソール１３０から送信された構成変更指示１００１を受信する（Ｓ１０１）。
【００７４】
構成変更制御部１１１は、構成変更指示１００１のＤＢＭＳ停止可否９１４を参照し、構成変更時にＤＢＭＳの停止を許可するかを判定する（Ｓ１０２）。
【００７５】
構成変更時にＤＢＭＳの停止を許可する場合には（Ｓ１０２の結果が「Ｙ」）、ＤＢＭＳを停止する（Ｓ１０３）。したがって、各ＤＢサーバで実行中の全てのトランザクションは、中断される。
【００７６】
ＤＢＭＳの停止を許可しない場合には（Ｓ１０２の結果が「Ｎ」）、処理Ｓ１０４に移行する。
【００７７】
そして、構成変更制御部１１１は、領域・サーバ対応表１１５及びトランザクション・領域対応表１１６を参照して、トランザクションが実行されていないデータ領域を抽出する（Ｓ１０４）。
【００７８】
ここで、Ｓ１０４の処理について詳細に説明すると、まず、構成変更制御部１１１は、構成変更の対象となり得る全てのデータ領域を抽出する。構成変更制御部１１１は、領域・サーバ対応表１１５のデータ領域９３２に格納されたデータ領域を読み込んで全てのデータ領域を抽出する。図３に示すように、データ領域＃Ａ〜＃Ｆが抽出される。
【００７９】
次に、構成変更制御部１１１は、トランザクションが実行されていないデータ領域を抽出する。このため、構成変更制御部１１１は、トランザクション・領域対応表１１６を参照し、実行中のトランザクション９２１及び各トランザクションが実行されているデータ領域９２２を抽出する。そして、抽出された全データ領域と照合し、トランザクションが実行されているデータ領域９２２を全データ領域から除く。その結果、残ったデータ領域がトランザクションの実行されていないデータ領域となる。
【００８０】
図２を参照すると、トランザクション０３がデータ領域＃Ｂ及び＃Ｅで、トランザクション０４がデータ領域＃Ｃ及び＃Ｆにおいて実行中である。そこで、抽出された全データ領域＃Ａ〜＃Ｆからデータ領域＃Ｂ、＃Ｃ、＃Ｅ及び＃Ｆを除くと、データ領域＃Ａ及び＃Ｄが残る。したがって、トランザクションが実行されていないデータ領域として、データ領域＃Ａ及び＃Ｄが抽出される。
【００８１】
その後、構成変更制御部１１１は、処理Ｓ１０４で抽出したデータ領域から、構成変更指示に従って、移動対象のデータ領域を決定する（Ｓ１０５）。例えば、構成変更種別９１１と、構成変更の対象のＤＢサーバ９１２と、データ領域割当方法９１３に基づいて、指定された条件を最も満たすデータ領域を移動対象のデータ領域として決定する。
【００８２】
ここで、Ｓ１０５の処理について詳細に説明すると、まず、構成変更制御部１１１は、受信した構成変更指示のデータ領域割当方法９１３を参照して、データ領域の割当方法を取得する。第１の実施の形態では、図７を参照すると、データ領域の割当方法は、「データ領域均等化」が指定されている。
【００８３】
次に、構成変更制御部１１１は、構成変更後のＤＢサーバの総数を取得する。構成変更制御部１１１は、領域・サーバ対応表１１５に格納されたレコード数から構成変更前のＤＢサーバ数を取得する。さらに、構成変更指示の構成変更種別９１１の内容から構成変更前のＤＢサーバ数を増減させる。
【００８４】
ここで、図７を参照すると、構成変更種別９１１には「ＤＢサーバ追加」が指定されているため、構成変更前のＤＢサーバ（１）及び（２）に加えて、構成変更後にＤＢサーバ（３）が追加され、ＤＢサーバの総数は３となる。
【００８５】
続いて、構成変更制御部１１１は、領域・サーバ対応表１１５に格納されたデータ９３２からＤＢサーバに割り当てるデータ領域の総数を取得する。図３を参照すると、データ領域の総数は、データ領域＃Ａ〜＃Ｆの６であることがわかる。
【００８６】
また、データ領域割当方法９１３に「データ領域均等化」が指定されているため、構成変更制御部１１１は、１つのＤＢサーバについて割り当てられるデータ領域の数を算出する。前述のように、データ領域の総数が６であり、構成変更後のＤＢサーバの総数は３であるため、各データ領域の容量が均一であれば、一つのＤＢサーバあたり二つのデータ領域を割り当てる。
【００８７】
なお、データ領域の総数が構成変更後のＤＢサーバの総数で割り切れない場合には、できるだけ均等になるようにデータ領域を割り当てる。例えば、余りの数のＤＢサーバ数だけ商＋１で得られる数のデータ領域を割り当て、その他は商として得られた数のデータ領域を割り当ててもよい。
【００８８】
続いて、構成変更制御部１１１は、移動するデータ領域の候補を抽出する。第１の実施の形態では、処理Ｓ１０４で抽出されたデータ領域＃Ａ及び＃Ｄの組み合わせから、データ領域＃Ａのみ、＃Ｄのみ、＃Ａと＃Ｄの両方、の３通りの組み合わせを得ることができる。
【００８９】
ここで、抽出された移動対象のデータ領域の候補の中で、構成変更指示１００１によって指定されたデータ割当方法９１３を最も満足する組み合わせを選択する。前述のように、各ＤＢサーバが占有するデータ領域を均等にするデータ領域の数は、２である。したがって、データ領域＃Ａ及び＃Ｄの両方を新たに追加したＤＢサーバ（３）に割り当てることによって、各ＤＢサーバに割り当てられたデータ領域の容量が均等となる。
【００９０】
さらに、移動するデータ領域の候補が複数あり、どちらを移動しても条件を満足する場合には、データ領域の識別子の昇順又は降順で移動するデータ領域を決定してもよい。
【００９１】
このように、Ｓ１０５の処理で抽出した移動対象のデータ領域をＳ１０４の処理で抽出した移動可能なデータ領域と照合して、データ領域の移動可否を判定する。
【００９２】
なお、第１の実施の形態では、抽出されるデータ領域を自動的に決定する例を示したが、例えば、ＤＢ管理コンソール１３０から移動対象とするデータ領域を管理者が指定してもよい。このとき、移動対象となるデータ領域が処理Ｓ１０４で抽出されたデータ領域に含まれるか否かを判定することも可能である。
【００９３】
Ｓ１０５の処理が完了し、移動対象のデータ領域が決定すると、領域割当管理部１１４は、移動対象のデータ領域を構成変更後のＤＢサーバに割り当てる（Ｓ１０６）。
【００９４】
具体的には、構成変更指示の構成種別９１１が「ＤＢサーバ追加」であるため、まず、領域・サーバ対応表１１５に「ＤＢサーバ（３）」のレコードを追加する。そして、追加したレコードのデータ領域９３２に＃Ａ及び＃Ｄを記録する。さらに、移動するデータ領域＃Ａ及び＃Ｄを占有していたＤＢサーバ（１）及びＤＢサーバ（２）のレコードを更新し、データ領域９３２から＃Ａ及び＃Ｄを削除する。
【００９５】
続いて、領域割当管理部１１４は、各ＤＢサーバに対し、データ領域の割当変更を反映させる（Ｓ１０７）。具体的には、領域割当管理部１１４は、各ＤＢサーバに対してデータ領域割当通知１００２を送信する。各ＤＢサーバは、データ領域の割り当てが完了すると、領域割当管理部１１４にデータ領域割当完了通知１００３を送信する。
【００９６】
ここで、各ＤＢサーバがデータ領域割当通知１００２を受けて実行される処理を説明する。
【００９７】
図８は、指定されたデータ領域を他ノードで稼動中のＤＢサーバに割り当てる処理を示すフローチャートである。ここでは、一例としてＤＢサーバ２２０における処理について説明する。
【００９８】
まず、領域管理部２２３は、ＤＢ管理サーバ１１０からのデータ領域割当通知１００２を受信する（Ｓ２０１）。
【００９９】
次に、領域管理部２２３は、領域管理表２２４の内容を更新する（Ｓ２０２）。図４に示す領域管理表２２４には、データ領域＃Ａ、＃Ｂ及び＃Ｃが登録されている。ＤＢサーバ２２０が占有するデータ領域＃Ａを、新しく追加したＤＢサーバ４２０が占有するように変更する場合は、領域管理表２２４からデータ領域＃Ａを削除する。一方、ＤＢサーバ４２０では領域管理表４２４にデータ領域＃Ａを追加する。
【０１００】
領域管理表２２４の更新が完了すると、領域管理部２２３は、データ領域割当完了通知１００３をＤＢ管理サーバ１１０に通知する（Ｓ２０３）。
【０１０１】
ここで、図５のフローチャートの説明に戻る。
【０１０２】
構成変更制御部１１１は、データ領域割当完了通知１００３を受信すると、ＤＢＭＳを停止したかどうかを判定する（Ｓ１０８）。処理Ｓ１０３にて、ＤＢＭＳを停止していた場合には（Ｓ１０８の結果が「Ｙ」）、ＤＢＭＳを起動する必要があるので、構成変更制御部１１１は、ＤＢＭＳを起動する（Ｓ１０９）。
【０１０３】
ＤＢＭＳの起動が完了した場合又はＤＢＭＳを停止していなかった場合（Ｓ１０８の結果が「Ｎ」）、構成変更制御部１１１は、構成変更完了通知１００４をＤＢ管理コンソール１３０に送信する（Ｓ１１０）。
【０１０４】
以上の処理によって、ＤＢ管理サーバ１１０は、ＤＢＭＳを停止せずに構成を変更することができる。
【０１０５】
ここで、クライアント６００からＤＢ管理サーバ１１０にトランザクションの実行を要求されたとき、トランザクションの実行とともにトランザクション・領域対応表１１６を更新する手順について説明する。
【０１０６】
図９は、クライアント６００から送信されたトランザクションをＤＢ管理サーバ１１０が受信し、実行する手順を示すフローチャートである。
【０１０７】
まず、トランザクション制御部１１２は、クライアント６００からトランザクション１００５を受信する（Ｓ３０１）。
【０１０８】
トランザクション制御部１１２は、受信したトランザクション１００５をデータ領域毎に実行可能な小トランザクションに分割する（Ｓ３０２）。
【０１０９】
トランザクション制御部１１２は、トランザクション１００５と対応する小トランザクションとをトランザクション・領域対応表１１６に登録する（Ｓ３０３）。
【０１１０】
トランザクション制御部１１２は、領域・サーバ対応表１１５を参照して小トランザクションを実行するＤＢサーバをそれぞれ特定し、小トランザクションをそれぞれ特定されたＤＢサーバで実行させるため、小トランザクションの実行要求１００６を送信する（Ｓ３０４）。
【０１１１】
トランザクション制御部１１２は、各ＤＢサーバで小トランザクションの実行が完了すると、完了通知１００８を受信する（Ｓ３０７）。
【０１１２】
そして、トランザクション制御部１１２は、すべての小トランザクションが完了すると、クライアント６００に対してトランザクションの実行結果１００９を送信する（Ｓ３０８）。
【０１１３】
その後、トランザクション制御部１１２は、トランザクション・領域対応表１１６からトランザクション１００５のエントリを削除する（Ｓ３０９）。
【０１１４】
このようにして、ＤＢ管理サーバ１１０は、処理を要求されたトランザクションを小トランザクションに分割し、領域・サーバ対応表１１５を参照して各ＤＢサーバに実行させる。さらに、ＤＢ管理サーバ１１０は、トランザクションと小トランザクションが実行されるデータ領域とをトランザクション・領域対応表１１６に登録することによって、トランザクションが実行されているデータ領域を認識することができる。
【０１１５】
第１の実施の形態によれば、無共有型データベースシステムにおいて、トランザクションが実行されていないデータ領域のみを移動することによって、ＤＢＭＳの稼働中に構成変更を実行することができる。また、ＤＢＭＳの停止が必要な場合は、ＤＢＭＳの停止及び再起動させる構成変更を選択的に実行することも可能である。
【０１１６】
また、第１の実施の形態では、ＤＢサーバを追加してデータ領域を均等化させる構成変更について述べたが、ＤＢサーバを削除する構成変更も可能である。例えば、削除対象となるＤＢサーバに割り当てられたデータ領域を移動対象とすればよい。削除するＤＢサーバ上でトランザクションが実行されている場合には、第１の実施の形態を繰り返し実行してトランザクションの完了を待つことで、削除対象となるＤＢサーバに割り当てられた全てのデータ領域を移動する構成変更を実現することができる。
【０１１７】
（第２の実施の形態）
第１の実施の形態で移動対象となったデータ領域は、トランザクションが実行されていないデータ領域であったが、第２の実施の形態では、全データ領域を移動対象とする。
【０１１８】
第２の実施の形態における構成変更指示は、図７に示した第１の実施の形態の構成変更指示と比較すると、対象データ領域９１５を「全データ領域対象」に指定する。他の項目については、第１の実施の形態と同じである。
【０１１９】
図１０は、第２の実施の形態におけるトランザクション・領域対応表１１６を表した図である。トランザクション・領域対応表１１６は、図２に示す第１の実施の形態と同じ構成である。
【０１２０】
第２の実施の形態では、図１０に示すように、データ領域＃Ａ〜＃Ｆにおいてトランザクションが実行中であるため、トランザクションが実行されていないデータ領域を選択してデータ領域を移動させることができない。そのため、移動対象となるデータ領域でのトランザクションの完了を待ってデータ領域を移動する。
【０１２１】
図１１は、第２の実施の形態のＤＢ管理ノード１００を示す構成図である。第２の実施の形態では、第１の実施の形態のＤＢ管理ノード１００の構成に加えて実行完了待ちの対象となるトランザクション管理する実行完了待ちトランザクション表１１７を備える。実行完了待ちトランザクション表１１７は、実行の完了を待つトランザクション番号９７１と、完了を待つトランザクションが実行されているデータ領域９７２とを含む。
【０１２２】
図１１の実行完了待ちトランザクション表１１７では、実行完了待ちのトランザクションとして「トランザクション０３」が登録されている。また、トランザクション０３が実行されるデータ領域は＃Ｂ及び＃Ｅである。
【０１２３】
また、領域・サーバ対応表１１５など、その他の構成については、第１の実施の形態と同じである。
【０１２４】
続いて、第２の実施の形態の処理について説明する。図１２〜図１４は、第２の実施の形態の構成変更処理の手順を示すフローチャートである。
【０１２５】
図１２は、第２の実施の形態のデータベースシステムの構成を変更する手順を示すフローチャートである。図１２に示すフローチャートは、図５に示す第１の実施の形態のフローチャートと概ね同じ手順である。Ｓ１１１の処理において、トランザクションが実行されていないデータ領域の移動だけでは構成変更指示を満足できなかったとき、トランザクション実行中のデータ領域を移動する点が相違する。
【０１２６】
ここで、トランザクション・領域対応表１１６が第１の実施の形態のように図４に示す状態にある場合には、トランザクションが実行されていないデータ領域を移動させるだけで構成変更指示を満足させることができる。
【０１２７】
一方、第２の実施の形態のように、トランザクション・領域対応表１１６が図１０に示す状態にある場合には、すべてのデータ領域で実行中のトランザクションが存在している。このとき、第１の実施の形態の処理手順（Ｓ１０４〜Ｓ１０７）では、移動可能なデータ領域が存在しないため、構成変更指示１００１を満たすように構成を変更することができない。
【０１２８】
そこで、第２の実施の形態では、処理Ｓ１１１で構成変更指示１００１を満足しているかを判定し（Ｓ１１１）、満たさなかった場合には（Ｓ１１１の結果が「Ｎ」）、図１３に示す処理を実行する。
【０１２９】
図１３は、第２の実施の形態のトランザクションが実行中のデータ領域を移動対象とし、トランザクションの完了を待ってデータ領域を移動する手順を示すフローチャートである。
【０１３０】
構成変更制御部１１１は、構成変更指示１００１のデータ領域割当方法９１５に基づいて、領域・サーバ対応表１１５から移動対象とするデータ領域を抽出する（Ｓ４０１）。トランザクション・領域対応表１１６が図１０に示す内容である場合は、構成変更制御部１１１は、移動対象のデータ領域としてＤＢサーバ（１）のデータ領域＃Ａ〜＃Ｃ、ＤＢサーバ（２）のデータ領域＃Ｄ〜＃Ｆをそれぞれ抽出する。ここで、対象データ領域９１５が「全データ領域対象」で指定されているため、すべてのデータ領域が移動対象となる。
【０１３１】
続いて、構成変更制御部１１１は、トランザクション・領域対応表１１６を参照し、抽出したデータ領域において実行中のトランザクションを抽出する。さらに、実行完了待ちトランザクション表１１７に抽出したトランザクションと、移動対象かつトランザクションが実行中のデータ領域とを登録する（Ｓ４０２）。
【０１３２】
トランザクション・領域対応表１１６を参照すると、トランザクション０３〜０５が実行中となっている。また、トランザクション完了の待ち時間は極力少ないことが望ましいので、構成変更制御部１１１は、残り実行予定時間９６４が最小であるトランザクション０３を選択する。そして、構成変更制御部１１１は、実行完了待ちトランザクション表１１７にトランザクション０３とトランザクション０３が実行されているデータ領域＃Ｂ及び＃Ｅを記録する。
【０１３３】
Ｓ４０２の処理が完了すると、トランザクション制御部１１２は、実行完了待ちトランザクション表１１７に登録されたトランザクションが終了したか否かを判定する（Ｓ４０３）。トランザクションが終了していない場合は（Ｓ４０３の結果が「Ｎ」）、処理Ｓ４０３を繰り返してトランザクションの終了を待機する。
【０１３４】
また、トランザクションの実行が完了すると（Ｓ４０３の結果が「Ｙ」）、領域割当管理部１１４は、実行完了待ちトランザクション表１１７に記録されていたデータ領域を移動させる（Ｓ４０４、Ｓ４０５）。なお、処理Ｓ４０４及びＳ４０５は、第１の実施の形態における図５の処理Ｓ１０６及びＳ１０７と同じ処理である。
【０１３５】
その後、構成管理制御部１１１は、完了したトランザクションを実行完了待ちトランザクション表１１７から削除する（Ｓ４０６）。
【０１３６】
さらに、構成変更制御部１１１は、実行完了待ちトランザクション表１１７に記録されたレコードが存在するか否かを判定することによって、すべてのデータ領域が移動されたか否かを判定する（Ｓ４０７）。
【０１３７】
移動対象の全てのデータ領域が移動を完了していない場合には（Ｓ４０７の結果が「Ｎ」）、構成変更制御部１１１は、Ｓ４０３に処理を戻す。そして、トランザクション制御部１１２は、残りの実行中のトランザクションが完了するまで待機する。
【０１３８】
一方、移動対象のデータ領域の移動がすべて完了した場合には（Ｓ４０７の結果が「Ｎ」）、構成変更制御部１１１は、ＤＢ管理コンソール１３０に構成変更完了通知１００４を通知する（Ｓ４０８）。なお、処理Ｓ４０８は、第１の実施の形態における図５のＳ１０９と同じである。
【０１３９】
ここで、トランザクションの残り実行予定時間を取得する方法について説明する。
【０１４０】
図１４は、小トランザクションの実行終了予定時間を取得するための実行時間情報取得サブルーチンのフローチャートである。実行時間情報取得サブルーチンは、図９に示したフローチャートにおいて、トランザクション制御部１１２が各ＤＢサーバ２２０、３２０、４２０に小トランザクションの実行要求１００６を送信するとともに開始される。そして、実行時間情報取得サブルーチンは、すべての小トランザクションが完了するまでの間、実行がされる。
【０１４１】
トランザクション制御部１１２は、各ＤＢサーバ２２０、３２０、４２０に小トランザクションを実行させると（図９のＳ３０４）、並行して小トランザクションの終了予定時間を含む通知１００７を受信する（Ｓ３０５）。通知１００７は、終了予定時間以外に実行経過時間などを含む。
【０１４２】
トランザクション制御部１１２は、受信した通知１００７と、トランザクションと小トランザクションとの対応関係を基に、トランザクションの実行経過時間と終了予定時間とを算出し、トランザクション・領域対応表１１６の経過時間９６３及び残り実行予定時間９６４を記録する（Ｓ３０６）。
【０１４３】
このようにして、ＤＢ管理サーバ１１０は、実行時間情報取得サブルーチンを実行することによって、トランザクションの残り実行予定時間を取得することができる。
【０１４４】
第２の実施の形態によれば、第１の実施の形態と同様にＤＢＭＳの稼働中にトランザクションが実行されていないデータ領域を移動させて構成を変更することができる。さらに、トランザクションが実行中のデータ領域についても、トランザクションの実行完了後に移動することによって、ＤＢＭＳの構成を変更することができる。したがって、第２の実施の形態によれば、トランザクションを中断させずに、データベースを停止させることなく、構成を変更することができる。
【０１４５】
また、第２の実施の形態では、ＤＢサーバを追加する場合について述べたが、第１の実施の形態と同様にＤＢサーバを削減する場合にも適用することができる。
【０１４６】
（第３の実施の形態）
第３の実施の形態では、実行中のトランザクションを中断して構成を変更する。図７に示した第１の実施の形態の構成変更指示と比較すると、第３の実施の形態では対象データ領域９１５が「全データ領域」となり、トランザクション中断９１６が「中断有り」となる。さらに、トランザクションの選択方法９１７は、「経過時間小」が指定される。他の項目については、第１の実施の形態と同じである。
【０１４７】
また、トランザクション・領域対応表１１６は、図１０に示した内容と同じである。さらに、領域・サーバ対応表１１５は、図３に示した内容と同じである。
【０１４８】
第３の実施の形態では、まず、図１２に示す第２の実施の形態のフローチャートと共通の手順を実行する。そして、処理Ｓ１１１において、構成変更制御部１１１は、トランザクションが実行されていないデータ領域を移動するだけでは指定された構成変更指示を満たすことができなかったとき、図１５に示すフローチャートに移行する。
【０１４９】
図１５は、第３の実施の形態のデータベースシステムの構成を変更する手順を示すフローチャートである。図１５に示すフローチャートは、図１３に示す第２の実施の形態のフローチャートと概ね同じ手順である。具体的には、図１５の処理Ｓ４０１〜Ｓ４０８は、図１３の処理Ｓ４０１〜Ｓ４０８と同じ処理である。第３の実施の形態では、処理Ｓ４０１の後に処理Ｓ４０９が追加されている点が相違する。
【０１５０】
構成変更制御部１１１は、処理Ｓ４０１が終了すると、処理Ｓ４０９を実行する。構成変更制御部１１１は、構成変更指示１００１のトランザクション中断９１６にトランザクションの中断が許可されているかどうかを判定する（Ｓ４０９）。トランザクションの中断が許可されていない場合には（Ｓ４０９の結果が「Ｎ」）、構成変更制御部１１１は、処理Ｓ４０２を実行する。この場合には、第２の実施の形態と同じ処理となる。一方、トランザクションの中断が許可されている場合には（Ｓ４０９の結果が「Ｙ」）、構成変更制御部１１１は、図１６に示すフローチャートを実行する。
【０１５１】
図１６は、第３の実施の形態のトランザクションを中断してデータ領域を移動する手順を示したフローチャートである。
【０１５２】
まず、トランザクション制御部１１２は、中断するトランザクションを決定する（Ｓ５０１）。中断するトランザクションは、処理Ｓ４０１で取得したデータ領域からトランザクション・領域対応表１１６を参照してトランザクションを抽出し、構成変更指示１００１のトランザクション選択方法９１７に従って選択される。
【０１５３】
前述のように、第３の実施の形態では、トランザクション選択方法９１７は、「経過時間小」が指定されている。トランザクション制御部１１２は、図１０のトランザクション・領域対応表１１６を参照し、経過時間９２３が最小である「トランザクション０５」を選択する。
【０１５４】
次に、Ｓ５０２の処理では、トランザクション制御部１１２は、中断するトランザクションを実行するＤＢサーバにトランザクションの中断指示１０１０を送信する。トランザクション制御部１１２は、トランザクション・領域対応表１１６を参照してデータ領域を取得し、取得したデータ領域の識別子から領域・サーバ対応表１１５を参照してＤＢサーバを抽出する。前述のように、中断するトランザクションには「トランザクション０５」が選択されているため、トランザクション・領域対応表１１６を参照すると、対象となるデータ領域は、領域＃Ａ及び＃Ｄとなる。さらに、領域・サーバ対応表１１５を参照すると、領域＃Ａ及び＃Ｄは、ＤＢサーバ（１）及びＤＢサーバ（２）によって占有されている。したがって、ＤＢ管理サーバ１１０は、ＤＢサーバ（１）及びＤＢサーバ（２）に対してトランザクションの中断を指示する。
【０１５５】
ここで、実行中のトランザクションを中断する手順について説明する。図１７は、ＤＢ管理サーバ１１０の指示によりＤＢサーバが実行中のトランザクションを中断する手順を示すフローチャートである。ＤＢサーバ２２０を例として説明する。
【０１５６】
ＤＢサーバ２２０のトランザクション実行部２２１は、まず、ＤＢ管理サーバ１１０からトランザクション中断要求１０１０を受信する（Ｓ６０１）。
【０１５７】
トランザクション実行部２２１は、指定されたトランザクションの実行を中断する（Ｓ６０２）。
【０１５８】
トランザクションの中断が完了すると、トランザクション実行部２２１は、中断完了通知１０１１をＤＢ管理サーバ１１０に送信する（Ｓ６０３）。
【０１５９】
図１６のフローチャートの説明に戻る。
【０１６０】
トランザクション制御部１１２は、トランザクション中断完了通知１０１１を各ＤＢサーバから受信すると、処理Ｓ５０３を実行する。
【０１６１】
回復処理管理部１１３は、トランザクションの中断が完了すると、データ領域をトランザクション実行前の状態に回復させる（Ｓ５０３）。回復処理管理部１１３は、中断したトランザクションを実行していたＤＢサーバに対し、いわゆるロールバックを実行するように指示する（１０１２）。
【０１６２】
ここで、中断されたトランザクションの整合性を回復する手順について説明する。図１８は、トランザクションを強制終了させることによって生じる不整合を回復する処理を示すフローチャートである。ＤＢサーバ２２０を例として説明する。
【０１６３】
ＤＢサーバ２２０の回復処理部２２２は、まず、ＤＢ管理サーバ１１０から中断されたトランザクションの回復処理要求１０１２を受信する（Ｓ７０１）。
【０１６４】
回復処理部２２２は、ログ領域８００から中断されたトランザクションのログを読み込み、データ領域を回復させる（Ｓ７０２）。
【０１６５】
回復処理部２２２は、データ領域の回復が完了すると、回復処理完了通知をＤＢ管理サーバ１１０に送信する（Ｓ７０３）。
【０１６６】
ここで、図１６のフローチャートの説明に戻る。
【０１６７】
回復処理管理部１１３は、各ＤＢサーバでロールバックが完了して回復完了通知１０１３を受信すると、処理Ｓ５０４を実行する。
【０１６８】
続いて、領域割当管理部１１４は、データ領域を移動させる（Ｓ５０４、Ｓ５０５）。なお、処理Ｓ５０４及びＳ５０５は、図７の処理Ｓ１０５及びＳ１０６と同じ処理である。領域管理部２２３は、図１５の処理Ｓ４０１で抽出されたデータ領域を占有するＤＢサーバを変更する。
【０１６９】
データ領域の移動が完了すると、構成が変更され、処理Ｓ４０１で抽出したデータ領域は、新たなＤＢサーバに割り当てられている。さらに、処理Ｓ５０１で抽出され、実行が中断されたトランザクションはロールバックされているため、データは整合性が確保された状態となっている。
【０１７０】
その後、トランザクション制御部１１２は、中断したトランザクションを再実行する（Ｓ５０６〜Ｓ５０８）。処理Ｓ５０６〜Ｓ５０８は、図９の処理Ｓ３０２〜Ｓ３０４と同じ処理である。
【０１７１】
トランザクション制御部１１２は、まず、中断したトランザクションを構成変更後のデータ領域で実行する小トランザクションに分割する（Ｓ５０６）。次に、トランザクション制御部１１２は、トランザクション・領域対応表１１６を更新する（Ｓ５０７）。その後、トランザクション制御部１１２は、各ＤＢサーバに小トランザクションの再実行要求１０１４を送信する（Ｓ５０８）。
【０１７２】
このようにして、トランザクション制御部１１２は、処理Ｓ５０１及びＳ５０２によって中断されたトランザクションを構成変更後に再度実行する。したがって、ＤＢ管理サーバ１１０は、中断したトランザクションの実行を構成変更後において保証することができる。
【０１７３】
中断したトランザクションを再実行し、構成変更が完了すると、構成変更制御部１１１は、ＤＢ管理コンソール１３０に構成変更完了１００４を通知する（Ｓ５０９）。
【０１７４】
第３の実施の形態によれば、実行中のトランザクションを中断して構成を変更する。中断したトランザクションをロールバックしてトランザクション実行前の状態に回復させ、構成変更後に再度トランザクションを実行することによって、データの整合性を保証することができる。したがって、トランザクションが未実行のデータ領域が存在せず、さらに、実行中のトランザクションの完了に時間を要する場合であっても、構成の変更を迅速に完了させることができる。
【０１７５】
また、第３の実施の形態では、ＤＢサーバを追加する場合について述べたが、第１の実施の形態及び第２の実施の形態と同様に、ＤＢサーバを削減する場合にも適用することができる。
【産業上の利用可能性】
【０１７６】
本発明は、無共有型データベース管理システムに適用することができる。特に、連続稼働を要求されるシステムに適用すると好適である。
【図面の簡単な説明】
【０１７７】
【図１Ａ】第１の実施の形態の無共有型データベースシステムのハードウェア構成を示すブロック図である。
【図１Ｂ】第１の実施の形態の無共有型データベースシステムのソフトウェアを主体とした機能ブロック図である。
【図２】第１の実施の形態のトランザクションとトランザクションが実行されるデータ領域とを対応づけるトランザクション・領域対応表の構成を示す図である。
【図３】第１の実施の形態のデータ領域とデータ領域を占有するＤＢサーバとを対応づける領域・サーバ対応表の構成を示す図である。
【図４】第１の実施の形態の各ＤＢサーバが占有するデータ領域を記録する領域管理表の構成を示す図である。
【図５】第１の実施の形態のトランザクション未実行のデータ領域を対象に構成を変更する手順を示すフローチャートである。
【図６】第１の実施の形態の構成変更を指示するＤＢ管理コンソールのＧＵＩを示す図である。
【図７】第１の実施の形態のＤＢ管理コンソールのＧＵＩによって指示される構成変更指示を示す図である。
【図８】第１の実施の形態の各ＤＢサーバにおいて占有するデータ領域を変更する処理を示すフローチャートである。
【図９】第１の実施の形態のＤＢ管理サーバが受信したトランザクションを各ＤＢサーバに実行させる処理を示すフローチャートである。
【図１０】第２の実施の形態のトランザクションとトランザクションが実行されるデータ領域とを対応づけるトランザクション・領域対応表の構成を示す図である。
【図１１】第２の実施の形態のＤＢ管理サーバのブロック図である。
【図１２】第２の実施の形態のトランザクション未実行のデータ領域を対象に構成変更を実行する手順を示すフローチャートである。
【図１３】第２の実施の形態の実行中のトランザクションの終了を待って構成変更を実行する手順を示すフローチャートである。
【図１４】第２の実施の形態のトランザクションの実行時間情報を取得し、トランザクション・領域対応表に実行時間情報を登録する手順を示したフローチャートである。
【図１５】第３の実施の形態の実行中のトランザクションの終了を待って構成を変更する手順を示すフローチャートである。
【図１６】第３の実施の形態の実行中のトランザクションを中断して構成を変更する手順を示すフローチャートである。
【図１７】第３の実施の形態の実行中のトランザクションを中断する手順を示すフローチャートである。
【図１８】第３の実施の形態の中断されたトランザクションによって整合性の保証できないデータを回復させる手順を示すフローチャートである。
【符号の説明】
【０１７８】
１００  ＤＢ管理ノード
１１０  ＤＢ管理サーバ
１１１  構成変更制御部
１１２  トランザクション制御部
１１３  回復処理管理部
１１４  領域割当管理部
１１５  領域・サーバ対応表
１１６  トランザクション・領域対応表
１１７  実行完了待ちトランザクション表
１３０  ＤＢ管理コンソール
２００、３００、４００  ＤＢノード
２２０、３２０、４２０  ＤＢサーバ
２２１、３２１、４２１  トランザクション実行部
２２２、３２２、４２２  回復処理部
２２４、３２４、４２４  領域管理表
６００  クライアント
７００  データ領域
８００  ログ領域
【図１Ａ】
0004813975.tif 000002
【図１Ｂ】
0004813975.tif 000003
【図２】
0004813975.tif 000004
【図３】
0004813975.tif 000005
【図４】
0004813975.tif 000006
【図５】
0004813975.tif 000007
【図６】
0004813975.tif 000008
【図７】
0004813975.tif 000009
【図８】
0004813975.tif 000010
【図９】
0004813975.tif 000011
【図１０】
0004813975.tif 000012
【図１１】
0004813975.tif 000013
【図１２】
0004813975.tif 000014
【図１３】
0004813975.tif 000015
【図１４】
0004813975.tif 000016
【図１５】
0004813975.tif 000017
【図１６】
0004813975.tif 000018
【図１７】
0004813975.tif 000019
【図１８】
0004813975.tif 000020