JP2015064777A - データベースシステム、データベース更新方法及びデータベース更新プログラム - Google Patents

データベースシステム、データベース更新方法及びデータベース更新プログラム Download PDF

Info

Publication number
JP2015064777A
JP2015064777A JP2013198772A JP2013198772A JP2015064777A JP 2015064777 A JP2015064777 A JP 2015064777A JP 2013198772 A JP2013198772 A JP 2013198772A JP 2013198772 A JP2013198772 A JP 2013198772A JP 2015064777 A JP2015064777 A JP 2015064777A
Authority
JP
Japan
Prior art keywords
data
difference
database server
database
matching
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
Application number
JP2013198772A
Other languages
English (en)
Other versions
JP6237050B2 (ja
Inventor
阿部 哲也
Tetsuya Abe
哲也 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2013198772A priority Critical patent/JP6237050B2/ja
Publication of JP2015064777A publication Critical patent/JP2015064777A/ja
Application granted granted Critical
Publication of JP6237050B2 publication Critical patent/JP6237050B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】データベースサーバ間のデータ整合処理において、最適化された条件及び整合実施順序により、差分データの整合を最適化することができるようにする。【解決手段】本発明は、データ更新が行なわれている第1のデータベースサーバと、データ更新がなされていない第2のデータベースサーバとの間のデータ差分の整合を行う際、基準日時情報以降に、第1のデータベースサーバにおいて更新されたデータのうち、所定の差分抽出条件情報に基づいて、削除差分、更新差分及び追加差分を抽出する差分抽出手段と、抽出されたデータ差分に基づき、第2のデータベースサーバに対して、削除整合処理、更新整合処理、追加整合処理の順でデータ更新を行ないデータ整合処理手段とを備える。【選択図】 図1

Description

本発明は、データベースシステム、データベース更新方法及びデータベース更新プログラムに関し、例えば、冗長化されたデータベースサーバにおいて発生した差分データを整合するデータベースシステム、データベース更新方法及びデータベースプログラムに適用し得るものである。
従来、データベース分散トランザクション環境下において、分散されたデータベース間のデータ整合性を保つために、データベースサーバとデータベースクライントとの間で二相コミットプロトコルに従ったデータ更新が行なわれる場合がある。
しかし、二相コミットは、全てのデータベースサーバがコミット可能な状態であることが必要となる。そのため、一部のデータベースサーバが停止している場合には、二相コミットによるデータ更新を実行することができない事態が生じ得る。
特許文献1には、二相コミットによるデータ更新を実行できない場合に、一相コミットプロトコルに従って更新されたデータを、冗長化された他のデータベースに整合することが開示されている。
特開2009−122935号公報
しかしながら、上述した特許文献1の記載技術は、冗長化された複数のデータベースサーバ間でデータの差分が生じている場合にデータの整合性を図る詳細な方式や手順については明らかでない。
例えば、更新時刻情報に基づいて、あるデータベースサーバ(以下、DBサーバ)上のデータを、他方のDBサーバに整合する場合、差分データの整合を無条件で実施すると、エラーの発生や冗長な処理で整合に時間が掛かるため、非効率な処理で実施する可能性が生じ得る。
そのため、データベースサーバ間のデータ整合処理において、最適化された条件及び整合実施順序により、差分データの整合を最適化することができるデータベースシステム、データベース更新方法及びデータベース更新プログラムが求められている。
かかる課題を解決するために、第1の本発明は、継続的にデータ更新が行なわれている第1のデータベースサーバと、データ更新がなされていない第2のデータベースサーバとの間のデータ差分の整合を行うデータベースシステムにおいて、(1)データ差分が生じ得る基準日時情報以降に、第1のデータベースサーバにおいて更新されたデータのうち、所定の差分抽出条件情報に基づいて、削除差分、更新差分及び追加差分を抽出する差分抽出手段と、(2)差分抽出手段により抽出されたデータ差分に基づき、第2のデータベースサーバに対して、削除整合処理、更新整合処理、追加整合処理の順でデータ更新を行ない、第2のデータベースサーバに記録されるデータを第1のデータベースサーバに記録されるデータと一致させるデータ整合処理手段とを備えることを特徴とするデータベースシステムである。
第2の本発明は、継続的にデータ更新が行なわれている第1のデータベースサーバと、データ更新がなされていない第2のデータベースサーバとの間のデータ差分の整合を行うデータベース更新方法において、(1)差分抽出手段が、データ差分が生じ得る基準日時情報以降に、第1のデータベースサーバにおいて更新されたデータのうち、所定の差分抽出条件情報に基づいて、削除差分、更新差分及び追加差分を抽出する差分抽出工程と、(2)データ整合処理手段が、上記差分抽出手段により抽出されたデータ差分に基づき、第2のデータベースサーバに対して、削除整合処理、更新整合処理、追加整合処理の順でデータ更新を行ない、第2のデータベースサーバに記録されるデータを第1のデータベースサーバに記録されるデータと一致させるデータ整合処理工程とを有することを特徴とするデータベース更新方法である。
第3の本発明は、継続的にデータ更新が行なわれている第1のデータベースサーバと、データ更新がなされていない第2のデータベースサーバとの間のデータ差分の整合を行うデータベース更新プログラムにおいて、コンピュータを、(1)データ差分が生じ得る基準日時情報以降に、第1のデータベースサーバにおいて更新されたデータのうち、所定の差分抽出条件情報に基づいて、削除差分、更新差分及び追加差分を抽出する差分抽出手段と、(2)差分抽出手段により抽出されたデータ差分に基づき、第2のデータベースサーバに対して、削除整合処理、更新整合処理、追加整合処理の順でデータ更新を行ない、第2のデータベースサーバに記録されるデータを第1のデータベースサーバに記録されるデータと一致させるデータ整合処理手段として機能させることを特徴とするデータベース更新プログラムである。
本発明によれば、データベースサーバ間のデータ整合処理において、最適化された条件及び整合実施順序により、差分データの整合を最適化することができる。
実施形態に係るデータベースシステムの全体構成を示すブロック図である。 実施形態に係るデータベースクライアント10、データベースサーバに対する状態ポーリング動作示すシーケンス図である。 実施形態に係るデータベースシステムにおいて、二相コミットの実施ができない場合のトランザクション処理の動作を示すシーケンス図である。 実施形態に係るデータベースシステムにおけるデータ整合の対象とするデータ差分の種類を説明する説明図である。 実施形態に係るデータベースシステムにおけるデータ整合処理を示すフローチャートである。 実施形態に係るデータベースシステムにおけるデータ差分抽出条件を説明する説明図である。 実施形態に係る削除整合処理のSQL表記のイメージである。 実施形態に係るデータ差分抽出条件の変形例を説明する説明図である。 実施形態に係る更新整合処理のSQL表記のイメージである。 実施形態に係る追加整合処理のSQL表記のイメージである。 実施形態に係るデータベースシステム1においてデータ整合処理の際の各データベースサーバ上のレコード状態を説明する説明図である。 実施形態に係るデータベースシステム1において削除整合処理の際の各データベースサーバ上のレコード状態を説明する説明図である。 実施形態に係るデータベースシステム1において更新整合処理の際の各データベースサーバ上のレコード状態を説明する説明図である。 実施形態に係るデータベースシステム1において追加整合処理の際の各データベースサーバ上のレコード状態を説明する説明図である。
(A)主たる実施形態
以下、本発明のデータベースシステム、データベース更新方法及びデータベース更新プログラムの実施形態を、図面を参照しながら詳細に説明する。
(A−1)実施形態の構成
図1は、この実施形態に係るデータベースシステム1の全体構成を示すブロック図である。
図1において、この実施形態に係るデータベースサーバ1は、ネットワークNに接続可能な、データベースクライアント10、2台のデータベースサーバ20(20−1、20−2)を有する。
なお、以下では、必要に応じて、データベースサーバ20−1をDBサーバ#1、データベースサーバ20−2をDBサーバ#2と表記して説明する。
データベースシステム1は、データベースクライアント10から、データベースサーバ20−1、20−2にデータベースのデータ更新や参照などのトランザクションが与えられ、処理が行われる分散トランザクション環境である。
データベースクライアント10は、データベースサーバ20−1、20−2にデータベースに係るトランザクションを与えるものである。図1では、データベースクライアント10が1個の構成となっているが、その数は限定されないものである。データベースクライアント10は、パーソナルコンピュータ等の情報処理装置(1台に限定されず、複数台を分散処理し得るようにしたものであっても良い。)上に、実施形態のデータベースクライアントプログラム(固定データを含む)をインストールすることにより、構築されるものである。
データベースサーバ20(20−1、20−2)は、データベースクライアント10から与えられたトランザクションの処理を行うものであり、DBMS21(21−1、21−2)、データベースファイルシステム22(22−1、22−2)を有している。データベースサーバ20−1、20−2は、パーソナルコンピュータなどの情報処理装置(1台に限定されず、複数台を分散処理し得るようにしたものであっても良い。)上に、実施形態のデータベース提供プログラム(固定データを含む)やデータベース更新プログラムをインストールすることにより、構築されるものであるが、機能的には図1のように表すことができる。
DBMS21−1、21−2は、データベース管理システム(Data Base Management System)の機能を担っており、例えば、データベースクライアント10からトランザクションを受け取り、データベースファイルシステム22−1、22−2を制御するなどして受け取ったトランザクションの処理を行うものである。
データベースファイルシステム22(22−1、22−2)は、データベースサーバ20(20−1、20−2)において、データベースのデータを記憶する機能などを担っており、例えば、DBMS21(21−1、21−2)の制御に基づいて記憶しているデータの更新を行うものである。また、データベースファイルシステム22(22−1、22−2)は、データ記憶部221(221−1、221−2)、フラグ管理部222(222−1、222−2)、データ整合部51(51−1、51−2)を有している。
データ記憶部221−1、221−2は、データベースサーバ20−1、20−2において、データベースサービスに利用するデータを格納する機能を担っており、メモリデータベースやキャッシュメモリを使用している場合はそれが該当する。
フラグ管理部222(222−1、222−2)は、データベースのデータ更新において、二相コミットにより行われるか否かについて管理するものであり、二相コミットフラグ223(223−1、223−2)を有している。
フラグ管理部222−1、222−2は、当該データベースサーバ20−1、20−2において、データベースのデータ更新が、二相コミットにより行われるか否かを示す二相コミットフラグ223−1、223−2を管理するものである。例えば、二相コミットフラグ223−1、223−2の内容が「ON」に設定されていた場合には、通常通りデータベースのデータ更新が二相コミットプロトコルに従って行われ、「OFF」に設定されていた場合には、二相コミットプロトコルではなく一相コミットプロトコルに従ってデータ更新が行われることを示している。
なお、二相コミットフラグ223−1、223−2に登録される内容は、クライアントライブラリ11が、二相コミットを実施出来ないことを認識できれば良く、例えば、プログラムのメモリ上のフラグやロックファイル、データベース内への状態書き込みなどを用いても良い。また、二相コミットフラグ223−1、223−2の内容は、クライアントライブラリ11が、二相コミットを実施できないことを認識できれば良いので、「ON/OFF」などのフラグによる表示ではなく、例えば、「二相コミットプロトコル/一相コミットプロトコル」などの表示であっても良く、その表示方式は限定されないものである。
また、二相コミットフラグ223−1、223−2の内容は、データベースクライアント10のクライアントライブラリ11により読み込まれ、クライアントライブラリ11では、データベースのデータ更新に関するトランザクションについて、二相コミットフラグ223−1、223−2の内容に応じて、データベースファイルシステム22−1、22−2へ送信するトランザクションの内容を変化させる。
データ整合部51−1、51−2は、データベースサーバ間でデータ差分が生じ得る所定の基点時刻情報(基準日時情報とも呼ぶ。)tを設定し、その基点時刻情報tを基点として、データベースサーバ間で生じ得る、その種類に応じてデータ差分を抽出し、所定の手順に従ってデータ整合を行うものである。つまり、データ整合部51−1、51−2は、差分抽出機能とデータ整合機能とを有する。なお、データ整合部52−1、52−2による差分抽出方法及びデータ整合方法については、動作の項で詳細に説明する。
ここで、基点時刻情報tは、データベースサーバ間で差分データが発生し得る時刻とすることができる。例えば、二相コミットから一相コミットに移行した時点の時刻とすることができる。また例えば、基点時刻情報tは、いずれかのデータベースサーバにおいて障害やメンテナンス等により停止する場合に、その障害発生時の時刻としたり、メンテナンスによる停止時の時刻等としたりすることができる。
クライアントライブラリ11では、二相コミットプロトコルによりデータ更新ができなくなり、いずれかのデータベースサーバ20の二相コミットフラグ223がOFFに設定された場合には、全てのデータベースサーバ20から二相コミットフラグ223の読み込みを試行し、二相コミットフラグ223がOFFに設定されたデータベースサーバにだけデータ更新のトランザクションを送信して一相コミットによりデータ更新を行うようにしても良い。
例えば、データベースサーバ20−2が保守作業などにより停止中に、データベースサーバ20−1において、二相コミットフラグ223−2の内容が「OFF」に設定されていた場合には、クライアントライブラリ11は、二相コミットフラグ223−1の内容を読み込むと、データベースサーバ20−1にだけデータベース更新のトランザクションを送信し、データベースサーバ20−1ではそのトランザクションによりデータベースのデータ更新を行う。
クライアントライブラリ11が、二相コミットフラグ223−1、223−2の内容を読み込む契機としては、例えば、クライアントライブラリ11が、データベースサーバ20−1、20−2にデータベース接続(DBMS21−1、21−2と接続)する際に読み込むようにしても良いし、また例えば、定期的又はトランザクションの発生ごとに読み込むようにしても良いし、さらに例えば、二相コミットできなかった場合に読み込むようにしても良い。また、クライアントライブラリ11が、それぞれのデータベースサーバ20−1、20−2に動作の正常性について問い合わせ(以下、「状態ポーリング」という)を行う際に読み込んでも良い。状態ポーリングについては、後述する動作説明において詳述する。
二相コミットフラグ223−1、223−2内容については、例えば、保守運用作業者などのオペレータが手動で書き換えを行っても良いし、図1において図示は省略しているが、データベースサーバ20−1、20−2の内部又は外部に配置された監視装置により、データベースサーバの動作状況を監視し、データベースサーバの動作状況に応じて、フラグ管理部222−1、フラグ管理部222−2が書き換えるようにしても良い。例えば、データベースサーバ20−2が故障などにより停止した場合に、監視装置により検知し、監視装置がその旨をデータベースサーバ20−1のフラグ管理部222−1に通知し、フラグ管理部222−1が二相コミットフラグ223−1の内容を「OFF」に書き換えるようにしても良い。また例えば、クライアントライブラリ11が、データベースサーバ20−1、20−2の動作状況を監視し、その動作状態に応じて、フラグ管理部222−1、222−2に、二相コミットフラグ223−1、223−2の内容更新を要求するようにしても良い。
(A−2)第1の実施形態の動作
次に、以上のような構成を有する第1の実施形態のデータベースシステム1におけるデータ更新の動作を説明する。
(A−2−1)状態ポーリングについて
まず、データベースクライアント10が、データベースサーバ20−1、20−2の状態について問い合わせを行う状態ポーリングの動作の例について説明する。
図2は、データベースクライアント10が、データベースサーバ20−2に対して状態ポーリングを行った動作の例について示したシーケンス図である。
図2では、データベースクライアント10が、データベースサーバ20−2に状態ポーリングを行った場合について示しているが、データベースサーバ20−1であっても同様であるので説明を省略する。
まず、データベースクライアント10のクライアントライブラリ11から、データベースサーバ20−2に対して、ネットワーク上での疎通確認(例えば、PING)が実施される(S101)。例えば、データベースクライアント10から、データベースサーバ20−2に対して、ネットワーク上での疎通確認をするための信号が送信され、その応答がデータベースサーバ20−2からあった場合には通信可と判定される(S102)。
上述のステップS101によりデータベースサーバ20−2との疎通が確認された場合には、データベースクライアント10(クライアントライブラリ11)から、データベースサーバ20−2のDBMS21−2にデータベース接続が実施され(S103)、DBMS21−2から接続応答があると(S104)データベースサーバ20−2においてデータベース機能が正常に動作していることが確認される(S104)。
上述のステップS102によりデータベースサーバ20−2のデータベースとしての正常性が確認された場合は、データベースクライアント10(クライアントライブラリ11)は、データベースファイルシステム22−2へのアクセスの正常性と判断し、データベースファイルシステム22−2にアクセスする(S105)。そして、データベースファイルシステム22−2は、アクセス結果をデータベースクライアント10(クライアントライブラリ11)に送信し、二相コミットフラグ223−2の内容が読込まれる(S106)。
(A−2−2)トランザクション(データベース更新)処理
図1の構成では、通常であればデータベースクライアント10(クライアントライブラリ11)から、データベースサービスにおけるデータ更新の要求が、データベースサーバ20−1、20−2に対して送信され、二相コミットプロトコルにより、データベースファイルシステム22−1、22−2のデータが更新される。
次に、データベースシステム1において、二相コミットの実施ができない場合のトランザクション処理の動作について説明する。
図3は、データベースシステム1において、二相コミットの実施ができない場合のトランザクション処理の動作について説明したシーケンス図である。また、図3においては、データベースサーバ20−2が、例えば、障害発生等により停止しており、データベースサーバ20−1の二相コミットフラグ223−1には「OFF」が設定されているものとする。
まず、データベースクライアント10のクライアントライブラリ11により、データベースサーバ20−1に対して上述の図2に示す状態ポーリングの問い合わせが実施される。ここでは、上述の通りデータベースサーバ20−2は停止しているので、ネットワーク上の疎通も取ることができず、上述のステップS101及びS102の時点で終了し、クライアントライブラリ11では、データベースサーバ20−2との接続は不可であったという結果となる(S201)。
クライアントライブラリ11では、データベースサーバ20−1に対しても、上述の図2に示す状態ポーリングの問い合わせが実施され、二相コミットフラグ223−1の内容が読込まれる(S202)。
二相コミットフラグ223−1の内容が読込まれると、データベースクライアント10では、データベースサーバ20−1の二相コミットフラグ223−1の内容が「OFF」となっているため、データベースのデータ更新は、データベースサーバ20−1に対して一相コミットプロトコルにより行うと決定される(S203)。
そして、データベースクライアント10からは、データベースサーバ20−2へのコミットは要求されず、データベースサーバ20−1に対してのみコミットが要求され(S204)、データベースサーバ20−1においてデータが更新される(S205)。
(A−2−3)差分データの整合処理
次に、この実施形態に係るデータベースシステム1におけるデータベースサーバ間で生じる差分データの整合処理について図面を参照しながら詳細に説明する。
ここでは、データベースサーバ20−2に障害が発生して動作が停止した場合を例示する。
データベースサーバ20−2が一旦停止してしまうと、データベースサーバ20−1とデータベースサーバ20−2との間で差分データが生じることになるため、停止状態にあるデータベースサーバ20−2をそのまま起動させて復帰させることができない。
このとき、データベースサーバ20−2に障害が発生した場合に、データベース更新のコミットプロトコルを二相コミットから一相コミットに変更し、データベースサーバ20−1に対してのみデータ更新を行うようにする。
そして、データベースサーバ20−2が運転を停止し、その後、データベースサーバ20−2が運転を再開した後に、データベースサーバ20−1とデータベースサーバ20−2との間でデータ整合を行う必要がある。
図4は、この実施形態に係るデータベースシステム1におけるデータ整合の対象とするデータ差分の種類を説明する説明図である。なお、図4では、説明を容易にするために、データベースサーバ20−2が停止しており、データベースサーバ20−1が一相コミットによるデータ更新がなされている場合を想定したものである。
図4に示すように、データ整合対象となるデータ差分は、大別して、「追加差分」、「更新差分」、「削除差分」がある。
「追加差分」とは、一相コミットによるデータ更新を行うデータベースサーバ(ここでは、データベースサーバ20−1)に新たにレコードが追加されたときに生じ得る差分をいう。ここでは、レコードの追加態様に応じて、「追加差分」を「追加差分A」と「追加差分B」とに分別する。「追加差分A」は、データベースサーバ20−1に追加されたレコードであって、停止状態のデータベースサーバ20−2に存在しないキーで、データベースサーバ20−1側に登録されたレコードが追加された差分をいう。「追加差分B」は、データベースサーバ20−1に追加されたレコードであって、データベースサーバ20−2にも存在するキーで、登録されたレコードの差分をいう。例えば、データベースサーバ20−1側で一旦削除され、同一キーで登録された新たなレコードが追加されたものである。
「更新差分」とは、一相コミットによるデータ更新を行うデータベースサーバ(ここでは、データベースサーバ20−1)が更新したレコードの差分をいう。例えば、両方のデータベースサーバ20−1及び20−2にレコードが存在し、データベースサーバ20−1で任意のカラムに更新されているレコードの差分である。
「削除差分」とは、一相コミットによるデータ更新を行うデータベースサーバ(ここでは、データベースサーバ20−1)が削除したレコードの差分をいう。例えば、データベースサーバ20−1上で削除されたことにより、データベースサーバ20−1に存在しないレコードで、かつ、データベースサーバ20−2に存在するレコードの差分である。
図5は、この実施形態に係るデータベースシステム1におけるデータ整合処理を示すフローチャートである。
まず、データベースサーバ20−1において、データ整合部51−1は、基点時刻情報tを設定する(S301)。
この実施形態では、二相コミットから一相コミットに移行した時点からデータ差分が発生し得るため、二相コミットから一相コミットに移行した時点を基点時刻情報tとするものとする。
ここで、データベースサーバ20−1、20−2に記憶されるレコードには、日時情報が付される。この日時情報は、レコードが生成(すなわち、登録)された日時情報(以下、生成日時情報とも呼ぶ。)と、レコードが更新された事項情報(以下、更新日時情報とも呼ぶ。)を有する。なお、新規登録されたレコードには、同一の日時を示す生成日時情報及び更新日時情報が設定される。また、既に登録されているレコードが更新されたときには、その更新された日時が更新日時情報として設定される。
データベースサーバ20−1では、基点時刻情報tが保持されているため、データ整合部51−1、51−2は、データ差分を抽出基点時刻情報tと、レコードの生成日時情報及び更新日時情報とを比較することにより、所定のデータ差分抽出条件に従って、データベースサーバ20−1内に記憶されるデータの中からデータ差分の抽出し、整合カテゴリを決定する(S302)。
図6は、この実施形態に係るデータベースシステム1におけるデータ差分抽出条件を説明する説明図である。
図6に示すように、データ差分抽出条件は差分の種類毎に定義されており、データ整合部51−1、51−2は、データ差分抽出条件に合致するデータ差分を検索する。これにより、データ差分の種類に応じたデータ差分を抽出することができる。また、図6のデータ差分抽出条件には、各条件に合致するデータ差分に対して、どのように整合するかを示す整合カテゴリが定義されている。
「追加差分A」については、データベースサーバ20−2に同一キーのレコードが存在せず、かつ、データサーバ20−1の更新日時情報が基点時刻情報t以降のレコードとする。例えば、レコードの追加時は、生成日時情報=更新日時情報>基点時刻情報tであり、またレコードの追加後に更新されたレコードは、更新日時情報>生成日時情報>tであるため、いずれの日時情報が条件に入っているものとする。データ整合部51−1、51−2は、この条件に合致するデータ差分を、整合カテゴリ「追加整合」とする。
「追加差分B」については、データベースサーバ20−1、データベースサーバ20−2共に、同一キーのレコードが存在し、かつ、データベースサーバ20−1の生成日時情報/更新日時情報がt以降のレコードとする。データ整合部51−1、51−2は、この条件に合致するデータ差分を、整合カテゴリ「更新整合」とする。
「更新差分」については、データベース20−1、データベースサーバ20−2条に生成日時情報が一致している同一キーのレコードが存在し、かつ、データベースサーバ20−1の更新日時情報がt以降のレコードとする。データ整合部51−1、51−2は、この条件に合致するデータ差分を、整合カテゴリ「更新整合」とする。
「削除差分」については、データベースサーバ20−1にレコードが存在せず、かつ、データベースサーバ20−2に同一キーのレコードが存在する。一相コミット条件下で、データベースサーバ20−2のデータが全く操作されないのであれば、生成日時情報、更新日時情報の条件は不要となる。データ整合部51−1、51−2は、この条件に合致するデータ差分を、整合カテゴリ「削除整合」とする。
次に、データ整合部51−1、51−2は、整合カテゴリ「削除整合」に属するデータ差分についてデータ整合を行う(S303)。つまり、データ整合部51−1、51−2は、削除整合を行うことにより、データベースサーバ20−2側の対象データを削除する。削除対象データの抽出は、図6のデータ差分抽出条件によって決定されたデータ差分に対して行なわれる。
削除整合を最初に実施する理由は、データベースサーバ20−2側のデータ量を予め削減できる可能性がためである。データ量の削減は、追加差分のデータ整合時処理のフォーマンスに影響するからである。
削除整合の処理をRDBMS(リレーショナルデータベース管理システム)のSQLで表記すると図7に示すような表記となる。図7は、削除整合処理のSQL表記のイメージである。
データ整合部51−1及び51−2は、図7(A)のSQLによって、抽出されたレコードに対して、図7(B)を繰り返すことで、削除対象データをデータベースサーバ20−2から削除する。
次に、データ整合部51−1、51−2は、整合カテゴリ「更新整合」に属するデータ差分についてデータ整合を行う(S305)。更新差分の整合では、図6のデータ差分抽出条件に従って「更新整合」となっている「追加差分B」、及び、「更新差分」が対象データとするところが特徴的である。
これは、「追加差分B」は、両方のデータベースサーバ20−1及び20−2に同一キーのレコードが存在しているため、キーカラム以外の全カラムの整合を実施すればからである。また、「更新差分」は、元々、両方のデータベースサーバ20−1及び20−2に同一キーのレコードが存在しており、生成日時情報に変化はないが、キーカラム以外の全力ラムの整合、つまりデータベースサーバ20−1上の情報でデータベースサーバ20−2側のレコードを上書きすることに問題が発生しないからである。
データベースの性能については、一般的に、更新処理時間<追加処理時間、および、更新処理時間<削除処理時間が成り立つ。そのため、「追加差分B」を実際には更新差分として扱い、「追加差分B」を更新整合することにより、整合処理性能の向上に効果があると考えられる。
これにより、更新整合を行う際の実際のデータ抽出条件は、図8の通りに見直しすることができる。
図8は、実施形態に係るデータ差分抽出条件の変形例を説明する説明図である。図8では、「追加差分B」及び「更新差分」については、データベースサーバ20−1、データベースサーバ20−2共に、同一キーのレコードが存在し、かつ、データベースサーバ20−1の更新日時情報がt以降のレコード、かつ、データベースサーバ20−1の更新日時情報が、データベースサーバ20−2の更新日時情報以降のレコードとするように見直している。データ整合部51−1、51−2は、この条件に合致するデータ差分を、整合カテゴリ「更新整合」とする。
また、更新整合処理が、削除整合の次の2番目の手順で実施される理由は、追加差分の整合により、データベースサーバ20−2側のレコード件数を増加させないためである。更新差分の整合は、両データベースサーバ20−1及び20−2に存在するレコードが対象となるが、このレコードを検索する際のデータベースの全体量は少ない方がパフォーマンスは良いはずだからである。
更新整合の処理をRDBMSのSQLで表記すると図9に示すような表記となる。図9は、更新整合処理のSQL表記のイメージである。
データ整合部51−2は、図9(A)のSQLによって、データベースサーバ20−1側からキーカラム以外の全カラム情報を取得する。データベースサーバ20−2において、データ整合部51−2が、データベースサーバ20−2のレコードに対して、図9(B)を繰り返すことで、更新対象データを更新する。
最後に、データ整合部51−1、51−2は、整合カテゴリ「追加整合」に属するデータ差分についてデータ整合を行う(S306)。追加差分の整合は、図6のデータ差分抽出条件により抽出した「追加差分A」をデータ対象とする。
更新整合の処理をRDBMSのSQLで表記すると図10に示すような表記となる。図10は、追加整合処理のSQL表記のイメージである。
データ整合部51−1及び51−2は、図10(A)のSQLによって、抽出されたレコードに対して、図10(B)を繰り返すことで、追加対象データをデータベースサーバ20−2に追加する。
次に、図11〜図14を用いて、具体的なデータ例を参照しながら、この実施形態に係るデータベースシステム1におけるデータ整合処理を説明する。
図11から図14では、説明便宜上、「生成日時情報」を「生成日」と表記し、「更新日時情報」を「更新日」と表記している。また、二相エミットから一相エミットに移行した日時情報が「2013/6/30」であり、基点時刻情報tが「2013/6/30」とする。
図11は、データベースサーバ20−1において一相コミットが実施されて、データベースサーバ20−1及び20−2の間に差分データが発生した状態を示している。
図11において、停止状態にあったデータベースサーバ20−2には、「生成日:2013/6/1」及び「更新日:2013/6/1」のデータA、「生成日:2013/6/1」及び「更新日:2013/6/20」のデータB、「生成日:2013/6/1」及び「更新日:2013/6/1」のデータC、「生成日:2013/6/1」及び「更新日:2013/6/1」のデータD、「生成日:2013/6/1」及び「更新日:2013/6/1」のデータEが登録されている。
一方、一相コミットによりデータ更新が継続されていたデータベースサーバ20−1には、「生成日:2013/6/1」及び「更新日:2013/6/1」のデータA、「生成日:2013/6/1」及び「更新日:2013/6/20」のデータB、「生成日:2013/6/1」及び「更新日:2013/7/1」のデータD、「生成日:2013/7/2」及び「更新日:2013/7/2」のデータE、「生成日:2013/7/3」及び「更新日:2013/7/3」のデータFが登録されている。そのため、図11の例の場合、データC、D、E、Fが差分となる。
まず、削除差分の整合が実施される。このとき、図11において、データベースサーバ20−1にレコードが存在せず、かつ、データベースサーバ20−2に同一キーのレコードとして「データC」が存在する。そのため、「データC」が「削除差分」として抽出される。
従って、データベースサーバ20−2では、図12に示すように、データ整合部51−2が、「データC」をデータベースサーバ20−2から削除する。
次に、更新差分の整合が実施される。図11において、データベースサーバ20−1、データベースサーバ20−2共に、同一キーのレコードが存在し、かつ、データベースサーバ20−1の生成日時情報/更新日時情報が基点時刻情報t「2013/6/30」以降のレコードとして「データE」がある。そのため、「データE」が「追加差分B」として抽出される。
また、図11において、データベース20−1、データベースサーバ20−2条に生成日時情報が一致している同一キーのレコードが存在し、かつ、データベースサーバ20−1の更新日時情報が基点時刻情報t「2013/6/30」以降のレコードとして「データD」がある。そのため、「データD」が「更新差分」として抽出される。
従って、データベースサーバ20−2では、図13に示すように、データ整合部51−2が、「データE」及び「データD」について整合する。
最後に、追加差分のデータ整合が実施される。図11において、データベースサーバ20−2に同一キーのレコードが存在せず、かつ、データサーバ20−1の更新日時情報が基点時刻情報t「2013/6/30」以降のレコードとして「データF」がある。そのため、「データF」が「追加差分A」として抽出される。
従って、データベースサーバ20−2では、図14に示すように、データ整合部51−2が、「データF」を追加する。
(A−3)実施形態の効果
以上のように、この実施形態によれば、データベースサーバ間のデータ整合処理において、最適化された条件及び、整合実施順序により、最適なデータ整合を実現することができる。
また、例えば、「追加差分B」に該当するデータがある場合、実施順序が「追加整合」→「削除整合」とする場合に、データベースサーバ20−2側に旧い同一キーのレコードが存在するため、二重登録エラーが発生する場合が生じ得る。このような処理は、整合処理中に発生したエラーについて、アプリケーションがエラー分析、リアクション決定等を実施すると、整合処理そのものに時間を要する事になるため、非効率といえる。
これに対して、この実施形態によれば、「追加差分B」に該当するデータがある場合、データベースサーバ20−2側のレコードを「削除整合」で一旦削除した後、「追加整合」で再度登録する処理方式としている。この実施形態は、上記のようなデータ矛盾が発生しない順序により整合を実施しているため、動作説明においてもエラーが現れず、効率的なデータ整合を図ることができる。
(B)他の実施形態
上述した実施形態においても、本発明の種々の変形実施形態を言及したが、本発明は、以下の変形実施形態にも適用できる。
上述した実施形態では、冗長化されたデータベースサーバ、つまりACT/ACT運用の環境を例示した。しかし、ACT/ACT運用に限定されるものではなく、例えば、ACT/SBY環境において定期的に差分のデータのみを転送する機能としても利用できる。これは、例えばACT系データベースサーバから、定期的に全データをexport、SBY系データベースにimportを実施し、データのバックアップを保守する作業については、毎回全データをexportするために要する時間は、差分のみを転送する時間よりも大きいと考えられるためである。
上述した実施形態では、データベースシステムにおいて、2台のデータベースサーバが配置された場合について示したが、3台以上のデータベースサーバを配置しても良く、その台数は限定されないものである。
上述した実施形態においては、データベースシステムにおいて、通常時は二相コミットメントに従ってデータ更新を行い、いずれかのデータベースサーバの故障時には、一相コミットメントに従ったデータ更新をするようにしていたが、通常時は三相コミットメントによりデータ更新を行うデータベースシステムに適用しても良い。
上述した実施形態では、データ整合部が、データベースサーバに搭載される場合を例示したが、例えば、データベースクライアントやデータベースサーバを更に制御する他の制御装置に設けるようにしても良い。
1…データベースシステム、
10…データベースクライアント、11…クライアントライブラリ、
20、20−1、20−2…データベースサーバ、21、21−1、21−2…DBMS、22、22−1、22−2…データベースファイルシステム、221、221−1、221−2…データ記憶部、222、222−1、222−2…フラグ管理部、223、223−1、223−2…二相コミットメントフラグ、51−1、51−2…データ整合部。

Claims (7)

  1. 継続的にデータ更新が行なわれている第1のデータベースサーバと、データ更新がなされていない第2のデータベースサーバとの間のデータ差分の整合を行うデータベースシステムにおいて、
    データ差分が生じ得る基準日時情報以降に、上記第1のデータベースサーバにおいて更新されたデータのうち、所定の差分抽出条件情報に基づいて、削除差分、更新差分及び追加差分を抽出する差分抽出手段と、
    上記差分抽出手段により抽出されたデータ差分に基づき、第2のデータベースサーバに対して、削除整合処理、更新整合処理、追加整合処理の順でデータ更新を行ない、上記第2のデータベースサーバに記録されるデータを上記第1のデータベースサーバに記録されるデータと一致させるデータ整合処理手段と
    を備えることを特徴とするデータベースシステム。
  2. 上記差分抽出手段は、追加差分について、少なくとも上記第1のデータベースサーバ及び上記第2のデータベースサーバに同一キーのレコードが存在しないレコードを第1の追加差分として抽出し、少なくとも上記第1のデータベースサーバ及び上記第2のデータベースサーバに同一キーのレコードが存在するレコードを第2の追加差分として抽出し、
    上記データ整合処理手段が、上記第1の追加差分に対して追加整合処理を行い、上記第2の追加差分に対して更新整合処理を行う
    ことを特徴とする請求項1に記載のデータベースシステム。
  3. 上記差分抽出手段が、上記第2のデータベースサーバにおける障害発生時の日時情報を上記基準日時情報として設定するものであることを特徴とする請求項1又は2に記載のデータベースシステム。
  4. 上記差分抽出手段が、上記第1のデータベースサーバ及び上記第2のデータベースサーバへのデータ更新に係るコミットプロトコルの移行時の日時情報を上記基準日時情報として設定するものであることを特徴とする請求項1又は2に記載のデータベースシステム。
  5. 上記第1のデータベースサーバ及び上記第2のデータベースサーバに記録されるデータのレコードには、作成日時情報及び更新日時情報が付されることを特徴とする請求項1〜4のいずれかに記載のデータベースシステム。
  6. 継続的にデータ更新が行なわれている第1のデータベースサーバと、データ更新がなされていない第2のデータベースサーバとの間のデータ差分の整合を行うデータベース更新方法において、
    差分抽出手段が、データ差分が生じ得る基準日時情報以降に、上記第1のデータベースサーバにおいて更新されたデータのうち、所定の差分抽出条件情報に基づいて、削除差分、更新差分及び追加差分を抽出する差分抽出工程と、
    データ整合処理手段が、上記差分抽出手段により抽出されたデータ差分に基づき、第2のデータベースサーバに対して、削除整合処理、更新整合処理、追加整合処理の順でデータ更新を行ない、上記第2のデータベースサーバに記録されるデータを上記第1のデータベースサーバに記録されるデータと一致させるデータ整合処理工程と
    を有することを特徴とするデータベース更新方法。
  7. 継続的にデータ更新が行なわれている第1のデータベースサーバと、データ更新がなされていない第2のデータベースサーバとの間のデータ差分の整合を行うデータベース更新プログラムにおいて、
    コンピュータを、
    データ差分が生じ得る基準日時情報以降に、上記第1のデータベースサーバにおいて更新されたデータのうち、所定の差分抽出条件情報に基づいて、削除差分、更新差分及び追加差分を抽出する差分抽出手段と、
    上記差分抽出手段により抽出されたデータ差分に基づき、第2のデータベースサーバに対して、削除整合処理、更新整合処理、追加整合処理の順でデータ更新を行ない、上記第2のデータベースサーバに記録されるデータを上記第1のデータベースサーバに記録されるデータと一致させるデータ整合処理手段と
    して機能させることを特徴とするデータベース更新プログラム。
JP2013198772A 2013-09-25 2013-09-25 データベースシステム、データベース更新方法及びデータベース更新プログラム Active JP6237050B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013198772A JP6237050B2 (ja) 2013-09-25 2013-09-25 データベースシステム、データベース更新方法及びデータベース更新プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013198772A JP6237050B2 (ja) 2013-09-25 2013-09-25 データベースシステム、データベース更新方法及びデータベース更新プログラム

Publications (2)

Publication Number Publication Date
JP2015064777A true JP2015064777A (ja) 2015-04-09
JP6237050B2 JP6237050B2 (ja) 2017-11-29

Family

ID=52832589

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013198772A Active JP6237050B2 (ja) 2013-09-25 2013-09-25 データベースシステム、データベース更新方法及びデータベース更新プログラム

Country Status (1)

Country Link
JP (1) JP6237050B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115866073A (zh) * 2022-11-30 2023-03-28 重庆长安汽车股份有限公司 数据差量融合方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132561A (ja) * 2000-10-20 2002-05-10 Fuji Xerox Co Ltd 差分バックアップ方法および装置
JP2002244908A (ja) * 2001-02-19 2002-08-30 Nippon Telegraph & Telephone West Corp データベース同期制御方法及び該方法によるdbシステム
JP2009122935A (ja) * 2007-11-14 2009-06-04 Oki Electric Ind Co Ltd データベース提供装置、データベースクライアント端末、データベースシステム、データベース提供プログラム及びデータベースクライアントプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132561A (ja) * 2000-10-20 2002-05-10 Fuji Xerox Co Ltd 差分バックアップ方法および装置
JP2002244908A (ja) * 2001-02-19 2002-08-30 Nippon Telegraph & Telephone West Corp データベース同期制御方法及び該方法によるdbシステム
JP2009122935A (ja) * 2007-11-14 2009-06-04 Oki Electric Ind Co Ltd データベース提供装置、データベースクライアント端末、データベースシステム、データベース提供プログラム及びデータベースクライアントプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115866073A (zh) * 2022-11-30 2023-03-28 重庆长安汽车股份有限公司 数据差量融合方法、装置、设备及介质
CN115866073B (zh) * 2022-11-30 2024-04-19 重庆长安汽车股份有限公司 数据差量融合方法、装置、设备及介质

Also Published As

Publication number Publication date
JP6237050B2 (ja) 2017-11-29

Similar Documents

Publication Publication Date Title
US9110837B2 (en) System and method for creating and maintaining secondary server sites
US20170206140A1 (en) System and method for building a point-in-time snapshot of an eventually-consistent data store
US6367029B1 (en) File server system tolerant to software and hardware failures
US10565071B2 (en) Smart data replication recoverer
EP2988220B1 (en) Computer system, computer-system management method, and program
US20080140734A1 (en) Method for identifying logical data discrepancies between database replicas in a database cluster
WO2014049691A1 (ja) 情報処理システム
US20110238625A1 (en) Information processing system and method of acquiring backup in an information processing system
US20110208695A1 (en) Data synchronization between a data center environment and a cloud computing environment
CN104813276A (zh) 从备份系统流式恢复数据库
US20120278429A1 (en) Cluster system, synchronization controlling method, server, and synchronization controlling program
US8793371B1 (en) Common configuration warehouse for a storage system
US20020029265A1 (en) Distributed computer system and method of applying maintenance thereto
CN113760847A (zh) 日志数据处理方法、装置、设备及存储介质
US9612921B2 (en) Method and system for load balancing a distributed database providing object-level management and recovery
US20200364241A1 (en) Method for data synchronization between a source database system and target database system
JP6237050B2 (ja) データベースシステム、データベース更新方法及びデータベース更新プログラム
JP2012155634A (ja) 情報処理プログラム、情報処理装置および情報処理方法
JP4911061B2 (ja) 管理システム、履歴情報の保存方法、及び履歴情報データベースのデータ構造
CN109254880B (zh) 一种处理数据库宕机的方法及装置
JP4885825B2 (ja) データベース提供装置、データベースクライアント端末、データベースシステム、データベース提供プログラム及びデータベースクライアントプログラム
US11880495B2 (en) Processing log entries under group-level encryption
JP2015095015A (ja) データ配置方法、データ配置プログラムおよび情報処理システム
CN114547108A (zh) 数据处理方法、装置、设备及介质
US11296870B2 (en) Key management configurations

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170606

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: 20171003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171016

R150 Certificate of patent or registration of utility model

Ref document number: 6237050

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150