説明

一括登録されるデータに係る情報システム、方法、およびプログラム

【課題】ログを利用したデータベース二重化方式の特徴を活かしつつ、一括登録での煩雑なユーザ操作を低減する。
【解決手段】正システムは、正側データベースと、外部装置から複数のレコードのデータを一括登録する手段と、ログ搬送路を通じて複数のレコードのデータを一括登録する処理の実行を示す一括登録ログを副システムに通知する手段と、データ搬送路を通じて一括登録された複数のレコードのデータを副システムに転送する手段と、を備え、副システムは、取得したログが一括登録ログであったときに、データ搬送路を通じて一括登録の対象である複数のレコードのデータを取得する手段と、一括登録の対象である複数のレコードのデータを副側データベースに一括反映する手段と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、データベース等の情報システムの二重化に関する。
【背景技術】
【0002】
災害対策や負荷分散を目的としたデータベースの二重化を実現する方式として、更新ログを利用したデータベースの二重化技術がある。この技術では、応用プログラムからのSQL(Structured Query Language)文発行による複写元データベース(正システム)の更新結果である更新ログが、複写先データベース(副システム)に搬送され、副システムのデータに反映される。図1に、その技術の概要を示す。この技術では、データベースを正システムと副システムで構成する。正システムと副システムとはログ搬送路で接続される。ログ搬送路は、複写機構付きディスク装置、ファイル転送機能およびネットワーク転送などによって構成される。
【0003】
正システムは、複写元となるデータベース、SQL処理を実行するデータベース管理システム(DataBase Management System:以降DBMSと省略)、正システムのログを副システムに転送する二重化システムを有する。また、副システムは、複写先となるデータベース、SQL処理を実行するデータベース管理システム(DBMS)、正システムからのログを受け取る二重化システムを有する。
【0004】
このシステムでは、例えば、SQLによるデータベース更新指示をDBMSが受け付け、正システムのデータベースを更新する。このとき、正システム側で取得されるログが、二重化システムおよびログ搬送路を通じて、副システム側に引き渡される。副システムは、引き渡されたログにしたがって、副システム側のデータベースを更新する。
【0005】
この技術では、データベースのデータを格納しているディスクボリュームそのものを二重化する技術と比べて、以下の特徴がある。
(1)正システムと副システムとの間のデータ搬送量が大幅に削減可能である。
(2)データベースの二重化運用を継続した状態で副システムの活用が可能である。すなわち、このシステムでは、正システムが現用系システムとして動作中に、副システムも活性状態にある。したがって、副システムのデータが、参照業務などに関連するシステムから利用可能である。ここで、参照業務とは、データを更新することなく、読み出して利用する業務をいう。
(3)両システムのデータベースの物理構造、例えば、ディスクボリュームの配置に柔軟性がある。例えば、正システムと副システムとが、互いに遠隔で、異なる物理構造のディスクに構築可能である。また、両システムの論理構造にも柔軟性がある。例えば、それぞれ異なるパス名を有する領域に両システムを構築可能である。
【0006】
ただし、本技術を利用したデータベース運用では、ログは、例えば、レコード単位の操作に伴って記録される。一方、データベースでの処理には、外部からファイルをデータベースに一括登録する処理(ロード機能ともいう)がある。一括登録とは、一回の登録処理で、外部ファイルの複数のレコードをデータベースに格納する処理をいう。ファイルのデータをデータベースに一括登録する場合、通常、データを更新した旨を記録する更新ログは生成されず、正システムでのファイルの一括登録の結果が副システムには反映されない。このため、ファイルの一括登録を二重化されたデータベースで実施するため、利用者が正システムでの一括登録とは別に、副システム側で一括登録を実行する必要があり、利便性を阻害する原因となっている。そのような一括登録を二重化システムで実行するため、例えば、以下のような運用がなされている。
(a)二重化システムを停止して、副システムで正システムと同様の一括登録を実行する。
(b)二重化システムが実装しているジョブ連携機能などを利用して、副システムで正システムと同様の一括登録を実行する。ただし、いずれの運用によっても、ユーザは正システムと副システムとで、同様の操作を繰り返す必要があり、手順が煩雑となっている。
【0007】
本機能を実行するためには、前述したいずれの選択肢でも、事前に副システムへ正システムで一括登録されるファイルと同じファイルを搬送し、また、利用者業務として実行するためのスクリプト(一般的には、一括登録を実行する手続き文をスクリプト言語で記述したもの)を配置しておく必要がある(図2)。
【特許文献1】特開2002−63058号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
開示の技術の課題は、ログを利用したデータベース二重化方式の特徴を活かしつつ、一括煩雑なユーザ操作を低減することにある。
【課題を解決するための手段】
【0009】
開示の技術の一態様は、前記課題を解決するために、ログ搬送路で接続された正システムと副システムとを有する情報システムによって例示される。ここで、正システムは、正側データベースと、正側データベースにおいてレコード単位でデータを処理する正側レコード処理手段と、正側レコード処理手段によってデータが処理されたときに、その処理結果をログに記録するログ記録手段と、ログ記録手段に記録されたログを、ログ搬送路を通じて副システムに転送する手段と、外部装置から複数のレコードのデータを一括登録する手段と、複数のレコードのデータを一括登録する処理の実行を示す一括登録ログを、ログ搬送路を通じて副システムに通知する手段と、一括登録された複数のレコードのデータを、データ搬送路を通じて副システムに転送する手段と、を備える。
【0010】
また、副システムは、副側データベースと、ログ搬送路を通じて正システムからログを取得する手段と、取得したログにしたがって、副側データベースにおいてレコード単位でデータを処理する副側レコード処理手段と、取得したログが一括登録ログであったときに、データ搬送路を通じて一括登録の対象である複数のレコードのデータを取得する手段と、一括登録の対象である複数のレコードのデータを副側データベースに一括反映する手段と、を備える。
【0011】
開示の技術によれば、一括登録ログと一括登録された複数のレコードのデータがデータ搬送路を通じて正システムから副システムに転送され、副システムのデータベースに反映される。したがって、個々のレコードごとにログを取得し、転送する代わりに、一括登録される複数のデータについてログを取得し、転送する。また、正システムで一括登録の対象である複数のレコードのデータが、副システムに転送され、データベースに反映される。したがって、ログ取得の無駄を低減した上で、一括登録されるデータを二重化できる。
【発明の効果】
【0012】
本情報システムによれば、ログを利用したデータベース二重化方式の特徴を活かしつつ、一括登録での煩雑なユーザ操作を低減することができる。
【発明を実施するための最良の形態】
【0013】
以下、図面を参照して本発明を実施するための最良の形態(以下、実施形態という)に係る情報システムについて説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
【0014】
<システムの概要>
本情報システムは、正システムで発生したログを副システムに搬送することによってデータベースを二重化するシステムである。データベースは、応用プログラムに対して、通常、以下の機能を提供する。
(1)行と呼ばれるレコードの書き込み、レコード内のデータの更新、検索機能が提供される。この機能では、例えば、レコードの書き込みともに、ログが生成される。生成されたログは、正システムにおけるデータベースの更新記録として保存されるともに、ログ搬送路を通じて副システムに搬送される。副システムに搬送されたログは、副システム側にて、データベースの更新に利用される。
(2)レコード単位でのデータベースへの書き込み以外に、複数のレコードを含むファイル単位での一括登録機能、すなわち、ロード機能が提供される。ロード機能では、レコードごとにログを取得しつつ、データベースにデータを書き込むという処理は実行されない。ロード機能では、入力ファイル内の複数のレコードが一括してデータベースに書き込まれる。このとき、レコード単位でのログの取得がなされないため、ロード機能の実行中に、エラーが発生すると、その時点までに書き込まれたデータを救済することはできない。すなわち、ロード機能での実行エラーが発生すると、最初からロード機能をやり直す必要がある。また、レコード単位でのログの取得がなされないため、ログを搬送することによって、正システムでの書き込みを副システムに反映することができない。
(3)ロード機能による一括登録の二重化
そこで、本情報システムでは、正システムでのログの発生を伴わないデータベースへのデータの一括登録機能においても、データベースの二重化を実現する。
【0015】
そのためには、ロード機能によるデータベース更新を副システムで再現させる必要がある。そこで、ロード機能によって格納されたデータ(行、あるいはレコードともいう)を副システムに反映するため、正システムでのロード機能の実行によるデータベースへのデータ書き込みとともに、データ更新ログを副システムに搬送する手段が必要となる。
【0016】
図3に、簡易な手順によるロード機能の二重化をデータベースへの操作ログの搬送によって実現する処理を例示する。ここでは、データベース記録されるログのうち、データを操作する機能の起動を示すログを操作ログと呼ぶ。なお、データベースで記録されるログのうち、個々のレコードの更新時に記録されるログを更新ログと呼ぶとことにする。ただし、本実施形態では、操作ログ、更新ログ、をともに、区別せず、単にログと呼ぶ場合もある。操作ログおよび更新ログを生成する正システムのCPU(あるいはDBMS)が、ログ記録手段に相当する。
【0017】
この例では、正システムでのロード機能によるデータベースへのデータ書き込みとともに、データ更新ログを副システムに搬送する。この手順では、ロード機能によって、複数レコードの書き込みが正システムのデータベースで発生したときに、通常のレコード単位でのデータの書き込みと同様に、1レコードの書き込みが完了するごとに、更新ログを発生し、ログ搬送路を通じて、副システムに搬送する。副システムは、ログ搬送路を通じて、取得された更新ログにしたがって、通常のレコード単位でのデータの書き込みと同様に、データベースを更新すればよい。
【0018】
しかしながら、このように、正システムでのロード機能の実行において、応用プログラムからのデータベース更新によって発生する行(レコード)単位の更新ログを取得した場合、以下の問題が生じる。その理由は、元々、ロード機能は入力データ(表の行)を纏まった単位で一括更新することにより高速化を実現しているからである。
(A)ロード機能の性能を維持できなくなる。更新ログを取得するオーバヘッドが処理対象の行(レコード)単位に発生する。
(B)ロード機能による更新結果を副システムに反映する時間が大幅に遅延する。副システムの二重化システムによるデータベース更新を更新ログで行うため、行(レコード)ごとに必要なデータベースの更新コスト(行を格納したページを再読み込みするなど)が必要となる。そのため、副システムでの更新ログ反映時間が、正システムでのロード機能の処理時間よりも多く必要となり、システム間のデータの差異が一時的に拡大する事象が発生する。この技術では、二重化の目的が、短時間での障害からの復旧である場合、障害発生時のデータロスト量が増加し、負荷分散の場合には、参照するデータの最新性が損なわれる結果となる。
【0019】
そこで、本情報システムは、以下の処理を実現することによって、上記の問題(A)(B)の発生を抑制しつつ、ロード機能によるデータ更新の二重化を実現する。
【0020】
すなわち、本情報システムは、正システムでのロード機能による更新結果として、行(レコード)単位の更新ログでなく、格納する行を纏った単位(以降、格納データ)で取得し、搬送行を纏めて搬送する。これによって、行ごとに発生する取得コストを低減する。また、搬送するデータ量(データベース資源を示す情報など)を削減する。なお、纏まった単位とは、例えば、データベース管理システムがデータを管理するページである。ページは、ブロックとも呼ばれる。
【0021】
一方、副システムでのデータベース更新は、搬送された行の纏まりで一括更新する。行の纏まりからデータベース内のページ構造を作成して、データベースを配置するディスクボリュームに直接書き出すことにより、従来の更新ログによる反映方式で行われる行単位のデータベースの更新コスト(ページの再読み込みなど)が低減される。このため、正システムでのロード機能の実行による一括登録の結果を高速に副システムに反映することが可能となる。また、正システムがデータベース内のページ構造を取得し、副システムへ搬送する場合には、副システムのページ構造の作成処理も省略することが可能となる。
【0022】
図4に、本実施形態におけるロード機能の動作概要を示す。図4にしたがって、まず、正システムでのロード機能の実行手順を説明する。以下の項目(1)〜(3)は、図4の中の正システムの処理(1)〜(3)に対応する。
(1)ロード機能の実行が開始すると、正システムは、ロード機能の開始を示す操作ログを取得する。正システムは、ロード機能の開始を示す操作ログ(一括登録ログに相当)を、ログ搬送路を通じて副システムに転送する。
(2)次に、正システムは、入力ファイルから、データベース(複写元データベース)への格納データを所定の纏まりで取得し、データベースに格納する。このとき、正システムは、データベースの格納データおよびその格納データの格納に伴う更新ログを所定の纏まりで取得する。ここで、所定の纏まりとは、データベースに格納される複数の行からなる纏まりである。通常は、正システムは、データベースのページ単位にデータベースに格納される格納データを取得する。正システムは、取得したページ単位の格納データおよび更新ログを、ログ搬送路を通じて副システムに転送する。
(3)正システムは、ロード機能の終了を示す操作ログを取得する
次に、副システムの動作を説明する。以下の項目(4)〜(6)は、図4の中の副システムの処理(4)〜(6)に対応する。
(4)副システムは、ログ搬送路を通じて(1)の操作ログを取得する。副システムが、ロード機能の開始を示す操作ログを認識すると、副システムは、データベースへの反映方式を纏まった単位での格納方式に切り替える。
(5)副システムは、ログ搬送路を通じて(2)のページ単位の格納データおよび操作ログを取得する。そして、副システムは、ページ単位の格納データを基に、データベース(複写先データベース)を一括更新する。
(6)副システムが、(3)のロード機能の終了を示す操作ログを認識すると、反映方式
をログ単位の適用方式に切り戻す。
【0023】
図4の処理を実現する環境としての搬送経路は、例えば、計算機システム間のファイル転送、あるいは、複写機能付きディスク装置を用いることができる。この場合に、単一のログ搬送路(同一種類の通信手段に相当)を通じて、操作ログとページ単位の格納データを転送してもよい。また、複数のログ搬送路、例えば、複数対の複写機能付きハードディスク装置を用いて操作ログとページ単位の格納データを転送してもよい。
【0024】
図5に、複数のログ搬送路によってデータ転送するシステムの例を示す。図5では、副システム側の構成は省略されている。ロード機能によって取得された格納データは大量データとなることから、このような構成によって、搬送経路を分散配置することが可能となる。ただし、データベースへの反映の実行順序を保証するために、操作ログは同じ経路を共有することが必要である。
【0025】
図5の構成では、データベースへの格納データを転送するログ搬送路10(データ搬送路に相当)と、ロード機能による操作ログおよびSQLによる更新ログを転送するログ搬送路11(ログ搬送路に相当)とが設けられている。この例では、正システム側において、以下の処理が発生している。
(1)ロード機能に伴う格納データに関連する操作ログA
(2)格納データのデータベースへの格納
(3)ロード機能に伴う格納データに関連する操作ログB
(4)SQLによる更新ログ
この場合に、操作ログA、BおよびSQLによる更新ログは、ログ搬送路11を通じて正システムから副システムに転送されるため、副システム側では、ログ搬送路11を通じて受け取った操作ログA、Bおよび更新ログの順に、データベースへ反映する。このような処理により、忠実に、正システムでのロード機能によるデータベースへの格納結果を副システムのデータベースに反映できる。
【0026】
ログ搬送路内のデータを副システムに反映した時点で、このログ搬送路内の当該データの領域が再利用可能となる。このため、ロード機能の実行によって発生する格納データをすべて保持するだけの容量は必要とならない。
【0027】
図6に、副システムに搬送される格納データのデータ構造を例示する。図6のように、副システムに搬送される格納データは、制御情報と、複数の行とを含む。この複数の行の纏まりがページ(あるいはブロック)である。また、制御情報には、データベース格納先の資源(表ともいう)を表す識別子、ページ番号、ページ内の有効領域長等が含まれる。この有効領域長以外の領域は、ページ内の空きスペースとなる。
【0028】
図6の例では、正システムにおいて、ロード機能が作成するページ構造には、ページ内に空きスペースが含まれている。この空きスペースは、ログ搬送路には格納されない。すなわち、正システムは、ページ内の有効領域長の格納データをログ搬送路に引き渡す。そして、副システム側で、制御情報の有効領域長を基に、空きスペースを復元する。
【0029】
以上のように、このデータ構造の特徴として、ページ長が行の境界とならない場合に、空きスペースを格納データとして搬送しないことを例示できる。これによって、本情報システムは、ログ搬送路の搬送データ量の削減を可能としている。さらに、副システムでのページ構造の作成コストも削減可能となる。
【実施例】
【0030】
図7に、正システムが実現する処理構成を例示する。正システムは、データベース1(
正側データベースに相当)と、ロード機能を有するデータベース管理システム(DBMS)2と、二重化システム3とを含み、ログ搬送路5を通じて副システムに接続される。データベース1は、例えば、ハードディスクから構成される。DBMS2と、二重化システム3とは、コンピュータがコンピュータプログラムを実行することで実現される。このコンピュータは、例えば、CPU、メモリ、ハードディスク、通信インターフェース、着脱可能記憶媒体駆動装置等を含む。このコンピュータは、通信インターフェースを通じて外部のコンピュータ、サーバと通信可能である。また、このコンピュータは、着脱可能記憶媒体を通じて、データを読み込み可能である。さらに、ログ搬送路5は、例えば、ハードディスクの1つであり、副システム側のハードディスクへの複写機能を有するものを用いることができる。
【0031】
図7のように、ロード機能では、入力ファイル読み込み処理タスク21、データベースページ作成処理タスク23、およびデータベース書き込み処理タスク25(正側レコード処理手段に相当)が実行される。ロード機能を実行するDBMS2が、一括登録する手段に相当する。入力ファイル読み込み処理タスク21は、データベース1に格納すべき入力ファイル4を読み込む。入力ファイル4(外部装置に相当)は、ネットワーク上のサーバあるいは、着脱可能記憶媒体上に格納されている。入力ファイル読み込み処理タスク21は、読み込んだ入力ファイル4のデータを入力ファイル読み込みバッファ22に格納する。
【0032】
データベースページ作成処理タスク23は、入力ファイル読み込みバッファ22上のデータから、データベース1に書き込むべきページ構造のデータを作成する。作成されたページ構造のデータは、データベース書き込みバッファ24に格納される。このとき、データベースページ作成処理タスク23は、データベース書き込みバッファ24のページ構造のデータを二重化システム3(格納データ作成処理タスク31)に転送する。言い換えると、データベースページ作成処理タスク23は、格納データ作成処理タスク31に、書き込みバッファ24のページ構造のデータの読み出しを指示する。このとき、操作ログ、更新ログ(一括登録ログ)が生成され、二重化システムに引き渡される。一方、データベース書き込み処理タスク25は、データベース書き込みバッファ24のページ構造のデータをデータベース1に格納する。
【0033】
二重化システム3(ログ搬送路を通じて副システムに転送する手段、および副システムに通知する手段に相当)は、格納データ作成処理タスク31、およびログ搬送路書き込み処理タスク33を含む。格納データ作成処理タスク31は、DBMS2のロード機能(データベースページ作成処理タスク23)が作成したページ構造のデータ、操作ログ、および更新ログを受信する。そして、格納データ作成処理タスク31は、ページ構造のデータから空きスペース等を圧縮した圧縮データを作成する。そして、格納データ作成処理タスク31は、圧縮データ、操作ログ、および更新ログをログ搬送路書き込みバッファ32に格納する。
【0034】
ログ搬送路書き込み処理タスク33は、ログ搬送路書き込みバッファ32の圧縮データをログ搬送路5に格納する。ログ搬送路5は、圧縮データ、操作ログ、および更新ログを副システム側のハードディスクに複写する。
【0035】
図8に、副システムが実現する処理構成を例示する。副システムは、データベース11と、DBMS12と、二重化システム13とを含み、ログ搬送路15を通じて正システムに接続される。データベース11は、例えば、ハードディスクから構成される。DBMS12と、二重化システム13とは、コンピュータがコンピュータプログラムを実行することで実現される。以上の構成は、正システムと同様である。さらに、ログ搬送路15も、ハードディスクの1つであり、正システム側のハードディスクとの間でデータ複写機能を
有するものということができる。
【0036】
図8のように、二重化システム13(正システムからログを取得する手段および複数のレコードのデータを取得する手段に相当)は、ログ搬送路読み込み処理タスク134、ログ反映処理タスク132、およびデータベースページ作成処理タスク131を実行する。ログ搬送路読み込み処理タスク134は、ログ搬送路15から、操作ログ、更新ログ、および圧縮データを読み出し、ログ搬送路読み込みバッファ133に格納する。
【0037】
ログ反映処理タスク132は、ログ搬送路読み込みバッファ133の操作ログおよび更新ログをデータベースページ作成処理タスク131に引き渡す。データベースページ作成処理タスク131は、操作ログおよび更新ログにしたがって、ログ搬送路読み込みバッファ133から圧縮データを読み出す。そして、データベースページ作成処理タスク131は、ページ構造のデータを復元し、データベース書き込みバッファ121に格納する。
【0038】
DBMS12は、データベース書き込み処理タスク122を実行している。データベース書き込み処理タスク122は、データベース書き込みバッファ121のページ構造のデータを一括してデータベース11に反映する。データベースページ作成処理タスク131およびデータベース書き込み処理タスク122が一括反映する手段に相当する。
【0039】
図9に、正システム側の処理フローを例示する。ここでは、データベースページ作成処理タスク23および格納データ作成処理タスク31の処理が例示されている。データベースページ作成処理タスク23は、ロード機能が開始すると、入力データ待ちとなる(F231)。そして、データベースページ作成処理タスク23は、終了判定を行う(F232)。終了判定は、例えば、入力ファイルのエンドオブファイルの判定である。このようにして、データベースページ作成処理タスク23は、すべての入力データを処理するまで処理を継続する。
【0040】
そして、データベースページ作成処理タスク23は、入力ファイルから読み込んだデータを基に、データベースのページ構造のデータを作成する。データベースのページ構造のデータは、データベース書き込みバッファ24に作成される。
【0041】
次に、データベースページ作成処理タスク23は、データベース書き込み処理タスク25に、データベース書き込みバッファ24上のデータのデータベース1への書き込みを依頼する(F234)。さらに、データベースページ作成処理タスク23は、格納データ処理タスク31に、データベース書き込みバッファ24上のデータの複写を依頼する(F235)。その後、データベースページ作成処理タスク23は、処理をF231に戻す。
【0042】
格納データ処理タスク31は、データベース書き込みバッファ24上のデータを取り出す。そして、格納データ処理タスク31は、終了判定を行う(F312)。終了判定は、例えば、エンドオブファイルの受信による。このようにして、すべてのデータを処理するまで、処理が継続する。
【0043】
そして、格納データ処理タスク31は、ログ搬送路に書き込むべきデータを作成する(F313)。例えば、格納データ処理タスク31は、ページ構造のデータの空きスペースを圧縮した圧縮データを作成する。作成された圧縮データは、ログ搬送路書き込みバッファ32に格納される。そして、格納データ処理タスク31は、ログ搬送路書き込み処理タスク33に、ログ搬送路書き込みバッファ32上の圧縮データのログ搬送路5への書き込みを依頼する(F314)。その後、格納データ処理タスク31は、処理をF311に戻す。
【0044】
図10に、副システム側の処理フローを例示する。ここでは、ログ反映処理タスク132およびデータベースページ作成処理タスク131の処理が例示されている。ログ反映処理タスク132は、ログ搬送路読み込み処理タスク134から読み込み通知を受け取ると、処理を開始する。そして、ログ反映処理タスク132は、ログ搬送路読み込みバッファ133からログを取り出す(F1321)。そして、ログ反映処理タスク132は、終了判定を行う。終了判定は、例えば、ロード機能の終了を示す操作ログの受信による。また、ログ搬送路15から、ロード機能の終了を示す指示情報を受信するようにしてもよい。このようにして、ログ反映処理タスク132は、すべてのデータをデータベース11に反映するまで、処理を継続する。
【0045】
そして、ログ反映処理タスク132は、ロード開始の操作ログを受信すると(F1323でYESの場合)、データベースページ作成処理タスク131に一括更新を指示する(F1326)。その後、ログ反映処理タスク132は、処理をF1321に戻し、次のログを取り出す。
【0046】
ロード開始の操作ログを受信後、さらに、ロード終了のログを受信すると、ログ反映処理タスク132は、データベースページ作成処理タスク131の終了報告を待つ。データベースページ作成処理タスク131の終了報告を受けると、ログ反映処理タスク132は、処理をF1321に戻し、次のログを処理する。
【0047】
ロード開始、およびロード終了以外のログを受信すると、ログ反映処理タスク132は、通常通り、行単位で、ログをデータベース11に反映する(F1325)。その後、ログ反映処理タスク132は、処理をF1321に戻し、次のログを処理する。このようにして、同一の資源(表)に対する操作の順序は、保証することができる。一方、異なる資源(表)に対する操作は、並行プロセスによって独立に実行される。
【0048】
データベースページ作成処理タスク131も、ログ搬送路読み込み処理タスク134から読み込み通知を受け取ると、処理を開始する。そして、ログ搬送路読み込みバッファ133にデータが格納されるのを待つ(F1311)。そして、終了判定を行う。終了判定は、例えば、ログ搬送路読み込み処理タスク134が出力するエンドオブファイルの検出による。そして、エンドオブファイルを検知すると、データベースページ作成処理タスク131は、終了報告をログ反映処理タスク132に送信する(F1313)。その後、ログ反映処理タスク132を終了する。このようにして、データベースページ作成処理タスク131は、すべてもデータを処理するまで処理を継続する。
【0049】
そして、終了判定で処理の終了でない場合、データベースページ作成処理タスク131は、データベースのページ構造を復元する(F1314)。具体的には、圧縮データから、空きスペースを含むページ構造を作成する。そして、データベースページ作成処理タスク131は、データベースページ書き込み処理タスクにデータベースへの書き込みを依頼する(F1315)。そして、データベースページ作成処理タスク131は、制御をF1311に戻し、次の格納データを処理する。
<効果>
上述のように、開示の技術は、複写元データベースの更新結果であるログを複写先データベースに搬送して適用するデータベースの二重化方式を採用しているシステムに適用される。そして、開示の技術は、本方式の特徴を活かしたまま、二重化システムであることを意識することなく、ロード機能を利用したデータベース運用を二重化することが可能となる。すなわち、データベースのロード機能のように、操作ログによって、二重化がなされない機能について、正システムと副システムで個別にロード機能を実行することなく、正システムでものロード機能によるデータの更新が、副システムに反映される。その場合に、逐一、行単位に操作ログを作成することなく、ロード機能の開始を示すログ、終了を
示すログ、および、ページ構造のデータの転送によって、副システムにて更新データが復元される。その結果、ロード機能の効率低下を抑制した上で、副システムへの更新データの反映を実現できる。このように、従来はロード機能ごとに必要であった副システムでのセットアップや運用が不要となるため、データベース運用の利便性が向上する。
【0050】
また、ロード機能を実行する前に、二重化システムを停止させるなどでデータベースデータの一致性を利用者に任せているケースもある。しかし、開示の技術では、実行順序や操作を二重化システムで実現するため、信頼性が向上する効果も期待できる。
【0051】
また、開示の技術では、ページ構造中の空きスペースを除外し、圧縮データの形式で、ログ搬送路5、15との間で、データが授受される。このため、効率的なログ搬送路の利用が可能となる。
【0052】
なお、上記では、ロード機能によって正システムに一括登録されたデータを副システムに反映する際、ページ単位のデータを取得して、正システムから副システムに搬送した。また、ページ単位での正側データベースへのデータの格納に伴う更新ログを正システムで取得し、副システムに搬送した。ただし、開示の技術は、このようなページ単位の処理に限定されるものではない。例えば、複数ページをまとめた単位で、正システムに一括登録されたデータを副システムに反映するようにしてもよい。また、ページよりも小さな単位で、上記処理を行ってよい。
【0053】
<コンピュータ読み取り可能な記録媒体>
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
【0054】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD-ROM、CD-R/W、DVD、DAT、8mmテープ、メモリカード等がある。
【0055】
また、コンピュータ等に固定された記録媒体としてハードディスクやROM(リードオンリーメモリ)等がある。
【図面の簡単な説明】
【0056】
【図1】データベースの二重化技術の概要を示す図である。
【図2】データベースの二重化運用でログの取得を伴わないデータベースの更新操作を行う例である。
【図3】簡易な手順によるロード機能の二重化を操作ログで実現する処理を例示する図である。
【図4】本実施形態におけるロード機能の動作概要を示す図である。
【図5】ログ搬送路の構造を例示する図である。
【図6】副システムに搬送される格納データのデータ構造を例示する図である。
【図7】正システムが実現する処理構成を例示する図である。
【図8】副システムが実現する処理構成を例示する図である。
【図9】正システム側の処理フローを例示する図である。
【図10】副システム側の処理フローを例示する図である。
【符号の説明】
【0057】
1、11 データベース
2、12 DBMS
3、13 二重化システム
4 入力ファイル
5、15 ログ搬送路

【特許請求の範囲】
【請求項1】
ログ搬送路で接続された正システムと副システムとを有する情報システムであり、
前記正システムは、
正側データベースと、
前記正側データベースにおいてレコード単位でデータを処理する正側レコード処理手段と、
前記正側レコード処理手段によってデータが処理されたときに、その処理結果をログに記録するログ記録手段と、
前記ログ記録手段に記録されたログを、前記ログ搬送路を通じて前記副システムに転送する手段と、
外部装置から複数のレコードのデータを一括登録する手段と、
前記複数のレコードのデータを一括登録する処理の実行を示す一括登録ログを、ログ搬送路を通じて前記副システムに通知する手段と、
前記一括登録された複数のレコードのデータを、データ搬送路を通じて前記副システムに転送する手段と、を備え、
前記副システムは、
副側データベースと、
前記ログ搬送路を通じて前記正システムからログを取得する手段と、
前記取得したログにしたがって、前記副側データベースにおいてレコード単位でデータを処理する副側レコード処理手段と、
前記取得したログが一括登録ログであったときに、前記データ搬送路を通じて前記一括登録の対象である複数のレコードのデータを取得する手段と、
前記一括登録の対象である複数のレコードのデータを副側データベースに一括反映する手段と、を備える情報システム。
【請求項2】
前記ログ搬送路と前記データ搬送路とが同一種類の通信手段を含む請求項1に記載の情報システム。
【請求項3】
ログ搬送路で接続された正システムと副システムとを有する情報システムが実行する情報処理の方法であり、
前記正システムが、
正側データベースにおいてレコード単位でデータを処理する正側レコード処理ステップと、
前記正側レコード処理ステップにてデータが処理されたときに、その処理結果をログに記録するログ記録ステップと、
前記ログ記録ステップにて記録されたログを、前記ログ搬送路を通じて前記副システムに転送するステップと、
外部装置から複数のレコードのデータを一括登録するステップと、
前記複数のレコードのデータを一括登録するステップの実行を示す一括登録ログを、ログ搬送路を通じて前記副システムに通知するステップと、
前記一括登録された複数のレコードのデータを、データ搬送路を通じて前記副システムに転送するステップと、を実行し、
前記副システムが、
前記ログ搬送路を通じて前記正システムから取得したログにしたがって、副側データベースにおいてレコード単位でデータを処理する副側レコード処理ステップと、
前記取得したログが一括登録ログであったときに、前記データ搬送路を通じて前記一括登録の対象である複数のレコードのデータを取得するステップと、
前記一括登録の対象である複数のレコードのデータを副側データベースに一括反映するステップと、を実行する情報処理の方法。
【請求項4】
ログ搬送路で接続された正システムと副システムとを有する情報システムで実行されるプログラムであり、
前記正システムのコンピュータに、
正側データベースにおいてレコード単位でデータを処理する正側レコード処理ステップと、
前記正側レコード処理ステップにてデータが処理されたときに、その処理結果をログに記録するログ記録ステップと、
前記ログ記録ステップにて記録されたログを、前記ログ搬送路を通じて前記副システムに転送するステップと、
外部装置から複数のレコードのデータを一括登録するステップと、
前記複数のレコードのデータを一括登録するステップの実行を示す一括登録ログを、ログ搬送路を通じて前記副システムに通知するステップと、
前記一括登録された複数のレコードのデータを、データ搬送路を通じて前記副システムに転送するステップと、を実行させるためのプログラム部分と、
前記副システムのコンピュータに、
前記ログ搬送路を通じて前記正システムから取得したログにしたがって、副側データベースにおいてレコード単位でデータを処理する副側レコード処理ステップと、
前記取得したログが一括登録ログであったときに、前記データ搬送路を通じて前記一括登録の対象である複数のレコードのデータを取得するステップと、
前記一括登録の対象である複数のレコードのデータを副側データベースに一括反映するステップと、を実行させるためのプログラム部分とを含む、プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−92109(P2010−92109A)
【公開日】平成22年4月22日(2010.4.22)
【国際特許分類】
【出願番号】特願2008−258786(P2008−258786)
【出願日】平成20年10月3日(2008.10.3)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】