JP2014137798A - Database system and control method for database system - Google Patents
Database system and control method for database system Download PDFInfo
- Publication number
- JP2014137798A JP2014137798A JP2013007662A JP2013007662A JP2014137798A JP 2014137798 A JP2014137798 A JP 2014137798A JP 2013007662 A JP2013007662 A JP 2013007662A JP 2013007662 A JP2013007662 A JP 2013007662A JP 2014137798 A JP2014137798 A JP 2014137798A
- Authority
- JP
- Japan
- Prior art keywords
- session
- database
- data processing
- server
- processing 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.)
- Granted
Links
Images
Landscapes
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
この発明は、データベースシステム及びデータベースシステムの制御方法に関し、例えば、冗長構成のデータベースクライアントを備えるデータベースシステムに適用し得る。 The present invention relates to a database system and a database system control method, and can be applied to, for example, a database system including a redundantly configured database client.
データベースシステムには、データベースサーバと、データベースサーバのデータ利用を行うデータベースクライアントとが配置されている。そして、従来のデータベースクライアントがデータベースサーバ上のデータ更新を行う場合は、通常、データベースサーバに対してデータ更新を要求し、更新データをコミットする手続きを1つのトランザクションとして実行することにより、データ更新を行う。なお、本明細書では、データベースサーバ上のデータ更新は、新たなデータの登録、データベースに記録された任意のデータの更新、データベースに記録された任意のデータの削除等を含む用語であるものとする。 In the database system, a database server and a database client that uses data of the database server are arranged. When a conventional database client updates data on the database server, the data update is usually performed by requesting the database server to update the data and executing a procedure for committing the updated data as one transaction. Do. In this specification, data update on the database server is a term including registration of new data, update of arbitrary data recorded in the database, deletion of arbitrary data recorded in the database, and the like. To do.
そして、従来のデータベースシステムでは、データベースサーバ又はデータベースクライアントで異常が発生した場合には、データベースサーバは、必要に応じて更新後コミットされていないデータについて、ロールバックする処理を行うことにより、データの整合性を保つものがある。 In the conventional database system, when an abnormality occurs in the database server or the database client, the database server performs the process of rolling back the data that has not been committed after the update, if necessary. Some maintain consistency.
ロールバック機能に対応した従来のデータベースシステムとしては、特許文献1の記載技術がある。特許文献1に記載のシステムでは、システムの再起動等が必要となった場合に、効率的にデータの整合性を回復するロールバック処理を実行するために、回復ログ(動作履歴のログ)について複数種類のデータ記録媒体(低速不揮発性記憶域及び高速揮発性記憶域)を利用して記録しておくことについて記載されている。 As a conventional database system corresponding to the rollback function, there is a technique described in Patent Document 1. In the system described in Patent Document 1, when a system restart or the like is required, a recovery log (operation history log) is used in order to execute rollback processing that efficiently recovers data consistency. It describes that recording is performed using a plurality of types of data recording media (low-speed nonvolatile storage area and high-speed volatile storage area).
ところで、従来のデータベースシステムでは、データベースサーバを利用するデータベースクライアント側でも、データ処理を行うデータ処理部(サーバ等のコンピュータ)を冗長化したものがある。そして、そのような冗長化されたデータベースクライアントで、データ処理部についてクラスタリングの冗長構成が組まれている場合、現用系(以下、「ACT系」とも呼ぶ)の第1のデータ処理部で障害(異常)が発生すると、系切替により待機系(以下、「スタンバイ系」又は「SBY系」とも呼ぶ)の第2のデータ処理部がACT系として動作する。 Incidentally, in some conventional database systems, a data processing unit (computer such as a server) that performs data processing is made redundant on the database client side that uses the database server. In such a redundant database client, when a redundant configuration of clustering is built in the data processing unit, a failure (in the first data processing unit of the active system (hereinafter also referred to as “ACT system”) ( When an abnormality occurs, the second data processing unit of the standby system (hereinafter also referred to as “standby system” or “SBY system”) operates as the ACT system by system switching.
しかし、旧ACT系のコンピュータで異常が発生したときに保持していたセッションで、データベース上の更新中のデータ(更新後コミットされていないデータ)が保持された状態(他のセッションにデータ更新が解放されていない状態)だった場合、当該データが保持された状態を継続することになる。その結果、新たにACT系として動作する第2のデータ処理部では、第1のデータ処理部に保持された状態のデータの更新をすぐに行うことができず、系切替直後の動作に支障を生じることになる。 However, in the session that was held when an abnormality occurred in the old ACT computer, the data being updated on the database (data that was not committed after the update) was held (data update in other sessions) If the data is not released, the state where the data is held is continued. As a result, the second data processing unit newly operating as the ACT system cannot immediately update the data held in the first data processing unit, which hinders the operation immediately after system switching. Will occur.
そこで、上述のような問題点に鑑み、データベースサーバのデータにアクセスするデータ処理部が冗長化されたデータベースクライアントで、異常に伴う系切替が発生した場合の影響を低減することができるデータベースシステム及びデータベースシステムの制御方法が望まれている。 Therefore, in view of the problems as described above, a database system in which a data processing unit that accesses data of a database server is made redundant, and a database system that can reduce the influence when system switching occurs due to an abnormality, and A method for controlling a database system is desired.
第1の本発明は、データベースサーバと、複数のデータ処理部で冗長構成が形成されているデータベースクライアントとを備えるデータベースシステムにおいて、(1)第1のデータ処理部が現用系として動作しているときに、上記第1のデータ処理部で異常が発生したことを検知する異常検知手段と、(2)上記異常検知手段が上記第1のデータ処理部の異常を検知した場合に、待機系として動作している第2のデータ処理部を現用系に切替える処理を行う系切替手段と、(3)上記第1のデータ処理部が異常発生時に、上記データベースサーバと接続状態であった接続状態セッションに係るセッション情報を収集するセッション情報収集手段と、(4)上記セッション情報収集手段が収集したセッション情報に基づいて、上記データベースサーバ上の上記第1のデータ処理部に係る接続状態セッションを特定し、上記データベースサーバに、上記第1のデータ処理部に係る接続状態セッションの切断を実行させるセッション切断手段と、(5)上記セッション切断手段が接続状態セッションを切断する際に、上記データベースサーバ上で、当該接続状態セッションで更新されたデータについて、当該接続状態セッションによる更新前の状態にロールバックさせるロールバック手段とを有することを特徴とする。 The first aspect of the present invention is a database system including a database server and a database client in which a redundant configuration is formed by a plurality of data processing units. (1) The first data processing unit operates as an active system. When the abnormality detection unit detects that an abnormality has occurred in the first data processing unit, and (2) when the abnormality detection unit detects an abnormality in the first data processing unit, System switching means for performing processing for switching the operating second data processing unit to the active system; and (3) a connection state session that was in connection with the database server when an abnormality occurred in the first data processing unit. Session information collecting means for collecting the session information according to (4) the database based on the session information collected by the session information collecting means. Session disconnection means for identifying a connection state session related to the first data processing unit on the server and causing the database server to disconnect the connection state session related to the first data processing unit; (5) the above When the session disconnecting means disconnects the connection state session, the database server has a rollback means for rolling back the data updated in the connection state session to the state before the update by the connection state session. It is characterized by.
第2の本発明は、データベースサーバと、複数のデータ処理部で冗長構成が形成されているデータベースクライアントとを備えるデータベースシステムの制御方法において、(1)異常検知手段、系切替手段、セッション情報収集手段、セッション切断手段及びロールバック手段を備え、(2)上記異常検知手段は、第1のデータ処理部が現用系として動作しているときに、上記第1のデータ処理部で異常が発生したことを検知し、(3)上記系切替手段は、上記異常検知手段が上記第1のデータ処理部の異常を検知した場合に、待機系として動作している第2のデータ処理部を現用系に切替える処理を行い、(4)上記セッション情報収集手段は、上記第1のデータ処理部が異常発生時に、上記データベースサーバと接続状態であった接続状態セッションに係るセッション情報を収集し、(5)上記セッション切断手段は、上記セッション情報収集手段が収集したセッション情報に基づいて、上記データベースサーバ上の上記第1のデータ処理部に係る接続状態セッションを特定し、上記データベースサーバに、上記第1のデータ処理部に係る接続状態セッションの切断を実行させ、(6)上記ロールバック手段は、上記セッション切断手段が接続状態セッションを切断する際に、上記データベースサーバ上で、当該接続状態セッションで更新されたデータについて、当該接続状態セッションによる更新前の状態にロールバックさせることを特徴とする。 According to a second aspect of the present invention, there is provided a database system control method comprising a database server and a database client in which a redundant configuration is formed by a plurality of data processing units. (1) Abnormality detection means, system switching means, session information collection Means, a session disconnecting means, and a rollback means. (2) The abnormality detecting means has an abnormality in the first data processing unit when the first data processing unit is operating as an active system. (3) The system switching means sets the second data processing section operating as a standby system to the active system when the abnormality detection means detects an abnormality of the first data processing section. (4) The session information collection means is connected to the database server when the first data processing unit is abnormal. (5) The session disconnecting means is connected to the first data processing unit on the database server based on the session information collected by the session information collecting means. And the database server executes disconnection of the connection state session related to the first data processing unit. (6) When the session disconnection unit disconnects the connection state session, On the database server, the data updated in the connection state session is rolled back to the state before the update by the connection state session.
本発明によれば、データベースサーバのデータにアクセスするデータ処理部が冗長化されたデータベースクライアントで、系切替が発生した場合の影響を低減することができるデータベースシステムを提供することができる。 ADVANTAGE OF THE INVENTION According to this invention, the database system which can reduce the influence at the time of system switching can be provided by the database client with which the data processing part which accesses the data of a database server was made redundant.
(A)主たる実施形態
以下、本発明によるデータベースシステム及びデータベースシステムの制御方法の一実施形態を、図面を参照しながら詳述する。
(A) Main Embodiment Hereinafter, an embodiment of a database system and a database system control method according to the present invention will be described in detail with reference to the drawings.
(A−1)実施形態の構成
図1は、この実施形態のデータベースシステム1の全体構成を示すブロック図である。
(A-1) Configuration of Embodiment FIG. 1 is a block diagram showing the overall configuration of the database system 1 of this embodiment.
データベースシステム1には、データベースサーバ10、及びデータベースクライアント20が配置されているものとする。なお、データベースサーバ10とデータベースクライアント20との間は、ネットワーク接続N1(接続手段は限定されない)が設定されているまた、データベースクライアント20の数は限定されないものである。
It is assumed that the
データベースサーバ10は、サーバ11及びファイルシステム12を有している。
The
ファイルシステム12は、データファイルを格納するためのストレージである。図1では、ファイルシステム12は独立した装置として図示しているが、サーバ11と一体の装置として構築(内臓ストレージ上に構成)してもよい。
The
サーバ11は、ファイルシステム12に格納されたデータを処理して、データベースクライアント20に対してデータベースサービスを提供する装置(コンピュータ)である。サーバ11上では、データベースサービスのアプリケーションとしてサーバプロセス111が動作している。すなわち、サーバ11には、データベースサービスのプログラムがインストールされており、サーバ11上でそのプログラムを実行することにより、サーバプロセス111が起動する。
The
ファイルシステム12には、管理対象となるデータ自体を格納するためのデータ記憶領域121と、データ更新のロールバック等を実現するためのログ記憶領域122とが確保されているものとする。サーバプロセス111は、データ記憶領域121の各データを処理単位(以下では、この処理単位を「レコード」と呼ぶ)ごとに、状態管理する、また、サーバプロセス111は、データ記憶領域121の各レコードについて、更新を行った場合には、その更新に係る履歴情報を、ロールバック可能な形式で、ログ記憶領域122に記憶する処理も行うものとする。
It is assumed that the
データベースクライアント20は、データベースサーバ10からデータベースサービスの提供を受ける装置(コンピュータ)である。なお、データベースクライアント20は、単純にデータベースを利用するクライアント端末ではなく、データベースを利用したアプリケーションサービス(例えば、ウェブサーバやコールセンタサーバの機能等)を他の端末等に提供するものとしても良いことは当然である。また、データベースクライアント20では、複数のサーバ30(コンピュータ)による冗長構成が組まれているものとする。
The
この実施形態では、データベースクライアント20は、2台のサーバ30(30−1、30−2)による冗長構成となっているものとする。なお、データベースクライアント20内の冗長系(サーバ30)の数は限定されないものである。
In this embodiment, the
そして、データベースクライアント20では、複数のサーバ30のうち、いずれかがACT系として動作し、他のサーバ30がSBY系として動作する冗長構成(クラスタリング構成)となっているものとする。
The
すなわち、データベースクライアント20では、複数のハードウェア(サーバ30−1、30−2)を論理的に1つのサーバとして動作するようなクラスタリング構成となっている。そして、サーバ30間では、クラスタリング構成を実現するために相互通信可能なネットワーク接続N2(通信路)が設定されている。各サーバ30間のネットワーク接続N2の通信方式は限定されないものであり、例えば、各種イーサネット(登録商標)やファイバーチャネル等の種々の通信方式(インタフェース)を適用することができる。また、この実施形態では、ネットワーク接続N1、N2は別個の通信路として説明しているが、同じ通信路(通信媒体)を共用するようにしてもよい。
That is, the
次に、各サーバ30の内部構成について説明する。この実施形態では、各サーバ30は全て同じ構成であるものとして説明する。 Next, the internal configuration of each server 30 will be described. In this embodiment, each server 30 is described as having the same configuration.
各サーバ30は、ハードウェア31(コンピュータ)上に、OS及び各種ソフトウェアがインストールされた構成となっており、起動した状態の機能的構成としては図1のように示すことができる。図1では、各サーバ30には、OSの機能により起動するカーネル32上で、冗長構成系等の管理を行うためのミドルウェアとして障害管理33、及び系構成管理34が動作している。そして、各サーバ30において、上述のミドルウェア上では、データベースクライアントとしてアプリケーションプロセス35が動作している。
Each server 30 has a configuration in which an OS and various types of software are installed on hardware 31 (computer), and the functional configuration in the activated state can be illustrated as shown in FIG. In FIG. 1, a
上述の通り、データベースクライアント20は、1台以上在っても良く、提供するサービス毎にサーバを分けたり、負荷分散で同一サービスの提供をすることが可能である。
As described above, there may be one or
データベースクライアント20では、通常、サービスを提供するアプリケーションプロセス35はACT系側のプロセスであり、SBY系のアプリケーションプロセス35は、空転(または、未起動)状態となる。データベースクライアント20において、このような、クラスタリング構成の制御(例えば、系切り替えやアプリケーションプロセス35の起動/停止制御等)については、サーバ30のミドルウェア(障害管理33及び系構成管理34)の相互通信により行われる。
In the
なお、図1では、データベースクライアント20とデータベースサーバ10との間のネットワーク接続N1として、1本の線により論理的構成を図示している。しかし、実際には、ネットワーク接続N1は、各サーバ30が他のサーバ30の動作に拘わらずデータベースサーバ10と通信可能な接続構成となっている必要がある。例えば、それぞれのサーバ30がネットワークインタフェースを備え、それぞれネットワーク接続する構成(例えば、VRRP(Virtual Router Redundancy Protocol)の構成)としても良いし、データベースクライアント20内で図示しない通信制御装置(例えば、レイヤ2スイッチ等のスイッチ装置)を備えて、各サーバ30をネットワーク接続する構成としてもよい。さらに、図1では、データベースサーバ10側は冗長構成として図示していないが、冗長構成としてもよいことは当然である。
In FIG. 1, the logical configuration is illustrated by one line as the network connection N <b> 1 between the
次に、データベースクライアント20(アプリケーションプロセス35)とデータベースサーバ10(サーバプロセス111)とが協働して行うデータ処理について説明する。 Next, data processing performed in cooperation between the database client 20 (application process 35) and the database server 10 (server process 111) will be described.
アプリケーションプロセス35とサーバプロセス111との間のデータ処理は、トランザクション単位で実行されるものとする。そして、アプリケーションプロセス35とサーバプロセス111との間では、1つのセッション開始から終了までに行われる処理を1つのトランザクションとして管理されるものとして説明する。例えば、アプリケーションプロセス35とサーバプロセス111との間で、1つのセッション(トランザクション)について、ユニークなIDが付与される。
It is assumed that data processing between the
また、サーバプロセス111は、各データの整合性等を保つために、各レコードの状態を管理(アクセス管理)しながらトランザクション処理を実行する。この実施形態では、例として、サーバプロセス111は、各レコードについて、現在処理中のセッション(トランザクション)以外からのアクセスを禁止する「競合ロック状態」、又は、いずれのセッション(トランザクション)からもアクセス可能な「解放状態」のいずれかの状態で管理されるものとする。サーバプロセス111は、データベースクライアント20からの要求に応じて、データ記憶領域121のレコードのレコードを更新すると、当該レコードについて「競合ロック状態」として管理する。そして、その後、サーバプロセス111は、データベースクライアント20(更新したアプリケーションプロセス35)からの要求に応じて、当該レコードのコミットを行った後、当該レコードを解放状態として管理する。サーバプロセス111は、競合ロック状態のレコードについては、他のトランザクションからのデータ更新を待ち合わせ状態として管理し、解放状態となった後に更新を行う。
The
(A−2)実施形態の動作
次に、以上のような構成を有するこの実施形態のデータベースシステム1の動作(実施形態のデータベースシステムの制御方法)を説明する。
(A-2) Operation of Embodiment Next, the operation of the database system 1 of this embodiment having the above configuration (the database system control method of the embodiment) will be described.
(A−2−1)データ更新の基本シーケンス
図2は、データベースサーバ10(ファイルシステム12のデータ記憶領域121)上で任意のデータ(以下、「レコードA」と呼ぶ)を更新する場合のトランザクション処理の例について示したシーケンス図である。
(A-2-1) Basic Sequence of Data Update FIG. 2 shows a transaction when updating arbitrary data (hereinafter referred to as “record A”) on the database server 10 (
ここでは、データベースクライアント20は、初期において、サーバ30−1がACT系、サーバ30−2がSBY系として動作しているものとして説明する。
Here, it is assumed that the
まず、データベースクライアント20におけるACT系(サーバ30−1)のアプリケーションプロセス35が、データベースサーバ10(サーバ11のサーバプロセス111)にセッション接続要求(データベース処理に係るセッション接続要求)を送信し(S101)、データベースサーバ10(サーバプロセス111)が、その送信要求について応答(接続OK)したものとする(S102)。
First, the
なお、ACT系のアプリケーションプロセス35は、データベースサーバ10ヘのアクセスが必要となる都度セッション生成するようにしてもよいし、予め用意された接続セッションを排他的に確保して利用しても良い。
The
そして、ACT系のアプリケーションプロセス35は、データベースサーバ10(サーバプロセス111)とのセッションを保持(生成又は確保)した後、任意のレコードAについて内容を変更する更新要求を送信したものとする(S103)。
Then, the
そして、レコードAの更新要求を受けたデータベースサーバ10(サーバプロセス111)は、ファイルシステム12(データ記憶領域121)のレコードAについて更新処理を行ったものとする(S104)。ここでは、レコードAの初期状態は解放状態で、データベースサーバ10(サーバプロセス111)によるレコードAの更新は成功したものとする。そして、データベースサーバ10(サーバプロセス111)は、レコードAを、競合ロック状態として管理する。以後、データベースサーバ10(サーバプロセス111)は、レコードAについて、コミットによる更新確定までの間は、他接続セッション(トランザクション)からの更新要求は、待ち合わせ状態として管理する。また、データベースサーバ10(サーバプロセス111)は、データ記憶領域121のレコードAについて、更新前の状態へロールバック可能とするためのログ情報をログ記憶領域122に記憶する。
Then, it is assumed that the database server 10 (server process 111) that has received the update request for record A has performed update processing on record A in the file system 12 (data storage area 121) (S104). Here, it is assumed that the initial state of the record A is a released state, and the update of the record A by the database server 10 (server process 111) is successful. Then, the database server 10 (server process 111) manages the record A as a contention lock state. Thereafter, the database server 10 (server process 111) manages an update request from another connection session (transaction) as a waiting state for the record A until the update is confirmed by the commit. Further, the database server 10 (server process 111) stores, in the
そして、データベースサーバ10(サーバプロセス111)は、レコードAの更新結果(更新成功)を、ACT系のアプリケーションプロセス35に応答する(S105)。 Then, the database server 10 (server process 111) responds to the update result (update success) of the record A to the ACT system application process 35 (S105).
そして、更新成功の更新結果を受けたACT系のアプリケーションプロセス35は、データベースサーバ10(サーバプロセス111)に、レコードAのコミット要求を送信する(S106)。
The
そして、レコードAのコミット要求を受けたデータベースサーバ10(サーバプロセス111)は、レコードAのコミット処理(競合ロック状態を解除して解放状態とする処理)を実行し(S107)、コミット処理の結果(コミット成功)をACT系のアプリケーションプロセス35に応答する(S108)。 The database server 10 (server process 111) that has received the commit request for record A executes the commit process for record A (the process for releasing the contention lock state and releasing it) (S107), and the result of the commit process (Commit success) is returned to the ACT application process 35 (S108).
上述のように、データベースサーバ10(サーバプロセス111)は、コミットによる更新レコードの確定について、トランザクション単位に実行する。また、データベースサーバ10(サーバプロセス111)では、このコミット処理が実施されたことを契機として、レコードAの競合ロック状態が解除され、他トランザクションからレコードAへのデータ更新(待ち合わせ状態のトランザクション等)が可能となる。これにより、データベースサーバ10(サーバプロセス111)では、関連性のあるレコードの更新において、内容の矛盾が発生しない(整合性を保つ)ことを保障する。 As described above, the database server 10 (server process 111) executes update record confirmation by commit in units of transactions. Further, in the database server 10 (server process 111), when the commit process is performed, the contention lock state of the record A is released, and data is updated from another transaction to the record A (such as a transaction in a waiting state). Is possible. As a result, the database server 10 (server process 111) ensures that no content conflict occurs (maintains consistency) in updating related records.
そして、ACT系のアプリケーションプロセス35は、データベースサーバ10(サーバプロセス111)に対してセッションの切断を要求し(S109)、一連のトランザクション(セッション)の処理が終了する。
Then, the
なお、ACT系のアプリケーションプロセス35では、図1に示す一連の処理(接続セッション生成から、切断まで)の詳細を、メモリ上で管理する必要がある(この手続き単位を、以下では、「コンテキスト」、又は「ハンドラ」と呼ぶ)。
In the
(A−2−2)レコード更新後、コミット処理前に異常が発生した場合
次に、上述の図2のシーケンスにおいて、データベースシステム1(サーバプロセス111)がレコードAの更新を実行した後、コミット処理前(ステップS103の処理後から、ステップS107の処理前までの間)に、ACT系のアプリケーションプロセス35が異常状態(例えば、コアダンプを出力した状態)となった場合の動作について説明する。
図3では、上述の図2のシーケンスにおいて、ステップS103の処理後から、ステップS107の処理前までの間に、ACT系のアプリケーションプロセス35が異常となった状態について示している。すなわち、この時点では、レコードAに対するコミット処理が未実施であるため、レコードAは競合ロック状態となっている。
(A-2-2) When an error occurs after record update and before commit processing Next, in the sequence of FIG. 2 described above, the database system 1 (server process 111) executes update of record A and then commits. An operation when the
FIG. 3 shows a state in which the ACT-related
そして、図3では、この時点で、ACT系のアプリケーションプロセス35(サーバ30−1のアプリケーションプロセス35)が異常状態となり、障害管理33でその異常状態が検知され、系構成管理34により系切替が開始されたものとする。そして、このとき、データベースクライアント20で系切替が実行される場合の動作について図4、図5のフローチャートを用いて説明する。
In FIG. 3, at this time, the ACT system application process 35 (the
図4、図5では、ACT系として動作していたサーバ30−1がSBY系に切り替わり、SBY系として動作していたサーバ30−2がACT系に切り替わる動作について示している。そして、図4、図5では、ACT系として動作していたサーバ30−1を「旧ACT系」又は「新SBY系」と図示している。また、図4、図5では、SBY系として動作していたサーバ30−2を、「新ACT系」又は「旧SBY系」と図示している。 4 and 5 show an operation in which the server 30-1 operating as the ACT system is switched to the SBY system and the server 30-2 operating as the SBY system is switched to the ACT system. 4 and 5, the server 30-1 operating as the ACT system is illustrated as “old ACT system” or “new SBY system”. 4 and 5, the server 30-2 operating as the SBY system is illustrated as “new ACT system” or “old SBY system”.
まず、旧ACT系(サーバ30−1)の系構成管理34で、系切替が決定され、通信により、旧SBY系(サーバ30−2)の系構成管理34に、系切替の要求が通知されたものとする。そして、旧SBY系(サーバ30−2)では、系構成管理34からアプリケーションプロセス35に、新ACT系として起動することの要求(再開起動要求)があったものとする。そして、旧SBY系(サーバ30−2)のアプリケーションプロセス35が、その再開起動要求を受付けたものとする(S201)。
First, system switching is determined by the
そして、サーバ30−2のアプリケーションプロセス35は、再開起動要求を受付けると、旧SBY系から新ACT系に遷移する処理を開始する。具体的には、サーバ30−2のアプリケーションプロセス35は、旧SBY系から新ACT系に遷移する際、データベースサーバ10と協働して、旧ACT系のアプリケーションプロセス35で未完結となっているセッション(接続状態となっているセッション)について、強制的に切断するセッション切断処理を行う。そして、このセッション切断処理に伴って、データベースサーバ10では、旧ACT系のアプリケーションプロセス35で未完結となっているセッションに係る競合ロック状態のレコードを、強制的にロールバックする処理(以下、「強制ロールバック処理」と呼ぶ)が行われる(S202)。
And the
旧ACT系のアプリケーションプロセス35で未完結となっているトランザクションに係るセッションは、データベースサーバ10側では継続しており、レコードAの状態も競合ロック状態のままである。そこで、サーバ30−2のアプリケーションプロセス35は、旧SBY系から新ACT系に遷移する際に、セッション切断処理(強制ロールバック処理を含む)を実行することにより、データベースサーバ10側の状態を、旧ACT系のアプリケーションプロセス35がセッション(トランザクション)を開始する前の状態に復帰させる。すなわち、セッション切断処理(強制ロールバック処理を含む)により、レコードAは更新前の状態にロールバックされ、さらに競合ロック状態から解放されて解放状態に復帰し、他セッション(トランザクション)によるデータ更新も可能となる。
The session related to the transaction that has not been completed in the old ACT
セッション切断処理が終了すると、サーバ30−2のアプリケーションプロセス35は、旧SBY系から新ACT系に遷移する初期設定処理を実行し(S203)、サービスを再開し(S204)、データベースサーバ10に対して新たな更新要求を送信可能な状態となる。
When the session disconnection process ends, the
次に、サーバ30−2のアプリケーションプロセス35によるセッション切断処理(強制ロールバック処理を含む)の詳細について図5のフローチャートを用いて説明する。
Next, details of session disconnection processing (including forced rollback processing) by the
サーバ30−2のアプリケーションプロセス35は、セッション切断処理を開始すると、データベースサーバ10(サーバプロセス111)とのセッションを接続し(S301)、旧ACT系アプリケーションプロセス35に係る継続中のセッション情報(トランザクション情報)の収集を試みる(S302)。
When the
ここで、サーバ30−2のアプリケーションプロセス35が収集するセッション情報の形式は限定されないものであるが、例えば、現在サーバプロセス111で接続中のセッションのIDの一覧としてもよい。
Here, the format of the session information collected by the
そして、サーバ30−2のアプリケーションプロセス35は、収集したセッション情報から、旧ACT系アプリケーションプロセス35に係る継続中のセッションの有無を確認する(S303)。そして、サーバ30−2のアプリケーションプロセス35は、該当するセッションを検出した場合には、後述するステップS304の処理から動作し、該当するセッションが検出できない場合にはセッション切断処理を終了する。
Then, the
サーバ30−2のアプリケーションプロセス35が、収集したセッション情報から、旧ACT系アプリケーションプロセス35に係る継続中のセッションの有無を確認する方法については限定されないものである。サーバ30−2のアプリケーションプロセス35は、例えば、旧ACT系のサーバ30−1から、アプリケーションプロセス35が出力したコアダンプを、系構成管理34経由で取得して、そのコアダンプから、旧ACT系アプリケーションプロセス35のセッション(セッションID)を特定し、収集したセッション情報と照合するようにしてもよい。
The method in which the
そして、該当するセッションを検出した場合、サーバ30−2のアプリケーションプロセス35は、そのセッションを指定して、データベースサーバ10(サーバプロセス111)に切断を要求する。そして、データベースサーバ10(サーバプロセス111)側で要求されたセッションの処理が実行される。そして、データベースサーバ10(サーバプロセス111)から、サーバ30−2のアプリケーションプロセス35に、セッション切断の結果(切断の成功又は失敗)が通知されることになる(S304)。
When a corresponding session is detected, the
この場合、サーバ30−2のアプリケーションプロセス35には、データベースサーバ10上で、他のアプリケーションプロセス35からのセッションであっても切断が可能な権限が付与されている必要がある。また、このとき、サーバ30−2のアプリケーションプロセス35は、複数のセッション切断を要求することもありえる。例えば、アプリケーションプロセス35がマルチスレッド構成で、各スレッドが接続セッションを生成している場合は、旧ACT系から複数の接続セッションが存在することとなるためである。
In this case, it is necessary for the
図6は、系切り替え時の新ACT系のアプリケーションプロセス35が再開起動処理時に旧ACT系からの接続セッションを強制切断する際のデータベースシステム1の状態について示した説明図である。
FIG. 6 is an explanatory diagram showing the state of the database system 1 when the new
図6に示すように、データベースサーバ10(サーバプロセス111)は、要求に基づくセッション切断に伴い、切断されたセッションに係るトランザクションについては、もはや完結することは無いと判断し、当該トランザクションが保持しているレコード(競合ロック状態を維持し、コミット待ちの状態のレコード)のロールバック処理を実施する。言い換えると、データベースサーバ10は、コミットされていない更新中のレコードに対しては、データベースクライアント20との疎通が破棄された場合は、コミットではなく、ロールバックを選択し、データを更新前の状態に書き戻す。尚、セッション切断処理開始の条件となる、旧ACT系での異常状態検出時(アプリケーションプロセス35の異常検出時)において、当該アプリケーションプロセス35は、実行中トランザクションを完結することはできないため、上述の接続セッション切断及びロールバックの処理は、期待される動作といえる。
As shown in FIG. 6, the database server 10 (server process 111) determines that the transaction related to the disconnected session is no longer completed due to the session disconnection based on the request, and the transaction is retained. Rollback processing is performed on the record being held (the record that maintains the contention lock state and is waiting for commit). In other words, the
そして、サーバ30−2のアプリケーションプロセス35は、切断要求した全てのセッション切断(強制ロールバック処理を含む)が成功したか否かを確認する(S305)。サーバ30−2のアプリケーションプロセス35は、切断要求した全てのセッション切断が成功した場合には、強制ロールバック処理を終了し、そうでない場合(未完了)の場合には、上述のステップS302に戻り、再度セッション切断の処理を実行する。
Then, the
図7は、系切り替え時の新ACT系のアプリケーションプロセス35が再開起動処理した後(系切替後)のデータベースシステム1の状態について示した説明図である。
FIG. 7 is an explanatory diagram showing the state of the database system 1 after the restart process of the new
図7の状態では、新ACT系のアプリケーションプロセス35により、旧ACT系の接続セッション切断処理(強制ロールバック処理を含む)が完了している。したがって、図7の状態では、データベースサーバ10では、レコードAに係るデータ更新要求の阻害要因は無く、データ更新を実施することが可能となっている。
In the state of FIG. 7, the old ACT connection session disconnection process (including the forced rollback process) is completed by the new
(A−3)実施形態の効果
この実施形態によれば、以下のような効果を奏することができる。
(A-3) Effects of Embodiment According to this embodiment, the following effects can be achieved.
データベースクライアント20では、ACT系のアプリケーションプロセス35が異常状態となった場合には、系切替時に新ACT系のアプリケーションプロセス35が、データベースサーバ10に、旧ACT系に係るセッション切断及び強制ロールバック処理を要求する。これにより、新ACT系のアプリケーションプロセス35では、系切替直後であっても、ACT系のアプリケーションプロセス35が異常状態となったことに伴う系切替時の影響(例えば、旧ACT系の障害の影響を受け、レコードの競合待ち合わせとなること等)を低減することができる。
In the
(B)他の実施形態
本発明は、上記の実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
(B) Other Embodiments The present invention is not limited to the above-described embodiments, and may include modified embodiments as exemplified below.
(B−1)上記の実施形態では、図5に示すセッション切断処理について、新ACT系のサーバ30−1が行う場合について説明したが、旧ACT系のサーバ30−1側で、アプリケーションプロセス35の障害(コアダンプ出力)を、障害管理33で検出した段階で実行するようにしても良い。また、旧ACT系及び新ACT系の両方で実行し、より確実にセッション切断処理(強制ロールバック処理を含む)を実行するようにしてもよい。
(B-1) In the above embodiment, the session disconnection process illustrated in FIG. 5 is described as being performed by the new ACT server 30-1, but the
また、上述の図5に示す処理では、データベースサーバ10(サーバプロセス111)側で、セッション切断に伴って対応するレコードをロールバックするが、データベースクライアント20側(サーバ30−2のアプリケーションプロセス35側)から、セッション又はレコードを指定してロールバックを要求するようにしてもよい。
In the process shown in FIG. 5, the database server 10 (server process 111) side rolls back the corresponding record when the session is disconnected, but the
(B−2)新ACT系のサーバ30−1で、上述の図5のフローチャートの処理が行われている間、旧ACT系アプリケーションプロセス35では、異常状態(コアダンプ出力の状態)を継続するようにしてもよいし、系構成管理34により、強制的に終了するようにしてもよい。新ACT系からの接続セッション切断要求よりも先に、コアダンプ終了によりアプリケーションプロセス35が消滅した場合も、最終的には期待通り、ロールバックが実施されるはずだからである。
(B-2) While the process of the flowchart of FIG. 5 described above is performed on the new ACT server 30-1, the old
1…データベースシステム、10…データベースサーバ、11…サーバ装置、111…サーバプロセス、12…ファイルシステム、121…データ記憶領域、122…ログ記憶領域、20…データベースクライアント、30、30−1、30−2…サーバ、31…ハードウェア、32…カーネル、33…障害管理、34…系構成管理、35…アプリケーションプロセス。 DESCRIPTION OF SYMBOLS 1 ... Database system, 10 ... Database server, 11 ... Server apparatus, 111 ... Server process, 12 ... File system, 121 ... Data storage area, 122 ... Log storage area, 20 ... Database client, 30, 30-1, 30- 2 ... server, 31 ... hardware, 32 ... kernel, 33 ... failure management, 34 ... system configuration management, 35 ... application process.
Claims (3)
第1のデータ処理部が現用系として動作しているときに、上記第1のデータ処理部で異常が発生したことを検知する異常検知手段と、
上記異常検知手段が上記第1のデータ処理部の異常を検知した場合に、待機系として動作している第2のデータ処理部を現用系に切替える処理を行う系切替手段と、
上記第1のデータ処理部が異常発生時に、上記データベースサーバと接続状態であった接続状態セッションに係るセッション情報を収集するセッション情報収集手段と、
上記セッション情報収集手段が収集したセッション情報に基づいて、上記データベースサーバ上の上記第1のデータ処理部に係る接続状態セッションを特定し、上記データベースサーバに、上記第1のデータ処理部に係る接続状態セッションの切断を実行させるセッション切断手段と、
上記セッション切断手段が接続状態セッションを切断する際に、上記データベースサーバ上で、当該接続状態セッションで更新されたデータについて、当該接続状態セッションによる更新前の状態にロールバックさせるロールバック手段と
を有することを特徴とするデータベースシステム。 In a database system comprising a database server and a database client in which a redundant configuration is formed by a plurality of data processing units,
An abnormality detection means for detecting that an abnormality has occurred in the first data processing unit when the first data processing unit is operating as an active system;
A system switching unit for performing processing for switching the second data processing unit operating as a standby system to the active system when the abnormality detection unit detects an abnormality in the first data processing unit;
Session information collection means for collecting session information relating to a connection state session that is in a connection state with the database server when the first data processing unit is abnormal;
Based on the session information collected by the session information collection means, the connection state session related to the first data processing unit on the database server is specified, and the connection related to the first data processing unit is connected to the database server Session disconnection means for executing state session disconnection;
When the session disconnection unit disconnects the connection state session, the database server has a rollback unit that rolls back the data updated in the connection state session to the state before the update by the connection state session. A database system characterized by that.
異常検知手段、系切替手段、セッション情報収集手段、セッション切断手段及びロールバック手段を備え、
上記異常検知手段は、第1のデータ処理部が現用系として動作しているときに、上記第1のデータ処理部で異常が発生したことを検知し、
上記系切替手段は、上記異常検知手段が上記第1のデータ処理部の異常を検知した場合に、待機系として動作している第2のデータ処理部を現用系に切替える処理を行い、
上記セッション情報収集手段は、上記第1のデータ処理部が異常発生時に、上記データベースサーバと接続状態であった接続状態セッションに係るセッション情報を収集し、
上記セッション切断手段は、上記セッション情報収集手段が収集したセッション情報に基づいて、上記データベースサーバ上の上記第1のデータ処理部に係る接続状態セッションを特定し、上記データベースサーバに、上記第1のデータ処理部に係る接続状態セッションの切断を実行させ、
上記ロールバック手段は、上記セッション切断手段が接続状態セッションを切断する際に、上記データベースサーバ上で、当該接続状態セッションで更新されたデータについて、当該接続状態セッションによる更新前の状態にロールバックさせる
ことを特徴とするデータベースシステムの制御方法。 In a database system control method comprising a database server and a database client in which a redundant configuration is formed by a plurality of data processing units,
Anomaly detection means, system switching means, session information collection means, session disconnection means and rollback means,
The abnormality detection means detects that an abnormality has occurred in the first data processing unit when the first data processing unit is operating as an active system,
The system switching unit performs a process of switching the second data processing unit operating as a standby system to the active system when the abnormality detection unit detects an abnormality of the first data processing unit,
The session information collection means collects session information related to a connection state session that is in a connection state with the database server when the first data processing unit is abnormal,
The session disconnecting unit specifies a connection state session related to the first data processing unit on the database server based on the session information collected by the session information collecting unit, and sends the first session to the database server. Disconnect the connection status session related to the data processing unit,
When the session disconnection unit disconnects the connection state session, the rollback unit rolls back the data updated in the connection state session to the state before the update by the connection state session on the database server. And a database system control method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013007662A JP6107159B2 (en) | 2013-01-18 | 2013-01-18 | Database system and database system control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013007662A JP6107159B2 (en) | 2013-01-18 | 2013-01-18 | Database system and database system control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014137798A true JP2014137798A (en) | 2014-07-28 |
JP6107159B2 JP6107159B2 (en) | 2017-04-05 |
Family
ID=51415239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013007662A Active JP6107159B2 (en) | 2013-01-18 | 2013-01-18 | Database system and database system control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6107159B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019012407A (en) * | 2017-06-30 | 2019-01-24 | 京セラドキュメントソリューションズ株式会社 | Remote communication control system, session management system, and session management program |
CN111552637A (en) * | 2020-04-20 | 2020-08-18 | 北京顺达同行科技有限公司 | Database state detection method and device, electronic equipment and storage medium thereof |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011248737A (en) * | 2010-05-28 | 2011-12-08 | Fujitsu Ltd | Task takeover program, processing device and computer system |
-
2013
- 2013-01-18 JP JP2013007662A patent/JP6107159B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011248737A (en) * | 2010-05-28 | 2011-12-08 | Fujitsu Ltd | Task takeover program, processing device and computer system |
Non-Patent Citations (1)
Title |
---|
JPN6016034832; 山近慶一: '不慮のトラブルに備えて可用性を高めよう! クラスタシステム完全自作マニュアル' Windows 2000 World 第7巻 第12号, 20021201, 164-192ページ, (株)IDGジャパン * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019012407A (en) * | 2017-06-30 | 2019-01-24 | 京セラドキュメントソリューションズ株式会社 | Remote communication control system, session management system, and session management program |
CN111552637A (en) * | 2020-04-20 | 2020-08-18 | 北京顺达同行科技有限公司 | Database state detection method and device, electronic equipment and storage medium thereof |
CN111552637B (en) * | 2020-04-20 | 2023-05-19 | 北京顺达同行科技有限公司 | Database state detection method and device, electronic equipment and storage medium thereof |
Also Published As
Publication number | Publication date |
---|---|
JP6107159B2 (en) | 2017-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019085875A1 (en) | Configuration modification method for storage cluster, storage cluster and computer system | |
WO2016070375A1 (en) | Distributed storage replication system and method | |
CN103226502B (en) | A kind of data calamity is for control system and data reconstruction method | |
JP5352115B2 (en) | Storage system and method for changing monitoring condition thereof | |
JP4572250B2 (en) | Computer switching method, computer switching program, and computer system | |
US20130073894A1 (en) | Techniques for achieving high availability with multi-tenant storage when a partial fault occurs or when more than two complete faults occur | |
WO2021136422A1 (en) | State management method, master and backup application server switching method, and electronic device | |
WO2021103499A1 (en) | Multi-active data center-based traffic switching method and device | |
EP2902922B1 (en) | Distributed file system and data backup method for distributed file system | |
US8533525B2 (en) | Data management apparatus, monitoring apparatus, replica apparatus, cluster system, control method and computer-readable medium | |
CN102394914A (en) | Cluster brain-split processing method and device | |
CN105493474A (en) | System and method for supporting partition level journaling for synchronizing data in a distributed data grid | |
JP2011164800A (en) | Storage system and storage control method | |
CN113438111A (en) | Method for restoring RabbitMQ network partition based on Raft distribution and application | |
JP5056504B2 (en) | Control apparatus, information processing system, control method for information processing system, and control program for information processing system | |
JP6107159B2 (en) | Database system and database system control method | |
CN118018463A (en) | Fault processing method, device, equipment and readable storage medium | |
JP2012014674A (en) | Failure recovery method, server, and program in virtual environment | |
JP2009075710A (en) | Redundant system | |
CN116668269A (en) | Arbitration method, device and system for dual-activity data center | |
JP6856574B2 (en) | Service continuation system and service continuation method | |
CN113297134A (en) | Data processing system, data processing method and device, and electronic device | |
WO2014155654A1 (en) | Information processing device, and information processing device replacement assistance system and replacement assistance method | |
CN114422567B (en) | Data request processing method, device, system, computer equipment and medium | |
US20120089716A1 (en) | Method for accelerating start up of a computerized system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151117 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160830 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160913 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161110 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170220 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6107159 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |