JP5673234B2 - データベースのレプリケーション方法 - Google Patents

データベースのレプリケーション方法 Download PDF

Info

Publication number
JP5673234B2
JP5673234B2 JP2011052368A JP2011052368A JP5673234B2 JP 5673234 B2 JP5673234 B2 JP 5673234B2 JP 2011052368 A JP2011052368 A JP 2011052368A JP 2011052368 A JP2011052368 A JP 2011052368A JP 5673234 B2 JP5673234 B2 JP 5673234B2
Authority
JP
Japan
Prior art keywords
item
update log
processing sequence
version
update
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.)
Expired - Fee Related
Application number
JP2011052368A
Other languages
English (en)
Other versions
JP2012190207A (ja
Inventor
祥人 中西
祥人 中西
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2011052368A priority Critical patent/JP5673234B2/ja
Publication of JP2012190207A publication Critical patent/JP2012190207A/ja
Application granted granted Critical
Publication of JP5673234B2 publication Critical patent/JP5673234B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明はデータベースの複製を作成するレプリケーション方法に関する。
データベースのレプリケーション方法として、フロントシステムのマスターデータベースが更新された際に、その更新ログを通信路を通じてフロントシステムからバックアップシステムに送信し、バックアップシステムが、受信した更新ログに従って複製データベースを更新する方法がある(例えば特許文献1参照)。
図17は上記レプリケーション方法の概略図である。マスターデータベースMDに対して、更新1、更新2がその順に実行されると、更新1に対応する更新ログL1、更新2に対応する更新ログL2がその順に通信路PH1を通じてフロントシステムFSからバックアップシステムBSへ転送される。バックアップシステムBS側では、更新ログL1を受信すると、それに従って複製データベースRDを更新する。また、更新ログL1に続いて更新ログL1を受信すると、それに従って複製データベースRDを更新する。
特開2002−116939号公報
ところで、更新ログを転送する通信路を別の通信路に切替えることがある。しかし、このような通信路の切替えを上述したレプリケーション方法の下で実施すると、複製データベースの更新の順序性を保証することができなくなる。
例えば、前述した例において、更新1の更新ログL1を通信路PH1に送出した直後に通信路の切替えを行い、以後、通信路PH1の代わりに通信路PH2を使用したとする。このとき、図18に示すように、更新2の更新ログL2は通信路PH2を流れるため、過度的に、同じデータベースの更新ログL1、L2が複数の通信路PH1、PH2を流れることになる。従って、若し、後から送信された更新ログL2が更新ログL1よりも先にバックアップシステムBSに到着して処理されると、複製データベースRDは、更新2、更新1の順序で更新される。この結果、それらの更新が同一のデータを対象とする場合にはデータに矛盾が生じることになる。
本発明の目的は、上述した課題、すなわち、更新ログを転送する通信路を別の通信路に切替えると複製データベースの更新の順序性を保証することができなくなる、という課題を解決するデータベースのレプリケーション方法を提供することにある。
本発明の一形態にかかるデータベースのレプリケーション方法は、
マスターデータベースの更新ログを複製データベースに伝達する通信路の切替時、前記マスターデータベースを有する第1のコンピュータが、切替前後の通信路に同期データを送信し、
前記複製データベースを有する第2のコンピュータが、切替前後の通信路から前記同期データを受信するまで、前記同期データに続いて受信する前記更新ログに基づく前記複製データベースの更新処理を保留する
といった構成を採る。
本発明は上述した構成を有するため、更新ログを転送する通信路を別の通信路に切替えても複製データベースの更新の順序性を保証することができる。
本発明の第2の実施形態のブロック図である。 本発明の第2の実施形態における更新ログ格納表の例を示す図である。 本発明の第2の実施形態における同期情報管理表の例を示す図である。 本発明の第2の実施形態における版管理表の例を示す図である。 本発明の第2の実施形態におけるデータベース再構成の例を示す図である。 本発明の第2の実施形態におけるデータベース再構成前後の更新ログの順序の例を示す図である。 本発明の第2の実施形態における版管理表の更新の例を示す図である。 本発明の第2の実施形態における再構成後の更新ログ格納表の例を示す図である。 本発明の第2の実施形態における同期情報管理表の更新の例を示す図である。 本発明の第2の実施形態における更新ログ格納機能の処理フローチャートである。 本発明の第2の実施形態における更新ログ反映機能の処理フローチャートである。 本発明の第2の実施形態における再構成前後の更新ログと同期用データの反映順序を説明するための図である。 本発明の第2の実施形態におけるデータベース再構成の別の例を示す図である。 本発明の第2の実施形態におけるデータベース再構成の更に別の例を示す図である。 本発明の第2の実施形態におけるデータベース再構成の他の例を示す図である。 本発明の第1の実施形態のブロック図である。 本発明に関連するレプリケーション方法の説明図である。 本発明が解決しようとする課題の説明図である。
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第1の実施形態]
図16を参照すると、本発明の第1の実施形態は、フロントシステムFSと、バックアップシステムBSと、これらを通信可能に接続する通信路PH1、PH2とから構成される。
フロントシステムFSは、サーバ装置などの情報処理装置である。フロントシステムFSは、マスターデータベースMDと更新ログ格納手段LWとを有する。
バックアップシステムBSは、サーバ装置などの情報処理装置である。バックアップシステムBSは、マスターデータベースMDの複製である複製データベースRDと更新ログ反映手段LRとを有する。
マスターデータベースMDとその複製データベースRDは、例えばKVS(キーバリューストア)あるいはそれ以外の任意の種類のデータベースである。
通信路PH1、通信路PH2は、マスターデータベースMDの更新ログをフロントシステムFSからバックアップシステムBSへ転送する機能を有する。通信路PH1および通信路PH2内では、それぞれ更新ログの順序性は保証されている。本実施形態では、通信路をPH1からPH2に切替えることを想定している。
通信路PH1、PH2のそれぞれは、例えば、フロントシステムFSに設けられる第1の記憶手段および送信手段と、バックアップシステムBSに設けられる受信手段および第2の記憶手段とから構成される。第1の記憶手段は、マスターデータベースMDの更新ログを記憶する送信バッファとして機能する。送信手段は、第1の記憶手段に記憶された更新ログをLANやWANなどのネットワークを通じて、同じ通信路を構成するバックアップシステムBS側の受信手段に向けて送信する。受信手段は、受信した更新ログを第2の記憶手段に記憶する。第2の記憶手段は受信バッファとして機能する。
更新ログ格納手段LWは、マスターデータベースMDの更新時、その更新ログを現在使用している通信路を通じてフロントシステムFSからバックアップシステムBSへ送信する機能を有する。また更新ログ格納手段LWは、通信路の切替え時、切替前の通信路PH1および切替後の通信路PH2に同期データを送信する機能を有する。同期データは、更新ログと明確に識別できる形式であれば、その形式は任意である。
更新ログ反映手段LRは、通信路PH1、PH2を通じて受信した更新ログに従って複製データベースRDを更新する機能を有する。また更新ログ反映手段LRは、通信路の切替時、切替前後の通信路PH1、PH2から同期データを受信するまで、同期データに続いて受信する更新ログに基づく複製データベースRDの更新処理を保留する機能を有する。
次に本実施形態の動作を説明する。
今、フロントシステムFSの更新ログ格納手段LWが、マスターデータベースMDに対して実施された更新1の更新ログL1を通信路PH1に送出した直後に、通信路の切替えが行われたとする。このとき、更新ログ格納手段LWは、図16に示すように、切替前の通信路PH1に同期データDを送信すると共に、切替後の通信路PH2に同期データDを送信する。そして、更新ログ格納手段LWは、更新1より後に実施される更新2の更新ログL2を切替後の通信路PH2へ送信する。
バックアップシステムBSの更新ログ反映手段LRは、通信路の切替時、切替前後の通信路から同期データを受信するまで、同期データに続いて受信する更新ログに基づく複製データベースRDの更新処理を保留する。従って、例えば通信路PH1よりも通信路PH2の方が高速であったり、あるいは通信路PH1の受信バッファに多くの更新ログが蓄積されている等の理由で、更新ログ反映手段LRが、更新ログL1より後に送信された通信路PH2の同期データDを先に処理すると、切替前の通信路PH1から未だ同期データDを受信していないので、通信路PH2から受信する更新ログL2の処理を保留する。そして、その後、通信路PH1から受信した更新ログL1に従って複製データベースRDを更新し、次いで通信路PH1から同期データDを受信したことを確認した時点で、上記保留状態を解除し、上記更新ログL2に従って複製データベースRDを更新する。
このように本実施形態によれば、更新ログを転送する通信路を別の通信路に切替えても複製データベースの更新の順序性を保証することができる。
なお、本実施形態は各種の付加変更が可能である。例えば、上記の実施形態では、更新ログ反映手段LRは、同期を取る対象の通信路が通信路PH1と通信路PH2であることを事前に認識しているものとしたが、同期データDに、同期を取る必要のある通信路PH1、PH2を特定する同期対象通信路情報を持たせるようにしても良い。この場合、更新ログ反映手段LRは、受信した同期データDに含まれる同期対象通信路情報で特定される通信路PH1、PH2で同期データを受信したときに、切替前後の全ての通信路から同期データを受信したと判断する。
また、同期データDに、版数を持たせるようにしても良い。この場合、フロントシステムFSの更新ログ格納手段LWは、通信路の切替毎に、以前の版数と異なる版数を含む同期データを切替前後の通信路に送信する。また、バックアップシステムBSの更新ログ反映手段LRは、切替前後の全ての通信路から同じ版数の同期データを受信するまで、その版数の同期データに続いて受信する更新ログに基づく複製データベースRDの更新処理を保留する。
さらに、更新ログ反映手段LRは、通信路PH1、PH2毎に設けるようにしても良い。
また、通信路を切替える要因は、任意である。例えば、システムのスループットを向上するために、通信路PH1をより高速な通信路PH2に切替えてもよい。あるいは、後述する第2の実施形態で説明するように、データベースの再構成に応じて通信路を切替えてもよい。
[第2の実施形態]
[概要]
本実施形態は、分散配置されたデータベースの更新ログをフロントシステムからバックアップシステムへ反映させる際、任意の時点でデータベースが動的に再構成された場合に、再構成前後に発生した更新ログの間でバックアップシステムへ更新する順序性を保証する。
[本実施形態が解決しようとする課題]
データベースを含むシステムにおいて、フロントシステムのデータベースをバックアップシステムへレプリケーションする方式としては、フロントシステムでの処理に大きな影響を与えないために、フロントシステムでの更新内容をバックアップシステムへ転送して同様の内容を非同期的に更新するといった方式が一般的にとられている。本実施形態もそのようなバックアップ処理を前提とする。また、データベースは複数存在し、更新対象のキーごとに更新先データベースが決められるような分散配置データベースを前提とする。さらに、バックアップ処理は、分散されたデータベースごとに処理系列を分けて更新ログの転送・更新を行うことで、バックアップ転送・反映のスループットの向上を図っている。ここで、処理系列は第1の実施形態における通信路に相当し、1つの処理系列では転送・更新の順序性は保証されているものとする。
分散配置されたデータベースは、1つのデータベースが高負荷状態になったときの負荷分散を行う等の場合に、動的に再構成される。データベースの再構成は、フロントシステムではフロントシステムのデータベースを元に、バックアップシステムではバックアップシステムのデータベースを元に実施される。バックアップシステムのデータベースを再構成する際に、フロントシステムのデータベースが再構成される前の更新ログが未反映だった場合は、再構成後のバックアップシステムのデータベースにフロントシステムの再構成前の更新ログを反映する。
上述のようなシステムにおいて、データベースの動的な再構成が行われた際に、データベースのあるキーに対する更新ログのバックアップへの反映は、データベース再構成の前後で異なる処理系列で行われる可能性があるため、バックアップシステムへの更新の順序性が保証できなくなる問題が発生する。このような問題は、バックアップシステムへの更新ログの自動反映を一旦停止してから、バックアップシステムへ転送された再構成前更新ログ・再構成後更新ログを直接確認して手動で反映させることで解決できる。しかし、データベース再構成を実施する毎にバックアップシステムでの手動作業が発生してしまうため、その作業の手間と時間が必要になるという課題がある。
本実施形態は上述した課題を解決するために、データベース再構成が行われた際にカウントアップされるような版数を導入し、版数が上がったときに再構成に関わる全ての処理系列に対して同期を行うためのデータをバックアップ処理に挿入してバックアップシステムへ転送する。また、同期データには同期を取る処理系列一覧を格納する。バックアップシステム側では同期データを受け取った際に、残りの同期データが届くまで待ち合わせを行い、全ての同期データを受けとった後に以降の更新ログを反映する処理を再開する。これにより、再構成前後の更新ログの順序性を保証することができ、再構成前後での自動的なバックアップ処理が可能となる。
[構成の説明]
図1を参照して、本実施形態の全体構成を説明する。全体構成は大きく分けて、フロントシステム100とバックアップシステム200とに分かれている。
フロントシステム100のデータベース01−1〜4は、それぞれに同じ表が存在し、更新対象のレコードのキーによってどのデータベースに更新するかが決まっている分散配置型データベースである。図1では例として4重で構成された場合を示している。データベース01−1〜4には、それぞれにバックアップ転送の処理系列が存在する。例えば、図1のデータベース01−1に対するバックアップ転送の処理系列(処理系列1とする)は、更新ログ格納表04−1、更新ログ送信機能05−1、更新ログ受信機能06−1、更新ログ格納表07−1、および更新ログ反映機能08−1であり、データベース10−1が反映先のデータベースである。それぞれの処理系列内では更新ログ反映の順序性は保証されている。
フロントシステム100のアプリケーション02は複数存在し、各々がデータベースの更新を行う。アプリケーション02は、更新対象のキーによって更新を行うデータベースを選択する。
アプリケーション02には更新ログ格納機能03が存在し、データベースを更新した際にその更新ログを対応する更新ログ格納表04−1〜4に格納する。
更新ログ送信機能05−1〜4は、同じ処理系列の更新ログ格納表04−1〜4からそれぞれ更新ログを参照し、同じ処理系列の更新ログ受信機能06−1〜4に送信する。
更新ログ受信機能06−1〜4は、同じ処理系列の更新ログ送信機能05−1〜4から送信された更新ログを受信し、同じ処理系列の更新ログ格納表07−1〜4に更新ログを格納する。
更新ログ反映機能08−1〜4は、対応する更新ログ格納表07−1〜4から更新ログを参照し、更新ログで示されたキーによって更新を行うデータベース10−1〜4を選択し、その選択したデータベース10−1〜4へ更新ログで示された更新後データを用いて更新を行う。
同期情報管理表09は、更新ログ反映機能08−1〜4から参照・更新され、処理系列間の同期情報を管理する。
フロントシステムの版管理機能11は、データベースの再構成が行われる際に版管理表12を更新する。
図2に更新ログ格納表04−1〜4、07−1〜4の例を示す。表の[通番]は、更新ログが格納された際に採番される番号であり、処理系列内の更新順序を表している。[版数]は、更新ログが格納された時点での版数を表している。版数は、データベース再構成時にカウントアップされる番号である。[処理実行]には、[更新ログ]の内容がバックアップシステムのデータベースへ反映させるものであった場合に「YES」、反映させないもの(すなわち、同期データ)であった場合に「NO」が格納される。[同期対象処理系列]には、同期をとる必要のある他処理系列を表している。[更新ログ]には、データベース更新時の更新ログが格納される。
図3に同期情報管理表09の例を示す。表の[処理系列]は、そのレコードで管理する処理系列を表している。[版数]は、取得確認済みの更新ログの版数を表している。[同期対象処理系列]は、版数更新時の同期対象処理系列を表している。同期対象処理系列がない場合は「なし」と表す。
図4に版管理表12の例を示す。表の[版数]は現在の版数を表す。[処理系列]は、そのレコードが管理している処理系列を表している。[同期対象処理系列]は、データベース再構成前後で同期を取る必要のある他処理系列の一覧を表している。[同期済み]は、データベース再構成後に発生する同期データがまだ更新ログ格納表に書き込まれていない場合に「未」を、既に書き込まれている場合に「済」を表す。
[動作の説明]
図1を参照してバックアップコピーの動作を説明する。
アプリケーション02は、データベース更新時に更新対象レコードのキーから更新先データベースを決定して、データベースを更新する。ここではデータベース01−1に更新を行った場合を例に説明する。
アプリケーション02がデータベース01−1へ更新を行うと、更新ログ格納機能03は、版管理表12から現時点の版数を取得し、更新先である処理系列1のレコードの[同期済み]が「済」であることを確認してから、更新ログ格納表04−1に、更新対象レコードのキーおよび更新後の値を含む更新ログを格納する。このとき、更新ログ格納機能03は、通番を採番して、その通番と一緒に更新ログの格納を行う。各処理系列の通番は、複数存在するアプリケーション02で共通に管理されている。また版数も一緒に格納する。以下、更新ログ格納表に格納されている更新ログを、その更新ログと一緒に格納されている通番、版数、処理実行、同期対象処理系列とあわせて、単に「更新ログ」と呼ぶことがある。
更新ログ送信機能05−1は、更新ログ格納表04−1に格納された更新ログを更新ログ受信機能06−1へ送信する。
更新ログ受信機能06−1は、更新ログを受信すると、更新ログ格納表07−1に更新ログを格納する。
更新ログ反映機能08−1は、更新ログ格納表07−1から更新ログを取得し、同期データでない場合は、更新ログをデータベース10−1に反映させる。
次に、ある時点でデータベースの再構成が行われた場合の動作を説明する。
図5はデータベース再構成前後の処理系列の変化を示している。図5ではデータベース再構成の例として、再構成前のデータベース01−1に存在するキー1〜10を、データベース01−1とデータベース01−5に分散させるような再構成を示している。以下では図5で示す再構成の例で説明を行う。
データベースの再構成が行われた場合、再構成前後の更新ログの順序性について、次のような問題が生じる。
再構成前後の更新ログの転送・反映順序について、図6に示す。処理系列1と処理系列5は、それぞれが担当している更新ログに対しては順序性を保証して転送・反映が行われる。しかし、処理系列1と処理系列5の間の更新ログは順序性に関して独立しているため、再構成前の処理系列1の更新ログよりも再構成後の処理系列5の更新ログが先にバックアップシステムに到達した場合、再構成後の更新ログが再構成前の更新ログより先に反映される可能性がある。このとき、再構成前後の更新ログにおいて同一のキーに対する更新ログが存在した場合、更新順序の逆転が発生するため、順序性が保証されない。
このような問題を解決するため、本実施形態ではデータベースの再構成時に以下で示すような処理で順序性の保証を行う。
データベースの再構成が実施された際に、版管理機能11は版管理表12の更新を行う。図7に版管理表12の更新の様子を示す(図7の(1)→(2))。具体的な更新内容は下記の通りである。
・[版数]を、再構成前の版数に1加えた値に変更する(図7では5→6)
・再構成に関係する処理系列のレコード(図7では処理系列1と5)に対して、[同期対象処理系列]に同期する必要のある処理系列一覧を格納し、[同期済み]に同期データ書き込み前を表す「未」を格納する。処理系列が新たに発生した場合(図7では処理系列5の場合)は、新規処理系列のレコードを作成して更新する。
・再構成に関係しない処理系列のレコードには、[同期対象処理系列]を「なし」にして、[同期済み]は「済」のままで更新する。
更新ログ格納機能03の処理フローチャートを図10に示す。
更新ログ格納機能03は、版管理表12を参照した際、更新対象処理系列のレコードの[同期済み]が「未」となっていた場合は(S1、S2)、更新ログを格納する前に更新ログ格納表に同期データを格納する(S5)。更新ログ格納機能03が処理系列1に対して更新を行う例で考えると、版管理表12の処理系列が1であるレコードの[同期済み]が「未」になっているので、同期データを更新ログ格納表04−1に格納する。同期データには、版管理表12の[同期対象処理系列]に表された処理系列一覧が格納されている。同期データを格納後に、版管理表12の[同期済み]を「済」に更新し(S6)、本来格納する予定であった更新ログを更新ログ格納表04−1に格納する(S7)。同期データと再構成前後の更新ログを格納した更新ログ格納表の例を図8に示す。
更新ログの格納が完了したら、更新ログ格納機能03は、版管理表12から同期対象処理系列に格納した処理系列(本例では処理系列5)のレコードの[同期済み]を参照し(S8)、「未」である場合は同様の手順で同期データを更新ログ格納表04−5に格納して処理系列5のレコードの[同期済み]を「済」に更新する(S9〜S11)。処理系列5のレコードの[同期済み]が既に「済」であった場合(既に他のアプリケーションの更新ログ格納機能が同期用データを格納した場合)は、S10、S11の処理は行わない。同期対象の処理系列レコードの[同期済み]がすべて「済」になったことを確認したら(図7の(3)の状態になったら)、更新ログ格納処理を終了する(S4)。
他方、更新ログ格納機能03は、版管理表12を参照した際、更新対象処理系列のレコードの[同期済み]が「済」となっていた場合は(S1、S2)、更新ログを更新ログ格納表04−1に格納し(S3)、更新ログ格納処理を終了する(S4)。
更新ログ格納表04−1および更新ログ格納表04−5に格納された更新ログと同期用データは、前述したバックアップコピーの動作の通りに、バックアップシステムの更新ログ格納表07−1および更新ログ格納表07−5にそれぞれ格納される。
更新ログ反映機能の処理フローを図11に示す。
更新ログ反映機能08−1と更新ログ反映機能08−5は、それぞれ更新ログ格納表07−1と更新ログ格納表07−5から更新ログを参照する際に、[版数]に格納されている版数と同期情報管理表09に書かれている[版数]とを比較し(S21)、異なっている場合は同期情報管理表09の自処理系列レコードの版数を更新する(S22、S25)。その際に、更新ログ格納表の[同期対象処理系列]の内容を同期情報管理表09の自処理系列レコードの[同期対象処理系列]に格納する。更新された同期情報管理表09の例を図9に示す。
更新ログ反映機能は、同期情報管理表09を更新後、次のような同期処理を行う。ここでは、更新ログ反映機能08−1に注目して同期処理の説明を行う。更新ログ反映機能08−1は、同期情報管理表09から、同期対象である処理系列5のレコードの[版数]を取得し、自処理系列である処理系列1のレコードの版数と比較する(S26、S27)。比較した結果、版数が異なっていた場合は処理系列5の同期用データが未到達と判断して、処理系列5レコードの[版数]が更新されるまで待機する(S28、S29)。その後で、更新ログ反映機能08−5が同期用データを取得して同期情報管理表09の処理系列5レコードの[版数]を更新した結果、処理系列1と5の版数が同じになったことが確認できたら(S28でYES)、更新ログ反映機能08−1はそれ以降の更新ログをデータベース10−1へ反映させる(S23)。このとき、更新ログ反映機能08−5では、同期情報管理表09から処理系列1の版数が自処理系列の版数と同じことを初回比較時に確認できるため、確認後にそれ以降の更新ログをデータベース10−5に反映させる。
なお、本例での同期処理を行わない更新ログ反映機能08−2〜4については、同期データを受け取らないため、版数が更新された更新ログを受け取ると、同期情報管理表09の自処理系列レコードの版数を更新して、更新ログ反映を行う。
再構成前後の更新ログと同期用データの反映順序を図12に示す。処理系列1では、再構成前の更新ログ、同期データ、再構成後の更新ログの順序で転送され、反映される。処理系列5は今回の再構成後に生成された処理系列なので、同期データ、再構成後の更新ログの順序になっている。
[効果の説明]
フロントシステム100からバックアップシステム200へ更新ログの転送、反映を行う際に、データベースの再構成前の更新ログと再構成後の更新ログとの間に同期データを書き込み、バックアップシステム200の更新ログ反映時に全ての同期データを待ち合わせることで、再構成後の更新ログが再構成前の更新ログを追い抜くといった現象を防ぐことができるので、再構成前後の更新ログ反映の順序性が保証できる。
これにより、データベース再構成前後の更新ログの順序を正しくするための手動作業が必要なくなるため、データベース再構成の際の運用の作業とその時間が削減できる。
[本実施形態の変形例]
上記の実施形態では、データベースの再構成の例として、1つの処理系列で処理しているキーの一部を別の処理系列を追加して分散する場合の説明をしたが、下記の再構成例でも同様の処理で順序性を保証できる。
(1)図13に示すように、1つの処理系列で処理しているキーを、別の複数の処理系列に分散する。
(2)図14に示すように、複数の処理系列で処理しているキーを1つの処理系列に統合する。
(3)図15に示すように、複数の処理系列がそれぞれ処理しているキーを、再分配する。
即ち、一般的に複数の処理系列が担当しているキーを複数の処理系列に分散、統合する場合に適応できる。
分散配置型データベースを含むフロント−バックアップ構成のシステムで、負荷分散などの理由でデータベース構成を再構成するようなシステム等に有効である。特に、データベースの再構成を行う頻度が高い場合に有効である。
FS…フロントシステム
BS…バックアップシステム
MD…マスターデータベース
RD…複製データベース
LW…更新ログ格納手段
LR…更新ログ反映手段
PH1、PH2…通信路

Claims (2)

  1. 第1のコンピュータと第2のコンピュータとを有し、
    前記第1のコンピュータは、
    版管理表と、
    前記版管理表をデータベースの再構成に応じて更新する版管理手段と、
    更新ログ格納手段と
    更新対象のキー毎に更新先のデータベースが決定される分散配置データベースを構成する複数のマスターデータベースと、
    前記マスターデータベース毎の処理系列を構成するマスター側更新ログ格納表および更新ログ送信手段と、
    を有し、
    前記第2のコンピュータは、
    前記マスターデータベース毎の複製データベースと、
    前記処理系列を構成する更新ログ受信手段および複製側更新ログ格納表と、
    前記処理系列毎の更新ログ反映手段と、
    同期情報管理表と、
    を有し、
    前記マスター側更新ログ格納表は、通番項目と版数項目と処理実行項目と同期対象処理系列項目と更新ログ項目とを有する更新ログを格納し、
    前記更新ログ送信手段は、同じ処理系列の前記マスター側更新ログ格納表に格納された前記更新ログを前記第1のコンピュータから前記第2のコンピュータへ送信し、
    前記更新ログ受信手段は、同じ処理系列の前記更新ログ送信手段から送信された前記更新ログを受信し、
    前記複製側更新ログ格納表は、同じ処理系列の前記更新ログ受信手段で受信された前記更新ログを格納し、
    前記版管理表は、版数項目と処理系列毎の同期対象処理系列項目および同期済項目とを有し、前記版数項目にデータベースの最新の版数を格納し、前記処理系列毎の同期対象処理系列項目に前記処理系列と同期を取る必要のある他の処理系列の一覧を格納し、前記同期済項目に当該他の処理系列と同期済みか否かを示す同期済情報を格納し、
    前記同期情報管理表は、処理系列毎の版数項目および同期対象処理系列項目を有し、前記版数項目に前記処理系列の版数を格納し、前記同期対象処理系列項目に前記処理系列と同期を取る必要のある他の処理系列の一覧を格納し、
    前記更新ログ格納手段は、前記マスターデータベースを更新した場合、前記版管理表を参照し、前記更新したマスターデータベースに対応する前記処理系列の前記同期済情報が同期済みを示していれば、通番項目に最新の通番、版数項目に前記版管理表の前記版数項目が示す版数、処理実行項目に処理実行要、同期対象処理系列項目に同期を取る必要のある他の処理系列がない旨、更新ログ項目に更新後ログ情報をそれぞれ格納した更新ログを、前記更新したマスターデータベースに対応する前記処理系列の前記マスター側更新ログ格納表に格納し、
    一方、前記同期済情報が同期済みでなければ、通番項目に最新の通番、版数項目に前記版管理表の前記版数項目が示す版数の次の版数、処理実行項目に処理実行不要、同期対象処理系列項目に前記版管理表の同期対象処理系列項目の内容、更新ログ項目に更新後ログ情報がない旨をそれぞれ格納した更新ログ(同期データ)を、前記更新したマスターデータベースに対応する前記処理系列の前記マスター側更新ログ格納表に格納した後、前記版管理表の同期済項目を同期済みに更新し、また、通番項目に最新の通番、版数項目に前記版管理表の前記版数項目が示す版数、処理実行項目に処理実行要、同期対象処理系列項目に同期を取る必要のある他の処理系列がない旨、更新ログ項目に更新後ログ情報をそれぞれ格納した更新ログを、前記更新したマスターデータベースに対応する前記処理系列の前記マスター側更新ログ格納表に格納し、さらに、前記版管理表における同期を取る必要のある他の処理系列の前記同期済情報が同期済みでなければ、通番項目に最新の通番、版数項目に前記版管理表の前記版数項目が示す版数の次の版数、処理実行項目に処理実行不要、同期対象処理系列項目に前記版管理表の同期対象処理系列項目の内容、更新ログ項目に更新後ログ情報がない旨をそれぞれ格納した更新ログ(同期データ)を、当該他の処理系列の前記マスター側更新ログ格納表に格納して前記同期済情報を同期済みに更新し、
    前記更新ログ反映手段は、対応する前記複製側更新ログ格納表から更新ログを参照し、当該更新ログ中の版数項目の版数が前記同期情報管理表の同じ処理系列の版数項目の版数と同じであれば、前記更新ログ中の更新後ログ項目の内容に基づいて前記複製データベースを更新し、前記更新ログ中の版数項目の版数が前記同期情報管理表の同じ処理系列の版数項目の版数と異なっていれば、更新ログ中の版数項目および同期対象処理系列情報項目の内容で前記同期情報管理表の同じ処理系列の版数項目および同期対象処理系列情報項目を更新し、該更新後の前記同期対象処理系列情報項目が同期すべき他の処理系列がないことを示していれば、前記更新ログ中の更新後ログ項目の内容に基づいて前記複製データベースを更新し、同期すべき他の処理系列があることを示していれば、前記同期情報管理表の当該他の処理系列の版数項目の版数が自処理系列の版数と同じになるまで待機した後、前記更新ログ中の更新後ログ項目の内容に基づいて前記複製データベースを更新する
    データベースのレプリケーションシステム。
  2. 第1のコンピュータと第2のコンピュータとを有し、
    前記第1のコンピュータは、
    版管理表と、
    前記版管理表をデータベースの再構成に応じて更新する版管理手段と、
    更新ログ格納手段と
    更新対象のキー毎に更新先のデータベースが決定される分散配置データベースを構成する複数のマスターデータベースと、
    前記マスターデータベース毎の処理系列を構成するマスター側更新ログ格納表および更新ログ送信手段と、
    を有し、
    前記第2のコンピュータは、
    前記マスターデータベース毎の複製データベースと、
    前記処理系列を構成する更新ログ受信手段および複製側更新ログ格納表と、
    前記処理系列毎の更新ログ反映手段と、
    同期情報管理表と、
    を有し、
    前記マスター側更新ログ格納表は、通番項目と版数項目と処理実行項目と同期対象処理系列項目と更新ログ項目とを有する更新ログを格納し、
    前記更新ログ送信手段は、同じ処理系列の前記マスター側更新ログ格納表に格納された前記更新ログを前記第1のコンピュータから前記第2のコンピュータへ送信し、
    前記更新ログ受信手段は、同じ処理系列の前記更新ログ送信手段から送信された前記更新ログを受信し、
    前記複製側更新ログ格納表は、同じ処理系列の前記更新ログ受信手段で受信された前記更新ログを格納し、
    前記版管理表は、版数項目と処理系列毎の同期対象処理系列項目および同期済項目とを有し、前記版数項目にデータベースの最新の版数を格納し、前記処理系列毎の同期対象処理系列項目に前記処理系列と同期を取る必要のある他の処理系列の一覧を格納し、前記同期済項目に当該他の処理系列と同期済みか否かを示す同期済情報を格納し、
    前記同期情報管理表は、処理系列毎の版数項目および同期対象処理系列項目を有し、前記版数項目に前記処理系列の版数を格納し、前記同期対象処理系列項目に前記処理系列と同期を取る必要のある他の処理系列の一覧を格納し、
    前記更新ログ格納手段は、前記マスターデータベースを更新した場合、前記版管理表を参照し、前記更新したマスターデータベースに対応する前記処理系列の前記同期済情報が同期済みを示していれば、通番項目に最新の通番、版数項目に前記版管理表の前記版数項目が示す版数、処理実行項目に処理実行要、同期対象処理系列項目に同期を取る必要のある他の処理系列がない旨、更新ログ項目に更新後ログ情報をそれぞれ格納した更新ログを、前記更新したマスターデータベースに対応する前記処理系列の前記マスター側更新ログ格納表に格納し、
    一方、前記同期済情報が同期済みでなければ、通番項目に最新の通番、版数項目に前記版管理表の前記版数項目が示す版数の次の版数、処理実行項目に処理実行不要、同期対象処理系列項目に前記版管理表の同期対象処理系列項目の内容、更新ログ項目に更新後ログ情報がない旨をそれぞれ格納した更新ログ(同期データ)を、前記更新したマスターデータベースに対応する前記処理系列の前記マスター側更新ログ格納表に格納した後、前記版管理表の同期済項目を同期済みに更新し、また、通番項目に最新の通番、版数項目に前記版管理表の前記版数項目が示す版数、処理実行項目に処理実行要、同期対象処理系列項目に同期を取る必要のある他の処理系列がない旨、更新ログ項目に更新後ログ情報をそれぞれ格納した更新ログを、前記更新したマスターデータベースに対応する前記処理系列の前記マスター側更新ログ格納表に格納し、さらに、前記版管理表における同期を取る必要のある他の処理系列の前記同期済情報が同期済みでなければ、通番項目に最新の通番、版数項目に前記版管理表の前記版数項目が示す版数の次の版数、処理実行項目に処理実行不要、同期対象処理系列項目に前記版管理表の同期対象処理系列項目の内容、更新ログ項目に更新後ログ情報がない旨をそれぞれ格納した更新ログ(同期データ)を、当該他の処理系列の前記マスター側更新ログ格納表に格納して前記同期済情報を同期済みに更新し、
    前記更新ログ反映手段は、対応する前記複製側更新ログ格納表から更新ログを参照し、当該更新ログ中の版数項目の版数が前記同期情報管理表の同じ処理系列の版数項目の版数と同じであれば、前記更新ログ中の更新後ログ項目の内容に基づいて前記複製データベースを更新し、前記更新ログ中の版数項目の版数が前記同期情報管理表の同じ処理系列の版数項目の版数と異なっていれば、更新ログ中の版数項目および同期対象処理系列情報項目の内容で前記同期情報管理表の同じ処理系列の版数項目および同期対象処理系列情報項目を更新し、該更新後の前記同期対象処理系列情報項目が同期すべき他の処理系列がないことを示していれば、前記更新ログ中の更新後ログ項目の内容に基づいて前記複製データベースを更新し、同期すべき他の処理系列があることを示していれば、前記同期情報管理表の当該他の処理系列の版数項目の版数が自処理系列の版数と同じになるまで待機した後、前記更新ログ中の更新後ログ項目の内容に基づいて前記複製データベースを更新する
    データベースのレプリケーション方法。
JP2011052368A 2011-03-10 2011-03-10 データベースのレプリケーション方法 Expired - Fee Related JP5673234B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011052368A JP5673234B2 (ja) 2011-03-10 2011-03-10 データベースのレプリケーション方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011052368A JP5673234B2 (ja) 2011-03-10 2011-03-10 データベースのレプリケーション方法

Publications (2)

Publication Number Publication Date
JP2012190207A JP2012190207A (ja) 2012-10-04
JP5673234B2 true JP5673234B2 (ja) 2015-02-18

Family

ID=47083300

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011052368A Expired - Fee Related JP5673234B2 (ja) 2011-03-10 2011-03-10 データベースのレプリケーション方法

Country Status (1)

Country Link
JP (1) JP5673234B2 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3064319B2 (ja) * 1990-02-28 2000-07-12 株式会社日立製作所 高信頼性オンラインシステム
JP3598202B2 (ja) * 1997-05-30 2004-12-08 株式会社日立製作所 オンラインシステム
JP4549793B2 (ja) * 2004-09-21 2010-09-22 株式会社日立製作所 データ処理方法、データベースシステム及びストレージ装置
JP5343436B2 (ja) * 2008-07-30 2013-11-13 富士通株式会社 情報管理システム
JP5168166B2 (ja) * 2009-01-21 2013-03-21 富士通株式会社 通信装置および通信制御方法
JP5494915B2 (ja) * 2009-04-01 2014-05-21 日本電気株式会社 レプリケーションシステム、マスタサーバ、レプリカサーバ、レプリケーション方法、及びプログラム
US8108343B2 (en) * 2009-04-23 2012-01-31 Microsoft Corporation De-duplication and completeness in multi-log based replication
US8671074B2 (en) * 2010-04-12 2014-03-11 Microsoft Corporation Logical replication in clustered database system with adaptive cloning

Also Published As

Publication number Publication date
JP2012190207A (ja) 2012-10-04

Similar Documents

Publication Publication Date Title
US10866967B2 (en) Multi-replica asynchronous table replication
US9645753B2 (en) Overlapping write detection and processing for sync replication
US7958088B2 (en) Dynamic data reorganization to accommodate growth across replicated databases
US9529810B2 (en) Methods of synchronizing files including synchronized hash map linked lists and related data processing nodes
CN111104069B (zh) 分布式存储系统的多区域数据处理方法、装置及电子设备
CN102629268A (zh) 数据同步方法、系统及数据访问装置
CN102098342A (zh) 一种基于事务级的数据同步方法、装置及系统
CN106605217B (zh) 用于将应用从一个站点移动到另一站点的方法和系统
US20220035786A1 (en) Distributed database management system with dynamically split b-tree indexes
CN105550306A (zh) 多副本数据的读写方法及系统
CN104021200A (zh) 一种数据库的数据同步方法和装置
CN104917798A (zh) 一种数据更新的方法和系统
US20190073153A1 (en) Efficient repository migration and storage
CN105956207A (zh) 一种基于binlog的可配置的mysql数据库实时同步方法
CN106855869B (zh) 一种实现数据库高可用的方法、装置和系统
JP5673234B2 (ja) データベースのレプリケーション方法
JP2007304898A (ja) 分散データベースシステムおよび方法、並びに、この方法のプログラムおよびこのプログラムを記録した記録媒体
CN113515574B (zh) 一种数据同步方法及装置
CN115705269A (zh) 数据同步方法、系统、服务器及存储介质
EP2980707B1 (en) Method for creating a database clone of a distributed database, system for creating a database clone of a distributed database, program and computer program product
CN111522688B (zh) 分布式系统的数据备份方法及装置
US20210081365A1 (en) Applying Rules to Client Updates on Shared Records to Trigger System-Generated Updates
KR101553712B1 (ko) 로그에 기반하여 데이터 정합성을 유지하는 분산 저장 시스템 및 방법
CN104504123B (zh) 一种基于日志拆分的目录复制实现方法
KR101748912B1 (ko) 분산 저장 환경에서 데이터 저장 시스템 및 데이터 저장 시스템이 포함하는 클러스터의 업그레이드, 확장 및 축소를 위한 클러스터 관리 방법

Legal Events

Date Code Title Description
RD07 Notification of extinguishment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7427

Effective date: 20120719

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141030

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141215

R150 Certificate of patent or registration of utility model

Ref document number: 5673234

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees