JP2010218159A - Management device, database management method and program - Google Patents
Management device, database management method and program Download PDFInfo
- Publication number
- JP2010218159A JP2010218159A JP2009063381A JP2009063381A JP2010218159A JP 2010218159 A JP2010218159 A JP 2010218159A JP 2009063381 A JP2009063381 A JP 2009063381A JP 2009063381 A JP2009063381 A JP 2009063381A JP 2010218159 A JP2010218159 A JP 2010218159A
- Authority
- JP
- Japan
- Prior art keywords
- database
- update
- repair process
- repair
- management unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、多重化されたデータベースサーバを備えるデータベース管理システムにおいて管理を行うための、管理装置、データベース管理方法、及びプログラムに関する。 The present invention relates to a management apparatus, a database management method, and a program for performing management in a database management system including multiplexed database servers.
一般に、マルチユーザ環境におけるデータベース管理システムでは、端末装置(データベースクライアント)からのデータベース操作の実行時において、トランザクションの同時実効性制御を考慮する必要がある。このため、追記型のストレージを備えるデータベース管理システムでは、多版式同時実行制御(Multi-Version Concurrency Control)が採用されている(例えば、特許文献1参照。)。 In general, in a database management system in a multi-user environment, it is necessary to consider the concurrent execution control of transactions when executing database operations from a terminal device (database client). For this reason, multi-version concurrency control is employed in a database management system including a write-once storage (see, for example, Patent Document 1).
多版式同時実行制御では、更新前のデータと更新後のデータとの両方が保持されるため、この追記型ストレージを用いた多版式同時実効制御によれば、問い合わせロックの獲得と書き込みロックの獲得との競合が回避される。よって、データベースへのロールバック機能やリカバリ機能の実装が非常に容易となる。 In multi-version concurrent execution control, both pre-update data and post-update data are retained. Therefore, according to multi-version simultaneous execution control using this write-once storage, acquisition of inquiry lock and acquisition of write lock Conflicts with are avoided. Therefore, it is very easy to implement a rollback function and a recovery function in the database.
但し、多版式同時実効制御を採用した場合は、更新が発生する度にデータ領域が消費されていくため、データベース管理システムでは、定期的に不要領域を修復する処理が必要である。不要領域を修復する方法は大きく以下の二つに大別される。 However, when the multi-version simultaneous effective control is adopted, the data area is consumed every time the update occurs, and therefore the database management system needs to periodically repair the unnecessary area. Methods for repairing unnecessary areas are roughly divided into the following two.
一つの方法は、記憶領域に設定されたページ内での不要領域を詰めて、利用可能なデータ領域を作り、データのアドレスと利用可能な領域の大きさとを記憶することによって、データを再利用する方法(以下「部分不要領域修復方法」と呼ぶ。)である。また、別の方法は、ページ間に渡って不要領域を詰め、ページ自体の削減を行う方法(以下「完全不要領域修復方法」と呼ぶ)である。 One method is to recycle data by filling the unnecessary area in the page set in the storage area, creating a usable data area, and storing the address of the data and the size of the usable area. (Hereinafter referred to as “partial unnecessary area repair method”). Another method is a method of reducing unnecessary areas by filling unnecessary areas between pages (hereinafter referred to as “completely unnecessary area repair method”).
上記した方法のうち、部分不要領域修復方法では、修復中のデータ操作の排他対象はページのみであり、データベース管理システムの運用に大きな影響が及ぼされることなく、不要領域を修復することが出来る。 Of the above-described methods, in the partially unnecessary area repair method, only the page is excluded from the data operation being repaired, and the unnecessary area can be repaired without greatly affecting the operation of the database management system.
しかしながら、ページ数自体の削減は行われないため、ページを保存しているファイルが削減されないというデメリットがある。この結果、修復処理が適切に行われず、データの更新や削除に伴いファイルサイズが過大になってしまった場合に、このことを解消することが出来なくなる。そして、例えば全件検索を行う場合にはファイルI/Oが増大し、性能の劣化などが発生する可能性がある。 However, since the number of pages itself is not reduced, there is a demerit that a file storing pages is not reduced. As a result, when the repair process is not performed properly and the file size becomes excessive due to data update or deletion, this cannot be solved. For example, when searching for all items, file I / O increases, which may cause performance degradation.
これに対して、完全不要領域修復方法では、ページ自体の削減が行われるため、ファイルサイズも同様に削減され、上記した部分不要領域修復方法における問題は解消可能である。 On the other hand, in the completely unnecessary area repair method, since the page itself is reduced, the file size is similarly reduced, and the above-described problem in the partially unnecessary area repair method can be solved.
また、データベース管理システムでは、従来から、検索の性能向上や可用性の向上のため、データベースの多重化が行われている。デーベースが多重化されたデータベース管理システムについて、図9を用いて説明する。図9は、従来からの多重化データベース管理システムの一例を示すブロック図である。 Further, in database management systems, conventionally, database multiplexing has been performed in order to improve search performance and availability. A database management system in which databases are multiplexed will be described with reference to FIG. FIG. 9 is a block diagram showing an example of a conventional multiplexed database management system.
図9に示すように、多重化データベース管理システム40は、データベースクライアント30からの問い合わせを受け付ける受付サーバ41と、多重化されたデータベースサー
バ42〜45とを備えている。なお、図9の例では、データベースサーバは4台であるが、一般に、多重化データベース管理システムでは、データベースサーバは2台以上であれば良い。
As illustrated in FIG. 9, the multiplexed
そして、多重化データベース管理システム40では、データベースクライアント30は、全ての問合せを受付サーバ41に対して行う。受付サーバ41は、問い合わせの内容に応じて各データベースと連携し、得た結果をデータベースクライアント30に返却する。
In the multiplexed
例えば、この時、問い合わせが検索であれば、受付サーバ41は、データベースサーバ42〜45の中から負荷の少ないデータベースサーバを選択し、そのデータベースサーバに対して問い合わせを行う。そして、受付サーバ41は、問い合わせの結果を受け取ると、結果を、そのままデータベースクライアント30に返却する。
For example, if the inquiry is a search at this time, the reception server 41 selects a database server with a low load from the
また、問い合わせが更新や削除であれば、受付サーバ41は、データベースサーバ22〜25の全てのデータベースに対して、更新の問い合わせを発行する。そして、全ての処理が終われば、受付サーバ41は、データベースクライアント30に対して、更新結果を返却する。
If the inquiry is update or deletion, the reception server 41 issues an update inquiry to all the databases of the
このように、多重化データベース管理システム40では、データベースサーバ22〜25の全てのデータベースが論理的に同じ情報を保持することとなる。よって、多数のデータベースクライアントが、大量の検索を実施する場合の性能の向上が図られる。更に、データベースサーバに異常が発生した場合は、他のデータベースサーバが補うことにより、データベース管理システム全体の可用性の向上が図られる。
Thus, in the multiplexed
しかしながら、上述したデータベース管理システムで行われる従来からの不要領域の修復や、データベースサーバの多重化には、次のような問題点が存在する。以下に具体的に説明する。 However, there are the following problems in the conventional unnecessary area repair and database server multiplexing performed in the database management system described above. This will be specifically described below.
第一に、従来からの完全不要領域修復方法では、部分不要領域修復方法のような問題は生じないが、不要領域を詰める修復処理の実行時に排他処理が必要であるため、データベース管理システムの運用を停止しなければならいという問題がある。このため、停止時間を取ることができないデータベースでは、完全不要領域修復方法を実施できず、性能の劣化を招くことがある。 First, the conventional completely unnecessary area repair method does not have the same problem as the partially unnecessary area repair method, but the exclusive process is required when executing the repair process to pack the unnecessary area. There is a problem that you have to stop. For this reason, in a database where the stop time cannot be taken, the completely unnecessary area repair method cannot be performed, and the performance may be deteriorated.
第二に、排他処理の問題は、データベースが多重化されていると、より大きな問題となってしまう。具体的には、多重化されたデータベースに対して、完全不要領域修復方法による操作が行われると、全てのデータベースは、不要領域の修復処理が全て終了するまで、問い合わせ結果を返せず、排他処理に必要な時間は、単一のデータベースの場合よりも長時間となってしまう。 Secondly, the problem of exclusive processing becomes a larger problem when databases are multiplexed. Specifically, if an operation using the completely unnecessary area repair method is performed on a multiplexed database, all databases do not return an inquiry result until all unnecessary area repair processing is completed, and exclusive processing is performed. The time required for this is longer than in the case of a single database.
つまり、データベースクライアントから更新の問い合わせが来た場合は、同時に全てのデータベースに対して更新処理をかける必要があるため、このときに、いずれかのデータベースに排他がかかっていると更新を行うことができない状態となる。よって、多重化されたデータベースに対して、完全不要領域修復方法による操作が行われる場合は、各デー
タベースは、全てのデータベースに対する不良領域の修復処理が終了するまで、待機状態となってしまう。
In other words, when an update inquiry comes from a database client, it is necessary to perform update processing on all the databases at the same time. It becomes impossible. Therefore, when an operation by the completely unnecessary area repair method is performed on the multiplexed database, each database is in a standby state until the repair process of the defective area for all the databases is completed.
本発明の目的は、上記問題を解消し、データベース管理システムにおいて、データベースが多重化されている場合であっても、不要領域の修復に関わる排他処理の時間を縮小し得る、管理装置、データベース管理方法、及びプログラムを提供することにある。 SUMMARY OF THE INVENTION An object of the present invention is to solve the above problems, and in a database management system, a management apparatus and database management that can reduce the time of exclusive processing related to repair of unnecessary areas even when the databases are multiplexed It is to provide a method and a program.
上記目的を達成するため、本発明における管理装置は、多重化された複数のデータベースサーバを備えたデータベース管理システムを構成する管理装置であって、
前記複数のデータベースサーバそれぞれにおける不要領域の修復処理を管理する不要領域修復管理部を備え、
前記不要領域修復管理部は、前記複数のデータベースサーバそれぞれにおいて不要領域の修復処理が必要となると、一部の前記データベースサーバに、先に前記修復処理を実行させ、その後、残りの前記データベースサーバに、前記修復処理を実行させる、
ことを特徴とする。
In order to achieve the above object, a management apparatus according to the present invention is a management apparatus constituting a database management system including a plurality of multiplexed database servers,
An unnecessary area repair management unit for managing repair processing of unnecessary areas in each of the plurality of database servers,
When the unnecessary area repair process is required in each of the plurality of database servers, the unnecessary area repair management unit causes some of the database servers to execute the repair process first, and then causes the remaining database servers to perform the repair process. , Causing the repair process to be executed,
It is characterized by that.
上記目的を達成するため、本発明におけるデータベース管理方法は、多重化された複数のデータベースサーバを備えたデータベース管理システムにおいてデータベースの管理を行うための方法であって、
(a)前記複数のデータベースサーバそれぞれにおいて不要領域の修復処理が必要となった場合に、一部の前記データベースサーバに、先に前記修復処理を実行させるステップと、
(b)前記(a)のステップの実行後に、残りの前記データベースサーバに、前記修復処理を実行させるステップと、
を有することを特徴とする。
To achieve the above object, a database management method according to the present invention is a method for managing a database in a database management system having a plurality of multiplexed database servers,
(A) when a repair process of an unnecessary area is required in each of the plurality of database servers, causing some of the database servers to execute the repair process first;
(B) after the execution of the step (a), causing the remaining database servers to execute the repair process;
It is characterized by having.
上記目的を達成するため、本発明におけるプログラムは、多重化された複数のデータベースサーバを備えたデータベース管理システムにおいて、コンピュータに、データベースの管理を行わせるためのプログラムであって、
前記コンピュータに、
(a)前記複数のデータベースサーバそれぞれにおいて不要領域の修復処理が必要となった場合に、一部の前記データベースサーバに、先に前記修復処理を実行させるステップと、
(b)前記(a)のステップの実行後に、残りの前記データベースサーバに、前記修復処理を実行させるステップと、
を実行させることを特徴とする。
To achieve the above object, a program according to the present invention is a program for causing a computer to manage a database in a database management system including a plurality of multiplexed database servers.
In the computer,
(A) when a repair process of an unnecessary area is required in each of the plurality of database servers, causing some of the database servers to execute the repair process first;
(B) after the execution of the step (a), causing the remaining database servers to execute the repair process;
Is executed.
以上の特徴により、本発明における、管理装置、データベース管理方法、及びプログラムによれば、データベース管理システムにおいて、データベースが多重化されている場合であっても、不要領域の修復に関わる排他処理の時間を縮小することが可能となる。 With the above features, according to the management device, the database management method, and the program of the present invention, in the database management system, even when the database is multiplexed, the exclusive processing time related to the repair of the unnecessary area Can be reduced.
(実施の形態1)
以下、本発明の実施の形態1における、管理装置、データベース管理方法、及びプログラムについて、図1〜図6を参照しながら説明する。最初に、管理装置及びそれを備えるデータベース管理システムの構成について図1を用いて説明する。図1は、本発明の実施の形態1における管理装置及びそれを備えるデータベース管理システムの概略構成を示すブロック図である。
(Embodiment 1)
Hereinafter, a management apparatus, a database management method, and a program according to
図1に示すように、本実施の形態1における管理装置21は、多重化された複数のデータベースサーバ22〜25を備えたデータベース管理システム2を構成している。また、本実施の形態1では、デーベース管理装置21には、データベース対して処理を要求するデータベースクライアント1が接続されている。更に、データベースサーバ22〜25は追記型のデータベースであり、データベース管理システム2では、多版式同時実行制御が採用されている。
As shown in FIG. 1, the
なお、図1は、データベースサーバが4台の例を示しているが、本実施の形態1において、データベースサーバの数は限定されるものではなく、2台以上であれば良い。また、図1は、1台のデータクライアント1のみを示しているが、本実施の形態1において、データクライアントの数も限定されるものではない。
Although FIG. 1 shows an example in which there are four database servers, in the first embodiment, the number of database servers is not limited and may be two or more. 1 shows only one
また、図1に示すように、管理装置21は、データベースサーバ22〜25それぞれにおける不要領域の修復処理を管理する不要領域修復管理部212を備えている。不要領域修復管理部21は、データベースサーバ22〜25それぞれにおいて不要領域の修復処理が必要となると、一部のデータベースサーバに、先に修復処理を実行させ、その後、残りのデータベースサーバに、修復処理を実行させる。
As shown in FIG. 1, the
よって、管理装置21によれば、不要領域の修復処理を、例えば、2つのステップに分割して行うことができるため、データベースが多重化されている場合であっても、不要領域の修復に関わる排他処理の時間を縮小できる。このため、不要領域の修復処理が実行中の場合でも、データベースクライアント1は検索処理や更新処理を要求することができる。
Therefore, according to the
ここで、本実施の形態におけるシステム管理装置21及びデータベース管理システム2の構成について具体的に説明する。図1に示すように、管理装置21は、データベースサーバ22〜25に対する外部からの操作要求を管理するクエリ管理部211を備えている。
Here, the structure of the
クエリ管理部211は、データクライアント1に接続され、データクライアント211からの要求、例えば、データの更新、検索等を受け付ける。そして、クエリ管理部211
は、受け付けた要求の内容を確認した後、要求内容に応じて、データサーバ22〜24に対して、問い合わせや、操作の指示を発行し、これらを送信する。データベース管理部21は、クエリ管理部211により、問い合わせ受け付けサーバとして機能している。
The query management unit 211 is connected to the
After confirming the contents of the accepted request, the server issues inquiries and operation instructions to the
また、本実施の形態1において、システム管理装置21とデータベースクライアント1との接続は、ネットワークによって行われている。更に、同様に、システム管理装置21と、データベースサーバ22〜25それぞれとの接続もネットワークによって行われている。
In the first embodiment, the connection between the
また、不要領域修復管理部212は、本実施の形態では、クエリ管理部211から、データベースサーバ22〜25への問い合わせの結果や、これらに対して行った操作の実行結果を受け取る。そして、不要領域修復管理部212は、不要領域の修復処理が指示された各データベースサーバにおける動作状況を判断し、判断結果に応じて、クエリ管理部211に対して指示を行う。
Further, in this embodiment, the unnecessary area repair management unit 212 receives the results of inquiries to the
データベースサーバ22〜25は、それぞれ、同様の構成を備えており、データベース管理部と記憶装置とを備えている。例えば、データベースサーバ22は、データベース管理部221と、記憶装置222とを備えている。データベース管理部221は、クエリ管理部211が発行した問い合わせや操作の指示を受けると、これらの内容を分析し、分析結果に応じて処理を実行する。また、データベース管理部221は、処理の結果をクエリ管理部211に返却する。
Each of the
記憶装置222は、格納が指示されたデータ、インデックスデータ、データベースの統計情報、及びトランザクション情報等のデータベースの運用に必要な情報を記録している。なお、他のデータベースサーバ23、24及び25の構成及び動作は、上述したデータベースサーバ22と同様であり、これらのデータベースサーバについての説明は省略する。
The
次に、本発明の実施の形態1における管理装置21の動作を、図2を用いて説明する。図2は、本発明の実施の形態1における管理装置の動作を示すフロー図である。なお、本実施の形態1におけるデータベース管理方法は、本実施の形態1における管理装置21を動作させることによって実行される。よって、データベース管理方法の説明は、以下の管理装置21の動作の説明に代える。また、以下の説明においては、適宜図1を参酌する。
Next, operation | movement of the
図2に示すように、先ず、クエリ管理部211は、データベースクライアント1が不要領域の修復処理の要求コマンドを発行すると、これを受け付け、不要領域修復管理部212に、不要領域の修復処理の開始を通知する(ステップS1)。
As shown in FIG. 2, first, when the
次に、不要領域修復管理部212は、データベースサーバ22〜25のうちの一部、例えば、データベースサーバ22と23とを修復対象に割り当て、そのことをクエリ管理部211に通知する(ステップS2)。そして、クエリ管理部211は、データベースサーバ22のデータベース管理部221とデータベースサーバ23のデータベース管理部231とに、不要領域の修復処理の指示を発行する。これにより、データベースサーバ22及び23において、不要領域の修復処理が実行される。
Next, the unnecessary area repair management unit 212 allocates a part of the
次に、クエリ管理部211は、データベースクライアント1から、不要領域の修復処理とは別の操作要求、例えば、データの検索を受けた場合は、修復処理の指示を行っていない別のデータベースサーバ24及び25に、求められた処理の実行を指示する(ステップS3)。
Next, the query management unit 211 receives another operation request from the
このとき、データベースクライアント1から、データの更新が指示された場合は、データベースサーバ22及び23に対しては更新を行えないため、クエリ管理部211は、不要領域修復管理部212に更新内容をプールさせる。不要領域修復管理部212は、データベース22及び23において不要領域の修復処理が終了すると、これらに対して、クエリ管理部211を介して更新を行わせる。なお、上述した処理の詳細については後述する。
At this time, when data update is instructed from the
次に、データベースサーバ22及び23において、不要領域の修復処理が終了すると、不要領域修復管理部212は、修復処理が終了していないデータベースサーバ24及び25を修復対象に割り当て、そのことをクエリ管理部211に通知する(ステップS4)。これにより、修復対象となるデータベースが入れ替えられ、全てのデータベースに対する不要領域の修復処理が終了する。そして、ステップS1〜S4までの間、全てのデータベースにおいて同時に不要領域の修復処理が行われることはないため、上述したように、不要領域の修復に関わる排他処理の時間は縮小される。
Next, when the unnecessary area repair process is completed in the
ステップS4の実行後、クエリ管理部211は、通常の運用に戻り、データベースクライアント1から操作要求があった場合は、全てのデータベースに対して、操作要求を実行させる(ステップS5)。
After execution of step S4, the query management unit 211 returns to normal operation, and when there is an operation request from the
次に、管理装置21の動作を更に具体的に説明するため、データベース管理システム2の全体の動作を、図3及び図4を用いて説明する。図3は、本発明の実施の形態1の管理装置によって構成されたデータベース管理システムにおけるアクティビティの変化を示すアクティビティ図である。図4は、本実施の形態1において行われる不要領域修復処理の概念を説明する説明図である。
Next, in order to describe the operation of the
先ず、図3に示すように、データベースクライアント1から、データベース管理システム2全体に対して不要領域の修復処理を要求するコマンドが発行されると、クエリ管理部211は、不要領域の修復処理の要求コマンドを受け付ける(ステップA1)。そして、クエリ管理部211は、不要領域修復管理部212に、不要領域の修復処理の開始を通知する。なお、本実施の形態において行われる修復処理は、背景技術の欄で述べた「完全不要領域修復方法」である。
First, as shown in FIG. 3, when the
次に、不要領域修復管理部212は、データベースサーバ22〜25の半分を修復対象のデータベースサーバに割り当て、残りのデータベースサーバを通常対応のデータベースサーバに割り当て、結果を、クエリ管理部211に通知する(ステップA2)。本実施の形態1では、上述したように、例として、最初、データベースサーバ22と23とが修復対象のデータベースサーバに割り当てられ、データベースサーバ24と25とが通常対応のデータベースサーバに割り当てられるものとして説明する。
Next, the unnecessary area repair management unit 212 allocates half of the
また、ステップA2では、クエリ管理部211は、不要領域の修復処理の指示を、修復対象のデータベースサーバ22のデータベース管理部221と、データベースサーバ23のデータベース管理部231とに対して、発行する。
In step A2, the query management unit 211 issues an instruction for unnecessary area repair processing to the database management unit 221 of the
また、複数の仮想OSを保有可能な1つのコンピュータ上で仮想化された複数のデータベースサーバが動作し、且つ、各仮想マシンのCPUやメモリ等のリソースを動的に別の仮想マシンに移行できる技術が知られている。この技術を本実施の形態1に適用すれば、修復対象の仮想データベースサーバのCPUやメモリのリソースの一部を、通常対応の仮想データベースサーバに移行することができ、運用中のデータベースシステム全体としての性能低下を抑制することができる。 In addition, a plurality of database servers virtualized on one computer capable of holding a plurality of virtual OSs can be operated, and resources such as CPU and memory of each virtual machine can be dynamically migrated to another virtual machine. Technology is known. If this technology is applied to the first embodiment, a part of CPU and memory resources of the virtual database server to be repaired can be migrated to the normal virtual database server, and the entire operating database system The performance degradation can be suppressed.
次に、修復処理の指示を受けたデータベース管理部221(又は231)は、修復対象のデータベースそれぞれのデータを格納している全てのページに対して完全修復操作を実行する(ステップA3)。ここで、ステップA3における修復操作を、図4に基づいて説明する。 Next, the database management unit 221 (or 231) having received the instruction for the repair process executes a complete repair operation for all pages storing the data of each database to be repaired (step A3). Here, the repair operation in step A3 will be described with reference to FIG.
図4に示すように、空き領域を有する連続したページ3及びページ4が存在しているとする。ページ3及び4に対しては、修復処理が未だ行われておらず、これらは解放前の状態にある。ページ3には、ページ管理情報31と、タプルデータ321〜325とが存在している。また、タプルデータ321〜325のうち、有効タプルデータは321と324とであり、削除可能タプルデータは322、323、及び325である。
As shown in FIG. 4, it is assumed that there are
同様に、ページ4には、ページ管理情報31と、タプルデータ421〜425とが存在している。また、タプルデータ421〜425のうち、有効タプルデータは422、423、及び424であり、削除可能タプルデータは421と425とである。
Similarly,
そして、解放前のページ3とページ4とに対して修復処理(完全修復操作)を行い、得られたページが、空き領域解放後のページ5となる。具体的には、データベース管理部は、有効タプルデータ321及び324を、順に、後方に向けて詰めていく操作を実行する。図4の例では、タプルデータ321が最も後方にあるので、タプルデータ324をその後方に向けて移動させ、その位置をページ5のタプルデータ522の位置とする。
Then, a repair process (complete repair operation) is performed on
更に、管理情報31において、削除タプルデータ332、333、及び335のタプル情報は無効化され、管理情報31は、ページ管理情報51に書き換えられる。その後、ページ4の有効タプルデータであるタプルデータ422、423、及び424が、ページ5に書き込まれ、不要となったページ4が削除される。
Further, in the management information 31, the tuple information of the deleted tuple data 332, 333, and 335 is invalidated, and the management information 31 is rewritten to the page management information 51. Thereafter, the tuple data 422, 423, and 424, which are valid tuple data of the
つまり、図4の例では、タプルデータ321がタプルデータ521と等しくなり、タプルデータ324がタプルデータ522と等しくなる。また、タプルデータ422がタプルデータ523と等しくなり、タプルデータ423がタプルデータ524と等しくなり、更にタプルデータ424がタプルデータ525と等しくなる。この結果、有効なタプルのみがページ5に残る。そして、ページ4が削減されて、記憶装置の記憶領域にデータ領域を確保することができる。本実施の形態では、修復処理は、このような手順によって行なわれる。
That is, in the example of FIG. 4, the tuple data 321 is equal to the tuple data 521, and the
また、上述のステップA3と平行して、又はステップA3の実行後に、クエリ管理部211が、データベースクライアント1から、検索や更新等の操作要求を受け取った場合は、ステップBが実行される。ステップBでは、クエリ管理部211は、通常対応のデータベースサーバのデータベース管理部241(又は251)に対して操作を発行する。なお、データベースクライアント1からの操作要求が、更新処理である場合は、不要領域修復管理部212は、更新命令をプールする。ステップBの詳細は、図5を用いて後述する。
Further, when the query management unit 211 receives an operation request such as search or update from the
次に、修復対象データベースサーバにおいて修復処理が完了すると、その情報が、クエリ管理部211へ返却される。更に、ステップA2で対象となったデータベースサーバの修復処理が全て完了すると、クエリ管理部211は、不要領域修復管理部212に対して、対象となっていたデータベースサーバにおいて修復処理が完了したことを通知する(図3のステップA4)。 Next, when the repair process is completed in the repair target database server, the information is returned to the query management unit 211. Furthermore, when all the repair processing of the target database server in step A2 is completed, the query management unit 211 notifies the unnecessary region repair management unit 212 that the repair processing has been completed in the target database server. Notification is made (step A4 in FIG. 3).
次に、不要領域修復管理部212は、修復処理の完了の通知を受けると、ステップBにおいてプールしていた更新処理をクエリ管理部211に対して発行する(ステップA5)。そして、クエリ管理部211は、不要領域の修復処理が完了したデータベースのデータ
ベース管理部221及び231に対して、更新命令を発行する。
Next, upon receiving notification of completion of the repair process, the unnecessary area repair management unit 212 issues the update process pooled in step B to the query management unit 211 (step A5). Then, the query management unit 211 issues an update command to the database management units 221 and 231 of the database for which the unnecessary area repair processing has been completed.
次に、データベース管理部221及び231は、クエリ管理部211が発行した更新命令に従い、対応する記憶部が構成するデータベースの更新を実行する(ステップA6)。そして、このステップA5〜ステップA6までの処理は、プールされていた更新命令の分だけ繰り返し行われる。これにより、ステップBによって発生した、修復対象のデータベースサーバ22及び23と通常対応のデータベースサーバ24及び25との差分が、埋められて行くこととなる。
Next, the database management units 221 and 231 execute the update of the database configured by the corresponding storage unit in accordance with the update command issued by the query management unit 211 (step A6). The processing from step A5 to step A6 is repeated for the update instructions that have been pooled. As a result, the difference between the
なお、ステップA5〜ステップA6の間に、更に新しい問合せがデータベースクライアント1からクエリ管理部211に発行された場合は、クエリ管理部211は、後述するステップBと同様の操作を実行する。
If a new query is issued from the
そして、ステップA5〜ステップA6までの処理の繰り返しにより、全ての差分の反映が終了すると、不要領域修復管理部212は、修復対象のデータベースサーバと通常対応のデータベースサーバとの役割を入れ替えるため、割り当てを変更し、未だ不要領域の修復処理が行われていない未修復のデータベースサーバに対して、不要領域の修復処理を実行する(ステップA7)。 When the reflection of all the differences is completed by repeating the processing from step A5 to step A6, the unnecessary area repair management unit 212 assigns the roles of the database server to be repaired and the normally supported database server to be switched. And the unnecessary area repair process is executed on the unrepaired database server that has not been repaired yet (step A7).
ステップA7の実行後、全てのデータベースサーバに対する不要領域の修復処理は終了する。なお、ステップA1〜A7の動作では、修復処理中において、更新処理による不要領域が発生する可能性があるが、データベース全体としては、殆どの不要領域が修復され、大幅なページの削減が可能となる。 After the execution of step A7, the unnecessary area repair processing for all database servers ends. In the operations of Steps A1 to A7, there is a possibility that an unnecessary area is generated by the update process during the repair process. However, almost all unnecessary areas are repaired in the entire database, and the page can be greatly reduced. Become.
ここで、図3に示されたステップBについて図5に基づいて具体的に説明する。図5は、図3に示したステップBを具体的に示すアクティビティ図である。なお、図5の例においても、図3の例と同様に、修復対象のデータベースサーバとしてデーベースサーバ22及び23が割り当てられ、通常対応のデータベースサーバとしてデータベースサーバ24及び25が割り当てられているとする。
Here, step B shown in FIG. 3 will be specifically described with reference to FIG. FIG. 5 is an activity diagram specifically showing Step B shown in FIG. In the example of FIG. 5, similarly to the example of FIG. 3, the
また、図5に示すステップBによるデータベース操作受付処理は、不要領域の修復処理が完了し、修復対象のデータベースサーバと通常対応のデータベースサーバとの差分が解消され同期が完了(図3のステップA5〜A6の繰り返しが終了)した時点で終了となる。 Further, in the database operation acceptance process in step B shown in FIG. 5, the unnecessary area repair process is completed, the difference between the database server to be repaired and the database server corresponding to the normal is eliminated, and the synchronization is completed (step A5 in FIG. 3). Is finished when the repetition of .about.A6 is completed).
先ず、図5に示すように、クエリ管理部211は、上記の差分が解消するまでの間、データベースクライアント1からのデータベース操作を受け付ける(ステップB1)。次に、データベースクライアント1から操作要求が発行されると、クエリ管理部211は、操作内容の検証を行う(ステップB2)。
First, as shown in FIG. 5, the query management unit 211 receives a database operation from the
次に、ステップB2の検証の結果、操作の種類が検索処理であった場合は、クエリ管理部211は、通常対応のデータベースサーバの中で負荷の低いデータベースサーバ(ここでは24だとする)のデータベース管理部に対して、検索命令を発行する(ステップB3)。 Next, when the result of the verification in step B2 is that the type of operation is search processing, the query management unit 211 selects the database server with a low load (usually 24) among the normally supported database servers. A search command is issued to the database management unit (step B3).
次に、検索命令を受けたデータベースサーバのデータベース管理部(ここでは、データベース管理部241)は、検索処理を実行する(ステップB4)。そして、データベース管理部は、検索処理の結果を、クエリ管理部211へ送信する(ステップB5)。その後、クエリ管理部211は、受け取った検索結果を、そのままデータベースクライアント1に送信する(ステップB6)。
Next, the database management unit (here, the database management unit 241) of the database server that has received the search command executes a search process (step B4). Then, the database management unit transmits the search processing result to the query management unit 211 (step B5). Thereafter, the query management unit 211 transmits the received search result to the
また、ステップB2の検証の結果、操作の種類が更新処理であった場合は、クエリ管理部211は、通常対応のデータベースサーバ24及び25と不要領域修復管理部212とに更新命令を発行する(ステップB7)。この時、不要領域修復管理部212は、更新命令を受け付けた順に保持する。
If the operation type is update processing as a result of the verification in step B2, the query management unit 211 issues an update command to the normally supported
また、更新命令を受け取ったデータベース管理部241及び242は、それぞれ更新処理を解釈し、それぞれの対応する記憶装置242(又は243)に記録されているデータベースを更新する(ステップB8)。
In addition, the
次に、更新処理が終了すると、データベース管理部241及び242は、それぞれクエリ管理部211に結果を送信する(ステップB9)。また、クエリ管理部211は全ての正常結果を受信したことを確認すると(ステップB11)、上述の検索処理の場合と同様に、データベースクライアント1に結果を返却する(ステップB6)。更に、クエリ管理部211は、更新件数を、不要領域修復管理部212に通知する。
Next, when the update process is completed, the
ここで、図5中に示されたステップC(例外処理)について説明する。上述したステップB1では、複数のデータベースクライアント1からデータベース操作が入力され、大量の操作処理を受け付けなければならない場合が想定される。一方、不要領域の修復処理中はデータベースとして運用されているサーバの台数は通常よりも少なくなっている。このため、データベースの検索処理性能も同様に通常よりも低下してしいる。
Here, step C (exception processing) shown in FIG. 5 will be described. In step B1 described above, it is assumed that database operations are input from a plurality of
よって、ある程度までのデータベース操作であれば、既に述べたデータベースの検索処理や更新処理によって、データベースの性能低下を抑制することによって対応可能であるが、大量の検索処理等が要求された場合は、データベースとしてのレスポンス低下が懸念される。また、本実施の形態1を実施する際において、データベースに高い負荷がかかる状況は避けるべきではあるが、運用上確実に回避できない場合も想定される。 Therefore, if it is a database operation up to a certain extent, it can be dealt with by suppressing the database performance degradation by the already described database search processing and update processing, but when a large amount of search processing is required, There is a concern that the response as a database will decrease. Further, when implementing the first embodiment, a situation in which a high load is applied to the database should be avoided, but there may be a case where it cannot be reliably avoided in operation.
そこで、本実施の形態1においては、データベースクライアントからの操作要求に対して一定の閾値を設け、それ以上(又はそれを超える)のデータベース操作要求が来た場合は、不要領域の修復処理を中断することとしている。そして、この場合は、中断するまでに発生したデータベースへの更新差分の同期処理が即座に適用され、その後、通常運用に戻ることで、処理能力が低下した状態は回避される。 Therefore, in the first embodiment, a fixed threshold is set for the operation request from the database client, and when the database operation request exceeds (or exceeds), the unnecessary area repair processing is interrupted. To do. In this case, the synchronization process of the update difference to the database that occurred before the interruption is immediately applied, and then the normal operation is resumed, thereby avoiding a state in which the processing capability is reduced.
但し、このような処理を採用する場合は、更新差分の同期処理自体が大量にある事態も想定され、更に状況を悪化させる可能性がある。よって、このような事態の発生を回避するため、更新差分の発生量にも閾値を設け、それを上回る場合にも、同様に、不要領域の修復処理が中断されるようにするのが好ましい。 However, when such a process is employed, there is a possibility that there is a large amount of update difference synchronization processing itself, which may further deteriorate the situation. Therefore, in order to avoid the occurrence of such a situation, it is preferable to set a threshold for the generation amount of the update difference and to interrupt the unnecessary area repair processing in the same manner even when the threshold is exceeded.
また、修復処理を中断させるデータベースサーバの台数は、複数の閾値を設定し、閾値毎に変化させても良い。つまり、更新差分の発生量に応じて、1台ずつ順に処理を中断させても良いし、全てのデータベースサーバに対して一度に中断させても良い。なお、不要領域の修復処理では、データの移動が行われているにすぎず、修復処理自体が途中で中断されても、データベースサーバは、直ぐにデータベースとしての利用が可能な状態である。 Further, the number of database servers for which the restoration process is interrupted may be set for a plurality of threshold values and changed for each threshold value. That is, depending on the generation amount of update differences, the processing may be interrupted one by one, or all database servers may be interrupted at once. In the unnecessary area repair process, only data movement is performed, and even if the repair process itself is interrupted, the database server can be immediately used as a database.
次に、図6を用いて、図5に示したステップC(例外処理)の内容を具体的に説明する。図6は、図5に示したステップCを具体的に示すアクティビティ図である。図6に示すステップは、上記の説明の通り、データベースクライアント1からの操作要求(接続要求)の要求量又は要求件数(例えば、データベース更新の件数)が、それぞれに設定されて
いる閾値を超えた場合に開始される。
Next, the contents of step C (exception processing) shown in FIG. 5 will be specifically described with reference to FIG. FIG. 6 is an activity diagram specifically showing Step C shown in FIG. In the steps shown in FIG. 6, as described above, the request amount or request number (for example, the number of database updates) from the
最初に、図6に示すように、クエリ管理部211は、閾値に対応させた修復対象のデータベースサーバのデータベース管理部に対して、不良領域の修復処理の中断を指示する命令(修復中断命令)を発行し、これを送信する(ステップC1)。 First, as shown in FIG. 6, the query management unit 211 instructs the database management unit of the database server to be repaired corresponding to the threshold value to interrupt the repair processing of the defective area (repair suspension command). Is transmitted and transmitted (step C1).
次に、修復中断命令を受けたデータベース管理部は、修復処理を即時終了させて(ステップC2)、停止完了をクエリ管理部211に報告する(ステップC3)。次に、クエリ管理部211は、終了報告を確認後、ステップB7と同様に、不要領域修復管理部212によってプールされていた更新命令を、再度、対象のデータベース管理部に対して発行する。(ステップC4)。 Next, the database management unit that has received the repair interruption command immediately ends the repair process (step C2), and reports the completion of the stop to the query management unit 211 (step C3). Next, after confirming the end report, the query management unit 211 issues the update command pooled by the unnecessary area repair management unit 212 to the target database management unit again, as in step B7. (Step C4).
次に、更新命令を受けたデータベース管理部は、更新操作を実行し(ステップC5)、結果を、クエリ管理部211に送信する(ステップC6)。クリエ管理部211は、結果を受信する(ステップC7)。ステップC5〜C7が繰り返され、全ての更新命令が完了すると、不要領域修復管理部212は、ステップA7と同様に、対象のデータベースサーバの割り当てを修復対象のデータベースサーバから通常対応のデータベースサーバへと変更する(ステップC8)。これにより、通常対応のデータベースサーバが増加する。 Next, the database management unit that has received the update command executes an update operation (step C5), and transmits the result to the query management unit 211 (step C6). The CLIÉ management unit 211 receives the result (step C7). When Steps C5 to C7 are repeated and all the update commands are completed, the unnecessary area repair management unit 212 assigns the target database server from the repair target database server to the normally supported database server in the same manner as Step A7. Change (step C8). This increases the number of normally supported database servers.
また、本実施の形態1におけるプログラムは、コンピュータに、図2に示すステップS1〜S4、具体的には、ステップA1、A2、A5、A7、B1、B2、B3、B6、B7、B11、C1、C4、C7、C8を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することにより、本実施の形態1における管理装置及びデータベース管理方法を実現することができる。また、この場合、コンピュータのCPU(central processing unit)は、クエリ管理部211、不要領域修復管理部212として機能し、処理を行なう。 The program in the first embodiment is stored in the computer in steps S1 to S4 shown in FIG. 2, specifically, steps A1, A2, A5, A7, B1, B2, B3, B6, B7, B11, C1. , C4, C7, and C8 may be executed. By installing and executing this program on a computer, the management device and the database management method according to the first embodiment can be realized. In this case, a central processing unit (CPU) of the computer functions as a query management unit 211 and an unnecessary area repair management unit 212 to perform processing.
以上のように、本実施の形態1によれば、データベースが多重化されたデータベース管理システムにおいては、修復対象のデータベースと通常運用のデータベースとに分けて処理が行われる。よって、上述したように、不要領域の修復に関わる排他処理の時間は縮小される。そして、データベースにおいて不要領域の修復処理を実行しながら、データベースクライアントからの検索や更新といった通常の操作要求を受け、これらの処理を実行することができる。 As described above, according to the first embodiment, in a database management system in which databases are multiplexed, processing is performed separately for a database to be repaired and a database for normal operation. Therefore, as described above, the time for exclusive processing related to the repair of unnecessary areas is reduced. Then, while executing unnecessary area repair processing in the database, it is possible to receive normal operation requests such as search and update from the database client and execute these processes.
また、修復対象のデータベースと通常運用のデータベースとの間に生じる差分は、不要領域修復管理部212によって管理され、不要領域の修復が完了すると適用される。更に、差分を適用する際において、通常運用のデータベースが停止されることはない。このため、本実施の形態1では、データベースクライアントからの更新処理を止めること無く、差分の適用を行うことができる。 Further, the difference generated between the database to be repaired and the normal operation database is managed by the unnecessary area repair management unit 212, and is applied when the repair of the unnecessary area is completed. Further, when applying the difference, the normal operation database is not stopped. Therefore, in the first embodiment, the difference can be applied without stopping the update process from the database client.
更に、本実施の形態1では、図5及び図6においてステップCで示したように、データベースクライアント1からの操作要求に応じて、データベースの性能が低下しないよう、自動的に不要領域の修復処理が中断される。このため、本実施の形態1は、データベースクライアント1の台数の増加や操作要求の増加にも対応することができる。
Further, in the first embodiment, as shown in Step C in FIGS. 5 and 6, unnecessary area repair processing is automatically performed in accordance with an operation request from the
また、複数の仮想OS上でデータベースシステムを構築している場合では、CPUやメモリのリソースを動的に移行して通常対応データベースサーバの性能を向上させることにより、データベースサーバが少なくなることによる検索性能低下を補うことが可能となる。これは不要領域処理が記憶装置への負荷が高く、比較的CPUやメモリのリソースは必要としないことを利用したものである。この技術を本実施の形態1に適用すれば、上述し
たように、運用中のデータベースシステム全体の性能低下を抑制することができる。
In addition, when a database system is built on multiple virtual OSs, search by reducing the number of database servers by dynamically transferring CPU and memory resources to improve the performance of normally supported database servers. It becomes possible to compensate for the performance degradation. This utilizes the fact that unnecessary area processing places a high load on the storage device and requires relatively no CPU or memory resources. If this technique is applied to the first embodiment, as described above, it is possible to suppress the performance degradation of the entire operating database system.
(実施の形態2)
次に本発明の実施の形態2における、管理装置、データベース管理方法、及びプログラムについて説明する。但し、本実施の形態2における管理装置及びそれを備えるデータベース管理システムの構成は、実施の形態1において図1に示した管理装置及びデータベース管理システムの構成と同様である。
(Embodiment 2)
Next, a management device, a database management method, and a program according to
本実施の形態2は、管理装置及びデータベースサーバにおける一部の処理が、実施の形態1におけるこれらの処理と異なっている。つまり、実施の形態1では、不要領域の修復処理の終了後に、データベースクライアントからの操作は受け付けたまま、修復対象のデータベースに対して更新命令が発行され、更新差分の適用が行われている。但し、この方式では、通常対応のデータベースの更新完了日時と修復対象のデータベースの更新日時とに幾らかの差異が生じることがあり、データベースによっては、差異の解消が求められる場合がある。このため、本実施の形態2においては、実施の形態1と異なる処理が行われる。 In the second embodiment, some processes in the management apparatus and the database server are different from those in the first embodiment. In other words, in the first embodiment, after completion of the unnecessary area repair process, an update command is issued to the database to be repaired while the operation from the database client is accepted, and the update difference is applied. However, with this method, there may be some difference between the update completion date and time of the normally supported database and the update date and time of the database to be repaired, and depending on the database, it may be required to eliminate the difference. For this reason, in the second embodiment, processing different from that in the first embodiment is performed.
本実施の形態2における処理について、図7及び図8を用いて以下に説明する。図7は、本発明の実施の形態2の管理装置によって構成されたデータベース管理システムにおけるアクティビティの変化を示すアクティビティ図である。図8は、図7に示したステップB10に含まれる処理を具体的に示すアクティビティ図である。 Processing in the second embodiment will be described below with reference to FIGS. FIG. 7 is an activity diagram showing activity changes in the database management system configured by the management apparatus according to the second embodiment of the present invention. FIG. 8 is an activity diagram specifically showing the processing included in step B10 shown in FIG.
図7に示されたステップのうち、実施の形態1で用いた図3に示された符号が付されたステップは、当該符号が付された図3のステップと同一ステップである。つまり、図7において、ステップA1〜A4及びA7は、実施の形態1におけるステップA1〜A4及びA7と同様に、クエリ管理部211、不要領域修復管理部212、データベース管理部221、231、241、251によって実行される。 Of the steps shown in FIG. 7, the step denoted by the reference numeral shown in FIG. 3 used in the first embodiment is the same as the step of FIG. 3 denoted by the reference numeral. That is, in FIG. 7, steps A1 to A4 and A7 are the same as steps A1 to A4 and A7 in the first embodiment, the query management unit 211, the unnecessary area repair management unit 212, the database management units 221, 231, 241, 251.
一方、図7に示されたステップB10は、図3に示されたステップBとは、例外処理(図5及び図6に示すステップC)の点で異なっている。本実施の形態2においては、後述するように、例外処理は、図8に沿って実行される。図8に示す処理については後述する。また、ステップD1〜D4は、本実施の形態2に特有のステップである。以下に、ステップD1〜D4について説明する。 On the other hand, step B10 shown in FIG. 7 differs from step B shown in FIG. 3 in exception processing (step C shown in FIGS. 5 and 6). In the second embodiment, as will be described later, exception processing is executed along FIG. The process shown in FIG. 8 will be described later. Steps D1 to D4 are steps unique to the second embodiment. Below, step D1-D4 is demonstrated.
なお、以下の説明では、実施の形態1で用いた図1を適宜参酌する。また、本実施の形態2においても、実施の形態1と同様に、最初に、データベースサーバ22及び23が修復対象のデータベースサーバに割り当てられ、データベースサーバ24及び25が通常対応のデータベースサーバに割り当てられているとする。
In the following description, FIG. 1 used in
図7に示すように、不要領域の修復処理が行われている間、クエリ管理部211は、データベースクライアント1からの検索や更新といった操作の受付を保留にし、不要領域修復管理部212に、これらをプールさせる(ステップD1)。
As shown in FIG. 7, while the unnecessary area repair process is being performed, the query management unit 211 suspends acceptance of operations such as search and update from the
次に、クエリ管理部211は、通常対応のデータベースのデータベース管理部241及び251に対して、ジャーナルの転送命令を発行する。データベース管理部241及び251は、転送命令を受信すると、修復対象のデータベースのデータベース管理部221及び231にデータベースの更新情報であるジャーナルを転送する(ステップD2)。なお、通常対応のデータベースの台数より修復対象のデータベースの台数が多い場合は、ジャーナルの転送が早く終わったデータベースが、更に残りの修復対象のデータベースへジャーナルを転送する。 Next, the query management unit 211 issues a journal transfer command to the database management units 241 and 251 of the normally supported database. Upon receiving the transfer command, the database management units 241 and 251 transfer the journal, which is database update information, to the database management units 221 and 231 of the database to be repaired (step D2). When the number of databases to be repaired is larger than the number of databases that are normally supported, the database whose journal transfer is completed earlier transfers journals to the remaining databases to be repaired.
次に、クエリ管理部211は、ジャーナルの転送が完了した修復対象のデータベースサーバのデータベース管理部に対して、ジャーナルによる差分の適用を指示し、実行させる(ステップD3)。 Next, the query management unit 211 instructs the database management unit of the database server to be repaired whose journal transfer has been completed to apply the difference using the journal, and causes it to be executed (step D3).
ステップD3により、全ての差分更新(差分の適用)が完了すると、全てのデータベースの同期が取れた状態となる。そこで、クエリ管理部211は、保留していたデータベース操作を各データベースサーバに指示するため、これらを受け付けた順番で、その内容に従い、各データベースサーバに対して操作要求を発行する(ステップD4)。 When all the difference updates (difference application) are completed in step D3, all the databases are synchronized. Therefore, the query management unit 211 issues an operation request to each database server in accordance with the contents in the order in which they are received in order to instruct each database server to perform the suspended database operation (step D4).
その後、実施の形態1と同様に、不要領域修復管理部212は、修復対象のデータベースサーバと通常対応のデータベースサーバとの役割を入れ替え、未だ不要領域の修復処理が行われていないデータベースサーバに対して、不要領域の修復処理を実行する(ステップA7)。 After that, as in the first embodiment, the unnecessary area repair management unit 212 switches the roles of the database server to be repaired and the database server that is normally supported, and the database server for which the unnecessary area repair processing has not yet been performed. Then, an unnecessary area repair process is executed (step A7).
次に、図8を用いて、ステップB10に含まれる例外処理について説明する。図8に示されたステップのうち、実施の形態1で用いた図6に示された符号が付されたステップは、当該符号が付された図6のステップと同一ステップである。つまり、図8において、ステップC1〜C3及びC8は、実施の形態1におけるステップC1〜C3及びC8と同様に、クエリ管理部211、不要領域修復管理部212、データベース管理部221、231、241、251によって実行される。 Next, exception processing included in step B10 will be described with reference to FIG. Of the steps shown in FIG. 8, the step denoted by the reference numeral shown in FIG. 6 used in the first embodiment is the same as the step of FIG. 6 denoted by the reference numeral. That is, in FIG. 8, steps C1 to C3 and C8 are the same as steps C1 to C3 and C8 in the first embodiment, the query management unit 211, the unnecessary area repair management unit 212, the database management units 221, 231, 241, 251.
一方、ステップE1〜E4は、本実施の形態2に特有のステップである。以下に、ステップE1〜E4について説明する。また、以下の説明においても、適宜図1を参酌する。 On the other hand, steps E1 to E4 are steps unique to the second embodiment. Below, step E1-E4 is demonstrated. In the following description, FIG. 1 is taken into consideration as appropriate.
先ず、図8に示すように、修復処理の中断が完了すると、図7に示したステップD1と同様、クエリ管理部211は、データベースクライアント1からの検索や更新といった操作の受付を保留にし、不要領域修復管理部212に、これらをプールさせる。(ステップE1)。
First, as shown in FIG. 8, when the interruption of the repair process is completed, the query management unit 211 holds the reception of operations such as search and update from the
次に、クエリ管理部211は、通常対応のデータベースのデータベース管理部241及び251に対して、ジャーナルの転送命令を発行する。データベース管理部241及び251は、ステップD2と同様、転送命令を受信すると、修復処理を停止している修復対象のデータベースのデータベース管理部221及び231にデータベースの更新情報であるジャーナルを転送する(ステップE2)。 Next, the query management unit 211 issues a journal transfer command to the database management units 241 and 251 of the normally supported database. When receiving the transfer command, the database management units 241 and 251 transfer the journal, which is database update information, to the database management units 221 and 231 of the database to be repaired that has stopped the repair process (step D2). E2).
次に、クエリ管理部211は、ステップD3と同様に、ジャーナルの転送が完了した修復対象のデータベースサーバのデータベース管理部に対して、ジャーナルによる差分の適用を指示し、実行させる(ステップE3)。 Next, as in step D3, the query management unit 211 instructs the database management unit of the database server to be repaired for which journal transfer has been completed to apply the difference by the journal (step E3).
次に、全ての差分更新が完了すると、クエリ管理部211は、ステップD4と同様に、保留していたデータベース操作を各データベースサーバに指示するため、これらを受け付けた順番で、その内容に従い、各データベースサーバに対して操作要求を発行する(ステップE4)。 Next, when all the difference updates are completed, the query management unit 211 instructs each database server to perform the suspended database operation in the same manner as in step D4. An operation request is issued to the database server (step E4).
その後、不要領域修復管理部212は、図6の例と同様に、対象のデータベースサーバの割り当てを、修復対象のデータベースサーバから通常対応のデータベースサーバへと変更する(ステップC8)。これにより、通常対応のデータベースサーバが増加する。 Thereafter, the unnecessary area repair management unit 212 changes the allocation of the target database server from the database server to be repaired to the database server that is normally supported (step C8), as in the example of FIG. This increases the number of normally supported database servers.
このように、本実施の形態2では、実施の形態1と異なり、通常対応のデータベースサ
ーバから、その更新内容を含むジャーナルが、修復対象のデータベースサーバに対して送信され、ジャーナルを用いて更新が行われる。
As described above, in the second embodiment, unlike in the first embodiment, the journal including the update contents is transmitted from the normally supported database server to the database server to be repaired, and is updated using the journal. Done.
よって、本実施の形態2によれば、通常対応のデータベースの更新完了日時と修復対象のデータベースの更新日時とに差異が生じるのを抑制できる。このため、データベースクライアントからの更新処理の要求に、更新日時に関係する内容が含まれていても、修復対象のデータベースと通常対応のデータベースの同期を取ることが可能となる。本実施の形態2は、更新時に全てのデータベースサーバが更新結果をクエリ管理部211に送信することを利用している。データベース間の更新日時は完全とは言わないまでもほぼ同時刻となる。また、本実施の形態2においても、実施の形態1で述べた効果は全て得ることができる。 Therefore, according to the second embodiment, it is possible to suppress the occurrence of a difference between the update completion date and time of the normal database and the update date and time of the database to be repaired. For this reason, even if the update processing request from the database client includes contents related to the update date and time, it is possible to synchronize the database to be repaired with the database that is normally supported. The second embodiment uses that all database servers transmit update results to the query management unit 211 at the time of update. The update time between databases is almost the same, if not completely. Also in the second embodiment, all the effects described in the first embodiment can be obtained.
以上のように、本発明は、データベース管理システム、特には、データベースサーバが多重化された、追記型データベース管理システムに有効である。本発明は、産業上の利用可能性を有している。 As described above, the present invention is effective for a database management system, in particular, a write-once database management system in which database servers are multiplexed. The present invention has industrial applicability.
1 データベースクライアント
2 データベース管理システム
3 ページ(解放前)
4 ページ(解放前)
5 ページ(解放後)
21 管理装置
22 データベースサーバ
23 データベースサーバ
24 データベースサーバ
25 データベースサーバ
31 ページ管理情報
41 ページ管理情報
51 ページ管理情報
211 クエリ管理部
212 不要領域修復管理部
221 データベース管理部
222 記憶装置
231 データベース管理部
232 記憶装置
241 データベース管理部
242 記憶装置
251 データベース管理部
252 記憶装置
321〜325 タプルデータ
421〜425 タプルデータ
521〜525 タプルデータ
1
4 pages (before release)
5 pages (after release)
DESCRIPTION OF
Claims (15)
前記複数のデータベースサーバそれぞれにおける不要領域の修復処理を管理する不要領域修復管理部を備え、
前記不要領域修復管理部は、前記複数のデータベースサーバそれぞれにおいて不要領域の修復処理が必要となると、一部の前記データベースサーバに、先に前記修復処理を実行させ、その後、残りの前記データベースサーバに、前記修復処理を実行させる、
ことを特徴とする管理装置。 A management apparatus constituting a database management system comprising a plurality of multiplexed database servers,
An unnecessary area repair management unit for managing repair processing of unnecessary areas in each of the plurality of database servers,
When the unnecessary area repair process is required in each of the plurality of database servers, the unnecessary area repair management unit causes some of the database servers to execute the repair process first, and then causes the remaining database servers to perform the repair process. , Causing the repair process to be executed,
A management device characterized by that.
前記クエリ管理部は、いずれかの前記データベースサーバが前記修復処理を実行している間に、外部から操作要求があった場合に、前記修復処理を実行していない前記データベースサーバに、要求のあった前記処理を実行させる、請求項1に記載の管理装置。 It further comprises a query management unit that manages external operation requests for each of the plurality of database servers, and instructs the processing on these requests.
When an operation request is received from the outside while any of the database servers is executing the repair process, the query management unit sends a request to the database server that is not executing the repair process. The management apparatus according to claim 1, wherein the processing is executed.
前記修復処理を実行してない前記データベースサーバに対しては、前記更新を実行させ、前記修復処理を実行している前記データベースサーバに対しては、前記不要領域修復管理部の指示に応じて、前記修復処理の終了後に、前記更新を実行させる、
請求項2に記載の管理装置。 When the update of the plurality of database servers is requested as the operation request from the outside, the query management unit,
For the database server that is not executing the repair process, the update is executed, and for the database server that is executing the repair process, according to an instruction of the unnecessary area repair management unit, Causing the update to be executed after completion of the repair process;
The management device according to claim 2.
前記修復処理を実行している前記データベースサーバに対して、前記修復処理を中断させる、請求項2または3に記載の管理装置。 The query management unit, when the request amount or the number of requests of the operation request from the outside exceeds a set threshold or when it is equal to or more than the threshold,
The management apparatus according to claim 2, wherein the repair process is interrupted to the database server that is executing the repair process.
前記更新の実行が終了した前記データベースサーバに対して、前記更新の内容を含むジャーナルを、前記更新を実行していない前記データベースサーバに向けて送信させ、
前記更新を実行していない前記データベースサーバに対して、前記ジャーナルを用いて前記更新を実行させる、
請求項3に記載の管理装置。 The query management unit
For the database server that has completed the execution of the update, a journal including the content of the update is transmitted to the database server that is not executing the update,
Causing the database server not performing the update to execute the update using the journal;
The management device according to claim 3.
(a)前記複数のデータベースサーバそれぞれにおいて不要領域の修復処理が必要となった場合に、一部の前記データベースサーバに、先に前記修復処理を実行させるステップと、
(b)前記(a)のステップの実行後に、残りの前記データベースサーバに、前記修復処理を実行させるステップと、
を有することを特徴とするデータベース管理方法。 A method for managing a database in a database management system comprising a plurality of multiplexed database servers,
(A) when a repair process of an unnecessary area is required in each of the plurality of database servers, causing some of the database servers to execute the repair process first;
(B) after the execution of the step (a), causing the remaining database servers to execute the repair process;
A database management method characterized by comprising:
(d)前記(c)のステップで、外部から前記操作が要求されていると判定された場合に、前記修復処理を実行していない前記データベースサーバに、要求のあった前記処理を実
行させるステップとを、
更に有する請求項6に記載のデータベース管理方法。 (C) determining whether an operation is requested from the outside for each of the plurality of database servers while any of the database servers is executing the repair process;
(D) When it is determined in the step (c) that the operation is requested from the outside, the database server that is not executing the repair process executes the requested process. And
The database management method according to claim 6, further comprising:
前記外部からの操作要求として、前記複数のデータベースサーバの更新が要求された場合に、
前記修復処理を実行してない前記データベースサーバに対しては、前記更新を実行させ、前記修復処理を実行している前記データベースサーバに対しては、前記不要領域修復管理部の指示に応じて、前記修復処理の終了後に、前記更新を実行させる、請求項7に記載のデータベース管理方法。 In the step (d),
When the update of the plurality of database servers is requested as the operation request from the outside,
For the database server that is not executing the repair process, the update is executed, and for the database server that is executing the repair process, according to an instruction of the unnecessary area repair management unit, The database management method according to claim 7, wherein the update is executed after completion of the repair process.
(f)前記(e)のステップで前記閾値を超えている、又は前記閾値上となっていると判定された場合に、前記修復処理を実行している前記データベースサーバに対して、前記修復処理を中断させる、ステップとを、
更に有する、請求項7または8に記載のデータベース管理方法。 (E) determining whether a request amount or a request count of the external operation request exceeds a set threshold value or is equal to or greater than the threshold value; and
(F) When it is determined in the step (e) that the threshold value is exceeded or exceeds the threshold value, the repair process is performed on the database server that is executing the repair process. Interrupt the steps and
The database management method according to claim 7 or 8, further comprising:
前記(d)のステップにおいて、前記更新を実行していない前記データベースサーバに対して、前記ジャーナルを用いて前記更新を実行させる、
請求項8に記載のデータベース管理方法。 (G) causing the database server that has finished executing the update to further send a journal including the contents of the update to the database server that is not executing the update;
In the step (d), the database server that has not executed the update is caused to execute the update using the journal.
The database management method according to claim 8.
前記コンピュータに、
(a)前記複数のデータベースサーバそれぞれにおいて不要領域の修復処理が必要となった場合に、一部の前記データベースサーバに、先に前記修復処理を実行させるステップと、
(b)前記(a)のステップの実行後に、残りの前記データベースサーバに、前記修復処理を実行させるステップと、
を実行させることを特徴とするプログラム。 In a database management system having a plurality of multiplexed database servers, a program for causing a computer to manage a database,
In the computer,
(A) when a repair process of an unnecessary area is required in each of the plurality of database servers, causing some of the database servers to execute the repair process first;
(B) after the execution of the step (a), causing the remaining database servers to execute the repair process;
A program characterized by having executed.
(d)前記(c)のステップで、外部から前記操作が要求されていると判定された場合に、前記修復処理を実行していない前記データベースサーバに、要求のあった前記処理を実行させるステップとを、
更に前記コンピュータに実行させる請求項11に記載のプログラム。 (C) determining whether an operation is requested from the outside for each of the plurality of database servers while any of the database servers is executing the repair process;
(D) When it is determined in the step (c) that the operation is requested from the outside, the database server that is not executing the repair process executes the requested process. And
The program according to claim 11, further causing the computer to execute.
前記外部からの操作要求として、前記複数のデータベースサーバの更新が要求された場合に、
前記修復処理を実行してない前記データベースサーバに対しては、前記更新を実行させ、前記修復処理を実行している前記データベースサーバに対しては、前記不要領域修復管理部の指示に応じて、前記修復処理の終了後に、前記更新を実行させる、請求項12に記載のプログラム。 In the step (d),
When the update of the plurality of database servers is requested as the operation request from the outside,
For the database server that is not executing the repair process, the update is executed, and for the database server that is executing the repair process, according to an instruction of the unnecessary area repair management unit, The program according to claim 12, wherein the update is executed after the repair process ends.
(f)前記(e)のステップで前記閾値を超えている、又は前記閾値上となっていると判定された場合に、前記修復処理を実行している前記データベースサーバに対して、前記修復処理を中断させる、ステップとを、
更に前記コンピュータに実行させる、請求項12または13に記載のプログラム。 (E) determining whether a request amount or a request count of the external operation request exceeds a set threshold value or is equal to or greater than the threshold value; and
(F) When it is determined in the step (e) that the threshold value is exceeded or exceeds the threshold value, the repair process is performed on the database server that is executing the repair process. Interrupt the steps and
The program according to claim 12 or 13, further causing the computer to execute the program.
前記(d)のステップにおいて、前記更新を実行していない前記データベースサーバに対して、前記ジャーナルを用いて前記更新を実行させる、
請求項13に記載のプログラム。 (G) causing the computer to further execute a step of causing the database server that has finished executing the update to transmit a journal including the contents of the update to the database server that is not executing the update. ,
In the step (d), the database server that has not executed the update is caused to execute the update using the journal.
The program according to claim 13.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009063381A JP2010218159A (en) | 2009-03-16 | 2009-03-16 | Management device, database management method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009063381A JP2010218159A (en) | 2009-03-16 | 2009-03-16 | Management device, database management method and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010218159A true JP2010218159A (en) | 2010-09-30 |
Family
ID=42976953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009063381A Pending JP2010218159A (en) | 2009-03-16 | 2009-03-16 | Management device, database management method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010218159A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012169080A1 (en) * | 2011-07-05 | 2012-12-13 | 株式会社Murakumo | Database management method |
JP2013033439A (en) * | 2011-07-05 | 2013-02-14 | Murakumo Corp | Database management method |
US9251195B2 (en) | 2011-07-05 | 2016-02-02 | Murakumo Corporation | Method of managing database |
-
2009
- 2009-03-16 JP JP2009063381A patent/JP2010218159A/en active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012169080A1 (en) * | 2011-07-05 | 2012-12-13 | 株式会社Murakumo | Database management method |
JP2013033439A (en) * | 2011-07-05 | 2013-02-14 | Murakumo Corp | Database management method |
JP2013033440A (en) * | 2011-07-05 | 2013-02-14 | Murakumo Corp | Database management method |
JP2013033441A (en) * | 2011-07-05 | 2013-02-14 | Murakumo Corp | Database management method |
JP2013037669A (en) * | 2011-07-05 | 2013-02-21 | Murakumo Corp | Database management method |
US9251195B2 (en) | 2011-07-05 | 2016-02-02 | Murakumo Corporation | Method of managing database |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220300183A1 (en) | Data partition handoff between storage clusters | |
US8725951B2 (en) | Efficient flash memory-based object store | |
CN101593136B (en) | Method for obtaining high availability by using computers and computer system | |
US7676635B2 (en) | Recoverable cache preload in clustered computer system based upon monitored preload state of cache | |
US8868487B2 (en) | Event processing in a flash memory-based object store | |
KR101471879B1 (en) | Hypervisor-based server duplication system, method thereof and recording medium storing the computer program for the duplication | |
US8195777B2 (en) | System and method for adding a standby computer into clustered computer system | |
US8666939B2 (en) | Approaches for the replication of write sets | |
JP5068081B2 (en) | Management apparatus and management method | |
US11570243B2 (en) | Decommissioning, re-commissioning, and commissioning new metadata nodes in a working distributed data storage system | |
US10706021B2 (en) | System and method for supporting persistence partition discovery in a distributed data grid | |
US20100094948A1 (en) | Workload migration using on demand remote paging | |
EP3491532B1 (en) | System and method for data redistribution in database | |
US20070288532A1 (en) | Method of updating an executable file for a redundant system with old and new files assured | |
JP4693540B2 (en) | Database reconfiguration device and database reconfiguration program | |
JP2007156679A (en) | Failure recovery method for server, and database system | |
US20210089379A1 (en) | Computer system | |
JP2010218159A (en) | Management device, database management method and program | |
US10140183B2 (en) | Efficient state tracking for clusters | |
JP2014016953A (en) | Unshared type database system, synchronizing device, database server, its synchronizing method, and synchronizing program | |
US20140082313A1 (en) | Storage class memory evacuation | |
US11816331B2 (en) | Storage system and storage program update method | |
CN111400098B (en) | Copy management method and device, electronic equipment and storage medium | |
TWI763331B (en) | Backup method and backup system for virtual machine | |
KR20050026306A (en) | Shared-nothing database cluster server system and on-line scaling method |