(57)【要約】【課題】データベース管理システムにおいてデータの同期化に関する処理時間を短縮すること。【解決手段】データベース管理装置１が、ロード処理されたデータに対して、データベース管理装置１が受け付けるアクセス要求を元にバッチ処理を実行し、バックアップ処理された差分バックアップデータ８２ｂを、ストレージ装置５に格納されるデータベースのデータに反映することで、メモリ上のデータとストレージ装置５に格納されるデータとを同一化する同期化処理を実行し、バッチ処理のうちの所定バッチ処理と、その所定バッチ処理より前に実行されたバッチ処理に対してバックアップ処理された結果の同期化処理と、を並行処理する。【選択図】図１
2010181924.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に格納されるデータベースのデータを管理するデータベース管理装置におけるデータベース管理方法であって、
前記データベース管理装置は、処理を実行するためのプロセッサと、前記プロセッサが処理を実行するときに用いるデータを格納するメモリとアクセス可能な前記記憶装置を有し、
前記データベース管理装置のプロセッサは、
前記記憶装置に格納されるデータベースのデータを前記メモリに読み込むロード処理を実行し、
前記ロード処理されたデータに対して、データベース管理装置が受け付けるアクセス要求を元にバッチ処理を実行し、
前記バッチ処理された前記メモリ上の更新された前記データを、そのバッチ処理の実行後にバックアップデータとして書き出すバックアップ処理を実行し、
前記バックアップ処理された前記バックアップデータを、前記記憶装置に格納されるデータベースのデータに反映することで、前記メモリ上のデータと前記記憶装置に格納されるデータとを同一化する同期化処理を実行し、
前記バッチ処理のうちの所定バッチ処理と、その所定バッチ処理より前に実行された前記バッチ処理に対して前記バックアップ処理された結果の前記同期化処理と、を並行処理することを特徴とする
データベース管理方法。
【請求項２】
前記データベース管理装置のプロセッサは、複数回の前記バックアップ処理により生成された複数個の前記バックアップデータについて、互いに同じ箇所の更新内容が存在するときには、その同じ箇所の更新内容のうち、時刻が先である前記バックアップデータの前記同期化処理を省略することを特徴とする
請求項１に記載のデータベース管理方法。
【請求項３】
前記データベース管理装置のプロセッサは、前記所定バッチ処理と、前記同期化処理との並行処理中に、前記所定バッチ処理に対する障害が発生し、かつ、前記所定バッチ処理中に前記同期化処理が完了しているときには、その完了した前記同期化処理により同一化された前記記憶装置に格納されるデータ内容を、前記メモリに読み込む前記ロード処理を実行することを特徴とする
請求項１または請求項２に記載のデータベース管理方法。
【請求項４】
前記データベース管理装置のプロセッサは、前記所定バッチ処理と、前記同期化処理との並行処理中に、前記所定バッチ処理に対する障害が発生し、かつ、前記所定バッチ処理中に前記同期化処理が完了していないときには、既に前記バックアップ処理で書き出されている前記バックアップデータを、前記メモリに反映することを特徴とする
請求項１または請求項２に記載のデータベース管理方法。
【請求項５】
請求項１ないし請求項４のいずれか１項に記載のデータベース管理方法を、コンピュータである前記データベース管理装置で実行させるためのデータベース管理プログラム。
【請求項６】
記憶装置に格納されるデータベースのデータを管理するデータベース管理装置であって、
前記データベース管理装置は、処理を実行するためのプロセッサと、前記プロセッサが処理を実行するときに用いるデータを格納するメモリとアクセス可能な前記記憶装置を有し、
前記データベース管理装置のプロセッサは、
前記記憶装置に格納されるデータベースのデータを前記メモリに読み込むロード処理を実行し、
前記ロード処理されたデータに対して、データベース管理装置が受け付けるアクセス要求を元にバッチ処理を実行し、
前記バッチ処理された前記メモリ上の更新された前記データを、そのバッチ処理の実行後にバックアップデータとして書き出すバックアップ処理を実行し、
前記バックアップ処理された前記バックアップデータを、前記記憶装置に格納されるデータベースのデータに反映することで、前記メモリ上のデータと前記記憶装置に格納されるデータとを同一化する同期化処理を実行し、
前記バッチ処理のうちの所定バッチ処理と、その所定バッチ処理より前に実行された前記バッチ処理に対して前記バックアップ処理された結果の前記同期化処理と、を並行処理することを特徴とする
データベース管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース管理方法および装置並びにその処理プログラムの技術に関する。
【背景技術】
【０００２】
情報化社会の発展に伴い、多くの企業がデータベースを含むシステムを利用し、様々なオンラインサービスを提供している。例えば、銀行のＡＴＭ（Automated Teller Machine）や航空券の販売システムがオンラインサービスの例として挙げられる。近年、企業間競争がますます激化する状況下で、各企業はオンラインサービス時間の拡大や、オンラインサービス内容の拡充等を行い他企業との差別化を図っている。
【０００３】
オンラインサービスのシステムを構築する際は、多種多様なハードウェアやミドルウェアを組み合わせることが多い。この場合、各ソフトウェアとハードウェアに対する保守とシステム全体に対する保守が必要となり、システム管理コストは非常に大きい。システム管理コストは、システム稼動中常に発生するコストのため、システム管理コストを削減して利益を確保することは、企業間競争を勝ち抜く上で重要となる。そのため、オンラインサービスの時間外の時間帯を有効活用することにより、システムを有効活用し、システム管理コストに見合った成果を得ることが期待できる（非特許文献１などを参照）。
【０００４】
データベース管理システムでは、オンライン業務によって蓄積されたデータをバッチ処理として一括処理することによって統計情報などを生成し、生成された統計情報を経営判断などに利用することがある。統計情報を生成するようなバッチ処理では、大量にデータにアクセスする必要があり、バッチ処理の実行中にはシステム負荷が増大しやすい。
【０００５】
特に、ディスクドライブなどの外部記憶媒体にデータが格納されている場合には、データの入出力による負荷が大きくなる。このため、バッチ処理は負荷が比較的小さくオンラインサービス時間外である夜間などに実行される場合が多い。従来では、運用更新の有無にかかわらず、バッチ処理時のデータ全てをバックアップしていた。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】ジム グレイ、アンドレアス ロイター著「トランザクション処理〈下〉―概念と技法」日経ＢＰ社、２００１年１０月、Ｐ．７４３
【発明の概要】
【発明が解決しようとする課題】
【０００７】
オンラインサービスの拡充やオンラインサービス利用者の増加に伴うデータ処理量の増加により、バッチ処理時間は長くなる傾向にある。しかし、各企業はオンラインサービス時間を拡大しており、バッチ処理に割り当てられる時間は短くなっている。よって、バッチ処理時間の短縮化が望まれている。
【０００８】
次に、データベース管理システムにおけるバッチ処理の運用について、横軸を時間軸とするガントチャート形式の説明図（図１２，図１３）をもとに、説明する。
図１２は、非特許文献１に開示されている、バッチ処理ｂ１とバッチ処理ｂ２および各バッチ処理に対するバックアップ処理（ｃ１，ｃ２）を示す説明図である。複数のバッチ処理を実行する際、障害に備えて各バッチ処理終了時点（ｔ１、ｔ３）のデータベースのデータ内容をバックアップ処理（ｃ１、ｃ２）する。
【０００９】
ここで、各バッチ処理を実行する際の外部記憶装置との入出力によるシステム負荷が非常に大きい。このシステム負荷を低減するため、外部記憶媒体に格納されたデータをメモリ上に記憶させ、メモリ上のデータを読み書きすることによって処理の高速化を図る処理（以後インメモリデータ処理と呼ぶ）を考える。インメモリデータ処理では、外部記憶装置にアクセスする必要がないため、システム負荷低減に大きな効果を得ることができる。
【００１０】
図１３は、インメモリデータ処理の一例を示す説明図である。
時刻ｔ０〜ｔ１において、外部記憶媒体からデータを読み出してメモリに記憶するロード処理（インメモリ化とも呼ぶ）を実行する。
時刻ｔ１〜ｔ２において、ロード処理がなされたメモリ上のデータに対して、読み書きすることで、バッチ処理ｂ１を実行する。
時刻ｔ２〜ｔ３において、バッチ処理（ｂ１）の処理結果であるメモリ上のデータを、外部記憶媒体に書き出す処理であるバックアップ処理（ｃ１）を実行する。
時刻ｔ３〜ｔ５においても、同様に、バッチ処理（ｂ２）と、そのバックアップ処理（ｃ２）を実行する。
時刻ｔ５〜ｔ６において、ＤＢ同期処理として、メモリからデータを読み出して外部記憶媒体に記憶する。
【００１１】
ここで、時刻ｔ５〜ｔ６のＤＢ同期処理が終了するまでは、外部記憶媒体を更新することはできないように制御する必要がある。この待ち時間により、バッチ処理に関する全体時間（時刻ｔ０〜ｔ６）が増大してしまう。
【００１２】
そこで、本発明は、前記した問題を解決し、データベース管理システムにおいてデータの同期化に関する処理時間を短縮することを、主な目的とする。
【課題を解決するための手段】
【００１３】
前記課題を解決するために、本発明は、記憶装置に格納されるデータベースのデータを管理するデータベース管理装置におけるデータベース管理方法であって、
前記データベース管理装置が、処理を実行するためのプロセッサと、前記プロセッサが処理を実行するときに用いるデータを格納するメモリとアクセス可能な前記記憶装置を有し、
前記データベース管理装置のプロセッサが、
前記記憶装置に格納されるデータベースのデータを前記メモリに読み込むロード処理を実行し、
前記ロード処理されたデータに対して、データベース管理装置が受け付けるアクセス要求を元にバッチ処理を実行し、
前記バッチ処理された前記メモリ上の更新された前記データを、そのバッチ処理の実行後にバックアップデータとして書き出すバックアップ処理を実行し、
前記バックアップ処理された前記バックアップデータを、前記記憶装置に格納されるデータベースのデータに反映することで、前記メモリ上のデータと前記記憶装置に格納されるデータとを同一化する同期化処理を実行し、
前記バッチ処理のうちの所定バッチ処理と、その所定バッチ処理より前に実行された前記バッチ処理に対して前記バックアップ処理された結果の前記同期化処理と、を並行処理することを特徴とする。
その他の手段は、後記する。
【発明の効果】
【００１４】
本発明によれば、データベース管理システムにおいてデータの同期化に関する処理時間を短縮することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態に関するデータベース管理システムの構成を示す構成図である。
【図２】本発明の一実施形態に関するデータベース管理システムの処理について、主なデータの流れを示す説明図である。
【図３】本発明の一実施形態に関する図２で説明した各処理の実行順序を示す説明図である。
【図４】本発明の一実施形態に関する図３の各処理におけるデータ内容の一例を示す説明図である。
【図５】本発明の一実施形態に関する図３の各処理におけるデータ内容の一例を示す説明図である。
【図６】本発明の一実施形態に関する図３の各処理におけるデータ内容の一例を示す説明図である。
【図７】本発明の一実施形態に関する図３の各処理におけるデータ内容の一例を示す説明図である。
【図８】本発明の一実施形態に関するデータ回復処理の概要を示す説明図である。
【図９】本発明の一実施形態に関するデータ回復処理におけるデータ内容の一例を示す説明図である。
【図１０】本発明の一実施形態に関する各バッチ処理結果のバックアップ処理を示すフローチャートである。
【図１１】本発明の一実施形態に関する障害発生時の回復処理を示すフローチャートである。
【図１２】バッチ処理および各バッチ処理に対するバックアップ処理を示す説明図である。
【図１３】インメモリデータ処理の一例を示す説明図である。
【発明を実施するための形態】
【００１６】
以下、本発明が適用されるデータベース管理システムの一実施形態について、図面を参照しながら説明する。
【００１７】
図１は、データベース管理システムの構成を示す構成図である。データベース管理システムは、データベース管理装置１、ストレージ装置５、端末７、および、バックアップ装置８が、ネットワーク６を通じて互いに接続されるシステムである。
【００１８】
データベース管理装置１は、プロセッサ１ａ、メモリ１ｂ、および、他装置と通信するためのインタフェース１ｃを備えるコンピュータとして構成される。プロセッサ１ａは、メモリ１ｂに記憶されたプログラムを処理することによって、各種処理を実行するための処理部を構成する。
メモリ１ｂには、ＤＢ業務処理部１０と、ＤＢ運用処理部２０と、を構成するためのプログラムが記憶される。ＤＢ業務処理部１０は、オンライン要求解析部１１と、オンライン処理部１２と、バッチ要求解析部１３と、バッチ処理部１４と、を含めて構成される。ＤＢ運用処理部２０は、ＤＢロード処理部２１と、ＤＢバックアップ処理部２２と、ＤＢ同期化指示部２３と、ＤＢ回復処理部２４と、を含めて構成される。これらの各処理部の詳細は、後記する。
メモリ１ｂには、データとしてインメモリデータバッファ１５、および、更新管理テーブル１６が記憶される。インメモリデータバッファ１５は、データベース５２のデータ内容をロード処理９２（図２参照）するときの、データの格納先である。更新管理テーブル１６は、ロード処理９２されたデータベース５２のデータ内容からの更新内容を、管理するテーブルである。
【００１９】
ストレージ装置５は、データベース管理装置１によって管理されるデータを、自装置内の記憶装置５１のデータベース５２に格納する。なお、ストレージ装置５は、データベース５２を記憶する記憶媒体について、ＨＤＤ（Hard disk drive）やＳＳＤ（Solid State Drive）などの記憶媒体が内蔵されている記憶装置５１として構成してもよいし、読み書き可能なＤＶＤ（Digital Versatile Disc）ドライブなどの記憶媒体が着脱可能な記憶装置５１として構成してもよい。
【００２０】
バックアップ装置８は、例えば、ストレージ装置であるが、データベース管理装置１に直接接続された外部記憶媒体であってもよいし、テープデバイスなどであってもよい。バックアップ装置８は、データベース管理装置１によって管理されるインメモリデータバッファ１５のデータのフルバックアップデータ８２ａおよび差分バックアップデータ８２ｂを記憶装置８１に格納する。フルバックアップデータ８２ａは、インメモリデータバッファ１５の全部のデータを格納するデータであり、差分バックアップデータ８２ｂは、インメモリデータバッファ１５の一部のデータ（更新されたデータ）を格納するデータである。
【００２１】
さらに、バックアップ装置８は、ＤＢ同期化処理部８３を有する。ＤＢ同期化処理部８３は、差分バックアップデータ８２ｂをデータベース５２に差分更新（いわゆるパッチの適用）することで、インメモリデータバッファ１５と、データベース５２とのデータの同一化状態（同期化状態）を実現する。なお、差分更新処理の契機は、１回の更新が発生するたびに実行してもよいし、複数回の更新をためておいてから、まとめて実行してもよい。
このように、バックアップ装置８のバックアップデータからストレージ装置５の差分更新処理を実行することにより、データベース管理装置１の負荷を軽減することができる。
【００２２】
端末７は、ユーザからの入力を受け付ける入力手段などを介して、業務処理を実行するための処理要求を受け付ける。業務処理は、主に営業時間内に実行されるオンライン処理９１（図２参照）と、主に営業時間外に実行されるバッチ処理９３（図２参照）と、に分類される。
オンライン処理９１と、バッチ処理９３との主な違いは、データのアクセス先である。オンライン処理９１では、ストレージ装置５のデータベース５２に対してデータアクセスを実行する。バッチ処理９３では、データベース管理装置１のインメモリデータバッファ１５に対して高速にデータアクセスを実行する。
【００２３】
データベース管理装置１は、各データベース（データベース５２、インメモリデータバッファ１５、記憶装置８１のデータ）に格納されたデータを管理するとともに、端末７からのデータのアクセス要求を受け、管理対象のデータの読み書きを制御する。
まず、オンライン処理９１を実行するために、端末７は、データベース管理装置１との間にトランザクションを設ける。オンライン処理実行の過程でストレージ装置５のデータベース５２へのデータアクセスが必要になると、そのトランザクションを介して、データベース管理装置１にデータのアクセス要求を送信する。アクセス要求は、例えば、ＳＱＬ（Structured Query Language）の文法に従って、記述される。
【００２４】
アクセス要求を受けたデータベース管理装置１のオンライン要求解析部１１は、そのアクセス要求を構文解析して、その結果をオンライン処理部１２に通知する。オンライン処理部１２は、ストレージ装置５のデータベース５２に対して、アクセス要求が示すデータアクセスの内容を処理する。
【００２５】
一方、バッチ処理９３を実行するために、端末７は、データベース管理装置１にデータのアクセス要求などを送信する。アクセス要求を受けたデータベース管理装置１のバッチ要求解析部１３は、そのアクセス要求を構文解析して、その結果をバッチ処理部１４に通知する。バッチ処理部１４は、自装置のインメモリデータバッファ１５に対して、アクセス要求が示すデータアクセスの内容を処理する。このインメモリデータバッファ１５へのデータアクセスは、自装置内で完結し、かつ、メモリ装置という高速なアクセスメディアを使用するため、一般的に、ストレージ装置５のデータベース５２に対するデータアクセスよりも、高速なアクセスが期待できる。
【００２６】
ＤＢ運用処理部２０は、端末７などによって送信された、データベースの運用管理に関する各種要求を受け付ける。各種要求とは、例えば、ロード処理要求、バックアップ処理要求、同期化処理要求、および、回復処理要求が挙げられる。
ＤＢロード処理部２１は、データベース５２のデータ内容をインメモリデータバッファ１５に読み込むための「ロード処理要求」を処理する。
ＤＢバックアップ処理部２２は、インメモリデータバッファ１５の更新内容を差分バックアップデータ８２ｂに書き出すための「バックアップ処理要求」を処理する。
ＤＢ同期化指示部２３は、差分バックアップデータ８２ｂをデータベース５２に差分更新する指示をＤＢ同期化処理部８３に与えるための「同期化処理要求」を処理する。
ＤＢ回復処理部２４は、インメモリデータバッファ１５のデータ内容について、データベース５２、フルバックアップデータ８２ａ、および、差分バックアップデータ８２ｂのうちの少なくとも１つのデータから回復するための「回復処理要求」を処理する。
【００２７】
図２は、データベース管理システムの処理について、主なデータの流れを示す説明図である。
業務処理のオンライン処理９１は、端末７からのアクセス要求をデータベース５２に反映する処理であり、オンライン処理部１２によって実行される。
ロード処理９２（インメモリ化処理）は、オンライン処理９１されたデータベース５２のデータ内容をインメモリデータバッファ１５にそのまま読み込む処理であり、ＤＢロード処理部２１によって実行される。
業務処理のバッチ処理９３は、端末７からのアクセス要求をロード処理９２されたインメモリデータバッファ１５に反映する処理であり、バッチ処理部１４によって実行される。
【００２８】
バックアップ処理９４（差分データ送信処理）は、インメモリデータバッファ１５のデータ内容のうちのバッチ処理９３によって更新された差分データを、差分バックアップデータ８２ｂとして書き出す処理であり、ＤＢバックアップ処理部２２によって実行される。
同期化処理９５（差分データ反映処理）は、バックアップ処理９４された差分バックアップデータ８２ｂをデータベース５２に反映する処理であり、ＤＢ同期化指示部２３の指示を受けたＤＢ同期化処理部８３によって実行される。
回復処理９６は、障害などでインメモリデータバッファ１５のデータ内容が消失したときに、バックアップ処理９４された差分バックアップデータ８２ｂなどをもとに、インメモリデータバッファ１５のデータ内容を回復する処理であり、ＤＢ回復処理部２４によって実行される。
【００２９】
図３は、図２で説明した各処理の実行順序を示す説明図である。なお、この説明図は、横軸を時間軸とするガントチャート形式で記述しており、縦方向には、各処理を実線矢印または点線矢印で示している。各処理の実行順序について、適宜図４〜図７を参照しつつ、説明する。
【００３０】
時刻ｔ０までに実行されるオンライン処理９１（Ｏ１）は、オンライン処理部１２が営業時間内に実行する処理であり、その処理結果がデータベース５２に書き込まれる。なお、図中の各データ構造の内部に記載されている「（Ｏ１）」などの表記は、そのデータ構造がどの処理の結果であるかを示す。
【００３１】
時刻ｔ０〜時刻ｔ１に実行されるバックアップ処理（Ｏ１）は、ＤＢバックアップ処理部２２が、オンライン処理９１（Ｏ１）の結果であるデータ内容を、データベース５２からフルバックアップデータ８２ａへと書き出す処理である。例えば、図４では、ページＩＤ＝１〜８のデータが、すべて書き出されている。
なお、インメモリデータバッファ１５、フルバックアップデータ８２ａ、および、差分バックアップデータ８２ｂ（図５参照）は、それぞれデータベースのデータ内容が記憶される記憶領域であり、ページ単位でそのページを特定する「ページＩＤ」と、その「ページ内容」とを対応づけて管理する。ここで、図４では、ページ内容として１ページに１つの整数値（例えば「５０」）としたが、これはあくまで説明用の一例であり、実際には１ページには固定長または可変長のデータベースが扱う各種データ（バイナリデータ、テキストデータなど）が記憶される。また、更新管理テーブル１６は、インメモリデータバッファ１５の各ページについての更新の有無を示す「フラグ」を格納する。
【００３２】
時刻ｔ１〜時刻ｔ２に実行されるロード処理９２（Ｏ１）は、ＤＢロード処理部２１が、オンライン処理９１（Ｏ１）の結果であるデータ内容を、データベース５２からインメモリデータバッファ１５へと読み出す処理である。例えば、図４では、ページＩＤ＝１〜８のデータが、すべて読み出されている。このインメモリデータバッファ１５へのロード処理９２に伴い、ＤＢロード処理部２１は、更新管理テーブル１６のフラグをすべて「未更新」に初期化する（図４参照）。
【００３３】
時刻ｔ２〜時刻ｔ３に実行されるバッチ処理９３（Ｂ１）は、バッチ処理部１４が、端末７からのアクセス要求のバッチ要求解析部１３による解析結果を受けて、インメモリデータバッファ１５のデータ内容を更新する処理である。例えば、図５では、ページＩＤ＝Ｐ２，Ｐ４，Ｐ５，Ｐ７の４つのページが、バッチ処理９３により更新されている。バッチ処理部１４は、ページの更新に伴い、更新管理テーブル１６の更新されたページに該当するフラグを「更新」へと変更する。
【００３４】
時刻ｔ３〜時刻ｔ４に実行されるバックアップ処理９４（Ｂ１）は、ＤＢバックアップ処理部２２が、バッチ処理９３（Ｂ１）によるインメモリデータバッファ１５の更新内容を、差分バックアップデータ８２ｂに書き出す処理である。例えば、図５では、更新されたページＩＤ＝Ｐ２，Ｐ４，Ｐ５，Ｐ７の４つのページのページ内容が、差分バックアップデータ８２ｂへと書き出されている。
【００３５】
時刻ｔ４〜時刻ｔ５に実行される同期化処理９５（Ｂ１）は、ＤＢ同期化指示部２３およびＤＢ同期化処理部８３が、バッチ処理９３（Ｂ１）の差分バックアップデータ８２ｂを、オンライン処理９１（Ｏ１）の結果であるデータベース５２のデータ内容に反映する処理である。例えば、図６では、ページＩＤ＝Ｐ２，Ｐ４，Ｐ５，Ｐ７の４つのページのページ内容が、データベース５２へと反映されている。
【００３６】
時刻ｔ４〜時刻ｔ６に実行されるバッチ処理９３（Ｂ２）は、バッチ処理部１４が、インメモリデータバッファ１５のデータ内容を更新する処理である。例えば、図５では、ページＩＤ＝Ｐ５，Ｐ７，Ｐ８の３つのページが、バッチ処理９３（Ｂ２）により更新されている。バッチ処理部１４は、ページの更新に伴い、更新管理テーブル１６の更新されたページに該当するフラグを「更新」へと変更する。
【００３７】
ここで、図６を参照すると、同期化処理９５（Ｂ１）と、バッチ処理９３（Ｂ２）とは、互いにデータアクセスする対象となるデータが異なるため、データ衝突が発生せず、並行処理が可能である。つまり、同期化処理９５（Ｂ１）と、バッチ処理９３（Ｂ２）とを互いに時刻ｔ４を起点とする並行処理をすることにより、この両処理を並行処理せずに直列に処理する方式と比べ、処理時間の総和を短縮することができる。
【００３８】
時刻ｔ６〜時刻ｔ７に実行されるバックアップ処理９４（Ｂ２）は、ＤＢバックアップ処理部２２が、バッチ処理９３（Ｂ２）によるインメモリデータバッファ１５の更新内容を、差分バックアップデータ８２ｂに書き出す処理である。例えば、図６では、更新されたページＩＤ＝Ｐ５，Ｐ７，Ｐ８の３つのページのページ内容が、差分バックアップデータ８２ｂへと書き出されている。
【００３９】
時刻ｔ７〜時刻ｔ８に実行される同期化処理９５（Ｂ２）は、ＤＢ同期化指示部２３およびＤＢ同期化処理部８３が、バッチ処理９３（Ｂ２）の差分バックアップデータ８２ｂを、バッチ処理９３（Ｂ１）の結果であるデータベース５２のデータ内容に反映する処理である。例えば、図７では、ページＩＤ＝Ｐ５，Ｐ７，Ｐ８の３つのページのページ内容が、データベース５２へと反映されている。
【００４０】
時刻ｔ８から実行されるオンライン処理９１（Ｏ２）は、オンライン処理部１２が営業時間内に実行する処理であり、その処理結果がデータベース５２に書き込まれる。
【００４１】
なお、図６、図７を参照すると、差分バックアップデータ８２ｂは、バッチ処理９３（Ｂ１，Ｂ２）ごとに作成されている。よって、ＤＢ同期化処理部８３は、複数のバッチ処理９３に対応する差分バックアップデータ８２ｂを比較し、更新が互いに重複するページ（例えば、ページＩＤ＝Ｐ５，Ｐ７）を発見したときには、データの上書きの発生を抑制するために、時間帯が前に該当するページの更新（例えば、Ｐ５＝４０，Ｐ７＝１０）を省略してもよい。
【００４２】
図８は、データ回復処理９６の概要を示す説明図である。この説明図は、図３と同様に、横軸を時間軸とするガントチャート形式で記述される。図８の時刻ｔ０〜ｔ５の時間帯での処理は、図３と同じである。
【００４３】
時刻ｔ１２において、バッチ処理９３（Ｂ２）を実行しているときに、そのバッチ処理９３（Ｂ２）に障害が発生する。ＤＢバックアップ処理部２２は、オンライン処理部１２から障害発生の通知を受け、インメモリデータバッファ１５の内容を、バッチ処理９３（Ｂ１）の結果の時点まで、回復処理９６を行う。
【００４４】
図９では、例えば、回復処理９６（１）〜（３）の例が示されている。
回復処理９６（１）では、フルバックアップデータ８２ａをそのままインメモリデータバッファ１５にコピーすることで、オンライン処理９１（Ｏ１）の結果の時点まで回復する。
回復処理９６（２）では、回復処理９６（１）の後に、バッチ処理９３（Ｂ１）の実行結果である差分バックアップデータ８２ｂを、インメモリデータバッファ１５に反映することで、バッチ処理９３（Ｂ１）の結果の時点まで回復する。
回復処理９６（３）では、回復処理９６（２）の後に、バッチ処理９３（Ｂ２）の実行結果である差分バックアップデータ８２ｂを、インメモリデータバッファ１５に反映することで、バッチ処理９３（Ｂ２）の結果の時点まで回復する。
【００４５】
このように、ＤＢバックアップ処理部２２は、フルバックアップデータ８２ａおよび各時点での差分バックアップデータ８２ｂを用いて、インメモリデータバッファ１５のデータ内容を回復する。
例えば、図８の時刻ｔ１２〜時刻ｔ１３では、ＤＢバックアップ処理部２２は、回復処理９６（１）の後に回復処理９６（２）を実施することにより、インメモリデータバッファ１５の内容を、バッチ処理９３（Ｂ１）の結果の時点まで、回復処理９６を行う。
そして、図８に戻り、回復処理後、時刻ｔ１３〜ｔ１４において、バッチ処理部１４は、再度バッチ処理９３（Ｂ２）を回復後のインメモリデータバッファ１５に対して実施する。その後の図８の動作は、図３と同じである。
【００４６】
図１０は、ＤＢバックアップ処理部２２が実行する、各バッチ処理結果のバックアップ処理を示すフローチャートである。
Ｓ１０１において、更新管理テーブル１６のページＩＤを順に選択するループを開始する。以下、このループにおいて選択されているページを、選択ページと呼ぶ。
Ｓ１０２において、更新管理テーブル１６における選択ページの「フラグ」が「更新」か否かを判定する。Ｓ１０２でＹｅｓならＳ１０３へ、ＮｏならＳ１０４へ進む。
Ｓ１０３において、インメモリデータバッファ１５の選択ページにおける「ページ内容」を、差分バックアップデータ８２ｂとして書き出すとともに、更新管理テーブル１６における選択ページの「フラグ」を「未更新」へと戻す。
Ｓ１０４において、Ｓ１０１からのループを終了する。
以上の図１０の処理では、書き出すページを更新が行われたページに限定する差分形式のバックアップ処理９４により、全てのページを書き出す方式に比べ、ディスク書き出し量を削減することができる。
【００４７】
図１１は、ＤＢ回復処理部２４が実行する、障害発生時の回復処理９６を示すフローチャートである。
Ｓ２０１において、障害発生時のバッチ処理９３と並行処理されている同期化処理９５が完了したか否かを判定する。Ｓ２０１でＹｅｓならＳ２１１へ、Ｓ２０１でＮｏならＳ２２１へ、それぞれ移行する。
Ｓ２１１において、同期化されたデータベース５２のデータ内容をそのままインメモリデータバッファ１５へとロード処理９２することにより、インメモリデータバッファ１５のデータ内容を回復する。そして、処理をＳ２３１へ進める。
Ｓ２２１において、フルバックアップデータ８２ａのデータ内容をそのままインメモリデータバッファ１５へとロード処理９２することにより、インメモリデータバッファ１５のデータ内容を、バッチ処理前の時点まで回復する。
Ｓ２２２において、差分バックアップデータ８２ｂのデータ内容を、時刻が古い順にインメモリデータバッファ１５へと差分反映処理することにより、インメモリデータバッファ１５のデータ内容を、障害発生時に実行していたバッチ処理９３より１つ前のバッチ処理９３の終了時点まで回復する。そして、処理をＳ２３１へ進める。
Ｓ２３１において、障害発生時のバッチ処理９３を、最初から再開するように、バッチ処理部１４に指示する。
【００４８】
以上説明した本実施形態によれば、所定のバッチ処理９３（例えば、Ｂ２）と、その前のバッチ処理結果（例えば、Ｂ１）の同期化処理９５とを互いに並行処理することにより、処理時間の総和を短縮することができる。
さらに、バッチ処理結果を差分バックアップデータ８２ｂという差分形式で管理することにより、同期化処理９５の処理時間を短縮することができる。
【符号の説明】
【００４９】
１      データベース管理装置
１ａ    プロセッサ
１ｂ    メモリ
１ｃ    インタフェース
５      ストレージ装置
６      ネットワーク
７      端末
８      バックアップ装置
１０    ＤＢ業務処理部
１１    オンライン要求解析部
１２    オンライン処理部
１３    バッチ要求解析部
１４    バッチ処理部
１５    インメモリデータバッファ
１６    更新管理テーブル
２０    ＤＢ運用処理部
２１    ＤＢロード処理部
２２    ＤＢバックアップ処理部
２３    ＤＢ同期化指示部
２４    ＤＢ回復処理部
５１    記憶装置
５２    データベース
８１    記憶装置
８２ａ  フルバックアップデータ
８２ｂ  差分バックアップデータ
８３    ＤＢ同期化処理部
９１    オンライン処理
９２    ロード処理
９３    バッチ処理
９４    バックアップ処理
９５    同期化処理
９６    回復処理
【図１】
2010181924.tif 000003
【図２】
2010181924.tif 000004
【図３】
2010181924.tif 000005
【図４】
2010181924.tif 000006
【図５】
2010181924.tif 000007
【図６】
2010181924.tif 000008
【図７】
2010181924.tif 000009
【図８】
2010181924.tif 000010
【図９】
2010181924.tif 000011
【図１０】
2010181924.tif 000012
【図１１】
2010181924.tif 000013
【図１２】
2010181924.tif 000014
【図１３】
2010181924.tif 000015