(57)【特許請求の範囲】
【請求項１】
スレーブサーバからデータベースレプレケーションの依頼を受けたマスターサーバは、この依頼を契機としてデータベースのスナップショットからなる新しい世代のチェックポイントファイルの取得を開始し、このチェックポイントファイル取得開始と同時に前記データベースの更新トランザクションの履歴情報を格納する更新履歴情報ファイルも新しい世代に切り替え、さらに前記チェックポイントファイル取得開始と同時に更新トランザクションの履歴情報を、更新トランザクションが実行される毎にそれぞれ前記スレーブサーバの通信キューへ順次転送する処理も開始し、前記チェックポイントファイル取得開始した後に前記スレーブサーバへ前記新しいチェックポイントファイルの一つ古い世代のチェックポイントファイル及び更新履歴情報ファイルの複製開始許可を通知し、
前記スレーブサーバは、前記複製開始許可の通知の受信を契機として、前記マスターサーバで格納されている最新世代のチェックポイントファイルよりも一つ古い世代で参照専用のチェックポイントファイル及び前記更新履歴情報ファイルを複製し、この２つのファイルから前記スレーブサーバ上にて新たにデータベースを起動すると共に、前記スレーブサーバの通信キューに蓄積された更新トランザクションの履歴情報を前記スレーブサーバ上にて起動された前記データベースに前記通信キューへの到着順に順次反映すること
を特徴とするデータベースレプリケーション方法。
【請求項２】
前記マスターサーバに格納されている最新世代のチェックポイントファイルよりも一つ古い世代の前記チェックポイントファイル及び前記更新履歴情報ファイルを他のスレーブサーバが複製中である場合、または前記新しい世代のチェックポイントファイルを前記マスターサーバが取得中である場合、
前記マスターサーバは、前記データベースレプリケーションの依頼通知を受けても、最も新しい世代のチェックポイントファイルの取得を開始せずに、前記複製及び取得の完了を待ち合わせること
を特徴とする請求項１に記載のデータベースレプリケーション方法。
【請求項３】
複数のスレーブサーバと通信可能なマスターサーバを備え、
前記マスターサーバは、前記いずれかのスレーブサーバからデータベースレプレケーションの依頼を受けると、この依頼を契機としてデータベースのスナップショットからなる新しい世代のチェックポイントファイルの取得を開始し、このチェックポイントファイル取得開始と同時に前記データベースの更新トランザクションの履歴情報を格納する更新履歴情報ファイルも新しい世代に切り替え、さらに前記チェックポイントファイル取得開始と同時に更新トランザクションの履歴情報を、更新トランザクションが実行される毎にそれぞれ前記スレーブサーバの通信キューへ転送する処理も開始し、前記チェックポイントファイル取得開始した後に前記スレーブサーバへ前記新しいチェックポイントファイルの一つ古い世代のチェックポイントファイル及び更新履歴情報ファイルの複製開始許可を通知し、
前記スレーブサーバは、前記複製開始許可の通知の受信を契機として、前記マスターサーバに格納されている最新世代のチェックポイントファイルよりも一つ古い世代で参照専用の前記チェックポイントファイル及び前記更新履歴情報ファイルを複製し、この２つのファイルから前記スレーブサーバ上にて新たにデータベースを起動すると共に、前記スレーブサーバの通信キューに蓄積された更新トランザクションの履歴情報を前記スレーブサーバ上にて起動された前記データベースに前記通信キューへの到着順に順次反映すること
を特徴とするデータベース管理システム。
【請求項４】
前記いずれかのスレーブサーバ以外のスレーブサーバが前記マスターサーバに格納されている最新世代のチェックポイントファイルよりも一つ古い世代の前記チェックポイントファイル及び前記更新履歴情報ファイルを複製中である場合、または前記マスターサーバが前記新しい世代のチェックポイントファイルを取得中である場合、
前記マスターサーバは、前記いずれかのスレーブサーバから前記データベースレプリケーションの依頼通知を受けても、最も新しい世代のチェックポイントファイルの取得を開始せずに、前記複製及び取得の完了を待ち合わせること
を特徴とする請求項３に記載のデータベース管理システム。
【請求項５】
コンピュータに請求項３または４に記載のマスターサーバ及びスレーブサーバの機能を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はデータベースのレプリケーション技術に関する。特に、マスターサーバ上でのデータベースの更新トランザクションの実行を停止することなくデータベースのバックアップファイルを取得することが可能なデータベースマネージメントシステムにおいて、スレーブサーバのデータベースの起動時にマスターサーバのデータベースをスレーブサーバに複製するデータベースレプリケーション技術に関する。
【背景技術】
【０００２】
データベースのレプリケーションとはマスターサーバのデータベースの複製（レプリカ）をネットワーク上の複数のスレーブサーバに配置することである。これにより、マスターサーバのデータベースにかかる負荷を複数のスレーブサーバの複製（レプリカ）データベースに分散させることが可能になり、またマスターサーバで障害が発生した場合には複製（レプリカ）データベースを持つスレーブサーバをマスターサーバに変更して運用を継続することが可能になる。
【０００３】
ところで、データベースを更新するトランザクションの実行を停止することなく、データベースのバックアップファイルを取得する方法として、ファジーチェックポイント法がある（非特許文献１等参照）。
【０００４】
更新トランザクションを停止せずにデータベースのバックアップファイルであるチェックポイントファイル（データベースのスナップショット）を取得すると、更新トランザクションを実行中にチェックポイントファイルを取得することになる。このため、図４に例示されたようにデータベースが更新トランザクション処理途中の不整合な状態（更新トランジクションの原子性が保たれていない状態）でチェックポイントファイルを取得する可能性がある。
【０００５】
ファジーチェックポイント法では、例えは図５に示されたマスターサーバ５の場合、チェックポイントファイル取得中に発生した更新トランザクションの履歴情報をバックアップ蓄積部内の更新履歴情報ファイルに格納する。そして、データベース起動時に前記更新履歴情報ファイルに格納された更新トランザクションの履歴情報に基づきデータベースを修正して起動することでデータベースの整合性が保証される。
【０００６】
また、特許文献１のデータベースバックアップ方法は、ファジーチェックポイント方法で出力される更新トランザクションの履歴情報の量を削減し、かつチェックポイントファイル、更新履歴情報ファイルのための記憶領域を２世代分確保することでシステム障害や媒体障害が発生してもバックアップデータを取得することができる。
【非特許文献１】Ｄ．Ｊ．Ｒｏｓｅｎｋｒａｎｚ，“Ｄｙｎａｍｉｃ ｄａｔａｂａｓｅ ｄｕｍｐｉｎｇ”，ｉｎ Ｐｒｏｃ．ＳＩＧＭＯＤ Ｉｎｔ．Ｃｏｎｆ．Ｍａｎａｇｅｎｔ Ｄａｔａ．ＡＣＭ，１９７８，ｐｐ．３−８
【特許文献１】特許第３５１４３３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
スレーブサーバ６のデータベースをデータの整合性が保障された状態でレプリケーションにより起動するためには、ファジーチェックポイント法によってマスターサーバ５で取得したチェックポイントファイルと更新履歴情報ファイルをスレーブサーバ６に複製し、このチェックポイントファイルと更新履歴情報ファイルとからデータベースを起動することで可能となる。
【０００８】
しかし、マスターサーバ５は運用中であるので更新トランザクションが常に発生し、更新トランザクションの履歴情報が次々と生成され、更新トランザクションの履歴情報を格納する更新履歴情報ファイルは頻繁に更新される状況になる。この状況で前記方法によってスレーブサーバ６のデータベース起動のためのレプリケーションを実施すると、スレーブサーバ６がマスターサーバ５の更新履歴情報ファイルを複製のために参照するので、図５に示したようにファイルの更新と参照の競合が発生してしまう。
【０００９】
この競合により、マスターサーバ５上で更新トランザクションの履歴情報を更新履歴情報ファイルに書込む処理に遅延が生じる。これがマスターサーバ５の更新トランザクション処理の遅延につながり、マスターサーバ５の更新処理性能が低下する問題となる。
【課題を解決するための手段】
【００１０】
そこで、前記課題を解決するためのデータベースレプリケーション方法及びデータベース管理システムは、マスターサーバは、スレーブサーバからのデータベースレプレケーション依頼を契機に、運用中の世代よりも一つ古い世代のチェックポイントファイルと更新履歴ファイルとを用意し、これらのファイルを参照用にスレーブサーバが複製する。これによりマスターサーバとスレーブサーバとの間での同一データベースファイルの更新と参照の競合が起こらない。
【００１１】
すなわち、前記課題を解決するためのデータベースレプリケーション方法は、スレーブサーバからデータベースレプレケーションの依頼を受けたマスターサーバは、この依頼を契機としてデータベースのスナップショットからなる新しい世代のチェックポイントファイルの取得を開始し、このチェックポイントファイル取得開始と同時に前記データベースの更新トランザクションの履歴情報を格納する更新履歴情報ファイルも新しい世代に切り替え、さらに前記チェックポイントファイル取得開始と同時に更新トランザクションの履歴情報を、更新トランザクションが実行される毎にそれぞれ前記スレーブサーバの通信キューへ順次転送する処理も開始し、前記チェックポイントファイル取得開始した後に前記スレーブサーバへ前記新しいチェックポイントファイルの一つ古い世代のチェックポイントファイル及び更新履歴情報ファイルの複製開始許可を通知し、前記スレーブサーバは、前記複製開始許可の通知の受信を契機として、前記マスターサーバで格納されている最新世代のチェックポイントファイルよりも一つ古い世代で参照専用のチェックポイントファイル及び前記更新履歴情報ファイルを複製し、この２つのファイルから前記スレーブサーバ上にて新たにデータベースを起動すると共に、前記スレーブサーバの通信キューに蓄積された更新トランザクションの履歴情報を前記スレーブサーバ上にて起動された前記データベースに前記通信キューへの到着順に順次反映する。
【００１２】
また、前記課題を解決するためのデータベース管理システムは、複数のスレーブサーバと通信可能なマスターサーバを備え、前記マスターサーバは、前記いずれかのスレーブサーバからデータベースレプレケーションの依頼を受けると、この依頼を契機としてデータベースのスナップショットからなる新しい世代のチェックポイントファイルの取得を開始し、このチェックポイントファイル取得開始と同時に前記データベースの更新トランザクションの履歴情報を格納する更新履歴情報ファイルも新しい世代に切り替え、さらに前記チェックポイントファイル取得開始と同時に更新トランザクションの履歴情報を、更新トランザクションが実行される毎にそれぞれ前記スレーブサーバの通信キューへ転送する処理も開始し、前記チェックポイントファイル取得開始した後に前記スレーブサーバへ前記新しいチェックポイントファイルの一つ古い世代のチェックポイントファイル及び更新履歴情報ファイルの複製開始許可を通知し、前記スレーブサーバは、前記複製開始許可の通知の受信を契機として、前記マスターサーバに格納されている最新世代のチェックポイントファイルよりも一つ古い世代で参照専用の前記チェックポイントファイル及び前記更新履歴情報ファイルを複製し、この２つのファイルから前記スレーブサーバ上にて新たにデータベースを起動すると共に、前記スレーブサーバの通信キューに蓄積された更新トランザクションの履歴情報を前記スレーブサーバ上にて起動された前記データベースに前記通信キューへの到着順に順次反映する。
【００１３】
以上のデータベースレプリケーション方法及びデータベース管理システムによれば前記競合が防止されると共に前記マスターサーバと前記スレーブサーバのデータベースの同期性が保障される。
【００１４】
前記データベースレプリケーション方法において、前記マスターサーバに格納されている最新世代のチェックポイントファイルよりも一つ古い世代の前記チェックポイントファイル及び前記更新履歴情報ファイルを他のスレーブサーバが複製中である場合、または前記新しい世代のチェックポイントファイルを前記マスターサーバが取得中である場合、前記マスターサーバは、前記データベースレプリケーションの依頼通知を受けても、最も新しい世代のチェックポイントファイルの取得を開始せずに、前記複製及び取得の完了を待ち合わせるようにするとよい。
【００１５】
また、前記データベース管理システムにおいては、前記いずれかのスレーブサーバ以外のスレーブサーバが前記マスターサーバに格納されている最新世代のチェックポイントファイルよりも一つ古い世代の前記チェックポイントファイル及び前記更新履歴情報ファイルを複製中である場合、または前記マスターサーバが前記新しい世代のチェックポイントファイルを取得中である場合、前記マスターサーバは、前記いずれかのスレーブサーバから前記データベースレプリケーションの依頼通知を受けても、最も新しい世代のチェックポイントファイルの取得を開始せずに、前記複製及び取得の完了を待ち合わせるようにするとよい。
【００１６】
スレーブサーバが複数であっても、前記競合が起こらない。
【００１７】
以上述べたデータベース管理システムの機能はコンピュータとプログラムとによっても実現でき、前記プログラムを記録媒体に記録して提供またはネットワークを介して提供できる。前記プログラムとしてはコンピュータに前記マスターサーバ及びスレーブサーバの機能を実現させるためのプログラムが挙げられる。
【発明の効果】
【００１８】
したがって、以上の発明によればマスターサーバの更新トランザクションの処理性能を低下させることなくレプリケーションによるスレーブサーバのデータベースの起動が実行可能となる。
【発明を実施するための最良の形態】
【００１９】
図１は発明の実施形態に係るデータベース管理システム１の概略構成図である。
【００２０】
データベース管理システム１は１つのマスターサーバ２と複数のスレーブサーバ３がネットワーク４を介して接続されて構成されている。マスターサーバ２はデータベース管理部２１とバックアップ蓄積部２２を有する。スレーブサーバ３Ａはデータベース管理部３１Ａとバックアップ蓄積部３２Ａを有する。スレーブサーバ３Ｂはデータベース管理部３１Ｂとバックアップ蓄積部３２Ｂを有する。尚、発明に係るデータ管理システムのマスターデータに対するスレーブサーバの接続数は図１に開示されたスレーブサーバの個数に限定されない。
【００２１】
データベース管理部２１，３１Ａ，３１Ｂはデータベースの実体を管理すると共にバックアップ蓄積部２２，３２Ａ，３２Ｂへデータベースのバックアップファイルの出力処理を行う。尚、データベースのバックアップファイルは、データベースの実体のスナップショットであるチェックポイントファイルと、そのチェックポイントファイル取得開始以降の更新トランザクションの履歴情報がデータベース上での更新トランザクション実行の毎に書込まれる更新履歴情報ファイルからなる。
【００２２】
バックアップ蓄積部２２，３２Ａ，３２Ｂはデータベース管理部２１，３１Ａ，３１から出力されるデータベースのバックアップファイル（チェックポイントファイル、更新履歴情報ファイル）を最近の２世代（２セット）分を記憶領域に保持する（例えば非特許文献１等参照）。データベース管理部２１，３１Ａ，３１Ｂからチェックポイントファイルが出力される際（バックアップの世代切り替えの際）には、２世代のうちの古い世代のチェックポイントファイルに上書する。また、この際に更新履歴情報ファイルも古い世代に切り替わり更新トランザクションの履歴情報をファイルの先頭から上書していく。さらに、スレーブサーバ３Ａ，３Ｂのデータベース起動時には、マスターサーバ２のバックアップ蓄積部２２に蓄積されたデータベースのバックアップファイルはネットワーク４経由でスレーブサーバ３Ａ，３Ｂのバックアップ蓄積部３２Ａ，３２Ｂに複製される。スレーブサーバ３Ａ，３Ｂは前記複製されたデータベースのバックアップファイルに基づきデータベース管理部３１Ａ，３１Ｂのデータベースを起動する。
【００２３】
図２を参照しながらデータベース管理システム１の動作例について説明する。
【００２４】
以下の事例ではマスターサーバ２とスレーブサーバ３Ａが１：１の場合の処理の流れとなっているが、ステップＳ２のマスターサーバ２の待ち合わせ処理により、スレーブサーバ３が２個以上の場合（スレーブサーバ３Ａ、３Ｂ…）でもレプリケーション可能である。
【００２５】
ステップＳ１では、データベースが未起動状態であるスレーブサーバ３Ａがマスターサーバ２に対してデータベースレプリケーション開始依頼通知をする。
【００２６】
ステップＳ２では、マスターサーバ２がデータレプリケーション開始依頼通知を受け取ったときに、例えば、マスターサーバ２が第ｎ世代のチェックポイントファイルを取得中であった場合、スレーブサーバ３Ｂが第ｎ−１世代のチェックポイントファイル及び更新履歴情報ファイルを複製中であった場合、または両方の処理がそれぞれ完了するまで待ち合わせる。このとき、データレプリケーション開始依頼通知を受け取ったときの、マスターサーバ２のデータベースバックアップファイルの最新世代は第ｎ世代であることとする。
【００２７】
ステップＳ３では、マスターサーバ２上で第ｎ＋１世代のデータベースバックアップファイルの取得を開始する。
【００２８】
ステップＳ４では、このマスターサーバ２が第ｎ＋１世代のデータベースバックアップファイルの取得を開始すると同時に、更新トランザクションの履歴情報の格納先（バックアップ蓄積部３２Ａ）も第ｎ世代から第ｎ＋１世代の更新履歴情報ファイルに変更する。
【００２９】
ステップＳ５では、さらにこのマスターサーバ２が第ｎ＋１世代のデータベースバックアップファイルの取得を開始すると同時に、更新トランザクションの履歴情報をスレーブサーバ３Ａの通信キューへ転送する処理を開始する。これ以降に実行された更新トランザクションの履歴情報は、順次、スレーブサーバ３Ａの通信キューへ転送される。
【００３０】
ステップＳ６では、マスターサーバ２が、第ｎ世代のチェックポイントファイル及び更新履歴情報ファイルの複製開始の許可をスレーブサーバ３Ａへ通知する。
【００３１】
ステップＳ７では、スレーブサーバ３Ａがマスターサーバ２から受け取った第ｎ世代チェックポイントファイル及び第ｎ世代更新履歴情報ファイルをスレーブサーバ３Ａに複製をする。
【００３２】
ステップＳ８では、スレーブサーバ３Ａは前記複製の完了後に、マスターサーバ２に対して複製完了を通知する。
【００３３】
ステップＳ９では、スレーブサーバ３Ａが、この複製された第ｎ世代チェックポイントファイル及び第ｎ世代更新履歴情報ファイルを用いて、データベースを起動する。このとき、第ｎ世代チェックポイントファイルの内容に、第ｎ世代更新履歴情報ファイルに格納された更新トランザクションの履歴情報が反映されて、整合性の取れた状態でデータベースが起動される。
【００３４】
ステップＳ１０では、前記データベースの起動完了後に、スレーブサーバ３Ａの通信キューに蓄積された更新トランザクションの履歴情報を、到着順にスレーブサーバ３Ａのデータベースに反映する。
【００３５】
ステップＳ１１では、スレーブサーバ３Ａの通信キューが空の状態になったとき、マスターサーバ２とスレーブサーバ３Ａのデータベースの同期が完了する。マスターサーバ２から更新トランザクションの履歴情報をスレーブサーバ３Ａの通信キューに転送する処理を継続し、スレーブサーバ３Ａの通信キューに蓄積された更新トランザクションの履歴情報をスレーブサーバ３Ａのデータベースに反映することを継続することで、今後もマスターサーバ２とスレーブサーバ３Ａのデータベースの同期状態が維持される。
【００３６】
以上のようにスレーブサーバ３Ａからの依頼を契機にマスターサーバ２は現在使用中（運用中）の最新世代の第ｎ＋１世代より一つ古い世代の第ｎ世代チェックポイントファイルと第ｎ世代更新履歴情報ファイルを用意し、これらのファイルをスレーブサーバ３Ａが複製する。したがって、図３に示したようにマスターサーバ２とスレーブサーバ３Ａ間で同一ファイルの更新と参照とが競合しないのでマスターサーバ２の更新トランザクションの処理性能が劣化しない。
【００３７】
また、マスターサーバ２での第ｎ＋１世代のチェックポイントファイルの取得開始を契機に、更新トランザクションの履歴情報をスレーブサーバ３Ａの通信キューへの転送を開始し、スレーブサーバ３Ａで反映させている。これにより、マスターサーバ２のデータベースとスレーブサーバ３Ａのデータベースを同期させることができる。
【００３８】
さらに、スレーブサーバ３Ｂがマスターサーバ２から受けた第ｎ世代チェックポイントファイル及び第ｎ世代更新履歴情報ファイルを複製中である場合またはマスターサーバ２が第ｎ＋１世代のチェックポイントファイルを取得中である場合、マスターサーバ２は、スレーブサーバ３Ａからデータベースレプリケーション開始依頼通知を受けても、第ｎ＋２世代のチェックポイントファイルの取得を開始せずに、前記複製及び取得の完了を待ち合わせる。これにより、スレーブサーバ３が複数（２以上）の場合でも、同一ファイルの更新と参照の競合を起こすことなくデータベースのレプリケーションが可能となる。
【００３９】
以上説明したマスターサーバ２とスレーブサーバ３の機能はコンピュータとプログラムによっても実現できる。前記プログラムは既知の記録媒体に格納してまたはネットワークを通じて提供することもできる。
【図面の簡単な説明】
【００４０】
【図１】発明の実施形態に係るデータベース管理システムの概略構成図。
【図２】発明の実施形態に係るデータベース管理システムの動作例を説明したフローチャート。
【図３】発明の実施形態に係るデータベース管理システムの作用例の説明図。
【図４】ファジーチェックポイント法を用いていないデータベース管理システムの動作例の概略説明図。
【図５】従来技術に係るデータベース管理システムの動作例の概略説明図。
【符号の説明】
【００４１】
１…データベース管理システム
２…マスターサーバ
３，３Ａ，３Ｂ…スレーブサーバ
４…ネットワーク
２１，３１Ａ，３１Ｂ…データベース管理部
２２，３２Ａ，３２Ｂ…バックアップ蓄積部
【図１】
0005244440.tif 000002
【図２】
0005244440.tif 000003
【図３】
0005244440.tif 000004
【図４】
0005244440.tif 000005
【図５】
0005244440.tif 000006