(57)【特許請求の範囲】
【請求項１】
計算機に接続される記憶装置システムであって、
前記記憶装置システムは、前記計算機から送信されるアクセス要求を処理する制御部と、データを格納する第１の記憶装置と、前記第１の記憶装置に格納されるデータの更新履歴であるジャーナルを格納する第２の記憶装置と、を備え、
前記制御部は、
前記記憶装置システムと前記計算機との間で送受信されるデータ及び前記ジャーナルが、一時的に格納されるキャッシュメモリを備え、
前記第１の記憶装置に格納されたデータに対する更新指示を受信したとき、前記ジャーナルを上書き可能状態として新たに生成するジャーナル制御部と、
前記第１の記憶装置に格納されたデータに対する更新指示を受信したとき、前記更新対象のデータが格納されたアドレスと同じアドレスのデータが更新されることによって生成された同アドレスに対応するジャーナルが、前記キャッシュメモリに既に存在し、かつ、上書き可能状態であるか否かを判定するジャーナル上書き判定部と、
前記計算機から、前記第１の記憶装置に格納されたデータの復元時点を特定する所定の識別情報を含む所定の指示を受信したとき、前記キャッシュメモリに格納された上書き可能状態のジャーナルを、上書き不可状態に変更するジャーナル永続化部と、を備え、
所定のタイミングに前記キャッシュメモリに格納されているデータを前記第１の記憶装置又は前記第２の記憶装置に反映させるための書き込みを行い、
前記ジャーナル制御部は、
前記第１の記憶装置に格納されたデータに対する更新指示を受信したとき、前記同アドレスに対応するジャーナルが、前記キャッシュメモリに既に存在し、かつ、上書き可能状態である場合には、前記新たに生成されたジャーナルを前記同アドレスに対応するジャーナルに上書きし、前記同アドレスに対応するジャーナルが、前記キャッシュメモリに存在しない場合、又は、上書き不可状態である場合には、前記新たに生成されたジャーナルを前記キャッシュメモリの新たな領域に格納し、
前記計算機から前記所定の指示を受信したとき、前記ジャーナル永続化部による処理の後、前記所定の指示に含まれる所定の識別情報と対応させた上書き不可状態のジャーナルを生成して前記キャッシュメモリに格納し、
前記計算機から前記所定の識別情報を含むリストア指示を受信したとき、前記受信したリストア指示に含まれる所定の識別情報に対応するジャーナルより前に前記第２の記憶装置に記録されたジャーナルを用いて、前記第１の記憶装置に格納されたデータを復元する、ことを特徴とする記憶装置システム。
【請求項２】
前記計算機は、データベース管理システムを実行し、
前記データベース管理システムは、
管理するデータを格納するデータベースを前記第１の記憶装置に配置し、
前記データベースの回復の基点となるチェックポイントを生成するとき、前記チェックポイントの識別情報を前記所定の識別情報として、前記所定の指示を前記記憶装置システムに送信し、
前記データベースを回復させるとき、前記チェックポイントの識別情報を前記所定の識別情報として、前記リストア指示を前記記憶装置システムに送信する、ことを特徴とする請求項１に記載の記憶装置システム。
【請求項３】
前記ジャーナル永続化部は、前記制御部によって前記所定のタイミングに前記キャッシュメモリに格納されたジャーナルが第２の記憶装置に書き込まれるとき、前記キャッシュメモリに格納されたジャーナルが上書き可能状態である場合には、前記キャッシュメモリに格納されたジャーナルを上書き不可状態に変更する、ことを特徴とする請求項１に記載の記憶装置システム。
【請求項４】
前記制御部は、前記記憶装置システムの機能を設定するジャーナル設定部を、さらに備え、
前記ジャーナル設定部は、
前記ジャーナル永続化部及び前記ジャーナル制御部の機能を、有効又は無効に設定する入力を受け付けるインタフェースを提供し、
前記ジャーナル永続化部及び前記ジャーナル制御部の機能を、有効又は無効とする、ことを特徴とする請求項１に記載の記憶装置システム。
【請求項５】
前記制御部は、
前記計算機から前記所定の指示を受信したとき、前記キャッシュメモリに格納された上書き可能状態のジャーナルの量が所定の閾値以上であって、かつ、前記第２の記憶装置の空き容量が所定の閾値以上であるか否か、を判定するジャーナル永続化判定部と、
前記ジャーナル永続化判定部による判定結果に基づいて、前記受信した所定の指示を有効又は無効に設定するチェックポイント管理部と、をさらに備え、
前記ジャーナル永続化部は、前記ジャーナル永続化判定部による判定結果に基づいて、前記キャッシュメモリに格納された上書き可能状態のジャーナルを上書き不可状態に変更し、
前記ジャーナル制御部は、前記計算機から前記リストア指示を受信したとき、前記受信したリストア指示に含まれる所定の識別情報によって特定される所定の指示が有効か否かを判定し、
前記特定された所定の指示が有効の場合には、前記受信したリストア指示に含まれる所定の識別情報に対応するジャーナルより前に前記第２の記憶装置に記録されたジャーナルを用いて、前記第１の記憶装置に格納されたデータを復元する、ことを特徴とする請求項１に記載の記憶装置システム。
【請求項６】
前記制御部は、前記記憶装置システムの機能を設定するジャーナル設定部を、さらに備え、
前記ジャーナル設定部は、
前記ジャーナル永続化判定部の判定に用いる、前記キャッシュメモリに格納された上書き可能状態のジャーナルの量の閾値と、前記第２の記憶装置の空き容量の閾値と、の入力を受け付けるインタフェースを提供し、
前記キャッシュメモリにある上書き可能状態のジャーナルの量の閾値と、前記第２の記憶装置の空き容量の閾値と、を設定する、ことを特徴とする請求項５に記載の記憶装置システム。
【請求項７】
前記チェックポイント管理部は、受信済みの所定の指示に含まれる所定の識別情報、及び前記受信済みの所定の指示が有効又は無効であるか、を通知することを特徴とする請求項５に記載の記憶装置システム。
【請求項８】
前記制御部は、前記記憶装置システムの機能を設定するジャーナル設定部を、さらに備え、
前記ジャーナル設定部は、
前記ジャーナル永続化判定部及び前記チェックポイント管理部の機能を、有効又は無効とする入力を受け付けるインタフェースを提供し、
前記ジャーナル永続化判定部及び前記チェックポイント管理部の機能を、有効又は無効に設定する、ことを特徴とする請求項５に記載の記憶装置システム。
【請求項９】
計算機に接続され、第１の記憶装置と、第１の記憶装置に格納されたデータの更新履歴であるジャーナルを格納する第２の記憶装置と、前記計算機との間で送受信されるデータ又は前記ジャーナルが一時的に格納されるキャッシュメモリと、を有する記憶装置システムにおけるデータ回復方法であって、
前記第１の記憶装置に格納されたデータに対する更新指示を受信したとき、前記ジャーナルを上書き可能状態として新たに生成し、
前記第１の記憶装置に格納されたデータに対する更新指示を受信したとき、前記更新対象のデータが格納されたアドレスと同じアドレスのデータが更新されることによって生成された同アドレスに対応するジャーナルが、前記キャッシュメモリに既に存在し、かつ、上書き可能状態である場合には、前記新たに生成されたジャーナルを前記同アドレスに対応するジャーナルに上書きし、前記同アドレスに対応するジャーナルが、前記キャッシュメモリに存在しない場合、又は、上書き不可状態である場合には、前記新たに生成されたジャーナルを前記キャッシュメモリの新たな領域に格納し、
前記計算機から、前記第１の記憶装置に格納されたデータの復元時点を特定する所定の識別情報を含む所定の指示を受信したとき、前記キャッシュメモリに格納された上書き可能状態のジャーナルを上書き不可状態に変更し、前記所定の指示に含まれる所定の識別情報と対応させた上書き不可状態のジャーナルを生成して前記キャッシュメモリに格納し、
所定のタイミングに前記キャッシュメモリに格納されているデータを前記第１の記憶装置又は前記第２の記憶装置に反映させるための書き込みを行い、
前記計算機から前記所定の識別情報を含むリストア指示を受信したとき、前記受信したリストア指示に含まれる所定の識別情報に対応するジャーナルより前に前記第２の記憶装置に記録されたジャーナルを用いて、前記第１の記憶装置に格納されたデータを復元する、ことを特徴とするデータ回復方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース管理システム及び記憶装置システムに関し、特に、記憶装置システムのジャーナリング技術を用いてデータの回復を行うデータ回復技術に関する。
【背景技術】
【０００２】
企業活動におけるデータベースの利用の普及に伴い、データベースのデータ損失を防止するため、バックアップ及びリカバリによるデータ回復技術が広く用いられている。データベースのバックアップとは、データベースを定期的にテープなどの記憶装置に複製することである。データベースのリカバリとは、まず、テープなどに記録されたバックアップデータをデータベースを復元する（以下、リストア）。そして、復元したデータベースにバックアップされた時点から最新又は過去のある時点までのデータの変更記録（以下、ログ）を適用し、データベースをトランザクションの一貫性が確保された状態に回復させることである。ログは、データベース管理システムによって生成され、データベースに対する変更操作の履歴を表す。
【０００３】
近年、データベースのリストアに必要な時間を短縮するために、ジャーナリング技術を利用したデータベースの回復方法が注目を集めている。また、ジャーナリング技術は、ＣＤＰ（Ｃｏｎｔｉｎｕｏｕｓ  Ｄａｔａ  Ｐｒｏｔｅｃｔｉｏｎ）技術とも呼ばれ、例えば、特許文献１に開示されている。特許文献１に開示されている技術では、記憶装置システムは、データベースとログを同じ記憶装置に格納し、データに更新指示を受け付けるごとに更新履歴（以下、ジャーナル）を別の記憶装置（以下、ジャーナル記憶装置）に記録する。
【０００４】
また、データベース管理システムは、データベース管理システムのバッファに格納されたデータと記憶装置システムに格納されたデータを一致させるために、チェックポイント処理を実行する。記憶装置システムは、チェックポイント処理完了時にデータベース管理システムからチェックポイントコマンドを受信し、チェックポイントの識別情報と対応させたジャーナルを生成しジャーナル記憶装置に記録する。
【０００５】
記憶装置システムは、データベース管理システムからチェックポイントの識別情報を含むリストア指示を受信すると、リストア指示に含まれるチェックポイントの識別情報と対応するジャーナルより前にジャーナル記憶装置に記録されたジャーナルを用いてデータベース及びログを高速にリストアする。そして、データベース管理システムは、データベース及びログのリストアが完了すると、データベースにログを適用し、トランザクションの一貫性を確保して、データベースのリカバリを完了する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２５２６８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来のデータベースのバックアップ及びリカバリ方法では、リストア時に、バックアップデータを取得した時点から更新されていない部分（バックアップデータとバックアップ元のデータが一致している部分）も読み出すため、データベースの規模に比例してリストアに要する時間が増大する。また、管理者によって、データベースを定期的にバックアップする必要があるなど、管理コストが大きくなってしまった。
【０００８】
一方、特許文献１に開示されている技術では、記憶装置システムの内部で生成したジャーナルを利用して、ホスト計算機を介さず更新されたデータのみをリストアするため、高速なリストアが可能である。また、データベースに対する更新を常時ジャーナルとして記録するため、データベースを定期的にバックアップする必要もない。
【０００９】
しかし、データベース又はログが更新されるたびにジャーナルを記録しなければならないため、大量の記憶容量を必要とする。例えば、多数のユーザに対してＯＬＴＰ業務を提供するデータベース管理システムでは、データの更新量が多くなり、またそれに付随して大量のログを出力するため、ジャーナルを記録するために必要な記憶容量が膨大となる。
【００１０】
本発明の目的は、高速なリストアと定期的なバックアップ不要な記憶装置システムのジャーナリング技術を利用しながら、ジャーナルを記録するための記憶容量を削減可能なデータベース管理システム及び記憶装置システムを提供することである。
【課題を解決するための手段】
【００１１】
本発明の代表的な一形態では、計算機に接続される記憶装置システムであって、前記記憶装置システムは、前記計算機から送信されるアクセス要求を処理する制御部と、データを格納する第１の記憶装置と、前記第１の記憶装置に格納されるデータの更新履歴であるジャーナルを格納する第２の記憶装置と、を備え、前記制御部は、前記記憶装置システムと前記計算機との間で送受信されるデータ及び前記ジャーナルが、一時的に格納されるキャッシュメモリを備え、前記第１の記憶装置に格納されたデータに対する更新指示を受信したとき、前記ジャーナルを上書き可能状態として新たに生成するジャーナル制御部と、前記第１の記憶装置に格納されたデータに対する更新指示を受信したとき、前記更新対象のデータが格納されたアドレスと同じアドレスのデータが更新されることによって生成された同アドレスに対応するジャーナルが、前記キャッシュメモリに既に存在し、かつ、上書き可能状態であるか否かを判定するジャーナル上書き判定部と、前記計算機から、前記第１の記憶装置に格納されたデータの復元時点を特定する所定の識別情報を含む所定の指示を受信したとき、前記キャッシュメモリに格納された上書き可能状態のジャーナルを、上書き不可状態に変更するジャーナル永続化部と、を備え、所定のタイミングに前記キャッシュメモリに格納されているデータを前記第１の記憶装置又は前記第２の記憶装置に反映させるための書き込みを行い、前記ジャーナル制御部は、前記第１の記憶装置に格納されたデータに対する更新指示を受信したとき、前記同アドレスに対応するジャーナルが、前記キャッシュメモリに既に存在し、かつ、上書き可能状態である場合には、前記新たに生成されたジャーナルを前記同アドレスに対応するジャーナルに上書きし、前記同アドレスに対応するジャーナルが、前記キャッシュメモリに存在しない場合、又は、上書き不可状態である場合には、前記新たに生成されたジャーナルを前記キャッシュメモリの新たな領域に格納し、前記計算機から前記所定の指示を受信したとき、前記ジャーナル永続化部による処理の後、前記所定の指示に含まれる所定の識別情報と対応させた上書き不可状態のジャーナルを生成して前記キャッシュメモリに格納し、前記計算機から前記所定の識別情報を含むリストア指示を受信したとき、前記受信したリストア指示に含まれる所定の識別情報に対応するジャーナルより前に前記第２の記憶装置に記録されたジャーナルを用いて、前記第１の記憶装置に格納されたデータを復元する。
【発明の効果】
【００１２】
本発明の一形態によれば、同アドレスを指定した書き込み処理が複数要求されるとき、キャッシュメモリ上に格納されジャーナルを上書きすることによって、ジャーナルを記録するために必要な記憶容量を削減することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態の情報処理システムのハードウェア構成図である
【図２】第１の実施の形態の情報処理システムのソフトウェア構成図である。
【図３】第１の実施の形態のＤＢのリカバリ処理手順を示すフローチャートである。
【図４】第２の実施の形態の情報処理システムのソフトウェア構成図である。
【図５】第２の実施の形態のＤＢＭＳからの書き込み処理要求を受信したときに、制御装置によって実行される処理の手順を示すフローチャートである。
【図６】第２の実施の形態の記憶装置システムがホストからチェックポイントコマンドを受信したときに実行される処理の手順を示すフローチャートである。
【図７】第２の実施の形態のキャッシュメモリにのみ格納されたデータを物理記憶装置に書き込む手順を示すフローチャートである。
【図８】第２の実施の形態のジャーナル格納情報の一例を示す図である。
【図９】第２の実施の形態の機能設定画面の一例を示す図である。
【図１０】第３の実施の形態の情報処理システムのソフトウェア構成図である。
【図１１】第３の実施の形態の記憶装置システムがホストからチェックポイントコマンドを受信したときに実行される処理の手順を示すフローチャートである。
【図１２】第３の実施の形態のＤＢのリカバリ処理手順を示すフローチャートである。
【図１３】第３の実施の形態のチェックポイント管理情報の一例を示す図である。
【図１４】第３の実施の形態のチェックポイント管理情報表示画面の一例を示す図である。
【図１５】第３の実施の形態の機能設定画面の一例を示す図である。
【発明を実施するための形態】
【００１４】
以下に図面を参照しながら本発明の実施の形態を説明する。なお、以下の説明により本発明が限定されるものではない。
【００１５】
（第１の実施の形態）
図１は、第１の実施の形態のデータベース管理システム（以下、ＤＢＭＳ）が動作する情報処理システムのハードウェア構成図である。図１の情報処理システムは、ホスト１、記憶装置システム２、管理端末３、ユーザ端末４、ネットワーク５、及びネットワーク６を備える。
【００１６】
ホスト１は、パーソナルコンピュータ、ワークステーション、メインフレームなどの計算機である。ホスト１は、計算機の種類に応じたオペレーティングシステム（以下、「ＯＳ」）と、ユーザ端末４に業務を提供するＤＢＭＳ１０が動作する。ホスト１は、プロセッサ４０、メモリ４１、ローカル記憶装置４２、ホストバスアダプタ４３、及びネットワークアダプタ４４を備える。
【００１７】
プロセッサ４０は、所定のプログラムを実行する。メモリ４１は、プロセッサ４０によって実行されるＯＳ、ＤＢＭＳ１０、及びＤＢＭＳ１０が使用するデータを一時的に格納する。ローカル記憶装置４２は、ＯＳ、ＤＢＭＳ１０及びＤＢＭＳ１０が使用するデータを格納する。ホストバスアダプタ４３は、ネットワーク５とホスト１とを接続する。ネットワークアダプタ４４は、ネットワーク６とホスト１とを接続する。
【００１８】
記憶装置システム２は、ディスク装置などの記憶装置、又は、ディスクアレイなどの複数の記憶装置を有するシステムである。また、記憶装置システム２は、ホスト１が使用するデータ及びプログラムを格納する。そして、ホスト１からのＩ／Ｏ処理要求を受信し、Ｉ／Ｏ処理要求に対応した処理を実行し、処理結果をホスト１に送信する。
【００１９】
記憶装置システム２は、物理記憶装置５６、制御装置２０、及び接続インタフェース５５を備える。接続インタフェース５５は、物理記憶装置５６と制御装置２０を相互に接続する。
【００２０】
制御装置２０は、ホスト１からのＩ／Ｏ要求の処理、及び物理記憶装置５６の制御を実行する。制御装置２０は、物理記憶装置アダプタ５４、プロセッサ５０、不揮発性メモリ５３、キャッシュメモリ２１、ネットワークアダプタ５１、及びネットワークアダプタ５２を備える。
【００２１】
プロセッサ５０は、所定のプログラムを実行する。不揮発性メモリ５３は、プロセッサによって実行されるプログラム、プログラムの実行に必要な情報、記憶装置システム２の設定情報及び構成情報などを格納する。キャッシュメモリ２１は、ホスト１から入力されるデータ、又は、記憶装置システム２からホスト１に転送されるデータを一時的に格納する。
【００２２】
物理記憶装置アダプタ５４は、接続インタフェース５５を介して物理記憶装置５６と接続する。ネットワークアダプタ５１は、記憶装置システム２とネットワーク５とを接続する。ネットワークアダプタ５２は、記憶装置システム２とネットワーク６とを接続する。
【００２３】
物理記憶装置５６は、ホスト１によって使用されるデータを格納する。物理記憶装置５６は、不揮発性の記憶媒体であって、例えば、磁気ディスクによって構成されるハードディスクなどである。
【００２４】
記憶装置システム２は、複数の物理記憶装置５６によって冗長性を有するＲＡＩＤ構成となっている。記憶装置システム２は、複数の物理記憶装置５６によって構成される記憶領域を、論理的な記憶領域に分割し論理記憶装置としてホスト１に提供する。
【００２５】
管理端末３は、記憶装置システム２の保守管理、及びホスト１で動作するＤＢＭＳ１０を管理するために使用される。情報処理システムの管理者は、記憶装置システム２の保守管理、及びＤＢＭＳ１０を管理する場合に、管理端末３に設定内容を入力する。管理端末３は、ネットワーク６を介して記憶装置システム２、及び、ホスト１のＤＢＭＳ１０に管理者が入力した内容を送信する。
【００２６】
ユーザ端末４は、ホスト１のＤＢＭＳ１０に対し、業務に応じたトランザクション処理を要求する。
【００２７】
ネットワーク５は、ホスト１と記憶装置システム２とを接続し、ホスト１から記憶装置システム２にＩ／Ｏの処理要求などを伝送するために使用される。ネットワーク５には、光ファイバ及び銅線などが用いられる。また、ネットワーク５では、ファイバチャネル、ＳＣＳＩ、ＴＣＰ／ＩＰなどの通信プロトコルが使用される。
【００２８】
ネットワーク６は、ホスト１、記憶装置システム２、管理端末３及びユーザ端末４を接続する。ネットワーク６は、記憶装置システム２と、管理端末３とホスト１との間で、記憶装置システム２の保守、構成、及び性能などの管理情報を通信する。また、ネットワーク６は、ユーザ端末４とホスト１との間で、Ｉ／Ｏ処理要求などを伝送するために使用される。ネットワーク６に使用されるケーブル及び通信プロトコルは、ネットワーク５と同一であっても異なっていてもよい。
【００２９】
図２は、第１の実施の形態の情報処理システムのソフトウェア構成図である。
【００３０】
ホスト１は、ＤＢＭＳ１０を含む。ＤＢＭＳ１０は、ユーザ端末４に要求され、業務に応じたトランザクション処理を実行する。また、ＤＢＭＳ１０は、ＯＳを介して記憶装置システム２に格納されたデータベース（以下、ＤＢ）にアクセスする。ＤＢＭＳ１０は、ローカル記憶装置４２又はメモリ４１に格納され、プロセッサ４０によって実行される。
【００３１】
ＤＢＭＳ１０は、ＤＢファイル３０、制御ファイル３１、ログファイル３２、及び一時ファイル３３などを管理する。ＤＢファイル３０、制御ファイル３１、ログファイル３２、及び一時ファイル３３は、記憶装置システム２に格納される。
【００３２】
ＤＢファイル３０は、ＤＢのデータに該当する表及び索引を格納する。制御ファイル３１は、データベースの現在の状態を記録するファイルであって、ＤＢのリカバリに必要な情報を含む。ログファイル３２は、ＤＢファイル３０の更新履歴であるログを格納する。一時ファイル３３は、データをソートする場合などに一時的に使用される。
【００３３】
ＤＢＭＳ１０は、トランザクション管理部１１、ＤＢバッファ１３、ログバッファ１５、ＤＢ書き込み部１２、及びログ書き込み部１４を含む。
【００３４】
トランザクション管理部１１は、ユーザ端末４から要求されたトランザクション処理に応じて記憶装置システム２のＤＢファイル３０にアクセスする。
【００３５】
ＤＢバッファ１３は、ホスト１のメモリ４１上に確保されるＤＢＭＳ１０専用の領域であって、記憶装置システム２のＤＢファイル３０のデータを一時的に保持する。ログバッファ１５は、同じくメモリ４１上に確保される領域であって、生成したログを一時的に保持する。
【００３６】
ＤＢ書き込み部１２は、ＤＢバッファに保持された変更データを記憶装置システム２のＤＢファイル３０に書き込む。ログ書き込み部１４は、ログバッファに保持されたログを記憶装置システム２のログファイル３２に書き込む。
【００３７】
さらに、ＤＢＭＳ１０は、ログ解析部１６及びログ適用部１７を有する。ログ解析部１６は、回復時点を含むＤＢのリカバリ指示を受信したとき、記憶装置システム２に指示する回復時点直前のリストア時点を、ログファイル３２を解析し、取得する。ログ適用部１７は、記憶装置システム２によってリストアされたＤＢファイル３０に、ログファイル３２に記録されたログを適用する。
【００３８】
記憶装置システム２は、記憶装置２４、ジャーナル取得記憶装置２５、ジャーナル記憶装置２６、及び制御装置２０を含む。記憶装置２４、ジャーナル取得記憶装置２５、及びジャーナル記憶装置２６は、物理記憶装置５６で構成された論理記憶装置である。
【００３９】
ジャーナル取得記憶装置２５は、ＤＢファイル３０及び制御ファイル３１を格納する。ジャーナル取得記憶装置２５に格納されたデータは、更新されると、ジャーナル記憶装置２６に更新履歴であるジャーナルが記録される。
【００４０】
記憶装置２４は、ログファイル３２及び一時ファイル３３を格納する。記憶装置２４は、格納されたデータのジャーナルが取得されないため、データの損失を防ぐために記憶装置２４に格納されたデータをリアルタイムに別の記憶装置に複製するミラーリングの設定を行ってもよい。また、ログファイル３２及び一時ファイル３３は、異なる論理記憶装置に格納されてもよい。
【００４１】
ジャーナル記憶装置２６は、ジャーナルデータ３５及びスナップショットデータ３４を格納する。ジャーナルデータ３５は、ジャーナル取得記憶装置２５に格納されたデータの更新履歴を格納する。スナップショットデータ３４とは、ジャーナル取得記憶装置２５に格納されたデータの、ある時点の複製である。なお、スナップショットデータ３４は、ジャーナル記憶装置２６でなく、他の記憶装置に格納していてもよい。
【００４２】
このようにＤＢＭＳ１０で管理するファイルを配置することによって、ＤＢファイル３０及び制御ファイル３１のジャーナルのみが取得され、ログファイル３２及び一時ファイル３３のジャーナルは取得されないため、ジャーナル記憶装置２６に必要な容量を削減することができる。
【００４３】
また、前述のＤＢＭＳ１０が管理するデータは、ＯＳのファイルシステムを介して記憶装置システム２に格納してもよいし、ファイルシステムを介さずＯＳのｒａｗデバイスを用いて記憶装置システム２に格納してもよい。
【００４４】
制御装置２０は、コマンド処理部２２及びジャーナル制御部２３を構成するプログラムを不揮発性メモリ５３に備える。
【００４５】
制御装置２０は、ホスト１からのＩ／Ｏ処理要求をネットワークアダプタ５１経由で受信すると、コマンド処理部２２を構成するプログラムを実行する。
【００４６】
制御装置２０は、受信したＩ／Ｏ処理要求がデータの書き込み要求の場合には、ホスト１から転送された書き込み用のデータ（以下、「書き込みデータ」）をキャッシュメモリ２１又は物理記憶装置５６に書き込む。また、制御装置２０は、キャッシュメモリに格納された書き込みデータを物理記憶装置５６に書き込む。
【００４７】
制御装置２０は、受信したＩ／Ｏ処理要求がデータの読み出し要求の場合には、読み出し要求に対応するデータ（以下、読み出しデータ）を、キャッシュメモリ２１又は物理記憶装置５６から読み出してホスト１に転送する。また、制御装置２０は、読み出しデータをキャッシュメモリ２１に格納する。
【００４８】
なお、制御装置２０は、Ｉ／Ｏ処理を実行するとき、Ｉ／Ｏ処理要求によって指定されたデータが格納された論理記憶装置のアドレスと対応する物理記憶装置５６のアドレスを特定し、特定された物理記憶装置５６にアクセスする。
【００４９】
制御装置２０は、ジャーナルを作成又は更新するとき、ジャーナル制御部２３を実行する。ジャーナル制御部２３は、処理を実行するプログラムによって構成される。また、ジャーナル制御部２３は、ホスト１から送信されたチェックポイントコマンドを受信したとき、作成したジャーナルを用いてリストアするとき、及びジャーナル取得の対象となる論理記憶装置を設定するときなどにも実行される。
【００５０】
制御装置２０は、ホスト１からジャーナル取得開始指示を受信すると、ジャーナル取得開始指示に従って、ジャーナル取得の対象となる論理記憶装置（ジャーナル取得記憶装置２５）を設定する。続いて、制御装置２０は、スナップショットデータ３４及びジャーナルデータ３５を格納するための論理記憶装置（ジャーナル記憶装置２６）を設定する。そして、制御装置２０は、ジャーナル取得記憶装置２５のスナップショットデータ３４をジャーナル記憶装置２６に格納する。
【００５１】
制御装置２０は、ホスト１からジャーナル取得記憶装置２５に対する書き込み処理要求を受信すると、まず、書き込みデータをキャッシュメモリ２１に格納する。そして、書き込みデータの更新履歴であるジャーナルを作成し、キャッシュメモリ２１に確保されたジャーナル格納用の所定の領域に格納する。
【００５２】
ジャーナルは、書き込みデータ、及びジャーナル取得記憶装置２５における書き込みデータの格納位置を示すアドレスなどによって構成される。キャッシュメモリ２１に格納されたジャーナルは、キャッシュメモリ２１への格納と非同期にジャーナル記憶装置２６に記録される。なお、制御装置２０は、同じアドレスが指定される複数の書き込みデータのジャーナルをキャッシュメモリ２１の異なる領域にそれぞれ格納する。
【００５３】
また、制御装置２０は、ホスト１から、ホスト１によって管理される所定の識別情報を含むチェックポイントコマンドを受信すると、所定の識別情報に対応させたジャーナルを生成し、キャッシュメモリ２１を介してジャーナル記憶装置２６に格納する。チェックポイントコマンドとは、ホスト１により管理される所定の識別情報によってジャーナル取得記憶装置２５の復元時点を特定するために、ホスト１が記憶装置システム２に送信するコマンドである。
【００５４】
さらに、制御装置２０は、ホスト１から前述の所定の識別情報を含むリストア指示を受信すると、まず、ジャーナル記憶装置２６に格納されたスナップショットデータ３４をジャーナル取得記憶装置２５にコピーする。続いて、制御装置２０は、リストア指示に含まれる所定の識別情報に対応するジャーナルよりも前に記録されたジャーナルを順次読み出す。そして、制御装置２０は、読み出したジャーナルをジャーナル取得記憶装置２５の書き込み元のアドレスに書き込むことによって、所定の識別情報を記録した時点のジャーナル取得記憶装置２５に格納されていたデータの状態をリストアする。
【００５５】
ここで、トランザクション処理要求を受信したＤＢＭＳ１０が、記憶装置システム２にデータを読み書きする手順を説明する。
【００５６】
ＤＢＭＳ１０は、ユーザ端末４からトランザクション処理要求を受信すると、トランザクション管理部１１を実行する。トランザクション管理部１１は、トランザクション処理による参照又は更新の対象となるデータを、記憶装置システム２に格納されたＤＢファイル３０からＤＢバッファ１３に読み込む。
【００５７】
トランザクション管理部１１は、トランザクション要求が更新であるとき、読み込んだＤＢバッファ１３のデータを更新する。そして、更新履歴であるログを生成し、ログバッファ１５に格納する。ログは、ログを生成したトランザクションを一意に識別する識別情報（以下、「トランザクション識別情報」）、当該ログを一意に識別するログ順次番号、更新するデータと更新されるデータなどによって構成される。
【００５８】
トランザクション管理部１１は、トランザクション処理が完了（コミット）すると、コミットと同期してログ書き込み部１４を実行する。そして、ログバッファ１３に格納されたログをログファイル３２に追記する。
【００５９】
なお、ＤＢＭＳ１０は、処理性能を向上させるため、ＤＢバッファ１３に格納されたデータの更新及びトランザクションのコミットとは非同期にＤＢ書き込み部１２を実行し、ＤＢバッファ１３の更新されたデータをＤＢファイル３０に書き込む。
【００６０】
ＤＢ書き込み部１２は、ＤＢバッファ１３に一定量以上のデータが更新されたとき、又は後述するチェックポイントなどで実行される。また、トランザクション管理部１１は、トランザクション要求にソート操作などの処理が含まれるときには、一時ファイル３３に対して書き込み処理及び読み出し処理を実行する。
【００６１】
制御装置２０は、ＤＢＭＳ１０からＩ／Ｏ処理要求を受信すると、受信したＩ／Ｏ処理要求が読み出し要求の場合には、読み出しデータを物理記憶装置５６又はキャッシュメモリ２１から取得してＤＢＭＳ１０に転送する。
【００６２】
また、制御装置２０は、受信したＩ／Ｏ処理要求が記憶装置２４に対する書き込み要求の場合には、書き込みデータをキャッシュメモリ２１に格納する。受信したＩ／Ｏ処理要求がジャーナル取得記憶装置２５に対する書き込み要求の場合には、書き込みデータをキャッシュメモリ２１に格納するとともに、書き込みデータのジャーナルを作成し、キャッシュメモリ２１に格納する。なお、キャッシュメモリ２１に格納された書き込みデータ及びジャーナルは、キャッシュメモリ２１への格納とは非同期に物理記憶装置５６に書き込まれる。
【００６３】
また、ＤＢＭＳ１０は、一定時間間隔又はトランザクション数ごとにＤＢ書き込み部１２及びログ書き込み部１４を実行し、ＤＢバッファ１３に格納された更新データ及びログバッファ１５に格納されたログを記憶装置システム２に書き込む。このように、バッファに格納されたデータを記憶装置システム２に書き込む処理、及びその処理を実行するタイミングをチェックポイントという。
【００６４】
ＤＢＭＳ１０に格納されたＤＢバッファ１３と、記憶装置システム２に格納されたＤＢファイル３０とは、チェックポイントで実行される書き込み処理によって内容が一致するため、チェックポイントは、ＤＢのリカバリの基点となる。
【００６５】
ＤＢＭＳ１０は、チェックポイントで実行される書き込み処理が完了すると、トランザクション管理部１１を実行し、チェックポイントの識別情報を含むログを作成してログファイル３２に記録する。
【００６６】
また、トランザクション管理部１１は、ＤＢのリカバリに利用するために、チェックポイントの識別情報を制御ファイル３１又はＤＢファイル３０のヘッダ部に書き込む。
【００６７】
続いて、トランザクション管理部１１は、チェックポイントの識別情報をチェックポイントコマンドに含まれる所定の識別情報として、当該チェックポイントコマンドを記憶装置システム２に送信し、チェックポイントの処理を完了する。
【００６８】
なお、チェックポイントの識別情報は、チェックポイントを一意に識別する情報、及び、ログファイル３２における、チェックポイントの識別情報を含むログの記録位置などが含まれる。また、チェックポイントの識別情報を含むログは、チェックポイントの識別情報の他に、チェックポイント時に動作中のトランザクションの数、及び当該トランザクションの状態など、ＤＢのリカバリを開始するために必要な情報が含まれる。
【００６９】
制御装置２０は、ＤＢＭＳ１０からチェックポイントコマンドを受信すると、チェックポイントの識別情報に対応させたジャーナルを生成し、キャッシュメモリ２１を介してジャーナル記憶装置２６に格納する。
【００７０】
図３は、第１の実施の形態のＤＢのリカバリ処理手順を示すフローチャートである。ＤＢのリカバリ処理は、管理者からリカバリ指示を受信したＤＢＭＳ１０における処理、及びＤＢＭＳ１０からのリストア指示を受信した記憶装置システム２における処理によって構成される。なお、第１の実施の形態では、管理者のオペレーションミスなどによって、ＤＢファイル３０に論理的不整合などの障害が発生した場合のリカバリ処理について説明する。
【００７１】
ＤＢＭＳ１０は、障害発生直前の回復時点を表すトランザクション識別情報又はログ順次番号などを含むＤＢのリカバリ指示を管理者から受信する（Ｓ１００）。
【００７２】
ＤＢＭＳ１０は、リカバリ指示を受信すると、ログ解析部１６を実行する。ログ解析部１６は、ログファイル３２を参照し、受信したトランザクション識別情報又はログ順次番号に対応するログを検索する。
【００７３】
ログ解析部１６は、さらにログファイル３２を解析し、検索されたログよりも前に記録され、かつ、最も新しいチェックポイントの識別情報を含むログを取得する。そして、取得されたログに含まれるチェックポイントの識別情報を、回復時点直前のチェックポイントの識別情報として取得する（Ｓ１０１）。
【００７４】
ＤＢＭＳ１０は、取得した回復時点直前のチェックポイントの識別情報を所定の識別情報としてリストア指示に含め、当該リストア指示を記憶装置システム２に送信する（Ｓ１０２）。リストア指示には、チェックポイントの識別情報の他に、ＤＢファイル３０と制御ファイル３１が格納されたジャーナル取得記憶装置２５の識別情報（例えば論理記憶装置番号など）などが含まれる。
【００７５】
制御装置２０は、ＤＢＭＳ１０が送信したリストア指示を受信すると（Ｓ１１１）、受信したリストア指示に含まれるジャーナル取得記憶装置２５の識別情報を参照する。そして、ジャーナル取得記憶装置２５においてジャーナル取得設定が実行されていること、及び、ジャーナル取得記憶装置２５のジャーナルがジャーナル記憶装置２６に格納されていることを確認する。
【００７６】
続いて、制御装置２０は、リストア処理を実行する（Ｓ１１２）。具体的には、制御装置２０は、まず、ジャーナル記憶装置２６に格納されていたスナップショットデータ３４をジャーナル取得記憶装置２５にコピーする。次に、制御装置２０は、リストア指示に含まれるチェックポイントの識別情報に対応するジャーナルを取得する。そして、当該ジャーナルよりも前に記録されたジャーナルを、ジャーナル取得記憶装置２５にコピーされたスナップショットデータ３４に適用し、チェックポイント時点のデータを復元する。
【００７７】
制御装置２０は、リストア処理が完了すると、その旨をＤＢＭＳ１０に報告する（Ｓ１１３）。
【００７８】
ＤＢＭＳ１０は、記憶装置システム２からリストア処理の完了報告を受信すると（Ｓ１０３）、ログ適用部１７を実行する。ログ適用部１７は、リストアされた制御ファイル３１に記録されたチェックポイントの識別情報を取得する。そして、取得したチェックポイントの識別情報に対応するログから、リカバリ指示に含まれる回復時点に対応するログまでを、リストアされたジャーナル取得記憶装置２５に格納されたＤＢファイル３０に適用し（Ｓ１０４）、処理を終了する。なお、ログの適用は、ＤＢファイル３０のヘッダ部に記録されたチェックポイントの識別情報を利用してもよい。
【００７９】
第１の実施の形態によれば、ログを順次追記されるログファイル３２及びＤＢのリカバリには不必要な一時ファイル３３のジャーナルが作成されないため、ジャーナル記憶装置２６の容量を削減することができる。
【００８０】
また、第１の実施の形態によれば、図３に示した一連のＤＢリカバリ処理によって、トランザクション識別情報及びログ順次番号などで特定される任意の回復時点において、トランザクションの一貫性が確保された状態に、ＤＢを高速に回復させることができる。
【００８１】
（第２の実施の形態）
図４は、第２の実施の形態の情報処理システムのソフトウェア構成図である。第２の実施の形態の情報処理システムのハードウェア構成は、第１の実施の形態と同じである。
【００８２】
ホスト１は、第１の実施の形態と同じ構成である。一方、記憶装置システム２には、第１の実施の形態の構成に加え、制御装置２０に、ジャーナル上書き判定部２００、ジャーナル永続化部２０１、及びジャーナル設定部２０２を構成するプログラム及び管理情報を不揮発性メモリ５３に備える。その他の構成については、第１の実施の形態と同じである。
【００８３】
ジャーナル上書き判定部２００は、処理を実行するプログラム及びジャーナル格納情報２１０によって構成される。ジャーナル上書き判定部２００は、ジャーナル取得記憶装置２５に対する書き込みデータを受信したときに実行される。そして、書き込みデータと同じアドレスが指定される書き込みデータに関するジャーナルがキャッシュメモリ２１に既に存在し、かつ、キャッシュメモリ２１に存在するジャーナルが上書き可能状態であるか否かを判定する。
【００８４】
また、ジャーナル格納情報２１０は、書き込みデータの格納先アドレス、書き込みデータに対応するジャーナルの格納先アドレス、及び、ジャーナルの状態などを格納する。なお、詳細は、図８にて後述する。
【００８５】
ジャーナル永続化部２０１は、ホスト１によって送信されたチェックポイントコマンドを制御装置２０が受信したときに実行される。ジャーナル永続化部２０１は、キャッシュメモリ２１に格納された上書き可能状態のジャーナルを上書き不可状態に変更する。
【００８６】
ジャーナル設定部２０２は、ジャーナル上書き判定部２００及びジャーナル永続化部２０１を有効又は無効に設定する。ジャーナル設定部２０２は、ネットワークアダプタ５２を介して、ホスト１又は管理端末３にジャーナル上書き判定部２００及びジャーナル永続化部２０１を有効又は無効に設定するためのインタフェースを提供する。
【００８７】
以下、第２の実施の形態において、ホスト１のＤＢＭＳ１０及び記憶装置システム２の制御装置２０によって実行される処理の概要を説明する。
【００８８】
制御装置２０は、ジャーナル取得記憶装置２５に書き込み処理要求を受信すると、ジャーナル上書き判定部２００を実行する。ジャーナル上書き判定部２００は、受信した書き込みデータが格納されるアドレスと同じアドレスが指定された書き込みデータに関するジャーナルがキャッシュメモリ２１に存在し、当該ジャーナルが上書き可能状態であるか否かを判定する。
【００８９】
続いて、制御装置２０は、ジャーナル制御部２３を実行し、ジャーナル上書き判定部２００の判定結果に基づいて、生成したジャーナルを上書き可能状態として、キャッシュメモリ２１に存在するジャーナルに上書き、又は、キャッシュメモリ２１の新たな領域に格納する。
【００９０】
また、制御装置２０は、ホスト１からチェックポイントコマンドを受信すると、ジャーナル永続化部２０１を実行し、キャッシュメモリ２１の上書き可能状態のジャーナルを上書き不可状態に変更する。
【００９１】
続いて、制御装置２０は、ジャーナル制御部２３を実行し、チェックポイントコマンドに含まれる所定の識別情報と対応させたジャーナルを生成し、キャッシュメモリ２１に格納する。
【００９２】
制御装置２０は、キャッシュメモリ２１に格納されているジャーナルを、ジャーナル記憶装置２６に所定のタイミングに格納する。
【００９３】
なお、ＤＢＭＳ１０は、ＤＢバッファ１３の容量が超過したときにも記憶装置システム２にデータの書き込みを要求する。このとき、生成されたジャーナルをキャッシュメモリ２１又はジャーナル記憶装置２６に格納しなくても、チェックポイントで作成されたジャーナルを保持していれば、ログによりＤＢのリカバリは可能である。そこで、第２の実施の形態では、チェックポイント以外で作成されたジャーナルをキャッシュメモリ２１上で上書きすることによって、ジャーナル記憶装置２６の容量を削減することができる。
【００９４】
ＤＢＭＳ１０は、リストアされたＤＢファイル３０に、同じくリストアされた制御ファイル３１に記録されたチェックポイントの識別情報を含むログから回復時点に対応するログまでを適用し、回復時点におけるトランザクションの一貫性が確保されたＤＢの状態を回復する。なお、ＤＢのリカバリ処理は、第１の実施の形態と同じ処理である。
【００９５】
以下、第２の実施の形態において、ホスト１のＤＢＭＳ１０及び記憶装置システム２の制御装置２０によって実行される処理の詳細を説明する。
【００９６】
図５は、第２の実施の形態のＤＢＭＳ１０からの書き込み処理要求を受信したときに、制御装置２０によって実行される処理の手順を示すフローチャートである。
【００９７】
制御装置２０は、ＤＢＭＳ１０から書き込み処理要求を受信すると（Ｓ２１０）、書き込み処理要求の対象がジャーナル取得記憶装置２５であるか否かを判定する（Ｓ２１１）。制御装置２０は、書き込み処理要求の対象がジャーナル取得記憶装置２５でなければ（Ｓ２１１の結果が「Ｎ」）、書き込み処理要求に含まれる書き込みデータをキャッシュメモリ２１に格納する（Ｓ２１７）。制御装置２０は、書き込み処理が終了すると、ＤＢＭＳ１０に通知する。
【００９８】
一方、制御装置２０は、書き込み処理要求の対象がジャーナル取得記憶装置２５であった場合には（Ｓ２１１の結果が「Ｙ」）、送信された書き込みデータをキャッシュメモリ２１に格納する（Ｓ２１２）。
【００９９】
次に、制御装置２０は、ジャーナル格納情報２１０を参照し、受信した書き込みデータが格納されるアドレスと同じアドレスが指定された書き込みデータに関するジャーナルがキャッシュメモリ２１に存在しているか否かを判定する（Ｓ２１３）。
【０１００】
制御装置２０は、キャッシュメモリ２１に該当するジャーナルが存在しない場合には（Ｓ２１３の結果が「Ｎ」）、要求された書き込みデータに関するジャーナルを上書き可能状態として作成し、キャッシュメモリ２１の新たな領域に格納する（Ｓ２１６）。制御装置２０は、格納したジャーナルに関する情報をジャーナル格納情報２１０に登録し、処理を終了する。
【０１０１】
制御装置２０は、該当するジャーナルが既にキャッシュメモリ２１に存在する場合には（Ｓ２１３の結果が「Ｙ」）、ジャーナル格納情報２１０の該当するレコードを参照し、上書き可能状態であるか否かを判定する（Ｓ２１４）。制御装置２０は、上書き可能状態でなければ（Ｓ２１４の結果が「Ｎ」）、Ｓ２１６の処理を実行する。
【０１０２】
制御装置２０は、ジャーナルが上書き可能状態であった場合には（Ｓ２１４の結果が「Ｙ」）、ジャーナル格納情報２１０を参照し、キャッシュメモリ２１に格納された該当するジャーナルに、要求された書き込みデータに関するジャーナルを上書き可能状態として上書きし、処理を終了する（Ｓ２１５）。
【０１０３】
図６は、第２の実施の形態の記憶装置システム２がホスト１からチェックポイントコマンドを受信したときに実行される処理の手順を示すフローチャートである。チェックポイントコマンドは、ホスト１のＤＢＭＳ１０からチェックポイントの処理完了時に発行され、処理したチェックポイントの識別情報を所定の識別情報として含む。
【０１０４】
制御装置２０は、まず、ホスト１のＤＢＭＳ１０からチェックポイントコマンドを受信する（Ｓ２２０）。
【０１０５】
そして、制御装置２０は、ジャーナル格納情報２１０を参照及び更新し、キャッシュメモリ２１に格納されている上書き可能状態のジャーナルを上書き不可状態に変更する（Ｓ２２１）。
【０１０６】
次に、制御装置２０は、受信したチェックポイントコマンドに含まれるチェックポイントの識別情報と対応させたジャーナルを上書き不可状態として作成し、キャッシュメモリ２１に格納する（Ｓ２２２）。さらに、制御装置２０は、作成したジャーナルに関する情報をジャーナル格納情報２１０に登録し、処理を終了する。なお、制御装置２０は、図７にて後述するように、キャッシュメモリ上のジャーナルをジャーナル記憶装置２６に非同期に書き込む。
【０１０７】
このようにして、制御装置２０は、チェックポイントコマンドを受信したときにジャーナルを上書き不可状態とすることによって、ジャーナル記憶装置２６にチェックポイントコマンドを受信時のジャーナルを確実に書き込ませることができる。一方、ＤＢバッファ１３の容量が超過して記憶装置システム２に更新が要求された場合などには、ジャーナルを上書き可能状態として格納し、同じアドレスが指定された更新要求のジャーナルを上書きしていくことによって、ジャーナル記憶装置２６の容量を節約することができる。
【０１０８】
図７は、第２の実施の形態のキャッシュメモリ２１にのみ格納されたデータ（以下、「ダーティデータ」）を物理記憶装置５６に書き込む手順を示すフローチャートである。ダーティデータの書き込みは、一定時間間隔、又はキャッシュメモリ２１のデータが一定量以上更新された場合など、所定のタイミングで実行される。
【０１０９】
制御装置２０は、キャッシュメモリ２１から物理記憶装置５６に書き込むダーティデータを、予め設定された条件に基づいて決定する（Ｓ２３０）。例えば、一定期間アクセスされていない、一定量のダーティデータを選択する。
【０１１０】
次に、制御装置２０は、書き込み対象のダーティデータがジャーナル記憶装置２６に格納されるジャーナルであるか否かを判定する（Ｓ２３１）。制御装置２０は、書き込み対象のダーティデータがジャーナル記憶装置２６に格納されるジャーナルでなければ（Ｓ２３１の結果が「Ｎ」）、ダーティデータを格納先の物理記憶装置５６に書き込み、処理を終了する（Ｓ２３４）。
【０１１１】
一方、制御装置２０は、書き込み対象のダーティデータがジャーナルの場合には（Ｓ２３１の結果が「Ｙ」）、ジャーナル格納情報２１０を参照し、当該ジャーナルが上書き可能状態であるか否かを判定する（Ｓ２３２）。制御装置２０は、当該ジャーナルが上書き不可状態の場合には（Ｓ２３２の結果が「Ｎ」）、Ｓ２３４の処理を行い、ジャーナル記憶装置２６を構成する物理記憶装置５６に当該ジャーナルを格納する。
【０１１２】
また、制御装置２０は、当該ジャーナルが上書き可能状態であれば（Ｓ２３２の結果が「Ｙ」）、ジャーナル格納情報２１０を参照及び更新し、上書き可能状態のジャーナルを上書き不可状態に変更する。そして、ジャーナル記憶装置２６を構成する物理記憶装置５６に当該ジャーナルを格納し、本処理を終了する（Ｓ２３３）。
【０１１３】
なお、制御装置２０は、キャッシュメモリ２１の使用可能な領域量に応じて、Ｓ２３３の処理を実行しなくてもよい。すなわち、キャッシュメモリの使用可能な領域が十分であれば、キャッシュメモリ２１上の上書き可能状態のジャーナルを上書き不可状態に変更せず、物理記憶装置５６に書き込まないことによって、ジャーナルをさらに上書きでき、使用されるジャーナル記憶領域２６の容量を削減することができる。
【０１１４】
図８は、第２の実施の形態のジャーナル格納情報２１０の一例を示す図である。ジャーナル格納情報２１０は、データ更新アドレス２４０、ジャーナル格納アドレス２４１、及び上書き可能状態２４２を含む。
【０１１５】
データ更新アドレス２４０は、書き込みデータが格納される位置を示すアドレスが格納される。ジャーナル格納アドレス２４１は、書き込みデータによって作成されるジャーナルが格納される位置を示すアドレスが格納される。上書き可能状態２４２は、ジャーナル格納アドレス２４１で特定されるジャーナルが上書き可能状態であるか否かの情報を格納する。
【０１１６】
図９は、第２の実施の形態の機能設定画面の一例を示す図である。第２の実施の形態の機能設定画面は、ジャーナル上書き判定部２００及びジャーナル永続化部２０１の有効又は無効を設定するユーザインタフェースである。機能設定画面は、制御装置２０のジャーナル設定部２０２によって、管理端末３などに表示される。
【０１１７】
ジャーナル上書き判定部２００及びジャーナル永続化部２０１は、機能設定画面のチェックボックス２５１又はチェックボックス２５０を操作することによって有効又は無効が設定される。
【０１１８】
管理者は、特定のジャーナル取得記憶装置２５に対し、ジャーナル上書き判定部２００及びジャーナル永続化部２０１を有効に設定することができる。具体的には、チェックボックス２５１を操作し、設定対象のジャーナル取得記憶装置２５の識別番号を文字入力領域２５３に入力する。そして、「ＯＫ」ボタン２５４を操作することによって、記憶装置システム２に設定が反映される。一方、チェックボックス２５１を選択すれば、ジャーナル上書き判定部２００及びジャーナル永続化部２０１を無効に設定できる。
【０１１９】
なお、ジャーナル設定部２０２は、ジャーナル上書き判定部２００及びジャーナル永続化部２０１を有効と設定した場合に、表示部２５２に、機能又は効果を示すメッセージを表示してもよい。例えば、図９に示すように、トランザクション一貫性のあるＤＢのリカバリを可能としながらジャーナル記憶装置２６の容量を削減できる旨を表示することができる。
【０１２０】
第２の実施の形態によれば、同じアドレスを指定した書き込み処理が複数要求されるとき、ジャーナルをキャッシュメモリ２１上で上書きすることによって、ジャーナルを記録するために必要な記憶容量を削減することができる。特に、ジャーナリングの対象となる物理記憶装置５６に格納されるデータを連続して更新する場合に有効である。
【０１２１】
さらに、第２の実施の形態によれば、物理記憶装置５６に格納されたジャーナルを上書きするのではなく、キャッシュメモリ２１上でジャーナルを上書きするため、ジャーナルの上書き処理に関し、記憶装置システム２に対する負荷を小さくすることができる。
【０１２２】
（第３の実施の形態）
図１０は、第３の実施の形態の情報処理システムのソフトウェア構成図である。第３の実施の形態の情報処理システムのハードウェア構成は、第１の実施の形態と同じである。
【０１２３】
ホスト１は、第１の実施の形態と同じ構成である。一方、記憶装置システム２には、第２の実施の形態の構成に加え、制御装置２０に、ジャーナル永続化判定部３００、及びチェックポイント管理部３０１を構成するプログラム及び管理情報を不揮発性メモリ５３に備える。その他の構成については、第２の実施の形態と同じである。
【０１２４】
ジャーナル永続化判定部３００は、ホスト１からチェックポイントコマンドを制御装置２０が受信したときに実行される。ジャーナル永続化判定部３００は、キャッシュメモリ２１に格納された上書き可能状態のジャーナルの量が所定の閾値以上であり、かつ、ジャーナル記憶装置２６の空き容量が所定の閾値以上であるか否かを判定する。
【０１２５】
チェックポイント管理部３０１は、処理を実行するプログラム及びチェックポイント管理情報３１０によって構成される。チェックポイント管理部３０１は、ジャーナル永続化判定部３００の判定結果に基づいて、受信したチェックポイントを有効又は無効として管理する。
【０１２６】
チェックポイント管理情報３１０は、ジャーナルと対応付けられたチェックポイントの情報を格納する。なお、詳細は、図１３にて後述する。
【０１２７】
また、制御装置２０は、チェックポイント管理部３０１を構成するプログラムを実行することによって、ネットワークアダプタ５２を介して、ホスト１又は管理端末３にチェックポイント管理情報３１０に登録された情報を参照するインタフェースを提供する。なお、インタフェースの詳細は、図１４にて後述する。
【０１２８】
ジャーナル設定部２０２は、第２の実施の形態と同じく、ジャーナル上書き判定部２００及びジャーナル永続化部２０１を有効又は無効と設定する。第３の実施の形態では、ジャーナル設定部２０２は、ジャーナル永続化判定部３００の判定に使用する、キャッシュメモリ２１に格納された上書き可能状態のジャーナルの量の閾値、及び、ジャーナル記憶装置２６の空き容量の閾値を設定することも可能である。さらに、ジャーナル設定部２０２は、ジャーナル永続化判定部３００及びチェックポイント管理部３０１を有効又は無効に設定する。
【０１２９】
ジャーナル設定部２０２は、ネットワークアダプタ５２を介して、ホスト１又は管理端末３に、ジャーナル永続化判定部３００の判定に必要な閾値などの項目を設定するインタフェース、及びジャーナル永続化判定部３００及びチェックポイント管理部３０１を有効又は無効に設定するインタフェースを提供する。なお、インタフェースの詳細は、図１５にて後述する。
【０１３０】
以下、第３の実施の形態において、ホスト１のＤＢＭＳ１０及び記憶装置システム２の制御装置２０によって実行される処理の概要を説明する。
【０１３１】
制御装置２０は、ホスト１からチェックポイントコマンドを受信すると、ジャーナル永続化判定部３００を実行する。ジャーナル永続化判定部３００は、キャッシュメモリ２１に格納された上書き可能状態のジャーナルの量及びジャーナル記憶装置２６の空き容量に基づいて、チェックポイントコマンドの受信時点において、ジャーナルを永続化するか否かを判定する。制御装置２０は、永続化しないと判定した場合には、チェックポイント管理部３０１を実行し、受信したチェックポイントを無効として管理する。
【０１３２】
一方、制御装置２０は、永続化すると判定した場合には、ジャーナル永続化部２０１を実行し、キャッシュメモリ２１の上書き可能状態のジャーナルを上書き不可状態に変更する。
【０１３３】
続いて、制御装置２０は、ジャーナル制御部２３を実行し、チェックポイントコマンドに含まれるチェックポイントの識別情報と対応させたジャーナルを生成し、上書き不可状態として、キャッシュメモリ２１に格納する。最後に、制御装置２０は、チェックポイント管理部３０１を実行し、受信したチェックポイントを有効として管理する。
【０１３４】
なお、制御装置２０は、キャッシュメモリ２１に格納されているジャーナルを、ジャーナル記憶装置２６に所定のタイミングに格納する。
【０１３５】
ＤＢＭＳ１０は、回復時点を含むＤＢのリカバリ指示を管理者から受信すると、ログ解析部１６を実行し、ログファイル３２を解析することによって、回復時点直前のチェックポイントの識別情報を取得する。そして、取得したチェックポイントが有効であるか否かを記憶装置システム２に問い合わせる。
【０１３６】
制御装置２０は、ＤＢＭＳ１０からチェックポイントの識別情報の問合せを受信すると、チェックポイント管理部３０１を実行する。チェックポイント管理部３０１は、受信したチェックポイントが有効である場合には、受信したチェックポイントの識別情報は有効として応答する。一方、受信したチェックポイントが無効である場合には、受信したチェックポイントの識別情報を登録した時点よりも前であって、かつ、最も新しい有効なチェックポイントの識別情報を、ＤＢＭＳ１０に応答する。
【０１３７】
ＤＢＭＳ１０は、記憶装置システム２から有効なチェックポイントの識別情報を受信すると、受信したチェックポイントの識別情報を含むリストア指示を記憶装置システム２に送信する。そして、記憶装置システム２は、受信したチェックポイントの識別情報に基づいて、ジャーナルを適用し、ＤＢファイル３０をリストアする。その後、ＤＢＭＳ１０は、ログ適用部１７によって、リストアされたＤＢファイル３０に回復時点までのログを適用し、回復時点のＤＢを回復する。
【０１３８】
以下、第３の実施の形態において、ホスト１のＤＢＭＳ１０及び記憶装置システム２の制御装置２０によって実行される処理の詳細を説明する。
【０１３９】
図１１は、第３の実施の形態の記憶装置システム２がホスト１からチェックポイントコマンドを受信したときに実行される処理の手順を示すフローチャートである。チェックポイントコマンドは、ホスト１のＤＢＭＳ１０からチェックポイントの処理完了時に発行され、処理したチェックポイントの識別情報を所定の識別情報として含む。
【０１４０】
制御装置２０は、まず、ホスト１のＤＢＭＳ１０からチェックポイントコマンドを受信する（Ｓ３１０）。
【０１４１】
制御装置２０は、ジャーナル格納情報２１０を参照し、キャッシュメモリ２１に格納された上書き可能状態のジャーナルの量が所定の閾値以上であるか否かを判定する（Ｓ３１１）。
【０１４２】
制御装置２０は、該当するジャーナルの量が所定の閾値以上でなければ（Ｓ３１１の結果が「Ｎ」）、チェックポイント管理情報３１０を参照及び更新し、受信したチェックポイントを無効なチェックポイントとして管理し（Ｓ３１６）、処理を終了する。
【０１４３】
一方、制御装置２０は、キャッシュメモリ２１にある上書き可能状態のジャーナルの量が所定の閾値以上であった場合には（Ｓ３１１の結果が「Ｙ」）、ジャーナル記憶装置２６の空き容量が所定の閾値以上であるかを否か判定する（Ｓ３１２）。制御装置２０は、ジャーナル記憶装置２６の空き容量が所定の閾値以上でなければ（Ｓ３１２の結果が「Ｎ」）、受信したチェックポイントを無効なチェックポイントとして管理し（Ｓ３１６）、処理を終了する。
【０１４４】
制御装置２０は、ジャーナル記憶装置２６の空き容量が所定の閾値以上であった場合には（Ｓ３１２の結果が「Ｙ」）、ジャーナル格納情報２１０を参照及び更新し、キャッシュメモリ２１に格納されている上書き可能状態のジャーナルを上書き不可状態とする（Ｓ３１３）。
【０１４５】
次に、制御装置２０は、受信したチェックポイントコマンドに含まれるチェックポイントの識別情報に対応させ、上書き不可状態としてジャーナルを作成し、キャッシュメモリ２１に格納する（Ｓ３１４）。制御装置２０は、作成したジャーナルの情報をジャーナル格納情報２１０に登録する。
【０１４６】
続いて、制御装置２０は、チェックポイント管理情報３１０を参照及び更新し、受信したチェックポイントを有効なチェックポイントとして管理し（Ｓ３１５）、処理を終了する。
【０１４７】
なお、制御装置２０は、第２の実施の形態と同じく、キャッシュメモリ上のジャーナルをジャーナル記憶装置２６に非同期に書き込む。
【０１４８】
図１２は、第３の実施の形態のＤＢのリカバリ処理手順を示すフローチャートである。ＤＢのリカバリ処理は、管理者からリカバリ指示を受信したＤＢＭＳ１０における処理、及びＤＢＭＳ１０からチェックポイントの識別情報に関する問合せ及びリストア指示を受信した記憶装置システム２による処理によって構成される。
【０１４９】
ＤＢＭＳ１０は、障害発生直前の回復時点を表すトランザクション識別情報又はログ順次番号などを含むＤＢのリカバリ指示を管理者から受信する（Ｓ３２０）。
【０１５０】
ＤＢＭＳ１０は、リカバリ指示を受信すると、ログ解析部１６を実行する。ログ解析部１６は、現時点までのすべてのログが記録されたログファイル３２を参照し、受信したトランザクション識別情報又はログ順次番号に対応するログを検索する。
【０１５１】
ログ解析部１６は、さらにログファイル３２を解析し、検索されたログよりも前に記録され、かつ、最も新しいチェックポイントの識別情報を含むログを取得する。そして、取得されたログに含まれるチェックポイントの識別情報を、回復時点直前のチェックポイントの識別情報として取得する（Ｓ３２１）。
【０１５２】
ＤＢＭＳ１０は、取得したチェックポイントの識別情報に基づいて、有効なチェックポイントを記憶装置システム２に問い合わせる（Ｓ３２２）。
【０１５３】
制御装置２０は、ＤＢＭＳ１０からチェックポイントの識別情報の問合せを受信すると（Ｓ３３０）、チェックポイント管理情報３１０を参照し、受信したチェックポイントの識別情報が管理されていることを確認する。そして、受信したチェックポイントの識別情報によって特定されるチェックポイントが有効であるか否かを判定する（Ｓ３３１）。
【０１５４】
制御装置２０は、当該チェックポイントが有効である場合には（Ｓ３３１の結果が「Ｙ」）、チェックポイントが有効である旨をＤＢＭＳ１０に応答する（Ｓ３３４）。
【０１５５】
一方、制御装置２０は、当該チェックポイントが無効であった場合には（Ｓ３３１の結果が「Ｎ」）、チェックポイント管理情報３１０を参照し、直近の有効なチェックポイントの識別情報を取得する（Ｓ３３２）。具体的には、受信したチェックポイントが実行されたＤＢと同じＤＢで実行された他のチェックポイントの識別情報の中から、受信したチェックポイントの識別情報を登録した時点より前であり、かつ、直近の有効なチェックポイントの識別情報を取得する。そして、制御装置２０は、取得した有効なチェックポイントの識別情報をＤＢＭＳ１０に応答する（Ｓ３３３）。
【０１５６】
ＤＢＭＳ１０は、記憶装置システム２から有効なチェックポイントの識別情報を受信すると（Ｓ３２３）、取得したチェックポイントの識別情報を所定の識別情報としてリストア指示に含め、当該リストア指示を記憶装置システム２に送信する（Ｓ３２４）。
【０１５７】
制御装置２０は、ＤＢＭＳ１０が送信したリストア指示を受信すると（Ｓ３３５）、受信したリストア指示に含まれるジャーナル取得記憶装置２５の識別情報を参照する。そして、ジャーナル取得記憶装置２５においてジャーナル取得設定が実行されていること、及び、ジャーナル取得記憶装置２５のジャーナルがジャーナル記憶装置２６に格納されていることを確認する。また、制御装置２０は、チェックポイント管理情報３１０を参照し、受信したリストア指示で指定されたチェックポイントが有効であることを確認する（Ｓ３３６）。
【０１５８】
続いて、制御装置２０は、リストア処理を実行する（Ｓ３３７）。具体的には、制御装置２０は、リストア指示に含まれる所定の識別情報であるチェックポイントの識別情報に対応するジャーナルを取得する。そして、当該ジャーナルよりも前に記録されたジャーナルを、ジャーナル取得記憶装置２５にコピーされたスナップショットデータ３４に適用し、チェックポイント時点のデータを復元する。さらに、制御装置２０は、リストア処理の完了をＤＢＭＳ１０に報告する（Ｓ３３８）。
【０１５９】
ＤＢＭＳ１０は、記憶装置システム２からリストア処理の完了報告を受信すると（Ｓ３２５）、ログ適用部１７を実行する。ログ適用部１７は、リストアされた制御ファイル３１に記録されたチェックポイントの識別情報を取得する。そして、取得したチェックポイントの識別情報に対応するログから、リカバリ指示に含まれる回復時点に対応するログまでを、リストアされたジャーナル取得記憶装置２５に格納されたＤＢファイル３０に適用し（Ｓ３２６）、処理を終了する。
【０１６０】
図１３は、第３の実施の形態のチェックポイント管理情報３１０の一例を示す図である。チェックポイント管理情報３１０は、チェックポイント識別情報３４０、ジャーナル格納アドレス３４１、時間３４２及びジャーナル永続化３４３を含む。
【０１６１】
チェックポイント識別情報３４０は、管理対象のチェックポイントの識別子を格納する。ジャーナル格納アドレス３４１は、管理対象のチェックポイントに対応するジャーナルが格納されたアドレスを格納する。
【０１６２】
時間３４２は、管理対象のチェックポイントに対応するジャーナルが作成された時刻を格納する。ジャーナル永続化３４３は、管理対象のチェックポイントが有効又は無効であるかを格納する。
【０１６３】
図１４は、第３の実施の形態のチェックポイント管理情報表示画面の一例を示す図である。チェックポイント管理情報表示画面は、チェックポイント管理情報３１０に登録されたチェックポイントの内容を問い合わせるために、ホスト１又は管理端末３などに表示される画面（ユーザインタフェース）である。チェックポイント管理情報表示画面は、制御装置２０がチェックポイント管理部３０１を構成するプログラムを実行することによって提供される。
【０１６４】
チェックポイント管理情報表示画面は、チェックポイント管理情報３１０に格納される情報と概ね同じである。具体的には、チェックポイント識別情報３５０、チェックポイント実行論理記憶装置番号３５１、チェックポイント識別情報格納論理記憶装置番号３５２、時間３５３、及びチェックポイント状態３５４が表示される。
【０１６５】
チェックポイント識別情報３５０は、チェックポイント管理情報３１０に登録されたチェックポイントの識別情報である。チェックポイント実行論理記憶装置番号３５１は、チェックポイントを実行されたＤＢが格納される論理記憶装置番号である。
【０１６６】
チェックポイント識別情報格納論理記憶装置番号３５２は、チェックポイントの識別情報に対応するジャーナルが格納される論理記憶装置番号である。時間３５３は、チェックポイントの識別情報に対応するジャーナルが作成された時間である。チェックポイント状態３５４は、チェックポイントが有効又は無効であるかを示す情報である。
【０１６７】
図１５は、第３の実施の形態の機能設定画面の一例を示す図である。第３の実施の形態の機能設定画面は、ジャーナル永続化判定部３００及びチェックポイント管理部３０１の有効又は無効を設定するユーザインタフェースである。機能設定画面は、制御装置２０のジャーナル設定部２０２によって、ホスト１又は管理端末３などに表示される。機能設定画面は、第２の実施の形態の図９に示した機能設定画面と同じく、ジャーナル上書き判定部２００及びジャーナル永続化部２０１の有効又は無効を設定することも可能である。
【０１６８】
ジャーナル永続化判定部３００とチェックポイント管理部３０１、及び、ジャーナル上書き判定部２００とジャーナル永続化部２０１は、チェックボックス３６２、チェックボックス３６１、及びチェックボックス３６０を選択することによって有効又は無効が設定される。このとき、ジャーナル取得記憶装置２５の識別番号を文字入力領域３６４に入力することによって、設定対象のジャーナル取得記憶装置２５が指定される。そして、「ＯＫ」ボタン３６７を操作することによって、記憶装置システム２に設定が反映される。
【０１６９】
管理者は、チェックボックス３６２を選択すると、ジャーナル永続化判定部３００、チェックポイント管理部３０１、ジャーナル上書き判定部２００、及び、ジャーナル永続化部２０１が有効と設定することができる。このとき、ジャーナル永続化判定部３００の処理に必要な、キャッシュメモリ２１に格納された上書き可能状態のジャーナルの量の閾値及びジャーナル記憶装置２６の空き容量の閾値を、文字入力領域３６５及び３６６に入力して指定することが可能である。
【０１７０】
また、管理者は、チェックボックス３６１を選択すると、ジャーナル永続化判定部３００及びチェックポイント管理部３０１を無効、ジャーナル上書き判定部２００及びジャーナル永続化部２０１を有効と設定することができる。
【０１７１】
さらに、管理者は、チェックボックス３６０を選択すれば、ジャーナル永続化判定部３００、チェックポイント管理部３０１、ジャーナル上書き判定部２００、及びジャーナル永続化部２０１を無効と設定することができる。
【０１７２】
なお、機能設定画面は、ジャーナル永続化判定部３００及びチェックポイント管理部３０１を有効と設定したとき、トランザクション一貫性のあるＤＢのリカバリを可能としつつジャーナル記憶装置２６の容量を削減可能であるが、ＤＢリカバリの処理性能に影響が生じる可能性がある旨を表示部３６３に表示してもよい。
【０１７３】
第３の実施の形態によれば、第２の実施の形態と同じく、同じアドレスが指定された書き込みデータのジャーナルをキャッシュメモリ２１上で上書きすることによって、ジャーナル記憶装置２６の容量を削減することができる。
【０１７４】
また、第３の実施の形態によれば、第２の実施の形態の効果に加え、キャッシュメモリ２１の状態及びジャーナル記憶装置２６の空き容量に応じてチェックポイントコマンドを無効とし、ジャーナルを更に上書きする。したがって、ＤＢファイル３０内の同じデータを連続更新する場合などに、特に、ジャーナル記憶装置２６の容量を大幅に削減することが可能である。
【０１７５】
さらに、第３の実施の形態によれば、ログファイル３２は、ジャーナルを取得しない記憶装置２４に格納されるため、リストア処理の実行の有無に関わらず、ＤＢファイル３０の変更履歴が全て記録される。よって、回復時点に対して最新のチェックポイント処理時点のＤＢファイル３０にリストアされなくても、ＤＢＭＳ１０は、リストアされたＤＢファイル３０に任意の回復時点までの必要なログを適用することができる。
【０１７６】
そこで、第３の実施の形態では、キャッシュメモリ２１に格納された上書き可能状態のジャーナルの量及びジャーナル記憶装置２６の空き容量に基づいて、キャッシュメモリ２１に格納されているジャーナルを、物理記憶装置５６に書き込むか否かを判定する。このように、ジャーナルの物理記憶装置５６に対する書き込み処理の実行を間引くことによって、ジャーナル記憶装置２６の容量を第２の実施の形態よりもさらに削減することができる。
【０１７７】
以上のように、本発明は、データベースの高速なリカバリのために、記憶装置システム内で生成するジャーナルを用いた高速なリストアを可能としながらも、ジャーナルを記録するための記憶容量の削減が望まれる情報処理システムに適用することができる。特に、大量のログが出力され、データベース内の同じデータが連続して更新されるＯＬＴＰ向けの情報処理システムに好適である。
【０１７８】
なお、特許請求の範囲に記載した以外の本発明の観点の代表的なものとして、次のものがあげられる。
【０１７９】
（１）記憶装置システムに接続される計算機で実行されるデータベース管理システムであって、前記記憶装置システムは、前記計算機から送信されるアクセス要求を処理する制御部と、第１の記憶装置と、第２の記憶装置と、第３の記憶装置と、を備え、前記第１の記憶装置は、前記データベース管理システムによってアクセスされるデータを格納するデータベースファイルと、前記データベース管理システムの制御情報を含む制御ファイルと、を格納し、前記第２の記憶装置は、前記第１の記憶装置に格納されたデータの更新履歴であるジャーナルを格納し、前記第３の記憶装置は、前記データベース管理システムによって生成され、前記データベースファイルの更新履歴であるログを記録するログファイルを格納し、前記制御部は、前記第１の記憶装置に格納されたデータの更新指示を受信すると、前記ジャーナルを生成して前記第２の記憶装置に記録し、前記データベースファイルの回復の基点となるチェックポイントが生成されたことが前記計算機によって通知されたとき、前記生成されたチェックポイントの識別情報と対応させたジャーナルを生成して前記第２の記憶装置に記録し、前記計算機から前記チェックポイントの識別情報を含むリストア指示を受信すると、前記受信したリストア指示に含まれるチェックポイントの識別情報に対応するジャーナルより前に前記第２の記憶装置に記録されたジャーナルを用いて、前記データベースファイルと前記制御ファイルを含む前記第１の記憶装置に格納されたデータを復元し、前記データベース管理システムは、前記チェックポイントが生成されたとき、前記生成されたチェックポイントの識別情報と対応付けて前記ログファイルにログを記録し、前記生成されたチェックポイントの識別情報を前記制御ファイルに記録し、前記生成されたチェックポイントの識別情報とともに前記チェックポイントが生成されたことを前記記憶装置システムに通知する管理部と、回復時点を含むリカバリ指示を受け付けたとき、前記リカバリ指示に含まれる回復時点に対応するログを前記ログファイルから検索し、前記検索された回復時点に対応するログが記録された時点よりも前に記録され、かつ、最も新しいチェックポイントの識別情報を含むログを取得し、前記取得されたログに含まれるチェックポイントの識別情報を前記リストア指示とともに前記記憶装置システムに送信するログ解析部と、前記記憶装置システムによって復元された制御ファイルに記録されたチェックポイントの識別情報に対応するログから前記回復時点に対応するログまでを、前記記憶装置システムによって復元されたデータベースファイルに適用するログ適用部と、を備えることを特徴とするデータベース管理システム。
【０１８０】
（２）前記管理部は、前記チェックポイントが生成されたとき、前記生成されたチェックポイントの識別情報を前記データベースファイルのヘッダ部に記録し、前記ログ適用部は、前記記憶装置システムによって復元されたデータベースファイルのヘッダ部に記録されたチェックポイントの識別情報を含むログから前記回復時点に対応するログまでを、前記記憶装置システムによって復元されたデータベースファイルに適用する、ことを特徴とする（１）に記載のデータベース管理システム。
【０１８１】
（３）前記データベース管理システムは、処理に必要なデータを一時的に保存する一時ファイルを、ジャーナルの取得対象でなく、かつ、前記第１の記憶装置以外の記憶装置に格納する、ことを特徴とする（１）に記載のデータベース管理システム。
【０１８２】
（４）記憶装置システムに接続される計算機で実行されるデータベース管理システムにおけるデータ回復方法であって、前記記憶装置システムは、前記計算機から送信されるアクセス要求を処理する制御部と、前記データベース管理システムによってアクセスされるデータを格納するデータベースファイル、及び前記データベース管理システムの制御情報を含む制御ファイル、を格納する第１の記憶装置と、前記第１の記憶装置に格納されたデータの更新履歴であるジャーナルを格納する第２の記憶装置と、前記データベース管理システムによって生成され、前記データベースファイルの更新履歴であるログを記録するログファイルを格納する第３の記憶装置と、を備え、前記制御部は、前記第１の記憶装置に格納されたデータの更新指示を受信すると、前記ジャーナルを生成して前記第２の記憶装置に記録し、前記データベース管理システムは、前記データベースファイルの回復の基点となるチェックポイントが生成されたとき、前記ログファイルに前記生成されたチェックポイントの識別情報と対応付けてログを記録し、前記生成されたチェックポイントの識別情報を前記制御ファイルに記録し、前記生成されたチェックポイントの識別情報とともに前記チェックポイントが生成されたことを前記記憶装置システムに通知し、前記制御部は、前記チェックポイントが生成されたことを前記計算機によって通知されたとき、前記生成されたチェックポイントの識別情報と対応させたジャーナルを生成して前記第２の記憶装置に記録し、前記データベース管理システムは、回復時点を含むリカバリ指示を受け付けたとき、前記リカバリ指示に含まれる回復時点に対応するログを前記ログファイルから検索し、前記検索された回復時点に対応するログが記録された時点よりも前に記録され、かつ、最も新しいチェックポイントの識別情報を含むログを取得し、前記取得したログに含まれるチェックポイントの識別情報とともにリストア指示を前記記憶装置システムに送信し、前記制御部は、前記計算機から前記チェックポイントの識別情報を含むリストア指示を受信したとき、前記受信したリストア指示に含まれるチェックポイントの識別情報に対応するジャーナルより前に前記第２の記憶装置に記録されたジャーナルを用いて、前記データベースファイルと前記制御ファイルを含む前記第１の記憶装置に格納されたデータを復元し、前記データベース管理システムは、前記記憶装置システムによって復元された制御ファイルに記録されたチェックポイントの識別情報を含むログから前記回復時点に対応するログまでを、前記記憶装置システムによって復元されたデータベースファイルに適用する、ことを特徴とするデータ回復方法。
【０１８３】
（５）データベース管理システムを実行する計算機と、前記計算機に接続される記憶装置システムと、を有する情報処理システムであって、前記記憶装置システムは、前記計算機から送信されるアクセス要求を処理する制御部と、第１の記憶装置と、第２の記憶装置と、第３の記憶装置と、を備え、前記第１の記憶装置は、前記データベース管理システムによってアクセスされるデータを格納するデータベースファイルと、前記データベース管理システムの制御情報を含む制御ファイルと、を格納し、前記第２の記憶装置は、前記第１の記憶装置に格納されたデータの更新履歴であるジャーナルを格納し、前記第３の記憶装置は、前記データベース管理システムによって生成され、前記データベースファイルの更新履歴であるログを記録するログファイルを格納し、前記制御部は、前記記憶装置システムと前記計算機との間で送受信されるデータ及び前記ジャーナルが、一時的に格納されるキャッシュメモリを備え、前記第１の記憶装置に格納されたデータに対する更新指示を受信したとき、前記ジャーナルを上書き可能状態として新たに生成するジャーナル制御部と、前記第１の記憶装置に格納されたデータに対する更新指示を受信したとき、前記更新対象のデータが格納されたアドレスと同じアドレスのデータが更新されることによって生成された同アドレスに対応するジャーナルが、前記キャッシュメモリに既に存在し、かつ、上書き可能状態であるか否かを判定するジャーナル上書き判定部と、前記計算機から、前記データベースファイルの回復の基点となるチェックポイントが生成されたことが前記チェックポイントの識別情報とともに通知されたとき、前記キャッシュメモリに格納された上書き可能状態のジャーナルを、上書き不可状態に変更するジャーナル永続化部と、を備え、所定のタイミングに前記キャッシュメモリに格納されているデータを前記第１の記憶装置又は前記第２の記憶装置又は第３の記憶装置に反映させるための書き込みを行い、前記ジャーナル制御部は、前記第１の記憶装置に格納されたデータに対する更新指示を受信したとき、前記同アドレスに対応するジャーナルが、前記キャッシュメモリに既に存在し、かつ、上書き可能状態である場合には、前記新たに生成されたジャーナルを前記同アドレスに対応するジャーナルに上書きし、前記同アドレスに対応するジャーナルが、前記キャッシュメモリに存在しない場合、又は、上書き不可状態である場合には、前記新たに生成されたジャーナルを前記キャッシュメモリの新たな領域に格納し、前記計算機から前記チェックポイントが生成されたことを通知されたとき、前記ジャーナル永続化部による処理の後、前記生成されたチェックポイントの識別情報と対応させた上書き不可状態のジャーナルを生成して前記キャッシュメモリに格納し、前記計算機から前記チェックポイントの識別情報を含むリストア指示を受信したとき、前記受信したリストア指示に含まれるチェックポイントの識別情報に対応するジャーナルより前に前記第２の記憶装置に記録されたジャーナルを用いて、前記データベースファイルと前記制御ファイルを含む前記第１の記憶装置に格納されたデータを復元し、前記データベース管理システムは、前記チェックポイントが生成されたとき、前記生成されたチェックポイントの識別情報と対応付けて前記ログファイルにログを記録し、前記生成されたチェックポイントの識別情報を前記制御ファイルに記録し、前記チェックポイントが生成されたことを前記チェックポイントの識別情報とともに前記記憶装置システムに通知する管理部と、回復時点を含むリカバリ指示を受け付けたとき、前記リカバリ指示に含まれる回復時点に対応するログを前記ログファイルから検索し、前記検索された回復時点に対応するログが記録された時点よりも前に記録され、かつ、最も新しいチェックポイントの識別情報を含むログを取得し、前記取得されたログに含まれるチェックポイントの識別情報を前記リストア指示とともに前記記憶装置システムに送信するログ解析部と、前記記憶装置システムによって復元された制御ファイルに記録されたチェックポイントの識別情報に対応するログから前記回復時点に対応するログまでを、前記記憶装置システムによって復元されたデータベースファイルに適用するログ適用部と、を備えることを特徴とする情報処理システム。
【０１８４】
（６）前記制御部は、前記計算機から前記チェックポイントが生成されたことを通知されたとき、前記キャッシュメモリに格納された上書き可能状態のジャーナルの量が所定の閾値以上であって、かつ、前記第２の記憶装置の空き容量が所定の閾値以上であるか否か、を判定するジャーナル永続化判定部と、前記ジャーナル永続化判定部による判定結果に基づいて、前記チェックポイント生成の通知を有効又は無効に設定するチェックポイント管理部と、をさらに備え、前記ジャーナル永続化部は、前記ジャーナル永続化判定部による判定結果に基づいて、前記キャッシュメモリに格納された上書き可能状態のジャーナルを上書き不可状態に変更し、前記ジャーナル制御部は、前記計算機から前記リストア指示を受信したとき、前記受信したリストア指示に含まれるチェックポイントの識別情報によって特定されるチェックポイント生成の通知が有効か否かを判定し、前記特定されたチェックポイント生成の通知が有効の場合には、前記受信したリストア指示に含まれるチェックポイントの識別情報に対応するジャーナルより前に前記第２の記憶装置に記録されたジャーナルを用いて、前記第１の記憶装置に格納されたデータを復元し、前記特定されたチェックポイント生成の通知が無効の場合には、前記特定されたチェックポイント生成の通知よりも前に受信し、かつ、最も新しい有効なチェックポイント生成の通知に対応するチェックポイントの識別情報を取得し、前記取得されたチェックポイントの識別情報に対応するジャーナルより前に前記第２の記憶装置に記録されたジャーナルを用いて、前記第１の記憶装置に格納されたデータを復元する、ことを特徴とする（５）に記載の情報処理システム。
【符号の説明】
【０１８５】
１  ホスト
２  記憶装置システム
３  管理端末
１０  ＤＢＭＳ
１１  トランザクション管理部
１６  ログ解析部
１７  ログ適用部
２０  制御装置
２１  キャッシュメモリ
２３  ジャーナル制御部
２４  記憶装置
２５  ジャーナル取得記憶装置
２６  ジャーナル記憶装置
３０  ＤＢファイル
３１  制御ファイル
３２  ログファイル
３３  一時ファイル
２００  ジャーナル上書き判定部
２０１  ジャーナル永続化部
２０２  ジャーナル設定部
３００  ジャーナル永続化判定部
３０１  チェックポイント管理部
【図１】
0005291166.tif 000002
【図２】
0005291166.tif 000003
【図３】
0005291166.tif 000004
【図４】
0005291166.tif 000005
【図５】
0005291166.tif 000006
【図６】
0005291166.tif 000007
【図７】
0005291166.tif 000008
【図８】
0005291166.tif 000009
【図９】
0005291166.tif 000010
【図１０】
0005291166.tif 000011
【図１１】
0005291166.tif 000012
【図１２】
0005291166.tif 000013
【図１３】
0005291166.tif 000014
【図１４】
0005291166.tif 000015
【図１５】
0005291166.tif 000016