(57)【要約】【課題】  分散データベースにおけるリカバリ手法の提供。【解決手段】  複数のデータベース（ＤＢ）２０を同時に更新するトランザクションにより更新が実行される分散ＤＢシステムのリカバリシステムであって、前記更新履歴をトランザクション対応に管理する複数ＤＢ更新トランザクション管理装置３０と、障害発生時に該複数ＤＢ更新トランザクション管理装置３０を参照して複数ＤＢのリカバリを行うＤＢ復元装置４０とを設け、トランザクション実行の際、該トランザクションにより更新されたＤＢ名及び格納場所を含むファイル名を記憶しておき、ＤＢに障害が発生したとき、障害が発生したＤＢのバックアップ日時を複数ＤＢ更新トランザクション管理装置３０から読み出して特定し、該特定した日時以前の更新されたＤＢ名等を読み出し、該読み出したＤＢ名等を基にデータのリカバリを行うもの。【選択図】  図１
2006350411.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータベースを同時に更新するトランザクションを用いて更新を行う分散データベースシステムにおける分散データベースリカバリ方法であって、
前記トランザクションが実行されたとき、該トランザクションにより更新されたデータベース名と格納場所を含むファイル名とバックアップ日時とを記憶手段に記憶しておき、
データベースに障害が発生したとき、該障害が発生したデータベースのバックアップ日時を特定し、該特定した日時以前の更新されたデータベース名及び格納場所を含むファイル名を前記記憶手段から読み出し、
該読み出したデータベース名及び格納場所を含むファイル名を基にデータのリカバリを行うことを特徴とする分散データベースリカバリ方法。
【請求項２】
複数のデータベースを同時に更新するトランザクションを用いて更新を行う分散データベースシステムにおける分散データベースリカバリシステムであって、
前記複数のデータベースの更新履歴をトランザクション対応に管理する複数データベース更新トランザクション管理装置と、障害発生時に該複数データベース更新トランザクション管理装置を参照して複数データベースのリカバリを行うデータベース復元装置とを備え、
前記複数データベース更新トランザクション管理装置が、前記トランザクションが実行されたとき、該トランザクションにより更新されたデータベース名と格納場所を含むファイル名とバックアップ日時とを記憶し、
データベースに障害が発生したとき、データベース復元装置が、前記障害が発生したデータベースのバックアップ日時を複数データベース更新トランザクション管理装置から読み出して特定し、該特定した日時以前の更新されたデータベース名及び格納場所を含むファイル名を読み出し、該読み出したデータベース名及び格納場所を含むファイル名を基にデータのリカバリを行うことを特徴とする分散データベースリカバリシステム。
【請求項３】
複数のデータベースを同時に更新するトランザクションにより更新が実行され、前記複数のデータベースの更新履歴をトランザクション対応に管理する複数データベース更新トランザクション管理装置と、障害発生時に該複数データベース更新トランザクション管理装置を参照して複数データベースのリカバリを行うデータベース復元装置とを備える分散データベースシステムにおける分散データベースリカバリプログラムであって、
前記複数データベース更新トランザクション管理装置に、前記トランザクションが実行されたとき、該トランザクションにより更新されたデータベース名と格納場所を含むファイル名とバックアップ日時とを記憶させる機能と、
前記データベース復元装置に、データベースに障害が発生したとき、前記障害が発生したデータベースのバックアップ日時を複数データベース更新トランザクション管理装置から読み出して特定する機能と、該特定した日時以前の更新されたデータベース名及び格納場所を含むファイル名を読み出す機能と、該読み出したデータベース名及び格納場所を含むファイル名を基にデータのリカバリを行う機能を実現させることを特徴とする分散データベースリカバリプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数データベースを同時に更新するトランザクション処理が実行されるデータベースシステムの分散データベースリカバリ方法及び同リカバリシステム及び同リカバリプログラムに係り、特にシステム障害発生時にトランザクションの原子性・一貫性を損なうことなく、迅速にデータリカバリを行うことができる分散データベースリカバリ方法及び同リカバリシステム及び同リカバリプログラムに関する。
【背景技術】
【０００２】
一般に多くのユーザ端末を抱えるデータベースシステムは、ユーザにストレスのかからないレスポンスを提供するために、データベースを複数のデータベースに分散し、運用することが行われている。例えばデータベースシステムは、参照が中心となるマスタ系テーブルと頻繁に更新が行われる更新テーブルとを別々のデータベースとして構築することや、データベース障害時のリスクを分散するために業務毎に別のデータベースを構築することが行われている。
【０００３】
一般的にデータベースシステム上で実行されるトランザクションは、ＡＣＩＤと呼ばれる４つのプロパティ（原子性、一貫性、分離性、持続性）を備える必要があり、前述した複数のデータベースを同時に更新するトランザクションにおいても、その原子性や一貫性を保つためにトランザクションが全てのデータベース上でロールバックされる必要がある。
【０００４】
このため複数のデータベースを備えるデータベースシステムにおいては、システム障害に起因してシステムを構成する一部のデータベースをバックアップファイルから復元する必要が生じ、バックアップに含まれない、失われてしまった複数データベースを更新するトランザクションが存在した場合、そのトランザクションにより更新された全てのデータベースを復元する必要がある。従って、複数のデータベースを備えるデータベースシステムにおいては、全てのデータベースを復元するため、トランザクション単位でデータベース更新情報を管理する必要があった。
【０００５】
従来技術によるトランザクション単位でデータベース更新情報を管理し、データベースをリカバリする方法が記載された文献としては、例えば下記特許文献が挙げられる。この特許文献には、実行されたトランザクションが更新したデータの内容及び当該トランザクションのコミット又はアボートを示す情報を含むジャーナルをジャーナルファイルに記録し、障害発生時に当該ジャーナルファイルを用いてコミットしたトランザクションについては変更したデータの内容をデータベースに反映させ、アボートしたトランザクションについては変更したデータの内容を無効化することによりデータベースを障害発生時の状態まで回復させることが記載されている。
【０００６】
またＭｉｃｒｏｓｏｆｔ（登録商標）社のデータベースアプリケーションであるＭｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ  ２０００には、マーク付きトランザクションという任意のトランザクションにマークを付け、バックアップの復元時に当該マークを指定することにより、トランザクションレベルで復元を実現するという機能がある。
【特許文献１】特開平９−９１１８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
通常トランザクションは、データベース毎にコミットされるため、複数データベースを更新するトランザクションについては一部のデータベースのみアボートとなる場合がある。この場合、正常にコミットされたデータベースについてもトランザクション実行前の状態に戻す必要があるが、前述の特許文献に記載された手法では、複数データベース環境を考慮していないため、データの一貫性の取れた状態に戻すことができないと言う不具合があった。即ち従来技術においては、複数のデータベースを備えるデータベースシステムの特定のデータベースに障害が発生した場合、どのデータベースをどの時点まで復元したら良いか判定することができず、データの一貫性の取れた状態に戻すことができないと言う不具合があった。
【０００８】
これを具体的に説明すると、例えば会員を登録するデータベースと、該会員の施設利用状況を登録するデータベースとを備える分散データベースシステムにおいて、新規会員が入会した後に施設を利用したことを想定し、どちらかのデータベースに障害が発生して前記両データベースを復元する際、例えば登録されていない会員の施設利用データが残ったり、逆に会員データは登録されているものの施設利用データが登録されないことは許されないが、どの時点でどのデータベースが更新されたか特定することができないために、データの一貫性の取れた状態に戻すことができないと言う不具合があった。特に近年の分散データベースシステムにおいては、多数のデータベースが使用され、一貫性を保つ必要があるデータベースがデータによって種々組合せがあり、これら多数のデータベースを持つデータベースシステムにおいては前記不具合は顕著である。
【０００９】
更に前述のＭｉｃｒｏｓｏｆｔ（登録商標）社のデータベースアプリケーションであるＭｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ  ２０００のマーク付きトランザクション機能は、復元データベースおよび復元ポイントを管理者が膨大になる可能性のあるログから手動で洗い出す手法のため、迅速なシステム復旧を望むことが困難であると言う不具合があった。
【００１０】
本発明の目的は、前述の従来技術による不具合を除去することであり、システムを構成する一部のデータベースにバックアップからの復元が必要なシステム障害が発生したとき、トランザクション原子性・一貫性が保たれた状態に戻すことができる分散データベースリカバリ方法及び同リカバリシステム及び同リカバリプログラムを提供することである。更に本発明は、前記システム障害が発生したとき、復元が必要なデータベースとその復元ポイントを割り出すことができる分散データベースリカバリ方法及び同リカバリシステム及び同リカバリプログラムを提供することである。
【課題を解決するための手段】
【００１１】
前記目的を達成するため本発明は、複数のデータベースを同時に更新するトランザクションを用いて更新を行う分散データベースシステムにおける分散データベースリカバリ方法において、前記トランザクションが実行されたとき、該トランザクションにより更新されたデータベース名と格納場所を含むファイル名とバックアップ日時とを記憶手段に記憶しておき、データベースに障害が発生したとき、該障害が発生したデータベースのバックアップ日時を特定し、該特定した日時以前の更新されたデータベース名及び格納場所を含むファイル名を前記記憶手段から読み出し、該読み出したデータベース名及び格納場所を含むファイル名を基にデータのリカバリを行うことを第１の特徴とする。
【００１２】
また本発明は、複数のデータベースを同時に更新するトランザクションを用いて更新を行う分散データベースシステムにおける分散データベースリカバリシステムにおいて、前記複数のデータベースの更新履歴をトランザクション対応に管理する複数データベース更新トランザクション管理装置と、障害発生時に該複数データベース更新トランザクション管理装置を参照して複数データベースのリカバリを行うデータベース復元装置とを備え、前記複数データベース更新トランザクション管理装置が、前記トランザクションが実行されたとき、該トランザクションにより更新されたデータベース名と格納場所を含むファイル名とバックアップ日時とを記憶し、データベースに障害が発生したとき、データベース復元装置が、前記障害が発生したデータベースのバックアップ日時を複数データベース更新トランザクション管理装置から読み出して特定し、該特定した日時以前の更新されたデータベース名及び格納場所を含むファイル名を読み出し、該読み出したデータベース名及び格納場所を含むファイル名を基にデータのリカバリを行うことを第２の特徴とする。
【００１３】
更に本発明は、複数のデータベースを同時に更新するトランザクションにより更新が実行され、前記複数のデータベースの更新履歴をトランザクション対応に管理する複数データベース更新トランザクション管理装置と、障害発生時に該複数データベース更新トランザクション管理装置を参照して複数データベースのリカバリを行うデータベース復元装置とを備える分散データベースシステムにおける分散データベースリカバリプログラムにおいて、前記複数データベース更新トランザクション管理装置に、前記トランザクションが実行されたとき、該トランザクションにより更新されたデータベース名と格納場所を含むファイル名とバックアップ日時とを記憶させる機能と、前記データベース復元装置に、データベースに障害が発生したとき、前記障害が発生したデータベースのバックアップ日時を複数データベース更新トランザクション管理装置から読み出して特定する機能と、該特定した日時以前の更新されたデータベース名及び格納場所を含むファイル名を読み出す機能と、該読み出したデータベース名及び格納場所を含むファイル名を基にデータのリカバリを行う機能を実現させることを第３の特徴とする。
【発明の効果】
【００１４】
前記構成により本発明による分散データベースリカバリ方法及び同リカバリシステム及び同リカバリプログラムは、トランザクションにより更新が実行されたデータベース名／実行日時／ファイル名等を記憶しておき、障害が発生したときに前記記憶したトランザクション等を用いてデータリカバリを行うため、誤操作やハード障害を含むシステム障害等の理由によりシステムを構成する一部のデータベースをバックアップから復元する必要が生じたとき、復元が必要なデータベースおよび復元ポイントを自動的に割り出し、リカバリを行うことができる。これにより本発明は、システムのダウンタイム短縮、復元データの信頼性向上、システム運用管理者の負荷を軽減することもできる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明による分散データベースリカバリ方法が適用される分散データベースリカバリシステムの一実施形態を図面を参照して詳細に説明する。図１は本発明の一実施形態によるデータベースリカバリシステムを表す構成図、図２は本実施形態によるバックアップ履歴管理テーブル情報の一例を示す図、図３は複数ＤＢ更新トランザクション管理テーブル情報の一例を示す図、図４はトランザクションログ情報の一例を示す図、図５は復元ＤＢ管理テーブル情報の一例を示す図、図６は障害発生時に復元が必要なデータベースおよび復元ポイントを特定する動作処理のフローチャートである。
<構成の説明>
【００１６】
本実施形態によるデータベースリカバリシステムは、図１に示す如く、複数のクライアント６０とＬＡＮ等を介して接続され、少なくとも１つ以上のユーザテーブル２１及びその変更履歴情報を保持するトランザクションログ２２を持つ複数のデータベース２０と、該複数のデータベース２０の更新履歴を管理するバックアップ履歴管理装置１０と、前記データベース２０の更新トランザクション毎の管理を行う複数ＤＢ更新トランザクション管理装置３０と、障害発生時に前記バックアップ履歴管理装置１０及び複数ＤＢ更新トランザクション管理装置３０を参照して複数データベース２０のリカバリを行うデータベース復元装置４０とから構成される。
【００１７】
前記バックアップ履歴管理装置１０は、前記データベース２０からのバックアップを行ったバックアップファイル１１と、このバックアップの履歴情報を保持するバックアップ履歴管理テーブル１２を備え、前記複数ＤＢ更新トランザクション管理装置３０は、複数のデータベースを更新するトランザクションが実行された場合にそのトランザクションに一意なＩＤ情報を生成し、該ＩＤ更新対象のデータベースのトランザクションログに割り当てる機能を有する複数ＤＢ更新トランザクションＩＤ生成機能３２と、その情報を管理する複数ＤＢ更新トランザクション管理テーブル３１とを備える。
【００１８】
前記データベース復元装置４０は、障害発生時に複数データベース２０のデータ整合性が保たれた状態で復元するために復元が必要なデータベースとその復元ポイントを割り出す復元データベース・復元ポイント割出し機能４２と、前記復元が必要なデータベースとその復元ポイントが書き込まれる復元ＤＢ管理テーブル４３と、該復元ポイント割出し機能４２により割出された復元が必要なデータベースと復元ポイントを基に複数データベース２０を復元するデータベース復元機能４１とを備える。
【００１９】
前記バックアップ履歴管理テーブル１２に書き込まれる情報は、図２に示す如く、バックアップを行ったデータベース名（例えば、ＷＥＳＴ，ＮＯＲＴＨ，ＥＡＳＴ）と、そのバックアップを行ったバックアップ日時と、そのバックアップファイルの格納場所並びにファイル名を示すバックアップファイル（例えば、バックアップ先のドライブ名乃至ディレクトリ名「Ｃ：￥Ｂａｃｋｕｐ」と、ファイル名「ＷＥＳＴ．ｂａｋ」）と、データベースで最後に実行されたトランザクションＩＤを示す最終トランザクションログシーケンス番号（例えば、「００１１０」他）と、このバックアップを行ったデータベースで最後に実行された複数データベースを更新するトランザクションＩＤを示す最終複数ＤＢ更新トランザクションＩＤ（例えば、「０５０１２８１４１１０１０００１」他）との各項目から構成される。
【００２０】
前記複数ＤＢ更新トランザクション管理テーブル３１に書き込まれる情報は、例えば図３に示す如く、更新を行ったデータベース名（ＤＢ名）と、前記複数ＤＢ更新トランザクションＩＤ生成機能３２により生成した複数ＤＢ更新トランザクションＩＤと、データベース２０で実行されたトランザクション毎に割り当てられる一意なログシーケンス番号の各項目から構成される。
【００２１】
前記トランザクションログ２２に書き込まれる情報は、図４に示す如く、例えばログシーケンス番号と、実行された実行ステートメントと、複数ＤＢ更新トランザクションＩＤ情報の各項目から構成される。
【００２２】
前記復元ＤＢ管理テーブル４３に書き込まれる情報は、図５に示す如く、例えば復元が必要なデータベース名と、データベース復元後の最新の複数ＤＢ更新トランザクションＩＤと、どのトランザクションまで復元するかを示すトランザクションログ２２のログシーケンス番号情報との各項目から構成される。
【００２３】
また前記複数ＤＢ更新トランザクション管理装置３０の複数ＤＢ更新トランザクションＩＤ生成機能３２は、クライアント６０からデータベース２０に対して複数のデータベースを同時に更新する処理が実行されたことを検知したとき、そのトランザクションに対して一意な複数ＤＢ更新トランザクションＩＤを生成し、更新された全てのデータベース２０のトランザクションログ２２へトランザクションＩＤを付与した情報を書き込むと共に、複数ＤＢ更新トランザクション管理テーブル３１に前記トランザクションにより更新されたデータベース毎のデータベース名並びに複数ＤＢ更新トランザクションＩＤ及びそのデータベースのログシーケンス番号とを書き込む様に動作するものである。
<構成の説明>
【００２４】
次に本実施形態による分散データベースリカバリシステムの動作を図６を参照して説明する。
本実施形態による分散データベースリカバリシステムは、複数のデータベースへの更新を指示するトランザクションが発生したとき、実行ステートメントに対応したログシーケンス番号並びに複数ＤＢ更新トランザクションＩＤをトランザクションログ２２（図４）に登録すると共に、該複数ＤＢ更新トランザクションＩＤ及びログシーケンス番号に対応して更新したデータベース名を複数ＤＢ更新トランザクション管理テーブル３１（図３）に登録し、更に該複数ＤＢ更新トランザクション管理テーブル３１から、データベース名毎に、最終（最新）に実行したバックアップ日時／バックアップファイル／最終トランザクションログシーケンス番号／最終複数ＤＢ更新トランザクションＩＤを取得してバックアップ履歴管理テーブル１２に登録（図２）しておき、障害が発生したとき、データベース復元装置４０に格納したプログラムが以下に説明する処理手順を実行することによってリカバリを行う。
【００２５】
この処理手順は、図５に示す如く、障害が発生したとき、当該障害が発生したデータベース名（例えばＥＡＳＴ）を復元ＤＢ管理テーブルへ書き込み（ステップＳ１）、次いでバックアップ履歴管理テーブル１２から最終複数ＤＢ更新トランザクションＩＤ情報を取得（ステップＳ２）した後、複数ＤＢ更新トランザクション管理テーブル３１を参照して前記ステップＳ２で取得した最終複数ＤＢ更新トランザクションＩＤ（本例では図３の「０５０１２８１５３５０１０００２」）以降に実行された複数ＤＢ更新トランザクションＩＤ、即ち復元により失われた複数ＤＢ更新トランザクションＩＤ（本例では「０５０１２８１４１１０１０００１」と「０５０１２８１４１１０１０００１」）を取得（ステップＳ３）する。
【００２６】
次いで処理手順は、該ステップＳ３によって更新されたデータベースがあるか否かの判定（ステップＳ４）、即ち障害により失われた複数ＤＢ更新トランザクションＩＤにより更新されていたデータベースがあるか否かを判定し、あると判定した場合は、その情報を図５に示した復元ＤＢ管理テーブル４３へ書き込み（ステップＳ５）、ないと判定したときに、前記復元ＤＢ管理テーブル３１の情報（更新を行ったデータＤＢ名／複数ＤＢ更新トランザクションＩＤ／トランザクション毎に割り当てられる一意なログシーケンス番号）を基に複数のデータベース２０を復元する動作を実行する。
【００２７】
この様に本実施形態による分散データベースリカバリシステムは、複数のデータベースへの更新を指示するトランザクションにＩＤを付し、且つ最終のトランザクションに使用されたデータベース名／バックアップファイル（格納場所）／最終トランザクションログシーケンス番号／最終複数ＤＢ更新トランザクションＩＤ情報をバックアップ履歴管理テーブル１２に格納しておき、障害が発生したとき、該障害が発生したデータベースの最終トランザクションの前に実行された更新トランザクションＩＤをバックアップ履歴管理テーブルから読み出し、障害が発生したトランザクションと共に該トランザクション以前の他データベースに対して更新された最終トランザクションを判定し、これらトランザクションを基にリカバリを実行するため、復元が必要なデータベースとその復元ポイントを割り出し、トランザクション原子性・一貫性を保った状態でリカバリを行うことができる。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施形態によるデータベースリカバリシステムを表す図。
【図２】本実施形態によるバックアップ履歴管理テーブル情報の一例を示す図。
【図３】本実施形態による複数ＤＢ更新トランザクション管理テーブル情報の一例を示す図。
【図４】本実施形態によるトランザクションログ情報の一例を示す図。
【図５】本実施形態による復元ＤＢ管理テーブル情報の一例を示す図。
【図６】本実施形態による復元が必要なデータベースおよび復元ポイントを特定する処理のフローチャート。
【符号の説明】
【００２９】
１０：バックアップ履歴管理装置、１１：バックアップファイル、１２：バックアップ履歴管理テーブル、２０：データベース、２１：ユーザテーブル、２２：トランザクションログ、３０：更新トランザクション管理装置、３１：更新トランザクション管理テーブル、３２：複数ＤＢ更新トランザクションＩＤ生成機能、４０：データベース復元装置、４１：データベース復元機能、４２：復元データベース・復元ポイント機能、４３：復元ＤＢ管理テーブル
【図１】
2006350411.tif 000003
【図２】
2006350411.tif 000004
【図３】
2006350411.tif 000005
【図４】
2006350411.tif 000006
【図５】
2006350411.tif 000007
【図６】
2006350411.tif 000008