(57)【要約】【課題】従来より確実にユーザの所望する時点の状態にデータを復元する。【解決手段】コンピュータ１に、ファイルの変更の指令を検知する指令検知部１０２と、指令が検知されるごとに、その指令に係るファイルを、その指令に基づいて変更される前にバックアップファイルとしてバックアップするファイル複製部１０４と、ファイルとバックアップファイルの保存場所およびバックアップ日時との対応関係を記憶するバックアップテーブル８３と、ユーザがファイルをいずれの日時の構成に復元したいのかを示す指定情報を入力する時刻等指定受付部２０１と、入力された指定情報に示される日時におけるファイルの構成を、バックアップテーブル８３に基づいて判別するファイル構成判別部２０２と、ファイルの復元を、ファイル構成判別部２０２による判別結果およびそのファイルに対応するいずれかのバックアップファイルに基づいて行う、リカバリ実行部２０５と、設ける。【選択図】図５
2005293272.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体に記憶されているデータを管理するデータ管理システムであって、
前記データを変更すべき旨の指令を検知する、指令検知手段と、
前記指令が検知されるごとに、当該指令に係る前記データを、当該指令に基づいて変更される前にバックアップデータとしてバックアップするバックアップ手段と、
前記データと当該データの前記バックアップデータのバックアップ場所およびバックアップされた日時との対応関係を記憶する対応関係記憶手段と、
ユーザが前記データをいずれの日時の構成に復元したいのかを示す指定情報を入力する指定入力手段と、
入力された前記指定情報に示される日時における前記データの構成を、当該データの前記対応関係に基づいて判別する判別手段と、
前記データを、前記判別手段による判別結果および当該データに対応するいずれかの前記バックアップデータに基づいて復元する、データ復元手段と、
を有することを特徴とするデータ管理システム。
【請求項２】
記憶媒体に記憶されているデータを管理するデータ管理方法であって、
前記データを変更すべき旨の指令を検知するステップと、
前記指令が検知されるごとに、当該指令に係る前記データを、当該指令に基づいて変更される前にバックアップデータとしてバックアップするステップと、
前記データと当該データの前記バックアップデータのバックアップ場所およびバックアップされた日時との対応関係を対応関係記憶手段に記憶させるステップと、
ユーザが前記データをいずれの日時の構成に復元したいのかを示す指定情報を入力するステップと、
入力された前記指定情報に示される日時における前記データの構成を、当該データの前記対応関係に基づいて判別するステップと、
前記データを、当該データの構成の判別の結果および当該データに対応するいずれかの前記バックアップデータに基づいて復元する、ステップと、
を有することを特徴とするデータ管理方法。
【請求項３】
記憶媒体に記憶されているデータを管理するコンピュータに用いられるデータ管理プログラムであって、
前記データを変更すべき旨の指令を検知する、変更指令検知処理と、
前記変更すべき旨の指令が検知されるごとに、当該指令に係る前記データを、当該指令に基づいて変更される前にバックアップデータとしてバックアップするバックアップ処理と、
前記データと当該データの前記バックアップデータのバックアップ場所およびバックアップされた日時との対応関係を対応関係記憶手段に記憶させる対応関係記憶処理と、
を前記コンピュータに実行させることを特徴とするデータ管理プログラム。
【請求項４】
ユーザが前記データをいずれの日時の構成に復元したいのかを示す指定情報を入力する指定入力処理と、
入力された前記指定情報に示される日時における前記データの構成を、当該データの前記対応関係に基づいて判別する判別処理と、
前記データを、前記判別処理の結果および当該データに対応するいずれかの前記バックアップデータに基づいて復元する、データ復元処理と、を前記コンピュータに実行させる、
請求項３記載のデータ管理プログラム。
【請求項５】
前記変更指令検知処理を開始する前に、前記データを前記記憶媒体以外の第二の記憶媒体にバックアップデータとしてバックアップしておく初期バックアップ処理と、
新規のデータを追加すべき旨の指令を検知する追加指令検知処理と、
前記追加すべき旨の指令が検知されるごとに、当該指令に係る前記データをバックアップデータとしてバックアップする追加データバックアップ処理と、を前記コンピュータに実行させ、
前記バックアップ処理において、前記バックアップデータを前記第二の記憶媒体にバックアップさせる、
請求項４記載のデータ管理プログラム。
【請求項６】
記憶媒体の所定の領域に記憶されている１つまたは複数のデータを管理するコンピュータに用いられるデータ管理プログラムであって、
前記データのいずれかを変更すべき旨の指令を検知する、変更指令検知処理と、
前記変更すべき旨の指令が検知されるごとに、当該指令に係る前記データを、当該指令に基づいて変更される前にバックアップデータとしてバックアップするバックアップ処理と、
前記データと当該データの前記バックアップデータのバックアップ場所およびバックアップされた日時との対応関係を対応関係記憶手段に記憶させる対応関係記憶処理と、
ユーザが前記所定の領域の構成をいずれの日時の構成に復元したいのかを示す指定情報を入力する指定入力処理と、
入力された前記指定情報に示される日時における前記各データの構成を、当該各データの前記対応関係情報に基づいて判別する判別処理と、
前記各データを、前記判別処理の結果および当該各データに対応するいずれかの前記バックアップデータに基づいて復元する、データ復元処理と、
を前記コンピュータに実行させることを特徴とするデータ管理プログラム。
【請求項７】
記憶媒体に記憶されているファイルを管理するコンピュータに用いられるファイル管理プログラムであって、
前記ファイルを構成するデータを変更すべき旨の指令を検知する、変更指令検知処理と、
前記変更すべき旨の指令が検知されるごとに、当該指令に係る前記ファイルを、当該指令に基づいて変更される前にバックアップファイルとして保存するバックアップ処理と、
前記ファイルと当該ファイルの前記バックアップファイルの保存場所および保存された日時との対応関係を示す対応関係を対応関係記憶手段に記憶させる対応関係記憶処理と、
を前記コンピュータに実行させることを特徴とするファイル管理プログラム。
【請求項８】
ユーザが前記ファイルをいずれの日時の構成に復元したいのかを示す指定情報を入力する指定入力処理と、
入力された前記指定情報に示される日時に前記記憶領域における前記ファイルの構成を、当該ファイルの前記対応関係に基づいて判別する判別処理と、
前記ファイルを、前記判別処理の結果および当該ファイルに対応するいずれかの前記バックアップファイルに基づいて復元する、ファイル復元処理と、を前記コンピュータに実行させる、
請求項７記載のファイル管理プログラム。
【請求項９】
前記バックアップ処理において、前記ファイルの前記バックアップファイルを、変更される前の当該ファイルのパスを変更することによって生成させ、
前記ファイル復元処理において、前記ファイルを、当該ファイルの前記バックアップファイルのパスを変更することによって復元させる、
請求項８記載のファイル管理プログラム。
【請求項１０】
記憶媒体に記憶されているファイルを管理するコンピュータに用いられるファイル管理プログラムであって、
前記ファイルが記憶されている全部または一部のセクタのデータを変更すべき旨の指令を検知する、変更指令検知処理と、
前記変更すべき旨の指令が検知されるごとに、当該指令に係る前記ファイルの全部または一部のセクタのデータを、当該指令に基づいて変更される前にバックアップファイルとして保存するバックアップ処理と、
前記ファイルと当該ファイルの前記バックアップファイルの保存場所および保存された日時との対応関係を対応関係記憶手段に記憶させる対応関係記憶処理と、
ユーザが前記ファイルをいずれの日時の構成に復元したいのかを示す指定情報を入力する指定入力処理と、
入力された前記指定情報に示される日時に前記記憶領域における前記ファイルの構成を、当該ファイルの前記対応関係に基づいて判別する判別処理と、
前記ファイルを、前記判別処理の結果および当該ファイルに対応するいずれかの前記バックアップファイルに基づいて復元する、ファイル復元処理と、
を前記コンピュータに実行させることを特徴とするファイル管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データのバックアップまたはリカバリを行うためのシステムおよびコンピュータプログラムなどに関する。
【背景技術】
【０００２】
従来より、コンピュータシステムにおいて障害の発生またはユーザの誤操作などのトラブルに対処するために、データをトラブルの発生前の状態に復元する方法が提案されている。
【０００３】
例えば、複数のハードディスクに同一のデータを書き込むミラーリングという方法が広く知られている。これによると、１台のハードディスクが故障しても、他のハードディスクにデータが保存されているので、データ管理の信頼性を高めることができる。
【０００４】
また、特許文献１に記載される方法によると、更新されたファイルを定期的にバックアップコピーしておき、障害の発生時にバックアップコピーを用いてファイルをリストアする。
【特許文献１】特開平１１−１３４２３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、ミラーリングでは、ユーザの誤操作によってデータがユーザの意図しない内容に書き換えられてしまった場合は、元に戻すことはできない。
【０００６】
特許文献１に記載される方法では、ユーザは、バックアップを行った時点の状態にしかファイルをリストアすることができない。したがって、ユーザが誤操作によってファイルの内容を書き換えていたことが分かった場合に、そのファイルを誤操作の直前の時点状態にリストアすることは、バックアップのタイミングがその時点と偶然一致しない限り、不可能である。よって、誤操作を行うかなり前のファイルにしかリストアできない場合があり、どのようにしてデータを作成したのかを思い出しながら、リストアしたファイルの編集などを行わなければならず、非常に不便である。
【０００７】
本発明は、このような問題点に鑑み、従来よりも確実にユーザの所望する時点の状態にデータを復元することができるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るデータ管理システムは、記憶媒体に記憶されているデータを管理するデータ管理システムであって、前記データを変更すべき旨の指令を検知する、指令検知手段と、前記指令が検知されるごとに、当該指令に係る前記データを、当該指令に基づいて変更される前にバックアップデータとしてバックアップするバックアップ手段と、前記データと当該データの前記バックアップデータのバックアップ場所およびバックアップされた日時との対応関係を記憶する対応関係記憶手段と、ユーザが前記データをいずれの日時の構成に復元したいのかを示す指定情報を入力する指定入力手段と、入力された前記指定情報に示される日時における前記データの構成を、当該データの前記対応関係に基づいて判別する判別手段と、前記データを、前記判別手段による判別結果および当該データに対応するいずれかの前記バックアップデータに基づいて復元する、データ復元手段と、を有することを特徴とする。
【０００９】
前記データをファイル単位でバックアップする場合は、前記バックアップ手段は、前記データの前記バックアップデータを、変更される前の当該データのパスを変更することによって生成し、前記データ復元手段は、前記データを、当該データの前記バックアップデータのパスを変更することによって復元する、のが望ましい。これにより、ＣＰＵのオーバヘッドを減らすことができる。
【００１０】
前記データをセクタ単位でバックアップを行ってもよい。これにより、バックアップデータのサイズを小さくすることができ、かつ、バックアップデータを生成する処理時間を短縮することができる。
【００１１】
本発明において、「データを変更する」とは、ファイルのいわゆる実データやコンテンツ部分などのデータを更新するという意味だけでなく、コンピュータシステム内において使用されるファイルの有効性およびパスなどの属性に関するデータを更新する場合をも意味する。したがって、ファイルを移動し、リネームし、および削除する処理も、「データを変更する」の意味に含まれる。
【発明の効果】
【００１２】
本発明によると、従来よりも確実にユーザの所望する時点の状態にデータを復元することができる。
【００１３】
請求項４、７の発明によると、ユーザの所望する時点の状態にデータを復元するために必要なバックアップデータおよび情報を取得することができる。請求項９、１０の発明によると、バックアップおよびリカバリに掛かる時間を短縮することができる。請求項１０の発明によると、バックアップのサイズを小さくすることができる。
【発明を実施するための最良の形態】
【００１４】
〔第一の実施形態〕
図１はコンピュータ１の全体的な構成の例を示す図、図２は本体１１の内部構成の例を示す図、図３はハードディスクドライブ１ｄにインストールされているプログラムなどの例を示す図、図４はドライブ３０で管理されるファイルの例を示す図、図５はコンピュータ１の機能的構成の例を示す図である。
【００１５】
コンピュータ１は、図１に示すように、本体１１、ディスプレイ１２、キーボード１３、およびマウス１４などによって構成される。本体１１は、図２に示すように、ＣＰＵ１ａ、ＲＡＭ１ｂ、ＲＯＭ１ｃ、ハードディスクドライブ１ｄ、および本体１１と他の装置とを接続するための各種のインタフェースカード１ｅなどからなる。
【００１６】
ハードディスクドライブ１ｄには、図３に示すように、オペレーティングシステム（ＯＳ）２１、アプリケーションソフトウェア２２、ディスクドライバ２３、および本発明に係るデータ管理ソフトウェアＰＧなどのプログラムおよび種々のファイルがインストールされている。これらのプログラムおよびファイルは、必要に応じてＲＡＭ１ｂにロードされ、ＣＰＵ１ａによってプログラムが実行される。
【００１７】
データ管理ソフトウェアＰＧは、主に、バックアッププログラムＰＧ１のファイル、リカバリプログラムＰＧ２、設定に関する情報を格納するファイル、および処理の履歴を格納するファイルによって構成される。
【００１８】
バックアッププログラムＰＧ１は、バックアップ設定処理、指令検知処理、バックアップ要否判別処理、バックアップ処理、テーブル等更新処理、および容量管理処理などを実行するためのモジュールからなる。リカバリプログラムＰＧ２は、時刻等指定入力処理、ファイル構成判別処理、ファイル構成組立処理、復元ファイル表示処理、リカバリ実行処理などを実行するためのモジュールからなる。
【００１９】
バックアッププログラムＰＧ１は、ハードディスクドライブ１ｄまたはこれ以外のハードディスクやその他の記憶媒体（例えば、ＭＯ（Magneto Optical）ディスク、フロッピディスク、フラッシュメモリなど）に記憶されているデータのバックアップを行うためのものである。リカバリプログラムＰＧ２は、データを過去の内容に復元（リカバリ）するためのものである。
【００２０】
以下、図４に示すようなドライブ３０に記憶（保存）されているファイルの一部または全部を保護する場合を例に説明する。ドライブ３０には、「Ｃ」というドライブ名（ドライブ番号）が付けられており、「ｗｏｒｋ１」〜「ｗｏｒｋ４」というフォルダ名（ディレクトリ名）を有するフォルダ（ディレクトリ）が設けられている。「ｗｏｒｋ１」〜「ｗｏｒｋ４」のフォルダまたはそのサブフォルダ（サブディレクトリ）には、「ｆｉｌｅＡ」、「ｆｉｌｅＢ」などのファイル名を有するファイルが格納されている。以下、「ｆｉｌｅＡ」、「ｆｉｌｅＢ」、…というファイル名を有するファイルをそれぞれ「ファイルＦＡ」、「ファイルＦＢ」、…、と記載する。実線の長方形は、データ管理ソフトウェアＰＧによるデータ管理を開始した時点から存在しているファイルを示し、点線の長方形は、データ管理を開始した後で新規に追加されたファイルを示している。ドライブ３０は、１つのハードディスクまたはＭＯなどの記憶媒体そのもの（いわゆる物理ドライブ）であってもよいし、論理ドライブであってもよい。
【００２１】
バックアッププログラムＰＧ１およびリカバリプログラムＰＧ２などを実行することによって、コンピュータ１には、図５に示すような、バックアップ設定部１０１、指令検知部１０２、バックアップ要否判別部１０３、バックアップ処理部１０４、およびテーブル等更新部１０５、容量管理部１０６、時刻等指定受付部２０１、ファイル構成判別部２０２、ファイル構成組立部２０３、復元ファイル表示部２０４、およびリカバリ実行部２０５などの機能が実現される。以下、これらの各部の処理の内容などについて、バックアップのための処理とリカバリのための処理とに大別して説明する。
【００２２】
〔バックアップ〕
図６は設定画面ＨＧ１の例を示す図保護対象設定ファイル８１の例を示す図、図７は保護対象設定ファイル８１の例を示す図、図８は環境設定ファイル８２の例を示す図、図９はファイルの遷移の例を示す図、図１０はバックアップ領域で管理されるバックアップファイルの例を示す図、図１１はバックアップファイルの生成およびファイルの更新の方法の例を説明するための図、図１２はバックアップテーブル８３の例を示す図である。
【００２３】
図５のバックアップ設定部１０１は、次のような手順で、バックアップに関する設定のための処理を行う。ユーザが所定の操作を行うと、バックアップ設定部１０１は、図６のような設定画面ＨＧ１をディスプレイ１２（図１参照）に表示する。
【００２４】
ユーザは、この設定画面ＨＧ１のテキストボックスＴＸ１１に、保護したいファイルのパス（つまり、保存場所を示すフォルダ名およびファイル名）を入力して指定する。フォルダを指定することによって、そのフォルダの配下にある複数のファイルをまとめて指定することもできる。テキストボックスＴＸ１２には、テキストボックスＴＸ１１で指定したフォルダの配下にあるサブフォルダまたはファイルの中から、保護対象から除外したいものつまり例外を指定する。
【００２５】
テキストボックスＴＸ１３には、保護対象のファイルのバックアップファイルを保存する場所つまりバックアップ先のフォルダまたはドライブを指定する。テキストボックスＴＸ１４には、そのバックアップ先に保存できるバックアップファイルの合計の容量を指定する。
【００２６】
バックアップ設定部１０１は、テキストボックスＴＸ１１、ＴＸ１２に指定された内容に基づいて、図７に示すような設定情報８１ａ、８１ｂ、および保護ファイルテーブル８１ｃなどからなる保護対象設定ファイル８１を生成する。
【００２７】
設定情報８１ａ、８１ｂは、それぞれ、テキストボックスＴＸ１１、ＴＸ１２に指定された内容を示すものである。保護ファイルテーブル８１ｃは、保護対象をファイル単位で示すものであって、設定情報８１ａ、８１ｂに基づいて求められる。つまり、設定情報８１ａに該当するすべてのファイルの中から、設定情報８１ｂに該当するファイルつまり例外を除外することによって求められる。なお、「開始日時」および「属性」については、後に説明する。
【００２８】
さらに、バックアップ設定部１０１は、テキストボックスＴＸ１３、ＴＸ１４に指定された内容に基づいて、図８に示すような環境設定ファイル８２を生成する。
【００２９】
ユーザが所定の操作を行うと、コンピュータ１において、ユーザが指定したファイルの保護のためのバックアップの処理が開始される。すると、指令検知部１０２は、オペレーティングシステム２１からディスクドライバ２３に対して与えられる、ファイルの制御に関する指令の監視を開始する。そして、ファイルの内容（コンテンツ部分）または属性を更新すべき旨の指令（更新指令）、ファイルを削除すべき旨の指令（削除指令）、およびファイルを新規作成すべき旨の指令（新規作成指令）を検知する。
【００３０】
これらの指令は、例えば、次のような場合になされる。ワープロまたは表計算などのアプリケーションソフトウェア２２が起動している状態でユーザがファイルの「上書き保存」のコマンドを入力した場合は、そのファイルの内容についての更新指令がなされる。ユーザがＦＴＰサーバなどからファイルをダウンロードするコマンドを入力した場合は、そのファイルについての新規作成指令がなされる。ユーザがファイルを削除するコマンドを入力した場合は、そのファイルについての削除指令がなされる。
【００３１】
また、オペレーティングシステム２１またはアプリケーションソフトウェア２２がログファイルまたは環境設定ファイルなどを生成し、更新し、または削除する場合にも、新規作成指令、更新指令、または削除指令がなされる。ファイルを別のフォルダに移動させる場合は、ファイルの保存場所（パス）に関する属性を変更するので、更新指令がなされる。
【００３２】
なお、オペレーティングシステム２１およびディスクドライバ２３の仕様によっては、指令検知部１０２は、１つのコマンド（指令語）だけを検知すればよい。例えば、上述の更新指令、削除指令、および新規作成指令を、「ＷＲＩＴＥ」のような指令語とパラメータとを組み合わせることによって行えるような仕様の場合である。つまり、例えばファイルの削除を、そのファイルの属性データのうちの有効性を示すフラグに「オフ」の値を書き込む（ＷＲＩＴＥする、変更する）ことによって行うような場合である。
【００３３】
指令検知部１０２によってファイルの更新指令、削除指令、または新規作成指令が検知されると、バックアップ要否判別部１０３は、そのファイルが保護対象であるか否かを、図７の保護対象設定ファイル８１に基づいて判別する。
【００３４】
バックアップ処理部１０４は、指令検知部１０２が検知した指令の内容およびバックアップ要否判別部１０３の判別結果に応じて、ファイルを複製（コピー）してバックアップする処理を行う。以下、図４のドライブ３０の各ファイルが図９に示すような順番で遷移した場合を例に、バックアップ要否判別部１０３およびバックアップ処理部１０４の処理内容を説明する。
【００３５】
データ管理を開始した日付時刻（以下、単に「時刻」と記載する。）を、時刻Ｔ０とする。図９において、データ管理を開始したときの各ファイルＦＡ、ＦＢ、…、の構成すなわちコンテンツ部分および属性の状態をＦＡ０、ＦＢ０、…と記載する。ＦＡ１、ＦＡ２、…は、ファイルＦＡの更新されるごとの状態を示す符号である。
【００３６】
まず、ファイルＦＡについての更新指令が検知されると（丸数字１）、ファイルＦＡは図７の保護ファイルテーブル８１ｃに含まれるので、バックアップ要否判別部１０３は、ファイルＦＡが保護対象であると判別する。
【００３７】
このとき、バックアップ処理部１０４は、その更新指令による更新が行われる前の（つまり、ＦＡ０の状態の）ファイルＦＡを複製することによってバックアップファイルを生成し、図１０のように、環境設定ファイル８２に示されるバックアップ先にこれを保存する。以下、ファイルＦＡ、ＦＢ、…のバックアップファイルを、それぞれ、「バックアップファイルＢＡ」、「バックアップファイルＢＢ」、…と記載する。
【００３８】
バックアップファイルには、「”バックアップの時刻”＋”元のファイルのファイル名”」という形式のファイル名が付けられる。例えば、２００３年１２月２８日１０時１５分３７秒にバックアップが行われたファイルＦＥのバックアップファイルＢＥには、「２００３１２２８１０１５３７ｆｉｌｅＥ」というファイル名が付けられる。
【００３９】
ファイルＦＤについての新規作成指令が検知されると（図９の丸数字２）、ファイルＦＤは保護ファイルテーブル８１ｃに含まれないので、バックアップ要否判別部１０３は、ファイルＦＤが保護対象に該当するか否かを設定情報８１ａ、８１ｂに基づいて判別する。ファイルＦＤは「ｗｏｒｋ２」のフォルダの配下に格納されることになるので、保護対象であると判別する。新規作成指令が検知された場合は、バックアップ処理部１０４は、ファイルＦＤの複製は行わない。ただし、今後、ファイルＦＤが更新されたときには、丸数字１の場合と同様に、ファイルＦＤのバックアップファイルＢＤを生成してバックアップ先に保存する。
【００４０】
ファイルＦＸについての更新指令が検知されると（丸数字３）、バックアップ要否判別部１０３は、設定情報８１ａ、８１ｂ、および保護ファイルテーブル８１ｃに基づいてファイルＦＸが保護対象外であると判別する。この場合は、バックアップ処理部１０４は、複製の処理は行わない。
【００４１】
ファイルＦＣについての削除指令が検知されると（丸数字４）、ファイルＦＣは保護ファイルテーブル８１ｃに含まれるので、バックアップ要否判別部１０３は、ファイルＦＣが保護対象であると判別する。このとき、バックアップ処理部１０４は、削除が行われる前にファイルＦＣを複製してバックアップファイルＢＣを生成し、バックアップ先にこれを保存する。丸数字５以降も、同様の処理が行われる。
【００４２】
なお、バックアップファイルの生成は、図１１に示すような方法で行ってもよい。図１１（ａ）において、ＦＡ０の状態であるファイルＦＡがドライブ３０からＲＡＭ１ｂにロードされたとする（丸数字１）。そして、アプリケーションソフトウェア２２によって編集がなされてＦＡ１の状態に更新されたとする（丸数字２）。
【００４３】
ここで、上書き保存のコマンドが入力されて更新指令がなされると、図５のバックアップ処理部１０４は、ドライブ３０に現在保存されているＦＡ０の状態であるファイルＦＡのパス（フォルダ名およびファイル名）をバックアップ先のフォルダ名およびバックアップファイルＢＡのファイル名に変更する（丸数字３）。このように、更新前のファイルＦＡのパスを変更することによってバックアップファイルＢＡを生成する。さらに、ＦＡ１の状態に更新されたＲＡＭ１ｂ上のデータを、更新後のファイルＦＡとしてドライブ３０に保存する（丸数字４）。
【００４４】
また、図１１（ｂ）において、ファイルＦＡについての削除指令がなされると、バックアップ処理部１０４は、ファイルＦＡのパスを変更することによって、バックアップファイルＢＡを生成する。
【００４５】
このように、更新する前の状態のファイルまたは削除する前のファイルのパスを変更するだけでバックアップファイルを生成することによって、ＣＰＵ１ａ（図１参照）のオーバヘッドを少なくすることができる。
【００４６】
テーブル等更新部１０５は、バックアップ要否判別部１０３およびバックアップ処理部１０４による処理内容に基づいて、保護対象設定ファイル８１およびバックアップテーブル８３を更新する処理を行う。
【００４７】
バックアップテーブル８３には、図１２に示すように、保護対象のファイルとそのバックアップファイルのバックアップ先、バックアップを行った時刻、および処理内容とを対応付ける情報が格納される。ただし、図９の丸数字２のときのように保護対象のファイルが新規に追加された場合は、そのファイルと追加された時刻および処理内容とを対応付ける情報を格納する。
【００４８】
また、保護対象のファイルが新規に追加された場合は、図７の保護ファイルテーブル８１ｃに、そのファイルの保存場所（パス）および保護を開始した時刻（追加された時刻）を示す情報を格納する。保護対象のファイルが削除された場合は、「属性」のフィールドにその旨を記録する。
【００４９】
〔リカバリ（復元、復旧）〕
図１３はリカバリ指定入力画面ＨＧ２の例を示す図、図１４は確認画面ＨＧ３の例を示す図である。
【００５０】
図５の時刻等指定受付部２０１は、図１３のようなリカバリ指定入力画面ＨＧ２をディスプレイ１２（図１参照）に表示する。ユーザは、保護対象のファイルをいずれの時刻の状態に復元（復旧）したいのかをテキストボックスＴＸ２１に入力して指定する。
【００５１】
指定された時刻を時刻等指定受付部２０１が受け付けると、ファイル構成判別部２０２は、その時刻における保護対象の各ファイルの構成（内容）を、図７の保護対象設定ファイル８１および図１２のバックアップテーブル８３に記録されている情報に基づいて判別する。
【００５２】
例えば、ファイルＦＡは、時刻Ｔ１、Ｔ７に更新されバックアップの処理が実行されている。時刻Ｔ０≦ｔ＜時刻Ｔ１、の範囲の時刻が指定された場合は、ファイル構成判別部２０２は、ファイルＦＡのコンテンツ部分（属性を除いた部分）が「Ｔ１ｆｉｌｅＡ」というファイル名のバックアップファイルＢＡのコンテンツ部分と同じ内容によって構成されていた、と判別する。時刻Ｔ１≦ｔ＜時刻Ｔ７、の範囲の時刻が指定された場合は、「Ｔ７ｆｉｌｅＡ」というファイル名のバックアップファイルＢＡのコンテンツ部分と同じ内容によって構成されていた、と判別する。時刻Ｔ７以降は更新などは行われていないので、係る時刻が指定された場合は、現在のファイルＦＡと同一の構成（内容）であると判別する。
【００５３】
ファイル構成組立部２０３は、ファイル構成判別部２０２の判別結果、保護対象設定ファイル８１、および環境設定ファイル８２に基づいて、ファイル構成の一覧を組み立てる。そして、テキストボックスＴＸ２１で指定された時点の保護対象のファイルの一覧を、例えばＷｉｎｄｏｗｓ（登録商標）のエクスプローラまたはファイルマネージャのような保護対象ファイルリストＬＴ２２として表示する。ただし、現在のファイルと同一の構成（内容）であるとファイル構成判別部２０２によって判別された場合は、保護対象ファイルリストＬＴ２２において、そのファイル名の色を他のファイルのファイル名とは異なる色で表示しまたはフラグの印を立てるなどして、ユーザに注意を促す。
【００５４】
ユーザが保護対象ファイルリストＬＴ２２の中から復元したいファイルを選択すると、復元ファイル表示部２０４は、そのファイルの内容などを、バックアップ先に保存されているバックアップファイル（図１０参照）を用いて図１４のような確認画面ＨＧ３として表示する。例えば、ファイルＦＡを時刻Ｔ０≦ｔ＜時刻Ｔ１、の範囲の時刻の情報を表示する場合は、「Ｄ：￥ｂａｃｋｕｐ￥Ｔ１ｆｉｌｅＡ」のバックアップファイルＢＡのコンテンツ部分を「ファイルの内容」欄に表示し、バックアップテーブル８３の中からそのファイルＦＡに係る遷移の履歴の情報を抽出して「履歴」欄に表示する。
【００５５】
ユーザは、確認画面ＨＧ３を見て、リカバリ指定入力画面ＨＧ２で指定した時刻が自分の復元したい内容と合っているかどうかを確認する。合っていない場合または他の時刻を指定して再確認したい場合は、確認画面ＨＧ３の履歴欄の時刻をクリックし、または履歴上の時刻を選択し（反転表示させ）再表示ボタンＢＮ３３をクリックすることによって、その時刻のファイルの内容を再度表示させて確認する。
【００５６】
復元したい内容が確認画面ＨＧ３に表示された場合は、復元ボタンＢＮ３１をクリックする。すると、その時点のファイルが選択された状態で、リカバリ指定入力画面ＨＧ２に戻る。ここで、ユーザが指定ファイル復旧ボタンＢＮ２２をクリックすると、リカバリ実行部２０５は、確認画面ＨＧ３で選択されたファイルを、ファイル構成判別部２０２で判別された構成になるように復元する。つまり、バックアップフォルダ内に格納されてある、そのファイルのバックアップファイルを、そのファイルの格納領域に複写する。全復旧ボタンＢＮ２１をクリックすると、リカバリ実行部２０５は、すべての保護対象のファイルを、ファイル構成判別部２０２で判別された構成になるように復元する。
【００５７】
ただし、このとき、リカバリ指定入力画面ＨＧ２のテキストボックスＴＸ２１で指定した時刻と確認画面ＨＧ３の履歴欄で指定した時刻が異なる場合が考えられる。この場合は、確認画面ＨＧ３の履歴欄で指定された時刻を優先して復元する。なお、復元する前に、ユーザに、指定の時刻と復元しようとしている時刻とが異なる旨のメッセージを表示するとともに、それでよいかどうかを選択するための手段を与えることが望ましい。
【００５８】
一方、他のファイルの過去の内容を確認したい場合は、ユーザは、確認画面ＨＧ３のＯＫボタンＢＮ３２をクリックしてリカバリ指定入力画面ＨＧ２に戻る。ここで、ユーザは、時刻およびファイルの指定をやり直す。この間も、バックアップ処理部１０４などによって、ファイルのバックアップが行われている。したがって、ＨＧ２で復元処理を行った時刻の少し前の時間を指定して全復旧ボタンＢＮ２１をクリックすることで、復元処理前の状態に戻すことができる。
【００５９】
容量管理部１０６は、バックアップ先のフォルダなどに記憶されているバックアップファイルの総データ量が図８の環境設定ファイル８２に示されるバックアップサイズを超えた場合に、そのバックアップサイズ以内に収まるように、古いバックアップファイルから順番に削除する処理を行う。この際、ユーザに、削除してもよいか否かを問い合わせるようにする。また、削除に合わせて、バックアップテーブル８３の内容を更新する。
【００６０】
図１５はバックアッププログラムＰＧ１の起動時のコンピュータ１の処理の流れの例を説明するフローチャート、図１６はリカバリプログラムＰＧ２の起動時のコンピュータ１の処理の流れの例を説明するフローチャートである。
【００６１】
次に、第一の実施形態におけるコンピュータ１の処理の手順を、図１５および図１６のフローチャートを参照して説明する。
【００６２】
バックアッププログラムＰＧ１が起動すると、ユーザが所望する保護対象のファイルおよびそのファイルのバックアップ先などの指定を受け付けて、保護対象設定ファイル８１および環境設定ファイル８２（図７、図８参照）を生成しまたは更新する（図１５の＃１１）。
【００６３】
ファイルを更新し、追加し、または削除する指令を検知すると（＃１２、＃１３でＹｅｓ）、そのファイルが保護対象であるか否かを判別する（＃１４）。そのファイルが保護対象でありかつ更新または削除されようとしている場合は（＃１５でＹｅｓ、＃１６でＹｅｓ）、更新または削除前のそのファイルのバックアップファイルを生成してバックアップ先にバックアップしておく（＃１７）。さらに、ステップ＃１７の処理内容をバックアップテーブル８３（図１２参照）に記録しておく（＃１８）。そのファイルが保護対象でありかつ新規に追加されようとしている場合は（＃１５でＹｅｓ、＃１６でＮｏ）、保護対象のファイルが新規に追加された旨をバックアップテーブル８３に記録しておく（＃１８）。
【００６４】
そのファイルが保護対象でない場合は（＃１５でＮｏ）、そのファイルについてバックアップのための処理は何も行わない。バックアッププログラムＰＧ１の起動中は（＃１９でＮｏ）、ステップ＃１２に戻って、常時、ファイルの更新などを監視し、バックアップのための処理を行う。
【００６５】
ユーザは、何らかのトラブルによって、ファイルが自分の意図しない内容に書き換えられていることまたはファイルが削除されていることに気付いたとする。そこで、これらのファイルを復元（リカバリ）するために、リカバリプログラムＰＧ２を起動する。
【００６６】
すると、コンピュータ１は、図１３のようなリカバリ指定入力画面ＨＧ２を表示し、ファイルをどの時点（時刻）の状態に復元したいのかなどの指定を受け付ける（図１６の＃２１）。指定された時刻における、ファイルの構成内容を判別する（＃２２）。指定された時刻のファイル構成の一覧表（保護対象ファイルリストＬＴ２２）を判別結果に基づいて作成して表示する（＃２３）。
【００６７】
その一覧表から復元対象のファイルが選択されると（＃２４でＹｅｓ）、その内容および遷移の履歴を図１４のように確認画面ＨＧ３として表示する（＃２５）。
【００６８】
確認画面ＨＧ３を確認したユーザが復元ボタンＢＮ３１をクリックすると（＃２６でＹｅｓ）、復元対象ファイルである旨のフラグを立てる（＃２９）。すると、リカバリ指定入力画面ＨＧ２において、そのファイルのファイル名の後に復元ポイント時刻（ユーザが最終的に指定した時刻）が表示される。他に復元したいファイルがある場合は、リカバリ指定入力画面ＨＧ２でそれを選択し、確認画面ＨＧ３でその内容を確認する（＃２４〜＃２６、＃２９）。
【００６９】
選択が完了した場合は（＃２７でＹｅｓ）、ユーザは図１３のリカバリ指定入力画面ＨＧ２の画面から全復旧ボタンＢＮ２１又は指定ファイル復旧ボタンＢＮ２２をクリックする。すると、コンピュータ１は、保護対象のファイルの全部またはユーザが選択した分を、それぞれのバックファイルを用いて復元する（＃２８）。
【００７０】
この間も、バックアッププログラムＰＧ１が起動中なので、ステップ＃２３の復元処理によるファイルの更新の履歴が記録されるとともに、そのファイルのバックアップが行われている。
【００７１】
第一の実施形態によると、ユーザの所望する任意の時点の状態にデータを復元することができる。しかも、確認画面ＨＧ３でファイルの復元の状態を確認することができるので、ユーザは、いずれの時点の状態に復元したいのかをより確実に知ることができる。
【００７２】
〔第二の実施形態〕
図１７は第二の実施形態におけるハードディスクドライブ１ｄにインストールされているプログラムなどの例を示す図、図１８は第二の実施形態におけるコンピュータ１の機能的構成の例を示す図、図１９は保護対象であるファイルＦＡの遷移の例を示す図、図２０はバックアップファイルＢＡの構成の例を示す図、図２１はバックアップテーブル８４の例を示す図である。
【００７３】
第一の実施形態ではファイル単位でデータのバックアップおよびリカバリを行ったが、第二の実施形態ではセクタ単位でデータのバックアップおよびリカバリを行う。
【００７４】
第二の実施形態のコンピュータ１のハードウェア構成は、図２に示す第一の実施形態の構成と同じである。ハードディスクドライブ１ｄには、図１７に示すように、オペレーティングシステム（ＯＳ）２１、アプリケーションソフトウェア２２、ディスクドライバ２３、および本発明に係るデータ管理ソフトウェアＰＧ’などのプログラムおよび種々のファイルがインストールされている。
【００７５】
データ管理ソフトウェアＰＧ’は、主に、バックアッププログラムＰＧ３、リカバリプログラムＰＧ４、設定に関する情報を格納するファイル、および処理の履歴を格納するファイルによって構成される。
【００７６】
さらに、バックアッププログラムＰＧ３は、バックアップ設定処理、指令検知処理、バックアップ要否判別処理、バックアップ処理、テーブル等更新処理、および容量管理処理などを実行するためのモジュールからなる。リカバリプログラムＰＧ４は、時刻等指定入力処理、ファイル構成判別処理、ファイル構成組立処理、復元ファイル表示処理、リカバリ実行処理などを実行するためのモジュールからなる。バックアッププログラムＰＧ３およびリカバリプログラムＰＧ４の目的は、それぞれ、第一の実施形態のバックアッププログラムＰＧ１およびリカバリプログラムＰＧ２の目的と同じである。ただし、処理内容に相違する点がある。以下、第一の実施形態の場合と相違する点を中心に説明する。第一の実施形態と共通する点は説明を省略する。
【００７７】
バックアッププログラムＰＧ３およびリカバリプログラムＰＧ４などを実行することによって、コンピュータ１には、図１８に示すような、バックアップ設定部１３１、指令検知部１３２、バックアップ要否判別部１３３、バックアップ処理部１３４、テーブル等更新部１３５、容量管理部１３６、時刻等指定受付部２３１、ファイル構成判別部２３２、ファイル構成組立部２３３、復元ファイル表示部２３４、リカバリ実行部２３５などの機能が実現される。
【００７８】
バックアップ設定部１３１は、図５のバックアップ設定部１０１と同様に、保護対象設定ファイル８１（図７参照）および環境設定ファイル８２（図８参照）を設定するための処理を行う。
【００７９】
指令検知部１３２は、ディスクドライバ２３からドライブ３０に対して与えられる、ファイルの制御に関する指令を監視する処理を行う。そして、ドライブ３０のセクタへのデータの書込みの指令を検知する。
【００８０】
すると、バックアップ要否判別部１３３は、セクタへのデータの書込み前にデータのバックアップを行う必要があるか否かを、保護対象設定ファイル８１（図７参照）に基づいて判別する。バックアップ処理部１３４は、指令検知部１３２が検知した指令の内容およびバックアップ要否判別部１３３の判別結果に応じて、セクタのデータをバックアップする処理を行う。以下、保護対象であると判別されたファイルＦＡが、図１９に示すように遷移した場合を例に、バックアップ処理部１３４の処理内容を説明する。
【００８１】
データ管理の開始時（時刻Ｔ０）、ファイルＦＡを構成するデータは、ＦＡ０のように、ドライブ３０の１０１番〜１０７番のセクタに分割されて格納されている。なお、「論理番号」とは、ドライブ３０におけるファイル管理テーブル上の、ファイルＦＡのデータの配列順を意味する。
【００８２】
ファイルＦＡの「論理番号＝３、セクタ番号＝１０３」のセクタに更新データを書き込む旨の指令が検知された場合は（丸数字１）、バックアップ処理部１３４は、更新前のそのセクタをファイルＦＡから切り離し、図２０に示すようにバックアップファイルＢＡに変更する。つまり、その結果、１０３番のセクタは他のファイルによって使用されることになる。そこで、更新データを、空いている他のセクタ（例えば、２０１番のセクタ）に格納し、このセクタに「論理番号＝３」を付与する。
【００８３】
時刻Ｔ２のときのように、ファイルＦＡにデータ（セクタ）が追加されるだけで、いずれのセクタのデータも更新されない場合は（丸数字２）、バックアップ処理部１３４は、バックアップファイルの生成は行わない。
【００８４】
ファイルＦＡのすべてのセクタに「無効」のフラグを書き込む旨の指令つまりファイルＦＡを削除すべき旨の指令が検知された場合は（丸数字３）、削除前のファイルＦＡを、図２０に示すようにバックアップファイルＢＡに変更する。このとき、ファイルＦＡが断片化している場合は、デフラグを行ってもよい。
【００８５】
なお、新規に追加されたファイルがあった場合は、第一の実施形態の場合と同様に、バックアップファイルの生成は行わず、バックアップテーブル８４に新規のファイルが追加された旨および追加時刻などを記録する。
【００８６】
テーブル等更新部１３５は、バックアップ要否判別部１３３およびバックアップ処理部１３４による処理内容に基づいて、保護対象設定ファイル８１および図２１のバックアップテーブル８４を更新する処理を行う。保護対象設定ファイル８１を更新する処理は、第一の実施形態の場合と同じである。
【００８７】
バックアップテーブル８４の更新は、次のように行う。ファイルの一部のセクタのデータが更新された場合は（図１９の丸数字１）、そのファイルと更新前のセクタのデータのバックアップファイルのバックアップ先、バックアップを行った時刻、各セクタの論理番号、および処理内容とを対応付ける情報を記録する。ファイルに新たなセクタが追加された場合は（丸数字２）、そのファイルと追加された時刻、そのセクタの論理番号、および処理内容とを対応付ける情報を記録する。ファイルが削除された場合は（丸数字３）、そのファイルとバックアップファイルのバックアップ先、バックアップを行った時刻、各セクタの論理番号、および処理内容とを対応付ける情報を記録する。
【００８８】
時刻等指定受付部２３１は、図５の時刻等指定受付部２０１と同様の処理を行う。つまり、図１３のリカバリ指定入力画面ＨＧ２を表示し、保護対象のファイルをいずれの時刻の状態に復元（復旧）したいのか、という指定を受け付ける。
【００８９】
ファイル構成判別部２３２は、指定された時刻における保護対象の各ファイルの構成内容を、図２１のバックアップテーブル８４に記録されている履歴の情報をさかのぼることによって判別する。
【００９０】
ファイル構成組立部２３３は、ファイル構成判別部２３２の判別結果、保護対象設定ファイル８１、および環境設定ファイル８２に基づいて、ファイル構成の一覧を組み立て保護対象ファイルリストＬＴ２２に表示する。
【００９１】
復元ファイル表示部２３４は、図５の復元ファイル表示部２０４と同様に、ファイル構成組立部２３３によって復元されたファイルの内容およびそのファイルの遷移の履歴を、図１４のような確認画面ＨＧ３として表示する。リカバリ実行部２３５は、すべての保護対象のファイルを、ファイル構成判別部２３２で判別された構成内容になるように復元する。
【００９２】
図５のリカバリ実行部２０５、バックアップファイルを元の（オリジナルの）ファイルのあったフォルダにコピーしリネームすることによってファイルを復元したが、リカバリ実行部２３５は、セクタの単位でデータを組み立て直すことによってファイルを復元する。
【００９３】
第二の実施形態におけるバックアップおよびリカバリの処理の流れは、図１５および図１６に示す第一の実施形態での処理の流れと基本的に同じなので、説明を省略する。
【００９４】
第二の実施形態によると、セクタ単位でデータのバックアップを行うので、第一の実施形態の場合よりも、バックアップファイルのサイズを小さくすることができ、ディスク容量を節約することができる。かつ、バックアップファイルを生成する処理時間を短縮することができる。
【００９５】
第一および第二の実施形態では、データ管理ソフトウェアＰＧを、バックアッププログラムＰＧ１およびリカバリプログラムＰＧ２の２つのプログラムによって構成したが、両プログラムを１つにして構成してもよい。または、モジュールの組合せを変更し、３つ以上のプログラムによって構成してもよい。
【００９６】
第一および第二の実施形態では、図１５などで説明したように、更新または削除される場合にのみデータのバックアップを行ったが、ディスククラッシュの対策のためにバックアップを行うのであれば、バックアッププログラムＰＧ１を起動した時点のデータおよび新規に追加されたデータについてもバックアップを行うのが望ましい。また、そのデータが記憶されているディスクにバックアップを行うのではなく、他のディスクまたはネットワーク上の他のコンピュータなどにバックアップを行うのが望ましい。コンピュータ１のハードディスクドライブ１ｄがディスククラッシュした場合は、リカバリプログラムＰＧ２をインストールした他のコンピュータにおいて、バックアップファイルおよびバックアップテーブル８３または８４などが保存されているディスクを用いて、復元を行うことができる。
【００９７】
第一および第二の実施形態では、それぞれファイル単位およびセクタ単位でデータのバックアップを行ったが、本発明は、他のデータ単位でバックアップを行う場合にも適用することができる。
【００９８】
その他、コンピュータ１の全体または各部の構成、処理内容、処理順序などは、本発明の趣旨に沿って適宜変更することができる。
【産業上の利用可能性】
【００９９】
本発明は、特に、ユーザが作成しまたは編集する文書、図表、または描画などの書類のファイルまたは作成中のプログラムのソースファイルなどを保存しておくディスクのバックアップおよびリカバリのために好適に用いられる。
【図面の簡単な説明】
【０１００】
【図１】コンピュータの全体的な構成の例を示す図である。
【図２】本体の内部構成の例を示す図である。
【図３】ハードディスクドライブにインストールされているプログラムなどの例を示す図である。
【図４】ドライブで管理されるファイルの例を示す図である。
【図５】コンピュータの機能的構成の例を示す図である。
【図６】設定画面の例を示す図保護対象設定ファイルの例を示す図である。
【図７】保護対象設定ファイルの例を示す図である。
【図８】環境設定ファイルの例を示す図である。
【図９】ファイルの遷移の例を示す図である。
【図１０】バックアップ領域で管理されるバックアップファイルの例を示す図である。
【図１１】バックアップファイルの生成およびファイルの更新の方法の例を説明するための図である。
【図１２】バックアップテーブルの例を示す図である。
【図１３】リカバリ指定入力画面の例を示す図である。
【図１４】確認画面の例を示す図である。
【図１５】バックアッププログラムの起動時のコンピュータの処理の流れの例を説明するフローチャートである。
【図１６】リカバリプログラムの起動時のコンピュータの処理の流れの例を説明するフローチャートである。
【図１７】第二の実施形態におけるハードディスクドライブにインストールされているプログラムなどの例を示す図である。
【図１８】第二の実施形態におけるコンピュータの機能的構成の例を示す図である。
【図１９】保護対象であるファイルの遷移の例を示す図である。
【図２０】バックアップファイルの構成の例を示す図である。
【図２１】バックアップテーブルの例を示す図である。
【符号の説明】
【０１０１】
１  コンピュータ（データ管理システム）
１ｄ  ハードディスクドライブ（記憶媒体）
８３、８４  バックアップテーブル（対応関係記憶手段）
１０２、１３２  指令検知部（指令検知手段）
１０４、１３４  バックアップ処理部（バックアップ手段）
２０１、２３１  時刻等指定受付部（指定入力手段）
２０２、２３２  ファイル構成判別部（判別手段）
２０３、２３３  ファイル構成組立部（データ復元手段）
２０５、２３５  リカバリ実行部（データ復元手段）
ＢＡ〜ＢＥ  バックアップファイル
ＦＡ〜ＦＥ  ファイル
ＰＧ  データ管理ソフトウェア（データ管理プログラム）
【図１】
2005293272.tif 000003
【図２】
2005293272.tif 000004
【図３】
2005293272.tif 000005
【図４】
2005293272.tif 000006
【図５】
2005293272.tif 000007
【図６】
2005293272.tif 000008
【図７】
2005293272.tif 000009
【図８】
2005293272.tif 000010
【図９】
2005293272.tif 000011
【図１０】
2005293272.tif 000012
【図１１】
2005293272.tif 000013
【図１２】
2005293272.tif 000014
【図１３】
2005293272.tif 000015
【図１４】
2005293272.tif 000016
【図１５】
2005293272.tif 000017
【図１６】
2005293272.tif 000018
【図１７】
2005293272.tif 000019
【図１８】
2005293272.tif 000020
【図１９】
2005293272.tif 000021
【図２０】
2005293272.tif 000022
【図２１】
2005293272.tif 000023