(57)【要約】【課題】  静止化を行なわない方法でスナップショットの取得を可能にし、多様なプラットフォームが混在する環境で、バックアップ及びリストアの管理を行なう。【解決手段】  ＤＢＭＳ１１はデータの整合性を確保するためにチェックポイント処理を行なっている。スナップショット取得制御プログラム１３は、このチェックポイント処理をＤＢＭＳ１１の外部で検出し、このチェックポイントのタイミングに連動させて外部記憶装置２０にスナップショットを作成する。チェックポイントとスナップショットの関連づけをＣＰ―ＳＨ対応管理テーブル３０に保持することにより、任意のチェックポイント時のデータを短時間で復元可能とする。【選択図】図２
2005050143.tif 000002
【特許請求の範囲】
【請求項１】
データベース管理プログラム（以下、ＤＢＭＳ）が動作しているホスト計算機と、前記ＤＢＭＳによって管理されるデータを記憶する外部記憶装置と、スナップショット取得要求を受けて前記外部記憶装置上のデータのスナップショットを取得するスナップショット機能部とを備えた計算機システムであって、前記ＤＢＭＳが、前記外部記憶装置上のデータを更新するための更新データを一旦バッファに蓄え、そして、自らが制御するタイミングに従って、前記バッファに貯まった更新データを全て前記外部記憶装置に出力するというチェックポイント処理を間欠的に実行するようになっている前記計算機システム、と連携して動作する、前記スナップショットの取得を制御するためのスナップショット取得制御装置において、
前記ＤＢＭＳが自ら制御するタイミングに従って間欠的に実行する前記チェックポイント処理、の実行を検出するチェックポイント検出手段と、
前記チェックポイント検出手段により前記チェックポイントの実行が検出された場合に前記スナップショット機能部に前記スナップショット取得要求を送信するスナップショット取得要求手段と、
を備えることを特徴とするスナップショット取得制御装置。
【請求項２】
請求項１記載のスナップショット取得制御装置において、
前記チェックポイント検出手段が、前記ＤＢＭＳが外部に表す動作又は情報を監視することにより、前記チェックポイント処理の実行を検出することを特徴とするスナップショット取得制御装置。
【請求項３】
請求項１記載のスナップショット取得制御装置において、
前記チェックポイント検出手段が、前記ＤＢＭＳが前記外部記憶装置に対して行なう動作又は前記外部記憶装置に出力する情報を監視することにより、前記チェックポイント処理の実行を検出することを特徴とするスナップショット取得制御装置。
【請求項４】
請求項１記載のスナップショット取得制御装置において、
前記チェックポイント検出手段が、前記ＤＢＭＳが実行した前記チェックポイント処理を含む諸動作の履歴の記録である動作ログを監視することにより、前記チェックポイント処理の実行を検出することを特徴とするスナップショット取得制御装置。
【請求項５】
請求項１記載のスナップショット取得制御装置において、
前記ＤＢＭＳが、管理者用ユーザインターフェースを有し、前記管理者用ユーザインターフェースに前記チェックポイント処理に関する情報を出力するようになっている場合に、
前記チェックポイント検出手段が、前記ＤＢＭＳが前記管理者用ユーザインターフェースに出力する情報を監視することにより、前記チェックポイント処理の実行を検出することを特徴とするスナップショット取得制御装置。
【請求項６】
請求項２乃至５記載のスナップショット取得制御装置において、
前記ＤＢＭＳが、第1の時間間隔で前記チェックポイント処理を実行するようになっている場合に、
前記チェックポイント検出手段が、前記第１の時間間隔より短い第２の時間間隔で、前記チェックポイント処理の実行を検出するための監視動作を行うことを特徴とするスナップショット取得制御装置。
【請求項７】
請求項１記載のスナップショット取得制御装置において、
データベース静止化又は仮想データベース静止化を前記ＤＢＭＳに要求することなく前記スナップショット取得要求を送信することを特徴とするスナップショット取得制御装置。
【請求項８】
請求項１記載のスナップショット取得制御装置において、
前記チェックポイント処理の実行が検出されたことに伴い前記スナップショットが取得された場合に、検出されたチェックポイント処理を識別するためのチェックポイント特定情報と、取得されたスナップショットを識別するためのスナップショット特定情報とを関連付けて記憶する特定情報記憶手段と、
をさらに備えることを特徴とするスナップショット取得制御装置。
【請求項９】
請求項８記載のスナップショット取得制御装置において、
任意のチェックポイント特定情報の指定を含んだスナップショット復旧指示を受けて、指定されたチェックポイント特定情報に関連付けられて記憶されているスナップショット特定情報を前記特定情報記憶手段から取得し、取得したスナップショット特定情報によって識別されるスナップショットの復元要求を、前記スナップショット機能部又はスナップショット復元機能を有する所定の機能部に対して送信するスナップショット復元指示手段をさらに備えることを特徴とするスナップショット取得制御装置。
【請求項１０】
ＤＢＭＳが動作しているホスト計算機と、前記ＤＢＭＳによって管理されるデータを記憶する外部記憶装置と、スナップショット取得要求を受けて前記外部記憶装置上のデータのスナップショットを取得するスナップショット機能部とを備えた計算機システムであって、前記ＤＢＭＳが、前記外部記憶装置上のデータを更新するための更新データを一旦バッファに蓄え、そして、自らが制御するタイミングに従って、前記バッファに貯まった更新データを全て前記外部記憶装置に出力するというチェックポイント処理を間欠的に実行するようになっている前記計算機システム、と連携して使用される、前記スナップショットの取得を制御するためのコンピュータプログラムにおいて、
前記ＤＢＭＳが自ら制御するタイミングに従って間欠的に実行する前記チェックポイント処理、の実行を検出するステップと、
前記チェックポイントを検出するステップにより前記チェックポイントの実行が検出された場合に前記スナップショット機能部に前記スナップショット取得要求を送信するステップと、
を前記計算機システム内又は外のコンピュータに実行させるためのコンピュータプログラム。
【請求項１１】
ＤＢＭＳが動作しているホスト計算機と連携して使用される記憶システムにおいて、
前記ＤＢＭＳによって管理されるデータベースのデータを記憶する外部記憶装置と、
スナップショット取得要求を受けて前記外部記憶装置上のデータのスナップショットを取得するスナップショット機能部と、
前記スナップショットの取得を制御するためのスナップショット取得制御部と
を備え、
前記ＤＢＭＳが、前記外部記憶装置上のデータを更新するための更新データを一旦バッファに蓄え、そして、自らが制御するタイミングに従って、前記バッファに貯まった更新データを全て前記外部記憶装置に出力するというチェックポイント処理を間欠的に実行するようになっている場合に、
前記スナップショット取得制御部が、
前記ＤＢＭＳが自ら制御するタイミングに従って間欠的に実行する前記チェックポイント処理、の実行を検出するチェックポイント検出手段と、
前記チェックポイント検出手段により前記チェックポイントの実行が検出された場合に前記スナップショット機能手段に前記スナップショット取得要求を送信するスナップショット取得要求手段と、
を備えることを特徴とする記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムにおける外部記憶装置上に構築されているデータベースのスナップショット取得動作を制御する装置及び方法に関する。
【背景技術】
【０００２】
データベースの運用において、データベースを使用するアプリケーションのバグ、オペレータの誤操作等により、データベースの内容に不整合が発生する場合がある。一般に、上記のような障害を論理障害と呼ぶ。論理障害は、データベース管理システム(以下、ＤＢＭＳという)としては、入力された通り正常に処理を完了しているため、ＤＢＭＳの障害検出機能での障害検出はできない。上記のような論理障害を検出するのは、システム管理者やオペレータなどのデータベース使用者である。
【０００３】
上記のような論理障害が発生した場合、論理障害が発生した時点を管理者やオペレータが特定し、その特定した障害発生時点よりも前で、データに整合性のある時点までデータベースの内容を復旧する必要がある。
【０００４】
ここで、データに整合性があるとは、ＤＢＭＳが管理している動作ログファイルに記録されている動作ログ通りに、データが更新されていることを指す。一般的なＤＢＭＳは、ＤＢＭＳ自身が稼動している上位計算機のキャッシュメモリ上などに、更新内容を一時保存するためのバッファ領域を確保しており、オペレータ等がデータ更新を行っても、その更新内容は、データファイルにすぐには反映されず、前記バッファ領域に保持されている。データ整合性がある状態にするためには、前記バッファ領域上に保持している全ての更新内容を、記憶装置等に保持しているデータファイルに反映する必要がある。データ整合性がない場合、ＤＢＭＳは当該データファイルに障害が発生したとみなすため、データファイルを開くことができない。
【０００５】
データに整合性がある時点までデータベースの内容を復旧するためには、データに整合性がある状態でスナップショットを取得しておく必要がある。そのためには、データに整合性がある状態で、データベースの静止化を行い、スナップショットを取得する必要がある。スナップショットとは、ある時点でのスナップショット対象データを外部記憶装置で保持するもので、多くのストレージシステムで提供されている機能である。
【０００６】
データベースの静止化とは、データベースのデータファイルへの更新処理を停止することである。データベースの静止化を行わないと、スナップショット対象データに更新処理が行われるため、データに整合性がない状態となり、スナップショットを取得しても、データ回復には使用できないデータとなる。
【０００７】
24時間データベースへアクセスが行われる無停止運用データベースシステムでは、データベースの静止化を行うことは困難である。そのため、いくつかのＤＢＭＳではデータファイルへのアクセスを実行しながら、仮想的にデータベースの静止化を行う機能（以下、仮想データベース静止化機能）を提供している。しかし、前記仮想データベース静止化機能は、ＤＢＭＳが実行するため、当該ＤＢＭＳが稼動する上位計算機の負荷を増やす。さらに、データベース静止化はデータスナップショット完了まで行う必要があるため、本来業務への影響を考慮すると、大規模データベースや高負荷環境への適用は非常に困難である。
【０００８】
上記課題を解決する手法として、ＤＢＭＳと上位計算機上で稼動するソフトウェアまたは外部記憶装置が連携することにより、データスナップショット時の上位計算機への負荷をできるだけ減少させる手法が検討されている。
【０００９】
代表的なものとして、ＤＢＭＳの仮想データベース静止化機能により仮想データベース静止化を行い、スナップショット対象となるファイルまたは論理ボリュームのデータベース静止化時点のスナップショットを作成する。スナップショット作成が完了したら仮想データベース静止化を解除し、ＤＢＭＳは通常運用に戻る。次に、バックアップソフト等を使用して、前記スナップショットをバックアップデバイスにバックアップする。
【００１０】
ここで、スナップショットを作成するには、ＯＳのＬＶＭ（Logical Volume Manager）やさまざまなベンダから提供されているソフトウェアあるいは外部記憶装置で提供しているスナップショット作成機能を使用することができる。
【００１１】
この手法を適用して、スケジューリングソフトウェア等のアプリケーションを使用した自動運用にてスナップショットを取得する場合、スナップショットを取得したい時刻にこのアプリケーションがＤＢＭＳに対してデータベース静止化を要求し、データベースを整合性のある状態にするとともに、データベース静止化を行っている間にスナップショットを作成しなければならない。
【００１２】
前記ＬＶＭやソフトウェアを使用する場合、当該ＬＶＭやソフトウェアはＤＢＭＳに対してデータベース静止化を要求する手段が必要となる。ＤＢＭＳ側でも、データベース静止化機能又は外部アプリケーションからの要求に応じてデータベース静止化を実行できるアプリケーションインターフェースを有することが要求される。そのため、使用できるソフトウェアやＤＢＭＳが制限されたり、ソフトウェアやＤＢＭＳの改造が必要となる。
【００１３】
さらに、前記ＬＶＭやソフトウェアは上位計算機上で稼動するため、スナップショット作成時のみでなく、スナップショットの管理等にも上位計算機へ負荷がかかる。
【００１４】
上記問題を軽減するため、上位計算機に必要以上に負荷をかけることなく整合性のとれたスナップショットを取得する手法も考えられている。例えば、一部の外部記憶装置で提供しているスナップショット機能を使用する方法を適用する。これは、外部記憶装置が提供しているインタフェースで、上位計算機から外部記憶装置にスナップショット作成を要求し、要求を受領した当該外部記憶装置がスナップショットを作成することで、スナップショット管理も当該外部記憶装置にて行うものである。これにより、上位計算機には、スナップショット作成要求発行に伴う負荷以外の負荷かからなくなる。
【００１５】
上記手法により、取得したスナップショットを使用することで、論理障害発生時などに、整合性のあるデータへ復旧することが可能となる。その概略を図１に示す。まず、図１に示すように、論理障害が発生したデータを、論理障害発生以前に取得したスナップショットの中で、障害発生時点に最も近いスナップショットデータに戻す。次に、当該データに対して論理障害発生直前までに実行されたデータ更新を再実行する(以下、ロールフォワード)。なお、ロールフォワードは、一般的なＤＢＭＳが提供している機能である。 
上記手法では、一般的には、システム管理者または上位計算機上で稼動するプログラムやバッチジョブが、ＤＢＭＳに対してデータベース静止化要求し、データベースが静止化している間に、前記システム管理者等が外部記憶装置に対してスナップショット作成要求を発行する。スナップショット作成が完了すると、前記システム管理者等は、データベース静止化を解除し、スナップショットを取得する。データベース静止化は、ＤＢＭＳが実行する。従って、ＤＢＭＳが稼動する上位計算機には、データベース静止化時に負荷がかかる。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
上記手法により、論理障害発生以前の、整合性のとれたデータへの回復が可能となる。しかし、無停止運用データベースシステムでは、スナップショット毎に行う仮想データベース静止化処理による処理性能の低下が問題となるため、上位計算機の負荷が比較的低い時間帯を選択してスナップショットを取得したり、データベース静止化処理頻度をできるだけ抑える必要がある。この制約により、論理障害からの復旧可能なポイントが少なくなる。復旧可能なポイントが少なくなると、スナップショットデータから論理障害発生直前の状態まで、ロールフォワード処理の実行に時間がかかるといった課題が生じる。
【００１７】
さらに、データベースの静止化処理は、インタフェースがＤＢＭＳごとに分かれていたり、あるいはＤＢＭＳによっては必要な機能が備わっていなかったりするため、多様なプラットフォームが混在する環境でバックアップおよびリストアの管理を行うことが困難になっている。
【００１８】
従って、本発明の目的は、静止化を行なわない方法でスナップショットの取得を可能にすることである。
【００１９】
本発明の別の目的は、論理障害によるスナップショット復旧ポイントをより多く設けることにある。
【００２０】
本発明の別の目的は、多様なプラットフォームが混在する環境でバックアップ及びリストアの管理を行なうことである。
【課題を解決するための手段】
【００２１】
本発明の一つの観点に従うスナップショット取得制御装置は、データベース管理プログラム（以下、ＤＢＭＳ）が動作しているホスト計算機と、ＤＢＭＳによって管理されるデータを記憶する外部記憶装置と、スナップショット取得要求を受けて外部記憶装置上のデータのスナップショットを取得するスナップショット機能部とを備えた計算機システムであって、ＤＢＭＳが、外部記憶装置上のデータを更新するための更新データを一旦バッファに蓄え、そして、自らが制御するタイミングに従って、バッファに貯まった更新データを全て外部記憶装置に出力するというチェックポイント処理を間欠的に実行するようになっている計算機システム、と連携して動作するものである。このスナップショット取得制御装置は、ＤＢＭＳが自ら制御するタイミングに従って間欠的に実行するチェックポイント処理、の実行を検出するチェックポイント検出手段と、チェックポイント検出手段によりチェックポイントの実行が検出された場合にスナップショット機能部にスナップショット取得要求を送信するスナップショット取得要求手段とを備える。
【００２２】
好適な実施形態では、チェックポイント検出手段が、ＤＢＭＳが外部に表す動作又は情報を監視することにより、チェックポイント処理の実行を検出する。
【００２３】
好適な実施形態では、チェックポイント検出手段が、ＤＢＭＳが外部記憶装置に対して行なう動作又は外部記憶装置に出力する情報を監視することにより、チェックポイント処理の実行を検出する。
【００２４】
好適な実施形態では、チェックポイント検出手段が、ＤＢＭＳが実行したチェックポイント処理を含む諸動作の履歴の記録である動作ログを監視することにより、チェックポイント処理の実行を検出する。
【００２５】
好適な実施形態では、ＤＢＭＳが、管理者用ユーザインターフェースを有し、管理者用ユーザインターフェースにチェックポイント処理に関する情報を出力するようになっている場合に、チェックポイント検出手段が、ＤＢＭＳが管理者用ユーザインターフェースに出力する情報を監視することにより、チェックポイント処理の実行を検出する。
【００２６】
好適な実施形態では、ＤＢＭＳが、第1の時間間隔でチェックポイント処理を実行するようになっている場合に、チェックポイント検出手段が、第１の時間間隔より短い第２の時間間隔で、上述したようなチェックポイント処理の実行を検出するための監視動作を行う。
【００２７】
好適な実施形態では、スナップショット取得制御装置は、データベース静止化又は仮想データベース静止化をＤＢＭＳに要求することなくスナップショット取得要求を送信する。
【００２８】
好適な実施形態では、スナップショット取得制御装置は、チェックポイント処理の実行が検出されたことに伴いスナップショットが取得された場合に、検出されたチェックポイント処理を識別するためのチェックポイント特定情報と、取得されたスナップショットを識別するためのスナップショット特定情報とを関連付けて記憶する特定情報記憶手段と、をさらに備える。
【００２９】
好適な実施形態では、スナップショット取得制御装置は、任意のチェックポイント特定情報の指定を含んだスナップショット復旧指示を受けて、指定されたチェックポイント特定情報に関連付けられて記憶されているスナップショット特定情報を特定情報記憶手段から取得し、取得したスナップショット特定情報によって識別されるスナップショットの復元要求を、スナップショット機能部又はスナップショット復元機能を有する所定の機能部に対して送信するスナップショット復元指示手段をさらに備える。
【００３０】
本発明の別の観点に従うスナップショットの取得を制御するためのコンピュータプログラムは、ＤＢＭＳが動作しているホスト計算機と、ＤＢＭＳによって管理されるデータを記憶する外部記憶装置と、スナップショット取得要求を受けて外部記憶装置上のデータのスナップショットを取得するスナップショット機能部とを備えた計算機システムであって、ＤＢＭＳが、外部記憶装置上のデータを更新するための更新データを一旦バッファに蓄え、そして、自らが制御するタイミングに従って、バッファに貯まった更新データを全て外部記憶装置に出力するというチェックポイント処理を間欠的に実行するようになっている計算機システム、と連携して使用されるものである。そして、このコンピュータプログラムは、ＤＢＭＳが自ら制御するタイミングに従って間欠的に実行する前記チェックポイント処理、の実行を検出するステップと、チェックポイントを検出するステップによりチェックポイントの実行が検出された場合にスナップショット機能部にスナップショット取得要求を送信するステップと、を計算機システム内又は外のコンピュータに実行させる。
【００３１】
また、本発明の別の観点に従うＤＢＭＳが動作しているホスト計算機と連携して使用される記憶システムは、ＤＢＭＳによって管理されるデータベースのデータを記憶する外部記憶装置と、スナップショット取得要求を受けて外部記憶装置上のデータのスナップショットを取得するスナップショット機能部と、スナップショットの取得を制御するためのスナップショット取得制御部とを備える。そして、ＤＢＭＳが、外部記憶装置上のデータを更新するための更新データを一旦バッファに蓄え、そして、自らが制御するタイミングに従って、バッファに貯まった更新データを全て外部記憶装置に出力するというチェックポイント処理を間欠的に実行するようになっている場合に、スナップショット取得制御部が、ＤＢＭＳが自ら制御するタイミングに従って間欠的に実行するチェックポイント処理、の実行を検出するチェックポイント検出手段と、チェックポイント検出手段によりチェックポイントの実行が検出された場合にスナップショット機能手段にスナップショット取得要求を送信するスナップショット取得要求手段とを備える。
【発明を実施するための最良の形態】
【００３２】
以下、図面を用いて、本発明の一実施の形態を説明する。
【００３３】
図２を用いて、本発明の一実施の形態であるデータベースシステムの概略構成を説明する。同図においてデータベースシステムは、ホスト計算機１０と外部記憶装置２０から構成される。ホスト計算機１０と外部記憶装置２０は、例えば、ファイバチャネルプロトコルやインターネットプロトコルに準拠したインターフェースで接続している。ホスト計算機１０は、例えば、汎用機やワークステーションなどのコンピュータであり、所定のオペレーティングシステムの下で、データベース管理システム１１（以下、ＤＢＭＳという）と、チェックポイントを検出しスナップショット取得制御を行うスナップショット取得制御プログラム１３とが動作している。外部記憶装置２０は、例えば、ディスクアレイサブシステムであり、ＤＢＭＳ１１に対してデータベースの記憶領域、例えば、データテーブル３１及びＲｅｄｏログ３２及び動作ログ３３などを提供する。ここで、データテーブル３１は、データベースの主データを記録するものであり、Ｒｅｄｏログ３２は、データベースに加えられた全ての変更情報を記録するものである。また、動作ログ３３は、データベースの動作情報を記録するものである。また、外部記憶装置２０は、記憶領域内のデータのスナップショットを取得したり復元したりするスナップショット機能部４１等を備えることができる。さらに、外部記憶装置２０は、スナップショット取得制御プログラム１３が使用するデータの記憶領域、例えば、チェックポイントースナップショット対応管理テーブル（以下、ＣＰ−ＳＨ対応管理テーブルという）３０やスナップショット管理テーブル（以下ＳＨ管理テーブルという）４０の領域も提供する。
【００３４】
ＤＢＭＳ１１は、データベースを管理するシステムである。ＤＢＭＳ１１は、図示しない上位アプリケーションやユーザ等のクライアントからの要求に応じて、外部記憶装置２０内のデータベースを更新する処理を行う。データベースの更新手順の概略は次のとおりである。すなわち、ＤＢＭＳ１１は、データをホスト計算機１０内のバッファ１２に格納し、蓄積する。ＤＢＭＳ１１は、自ら制御するタイミングに従った離散的に到来する時点に、バッファの更新データをまとめて外部記憶装置２０に出力し、外部記憶装置２０のデータテーブル３１とＲｅｄｏログ３２と動作ログ３３を更新する（図２：矢印１０１）。このように間欠的に、バッファ１２内のデータをフラッシュして外部記憶装置２０内のデータを更新する処理を、チェックポイント処理という。これにより、ホスト計算機１０のバッファ１２上のデータと外部記憶装置２０に記憶されているデータとが、整合性のある状態になる。チェックポイント処理を行うタイミングは、ユーザがＤＢＭＳ１１に対して設定した条件（例えば、タイマ設定）に基づいて制御されても、ＤＢＭＳ１１の特定の条件（例えば、バッファフル）に基づいて制御されても良いが、いずれにしても、このタイミングはＤＢＭＳ１１の内部で制御されていれば十分であり、ＤＢＭＳ１１がこのタイミング制御に関する情報を外部に通知するための特別なインターフェースを持つ必要はない。このことは、ＤＢＭＳ１１として、従来からある種々のＤＢＭＳが利用でき、この実施形態が多様なプラットフォームが混在する環境下で実行することを可能とする。
【００３５】
スナップショット取得制御プログラム１３は、ＤＢＭＳ１１がチェックポイント処理を実行したか否かを継続的に監視し（図２：矢印１０２）、新しいチェックポイントを検出すると外部記憶装置２０内のスナップショット機能部４１にスナップショット取得を要求する（図２：矢印１０３）。チェックポイント処理が行われたことを検出する具体的な方法として、この実施形態では外部記憶装置２０の動作ログ３３を監視する方法が用いられる。すなわち、ＤＢＭＳ１１はチェックポイント処理を行う都度、動作ログ３３にその旨を記録するため、この動作ログ３３の更新内容をチェックすることによりチェックポイント処理が行われたことを検出することができる。この場合、ＤＢＭＳ１１がチェックポイントを行う間隔が例えばｔ秒間隔であったならば、スナップショット取得制御プログラム１３は、例えばｔ秒より小さいＴ秒間隔で動作ログ３３をチェックする。チェック間隔Ｔは、例えばユーザが任意に設定することができる。
【００３６】
スナップショット取得制御プログラム１３は新規のチェックポイント処理の実行を検出すると、上述したようにスナップショット取得を要求する（図２：矢印１０３）他に、外部記憶装置２０内のチェックポイント―スナップショット対応管理テーブル（以下ＣＰ―ＳＨ対応テーブルという）３０の読み込み及び書き込みを行なう。すなわち、スナップショット取得制御プログラム１３は、新規チェックポイント処理の実行を検出すると、その新規チェックポイント処理を特定するためのチェックポイントＩＤをＣＰ−ＳＨ対応管理テーブルに格納する（図２：矢印１０４）と共に、スナップショット機能部４１にスナップショット取得を要求する（図２：矢印１０３）。スナップショットが取得されると、スナップショット取得制御プログラム１３は、スナップショット機能部４１から取得されたスナップショットを特定するためのスナップショットＩＤを取得し（図２：矢印１０５）、ＣＰ―ＳＨ対応管理テーブル３０に、チェックポイントＩＤと関連づけてスナップショットＩＤを格納する（図２：矢印１０６）。
【００３７】
スナップショット取得制御プログラム１３は、チェックポイント処理の実行を検出する都度に上述制御を行う。これにより、チェックポイント処理の実行時点（つまり、データベースが整合化された時点）直後のスナップショットが逐次に取得されることになり、よって、別途データベースの静止化又は仮想静止化をＤＢＭＳ１１に要求する必要はない。
【００３８】
また、スナップショット取得制御プログラム１３は、任意の時点でシステム管理者から復元したいチェックポイントＩＤを含む復元要求メッセージを受信すると、当該ＣＰ−ＳＨ対応管理テーブル３０を参照して、チェックポイントＩＤから対応するスナップショットＩＤを取得し（図２：１０７）、スナップショット機能部４１にスナップショット復元要求を行なう（図２：１０８）。
【００３９】
外部記憶装置２０は、データテーブル３１と、Ｒｅｄｏログ３２と、動作ログ３３と、ＣＰ―ＳＨ対応管理テーブル３０と、スナップショットを管理するスナップショット管理テーブル（以下、ＳＨ管理テーブルという）４０を備えている。
【００４０】
上述のように、データテーブル３１は、データベースの主データを記録するものであり、Ｒｅｄｏログ３２は、データの更新や削除など、データ処理に関する情報、すなわち、データベースに加えられた全ての変更情報を記録するものである。また、動作ログ３３は、スナップショットの記録や、チェックポイントの記録など、データベースの動作情報を記録するものである。動作ログ３３には、例えば、スナップショット処理やチェックポイント処理などの、それぞれの処理を特定するための動作ＩＤ（例えば、チェックポイントＩＤなど）と、その処理が行われた時刻等が記録されている。
【００４１】
ＣＰ―ＳＨ対応管理テーブル３０には、チェックポイントＩＤとスナップショットＩＤが関連づけられて記憶されている。図３に、ＣＰ―ＳＨ対応管理テーブル３０のデータ内容を例示した。チェックポイントＩＤは、ＤＢＭＳ１１で生成される。このチェックポイントＩＤを使って、ＤＢＭＳ１１は、それぞれのチェックポイント処理を管理する。スナップショットＩＤは、それぞれのスナップショット処理を特定するために使用され、スナップショット機能部４１は、このスナップショットＩＤを使って、それぞれのスナップショットを管理する。これにより、スナップショット取得制御プログラム１３は、ＣＰ―ＳＨ対応管理テーブル３０とチェックポイントＩＤから、チェックポイントに対応する（すなわち、当該チェックポイント処理直後に行われた）スナップショットＩＤを取得することができる。
【００４２】
スナップショット機能部４１は、要求によりスナップショットの取得（図２：矢印１０９、矢印１１０、矢印１１１）や復元を行なう。
【００４３】
本実施の形態で、スナップショットを取得する機能は、外部記憶装置２０の機能として提供されるが、ホスト計算機１０などの上位装置のオペレーティングシステムなどに搭載されているＬＶＭ（Logical Volume Manager）等、ホスト計算機１０上で稼働するソフトウェアが提供することもできる。
【００４４】
ＳＨ管理テーブル４０には、スナップショットＩＤと、データテーブルのスナップショット３１ａのアドレス、Ｒｅｄｏログのスナップショット３２ａのアドレス、動作ログのスナップショット３３ａのアドレスが関連づけて記録されている。図４に、ＳＨ管理テーブル４０のデータ内容を例示する。外部記憶装置２０は、このＳＨ管理テーブル４０を参照することにより、スナップショットＩＤから、それぞれのスナップショットデータ（データテーブルのスナップショット３１ａ、Ｒｅｄｏログのスナップショット３２ａ、動作ログのスナップショット３３ａ）へアクセスすることが可能になる。
【００４５】
図５、図６を用いて、データベースシステムがスナップショットを取得するまでの動作について説明する。
【００４６】
図５は、ＤＢＭＳ１１におけるチェックポイント実行時の処理の流れを示すフローチャートを示している。
【００４７】
ＤＢＭＳ１１は、チェックポイントのイベントが発生すると、チェックポイント処理を実行する（図５：Ｓ２）。ＤＢＭＳ１１は、チェックポイントＩＤを生成し（図５：Ｓ２）、動作ログ３３にチェックポイントＩＤを含むチェックポイント実行完了ログを動作ログ３３を記録する（図５：Ｓ４）。なお、動作ログ３３の出力先は、管理コンソール等の管理用インターフェースへの出力でもよい。
【００４８】
図６は、スナップショット取得の処理の流れを示すフローチャートである。
【００４９】
スナップショット取得制御プログラム１３は、Ｔ秒間隔で動作ログ３３をチェックしている（図６：Ｓ１１）。動作ログ３３に記録されている最新のチェックポイントＩＤが、ＣＰ―ＳＨ対応管理テーブル３０に記録されている最新のチェックポイントＩＤと同じ場合、読み出されたチェックポイントＩＤを破棄し、次回チェックポイントまでスリープする。動作ログ３３の最新のチェックポイントＩＤとＣＰ−ＳＨ対応管理テーブル３０の最新チェックポイントＩＤが違う場合（図６：Ｓ１２）（すなわち、記録されているチェックポイントとは異なる新たなチェックポイント処理が実行された場合）、チェックポイントＩＤをＣＰ―ＳＨ対応管理テーブル３０に格納する（図６：Ｓ１３）。そして、外部記憶装置２０に対して、スナップショット取得要求を送信する（図６：Ｓ１４）。
【００５０】
外部記憶装置２０は、スナップショット取得制御プログラム１３からスナップショット取得要求を受信すると（図６：Ｓ１５）、外部記憶装置２０にデータテーブルのスナップショット３１ａ、Ｒｅｄｏログ３２のスナップショット３２ａ、動作ログのスナップショット３３ａを取得する（図６：Ｓ１６）。外部記憶装置２０は、当該スナップショットを管理をするためにスナップショットＩＤを生成し、ＳＨ管理テーブル４０に、スナップショットＩＤと、各スナップショット（すなわち、データテーブルのスナップショット３１ａ、Ｒｅｄｏログのスナップショット３２ａ、動作ログのスナップショット３３ａ）の所在を関連づけて記録する（図６：Ｓ１７）。これにより、外部記憶装置２０は、スナップショットＩＤから、各スナップショット（すなわち、データテーブルのスナップショット３１ａ、Ｒｅｄｏログのスナップショット３２ａ、動作ログのスナップショット３３ａ）を取得することが可能になる。外部記憶装置２０は、スナップショットＩＤを付与したスナップショット完了報告をスナップショット取得制御プログラム１３に送信する（図６：Ｓ１８）。
【００５１】
スナップショット取得制御プログラム１３は、外部記憶装置２０からスナップショット完了報告を受信し（図６：Ｓ１９）、ＣＰ―ＳＨ対応管理テーブル３０に、当該チェックポイントＩＤと関連づけて、スナップショットＩＤを記録する（図６：Ｓ２０）。
【００５２】
図７、図８を用いて、障害発生時の復旧処理について説明する。
【００５３】
図７のＣＰはチェックポイント処理を、ｔ０、ｔ１、ｔ２、ｔ３は、それぞれのチェックポイント処理の時刻を、ｔｘは論理障害発生時刻を、ｔｙは障害検出時刻を、５１〜５４は、それぞれの時刻でのスナップショットを表している。
【００５４】
ＤＢＭＳ１１は、あらかじめ設定されたｔ秒間隔で、チェックポイント処理を実行している。スナップショット取得制御プログラム１３は、動作ログ３３の内容をＴ秒間隔でチェックしている。チェック間隔Ｔはユーザの指定により任意に決められるが、Ｔ＜ｔでなければならない。
【００５５】
時刻ｔｙに、データベース使用者やアプリケーションからの報告などにより、論理障害検出がシステム管理者に報告される（図８：Ｓ５１）。システム管理者は、当該データへアクセスを禁止し、論理障害の回復処理を開始する（図８：Ｓ５２）。
【００５６】
システム管理者は、Ｒｅｄｏログ３２をチェックし、時刻ｔｘに行った処理が論理障害の原因であることを特定する。更に、システム管理者は動作ログ３３から、時刻ｔｘでの処理の直前のチェックポイントの時刻ｔ１と、そのチェックポイントＩＤを取得する（図８：Ｓ５３）。システム管理者は動作ログ３３から取得した当該チェックポイントＩＤをスナップショット取得制御プログラム１３に入力し、スナップショット復元要求を行なう（図８：Ｓ５４）。これにより、スナップショット取得制御プログラム１３にスナップショット復元要求イベントが発生する（図８：Ｓ５５）。
【００５７】
スナップショット取得制御プログラム１３へのチェックポイント入力は、当該プログラムが提供するＧＵＩなどのインターフェースを使用して行う。また、当該プログラムが提供するＡＰＩを使用して、別のプログラムから入力してもよい。
【００５８】
スナップショット取得制御プログラム１３は、スナップショット復元要求イベントが発生すると（図８：Ｓ５５）、ＣＰ−ＳＨ対応管理テーブル３０を参照し、当該チェックポイントＩＤに対応するスナップショットＩＤを取得する（図８：Ｓ５６）。スナップショット取得制御プログラム１３は、外部記憶装置２０（すなわち、スナップショット機能）に対して当該スナップショットＩＤを付与したスナップショット復元要求を行う（図８：Ｓ５７）。
【００５９】
外部記憶装置２０は、スナップショット取得制御プログラム１３からのスナップショット復元要求を受信し（図８：Ｓ５８）、ＳＨ管理テーブル４０を参照し、スナップショットＩＤから該当スナップショットの復元を行う（図８：Ｓ５９）。スナップショット復元処理が完了すると、外部記憶装置２０はスナップショット取得制御プログラム１３にスナップショット復元処理完了報告を送信する（図８：Ｓ６０）。なお、スナップショット復元完了報告は、管理コンソールなどへのメッセージ表示でも、別プログラムへの報告でも、スナップショット取得制御プログラム１３への報告でも、何からの形でスナップショット復元完了イベントを認識できるように報告されていれば良い。実施例では、スナップショット取得制御プログラム１３は、外部記憶装置２０からスナップショット復元完了報告を受信し（図８：Ｓ６１）、ＧＵＩによって、システム管理者にスナップショット復元完了報告をしている（図８：Ｓ６２）。
【００６０】
スナップショット復元処理が完了したデータテーブルは、厳密には時刻ｔ１（図７）の状態ではなく、時刻ｔ１よりもあとの時刻である時刻ｔ１’の状態である。これは、スナップショット取得処理が、チェックポイントと同時に行われるのではなく、スナップショット取得制御プログラム１３がＴ秒間隔で動作ログ３３をチェックし、新規チェックポイント処理実行を検知した場合にスナップショット取得処理を行うためである。
【００６１】
時刻ｔ１から時刻ｔ１’までの間に、データ内容は更新されている可能性がある。システム管理者は、スナップショット取得制御プログラム１３からスナップショット復元処理完了報告を受信すると（図８：Ｓ６３）、ＤＢＭＳ１１が一般的に保有するロールバック機能を用いてロールバック処理を実行することにより、データテーブル３１を時刻ｔ１時点の状態に戻すことが可能となる（図８：Ｓ６４）。これにより、論理障害発生直前であり、整合性が保証されているデータ（すなわち、時刻ｔ１のデータ）を復元することが可能となる。
【００６２】
図９に、スナップショット復元処理のイメージを図示する。データテーブル３１は、チェックポイント毎にスナップショットを作成される。ある時点でのスナップショット（図９：６３）を復元する場合、元のデータテーブル領域に上書き（図９：２０１）しても、別の領域（図９：３１ｂ）に復元（図９：２０２）しても良い。
【００６３】
以上、本発明の好適な実施の形態を説明したが、これらは本発明を説明するための例示であって、本発明の範囲をこの実施の形態のみに限定する趣旨ではない。従って、本発明は、他の種々の形態でも実施することが可能である。
【００６４】
例えば、本実施形態では、データテーブル３１、Ｒｅｄｏログ３２、動作ログ３３は外部記憶装置２０に格納されているが、それぞれ外部記憶装置２０以外の記憶装置に格納しても良いし、ネットワーク上に分散させて格納しても良い。
【００６５】
本実施の形態では，データテーブル３１及びデータテーブルのスナップショット３１ａは，外部記憶装置２０に格納しているが，当該スナップショットは，データテーブル３１を格納している外部記憶装置２０とは別の記憶装置に格納してもよい。また，Ｒｅｄｏログ３２及びＲｅｄｏログのスナップショット３２ａは，外部記憶装置２０に格納しているが，当該スナップショットは，Ｒｅｄｏログ３２を格納している外部記憶装置２０とは別の記憶装置に格納してもよい。さらに，動作ログファイル３３及び動作ログファイルのスナップショット３３ａは，外部記憶装置２０に格納しているが，当該スナップショットは，動作ログファイル３３を格納している外部記憶装置２０とは別の記憶装置に格納してもよい。
【００６６】
本実施の形態では、チェックポイントの検出手段として、外部記憶装置２０の動作ログ３３を監視しているが、ＤＢＭＳ１１を直接監視しても、コンソールのチェックポイント実行ログを監視しても、どのような方法を使ってチェックポイント処理を監視しても良い。ただし、この場合、外部記憶装置２０の動作を監視すれば十分であって、内部でチェックポイント処理のタイミング制御を予め知ったり、制御を行なったりする必要はない。
【００６７】
本実施の形態では，データテーブル３１，Ｒｅｄｏログ３２，動作ログ３３のスナップショットを取得するが，データテーブルのみスナップショットを取得してもよい。
【００６８】
スナップショット４１に対するスナップショット復元要求は，システム管理者がＲｅｄｏログ３２から特定したチェックポイントＩＤを元に，スナップショット取得制御プログラム１３が検出したスナップショットＩＤを使用して，システム管理者またはスナップショット取得制御プログラム１３以外のプログラムが行ってもよい。
【００６９】
この発明によれば、静止化や仮静止化を行なうことなく、スナップショットを取得することができ、かつ、データベースの論理障害からの回復が可能な最短単位であるチェックポイント時点と同じ頻度でスナップショットを取得することができる。これにより、論理障害発生時に最も近い時点まで、短時間で回復させることが可能となる。
【００７０】
また、この発明によれば、チェックポイントとスナップショットが関連づけて管理されているため、データベース管理者又は管理プログラムはチェックポイントを指定するだけで必要なスナップショットが自動的に選択でき、処理を簡略化できる。
【００７１】
この発明によれば、ＤＢＭＳが持つ静止化処理等の固有機能や固有インタフェースに依存することなく、ＤＢＭＳが汎用的に持つ論理障害回復機能、すなわちチェックポイントへの回復機能を活用することができる。
【図面の簡単な説明】
【００７２】
【図１】従来技術による障害復旧のタイミング図。
【図２】本発明の一実施形態に係る計算機システムの構成図。
【図３】ＣＰ−ＳＨ対応管理テーブルの内容。
【図４】ＳＨ管理テーブルの内容。
【図５】ＤＢＭＳ１１におけるチェックポイント実行時の処理の流れを示すフローチャート。
【図６】スナップショット取得時の処理の流れを示すフローチャート。
【図７】障害復旧に関するタイミング図。
【図８】スナップショット復元時の処理の流れを示すフローチャート。
【図９】スナップショット復元のイメージ図。
【符号の説明】
【００７３】
１０：ホスト計算機
１１：データベース管理システム
１２：バッファ
１３：スナップショット取得制御プログラム
２０：外部記憶装置
３０：ＣＰ―ＳＨ対応管理テーブル
３１：データテーブル
３１ａ：データテーブルのスナップショット
３１ｂ：新規領域（新規スナップショット取得要求処理）
３２：Ｒｅｄｏログ
３２ａ：Ｒｅｄｏログのスナップショット
３３：動作ログ
３３ａ：動作ログのスナップショット
４０：ＳＨ管理テーブル
４１：スナップショット機能部
６１：時刻ｔ１のスナップショット
６２：時刻ｔ２のスナップショット
６３：時刻ｔ３のスナップショット
１０１：読み込み・書き込み処理
１０２：動作ログ監視処理
１０３：スナップショット取得要求処理
１０４：チェックポイント格納処理
１０５：スナップショットＩＤ取得処理
１０６：スナップショットＩＤ格納処理
１０７：チェックポイントＩＤに対応するスナップショットＩＤ取得処理
１０８：スナップショット復元要求処理
１０９：データテーブルスナップのスナップショット作成処理
１１０：Ｒｅｄｏログのスナップショット作成処理
１１１：動作ログのスナップショット作成処理
２０１：前領域へのスナップショット復元処理
２０２：別領域へのスナップショット復元処理
ＣＰ：チェックポイント
【図１】
2005050143.tif 000003
【図２】
2005050143.tif 000004
【図３】
2005050143.tif 000005
【図４】
2005050143.tif 000006
【図５】
2005050143.tif 000007
【図６】
2005050143.tif 000008
【図７】
2005050143.tif 000009
【図８】
2005050143.tif 000010
【図９】
2005050143.tif 000011