説明

データベースの共有メモリの状態を別環境に再現するシステム及び方法

【課題】共有メモリの状態や変更の推移を記録し、共有メモリと同一の状況を再現させる。
【課題手段】ユーザ環境と再現環境を備える共有メモリ環境再現システムであり、ユーザ環境において、共有メモリの変更を定期的に監視し、変更内容を時刻情報と共にジャーナルファイルに記録する。その後、再現環境において、ジャーナルファイルに基づいて、再現環境上の共有メモリへ変更内容を展開させて、ユーザ環境上の共有メモリの状態を再現環境上で復元する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はデータベースの共有メモリの管理技術に関し、データベースの共有メモリの推移を記録し、別環境に同一の状態を再現する。
【背景技術】
【0002】
従来、データベース(以下「DB」と省略することがある。)では共有メモリ上の独自管理のヒープ領域にリソースの状況など各プロセス間で共有すべきデータを保持しているが、ヒープの状態や変更の推移を別の環境で再現することはできない。そのため、ユーザ環境で発生したヒープ上のメモリ障害を別の環境で同一の状態を再現させることは困難である。また、メモリ破壊が発生されてから、時間が経った後に破壊を検知するようなケースでは、メモリ破壊が発生した状況まで遡ることは困難である。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−149214号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
障害発生時の調査には同一事象を再現させることが有効であるが、メモリが破壊されるような障害では障害発生時のメモリの状態により発生頻度が大きく変わり、同一の状況にするためには事象発生までのメモリの推移も考慮に入れる必要がある。しかし、メモリの推移も考慮して同一のメモリ状況を作り出すことは非常に困難であり、メモリ破壊が伴うメモリ障害の調査・解析のために膨大な工数をかける必要がある。
【0005】
障害発生時のトレースとしてメモリダンプがファイルに出力されることがあるが、一般にメモリダンプファイルの解析は専門の知識が必要であり、メモリダンプを元に直接障害の再現を行うことは実用上の手段がなかった。
【0006】
特許文献1には、特定のユーザの構成情報に特化して、ユーザ単位での環境再現を行うことが記載されている。しかし、特許文献1はユーザ単位での環境再現に限定されるものであり、複数ユーザが使用するデータベースサーバの共有メモリ上の情報という揮発性の情報について、障害発生時のデータベース全体の再現環境を作成するものではない。
【0007】
本発明は、かかる実情に鑑み、共有メモリの状態や変更の推移を記録し、共有メモリと同一の状況を再現させる技術を提供しようとするものである。
【課題を解決するための手段】
【0008】
本発明の一態様による共有メモリ環境再現システムは、ユーザ環境と再現環境を備える共有メモリ環境再現システムである。ユーザ環境は、第一の共有メモリと、第一の共有メモリの変更を定期的に監視し、変更内容を時刻情報と共にジャーナルファイルに記録する共有メモリ監視記録手段と、を備える。再現環境は、第二の共有メモリと、ジャーナルファイルに基づいて、第二の共有メモリへ変更内容を展開させて、第一の共有メモリの状態を第二の共有メモリ上で復元する共有メモリ展開手段と、を備える。
【0009】
好適には、共有メモリ監視記録手段は、第一の共有メモリ上のヒープ領域の状態や変更の推移をジャーナルファイルに記録する。
【0010】
さらに好適には、共有メモリ監視記録手段は、データベース起動直後の最初の走査では、第一の共有メモリ上のヒープ領域全体を、ジャーナルファイルに記録する。
【0011】
また、ジャーナルファイルの各エントリは、時刻情報と、アドレスの情報と、変更サイズの情報と、変更後のメモリ内容の情報とを含むことが好ましい。
【0012】
さらに好適には、共有メモリ展開手段は、ジャーナルファイルに記録された時刻情報を参照して、指定された任意の時刻における第一の共有メモリの状態を復元する。
【0013】
本発明の一態様による共有メモリ環境再現方法は、第一の共有メモリと共有メモリ監視記録手段とを備えるユーザ環境と、第二の共有メモリと共有メモリ展開手段とを備える再現環境と、を含むシステムにおいて、第一の共有メモリの内容を第二の共有メモリ上に再現する方法である。共有メモリ監視記録手段が、第一の共有メモリの変更を定期的に監視し、変更内容を時刻情報と共にジャーナルファイルに記録し、共有メモリ展開手段が、ジャーナルファイルに基づいて、第二の共有メモリへ変更内容を展開させて、第一の共有メモリの状態を第二の共有メモリ上で復元する。
【発明の効果】
【0014】
本発明によれば、共有メモリの状態や変更の推移を記録し、共有メモリと同一の状況を再現させることができるようになる。また、複数ユーザが使用するデータベースサーバの共有メモリ上の情報という揮発性の情報について、障害発生時のデータベース全体の再現環境を作成することができるようになる。これにより、ユーザ環境と同一の共有メモリの状態を再現させることでメモリ破壊を伴う障害の再現がしやすくなり、また時系列でのメモリ状態の変更を追うことができるという効果がある。
【図面の簡単な説明】
【0015】
【図1】共有メモリ環境再現システム10の構成の一実施例を示すブロック図である。
【図2】共有メモリジャーナルファイル36の一例である。
【図3】共有メモリ監視記録手段35の処理モジュールを示すブロック図である。
【図4】共有メモリ監視記録手段35の処理の流れを示すフローチャートである。
【図5】アドレス・サイズ・チェックサム情報保持モジュールM104によって保持される情報の一例である。
【図6】共有メモリ展開手段65の処理モジュールを示すブロック図である。
【図7】共有メモリ展開手段65の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態について図面を参照しつつ詳細に説明する。
【0017】
図1は、本発明による共有メモリ環境再現システム10の構成の一実施例を示すブロック図である。
【0018】
同図に示すように、本発明の実施例では、共有メモリ環境再現システム10は、ユーザ環境1と再現環境4を含む。ユーザ環境1は、DBクライアント2と、データベースシステム3とを備え、再現環境4は、DBクライアント5と、データベースシステム6を含んで構成される。
【0019】
ユーザ環境1上のデータベースシステム3は、DBクライアント2からDBアクセスの要求を受け付けるDBインスタンス31と、DB起動時の各種パラメータを記載する初期化パラメータファイル32と、DBリソース情報や高速アクセスのためのバッファ情報を保持するためにDBインスタンス31で使用される共有メモリ33と、DBインスタンス31によりデータの内容を恒久的に保持するDBファイル34と、定期的に共有メモリ33の内容を共有メモリジャーナルファイル36に記録する共有メモリ監視記録手段35を備えている。
【0020】
再現環境4上のデータベースシステム6は、DBクライアント5からDBアクセスの要求を受け付けるDBインスタンス61と、DB起動時の各種パラメータを記載する初期化パラメータファイル62と、DBインスタンスで使用される共有メモリ63と、DBインスタンスによりデータの内容を恒久的に保持するDBファイル64と、ユーザ環境から転送された共有メモリジャーナルファイル66を共有メモリ63に反映する共有メモリ展開手段65を備えている。
【0021】
ユーザ環境1上のDBクライアント2及びデータベースシステム3、並びに、再現環境4上のDBクライアント5及びデータベースシステム6のそれぞれは、各部の動作や処理を制御するための制御手段としてのプロセッサ、外部記憶装置やメモリ等、各種のデータを記録したり作業領域として用いられる記憶手段、入出力インタフェース、通信インタフェース及びこれらを結ぶバスを備える専用又は汎用のコンピュータを適用することができる。
【0022】
次に、本実施例の動作について詳細に説明する。
【0023】
ユーザ環境1と再現環境4共に、データベースは、初期化パラメータの構成情報を元に起動され、起動後、DBクライアント2、5はDBインスタンス31、61にDBアクセスを要求する。DBインスタンス31、61はリソース情報やDBファイル34、64のバッファなどを共有メモリ33、63に保持する。また、非同期にDBインスタンス31、61は共有メモリ33、63からバッファの情報をDBファイル34、64に反映する。
【0024】
ユーザ環境1では、共有メモリ監視記録手段35により、ユーザ環境1でのデータベース起動時に共有メモリ33上のヒープの内容がオフセット(offset)値によるアドレス情報とメモリ内のデータの組で共有メモリジャーナルファイル36に出力される。それ以降はある一定期間毎に共有メモリ33を走査し、共有メモリに変更があった箇所のみ、オフセットと変更後の値を共有メモリジャーナルファイル36に追記していく。このとき共有メモリジャーナルファイル36にはその情報を追記した時刻情報を付与し、後に復元する際に指定した時刻まで復元できるようにする。図2は、このようにして作成される共有メモリジャーナルファイル36の一例である。
【0025】
作成された共有メモリジャーナルファイル36はFTP(File Transfer Protocol)やファイル共有などで再現環境4に転送される。再現環境4では受信した共有メモリジャーナルファイル66を使用して、共有メモリ展開手段65により共有メモリ33の再現を共有メモリ63上に行う。このとき共有メモリ展開手段65により、共有メモリジャーナルファイル66は先頭から順に指定された時刻までの変更を記録したエントリまで読み込まれ、共有メモリ63のオフセットに対して変更後のデータを反映して、ユーザ環境1と同一状態への再現を行う。
【0026】
次に、図3〜図5を参照して、共有メモリ監視記録手段35の具体的な処理内容について説明する。
【0027】
図3は、共有メモリ監視記録手段35の処理モジュールを示すブロック図である。図4は、共有メモリ監視記録手段35の処理の流れを示すフローチャートである。共有メモリ監視記録手段35により、データベース起動直後の最初の共有メモリ走査では、共有メモリ33上のヒープ全体が共有メモリジャーナルファイル36に記録される(ステップC101)。
【0028】
通常、データベースはOSのメモリ管理とは異なり独自のメモリ管理を行い、共有メモリ上のメモリをヒープやチャンクと呼ばれる単位で管理し、ヒープやチャンクのアドレスとサイズ情報を保持している。共有メモリ監視記録手段35において、アドレス・サイズ・チェックサム情報保持モジュールM104により、共有メモリ33のチャンクのアドレスの情報、サイズの情報、及びチャンクの内容のチェックサム情報が保持される(ステップC102)。なお、図5は、アドレス・サイズ・チェックサム情報保持モジュールM104によって保持される、共有メモリ33のチャンクのアドレスの情報、サイズの情報、及びチャンクの内容のチェックサム情報の一例である。
【0029】
その後一定間隔で、共有メモリ読み取りモジュールM101により共有メモリ33を走査し(ステップC103)、アドレス・サイズ・チェックサム比較モジュールM102によりチャンクをチェックし、前回保持したアドレスの情報やサイズの情報、チャンクの内容のチェックサム情報が異なっているかチェックし(ステップC104)、異なっていた場合は共有メモリ33の内容が変更されたとみなしてジャーナル書出しモジュールM103により共有メモリジャーナルファイル36に変更後のメモリ内容が時刻、オフセット、及びサイズと共に記録され(C105)、アドレス・サイズ・チェックサム情報保持モジュールM104によりチェックサム情報が更新される(C106)。これを一定期間毎にDBが停止するまで実行する(C107)。
【0030】
次に、図6と図7を参照して、ユーザ環境1で採取されたジャーナルファイルから再現環境4で共有メモリ63に展開する共有メモリ展開手段65の具体的な処理内容について説明する。
【0031】
図6は共有メモリ展開手段65の処理モジュールを示すブロック図である。図7は共有メモリ展開手段65の処理の流れを示すフローチャートである。DB起動時、初期化パラメータ読み取りモジュールM204により初期化パラメータファイル62を読み取り、初期化パラメータとして時間指定でジャーナルからの共有メモリ再現が指定されているか確認する(C201)。共有メモリ再現が指定されている場合、共有メモリ展開手段65により、まず転送された共有メモリジャーナルファイル66に記録された共有メモリ33のヒープ全体の情報が再現環境4の共有メモリ63にコピーされる(ステップC202)。
【0032】
次に、ジャーナルファイル読み取りモジュールM201により共有メモリジャーナルファイル66に記録されている次のエントリが読み込まれ(C203)、時刻情報チェックモジュールM202によりジャーナルに記録されている時刻がパラメータで指定された時刻以前であるか判定し(C204)、指定された時刻以前ならば共有メモリ書出しモジュールM203によりジャーナルに記録されているメモリ内容が共有メモリ63のオフセットが示すアドレスにコピーされる(C205)。この動作を共有メモリジャーナルファイル66の最後に到達するまで繰り返し(C206)、ユーザ環境1の共有メモリ33の状態を再現させる。
【0033】
以上で説明したように、本実施形態によれば、データベースサーバの共有メモリ上のヒープ領域の情報という揮発性の情報を時系列でジャーナリングすることにより、障害発生時のデータベース全体の再現環境を作成できる。これにより、ユーザ環境と同一の共有メモリの状態を再現させることでメモリ破壊を伴う障害の再現がしやすくなる。また時系列でのメモリ状態の変更を追うことができるようになる。こうして、障害発生時の問題の調査・解析を実効的に行うことができるようになる。
【0034】
なお、本発明は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において、他の様々な形で実施することができる。このため、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。例えば、上述の各処理ステップは処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【0035】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限
られない。
【0036】
(付記1)ユーザ環境と再現環境を備える共有メモリ環境再現システムであり、前記ユーザ環境は、第一の共有メモリと、前記第一の共有メモリの変更を定期的に監視し、変更内容を時刻情報と共にジャーナルファイルに記録する共有メモリ監視記録手段と、を備え、前記再現環境は、第二の共有メモリと、前記ジャーナルファイルに基づいて、前記第二の共有メモリへ前記変更内容を展開させて、前記第一の共有メモリの状態を前記第二の共有メモリ上で復元する共有メモリ展開手段と、を備える共有メモリ環境再現システム。
【0037】
(付記2)前記共有メモリ監視記録手段は、前記第一の共有メモリ上のヒープ領域の状態や変更の推移を前記ジャーナルファイルに記録することを特徴とする付記1に記載の共有メモリ環境再現システム。
【0038】
(付記3)前記共有メモリ監視記録手段は、データベース起動直後の最初の走査では、前記第一の共有メモリ上の前記ヒープ領域全体を、前記ジャーナルファイルに記録することを特徴とする付記1又は2に記載の共有メモリ環境再現システム。
【0039】
(付記4)前記ジャーナルファイルの各エントリは、時刻情報と、アドレスの情報と、変更サイズの情報と、変更後のメモリ内容の情報とを含むことを特徴とする付記1乃至3のいずれかに記載の共有メモリ環境再現システム。
【0040】
(付記5)前記共有メモリ展開手段は、前記ジャーナルファイルに記録された前記時刻情報を参照して、指定された任意の時刻における第一の共有メモリの状態を復元することを特徴とする付記1乃至4のいずれかに記載の共有メモリ環境再現システム。
【0041】
(付記6)第一の共有メモリと共有メモリ監視記録手段とを備えるユーザ環境と、第二の共有メモリと共有メモリ展開手段とを備える再現環境と、を含むシステムにおいて、前記第一の共有メモリの内容を前記第二の共有メモリ上に再現する方法であって、前記共有メモリ監視記録手段が、前記第一の共有メモリの変更を定期的に監視し、変更内容を時刻情報と共にジャーナルファイルに記録し、前記共有メモリ展開手段が、前記ジャーナルファイルに基づいて、前記第二の共有メモリへ前記変更内容を展開させて、前記第一の共有メモリの状態を前記第二の共有メモリ上で復元する、共有メモリ環境再現方法。
【符号の説明】
【0042】
1……ユーザ環境、2……DBクライアント、3……データベースシステム、4……再現環境、5……DBクライアント、6……データベースシステム、10……共有メモリ環境再現システム、31……DBインスタンス、32……初期化パラメータファイル、33……共有メモリ、34……DBファイル、35……共有メモリ監視記録手段、36……共有メモリジャーナルファイル、61……DBインスタンス、62……初期化パラメータファイル、63……共有メモリ、64……DBファイル、65……共有メモリ展開手段、66……共有メモリジャーナルファイル

【特許請求の範囲】
【請求項1】
ユーザ環境と再現環境を備える共有メモリ環境再現システムであり、
前記ユーザ環境は、
第一の共有メモリと、
前記第一の共有メモリの変更を定期的に監視し、変更内容を時刻情報と共にジャーナルファイルに記録する共有メモリ監視記録手段と、
を備え、前記再現環境は、
第二の共有メモリと、
前記ジャーナルファイルに基づいて、前記第二の共有メモリへ前記変更内容を展開させて、前記第一の共有メモリの状態を前記第二の共有メモリ上で復元する共有メモリ展開手段と、
を備える共有メモリ環境再現システム。
【請求項2】
前記共有メモリ監視記録手段は、前記第一の共有メモリ上のヒープ領域の状態や変更の推移を前記ジャーナルファイルに記録することを特徴とする請求項1に記載の共有メモリ環境再現システム。
【請求項3】
前記共有メモリ監視記録手段は、データベース起動直後の最初の走査では、前記第一の共有メモリ上の前記ヒープ領域全体を、前記ジャーナルファイルに記録することを特徴とする請求項1又は2に記載の共有メモリ環境再現システム。
【請求項4】
前記ジャーナルファイルの各エントリは、時刻情報と、アドレスの情報と、変更サイズの情報と、変更後のメモリ内容の情報とを含むことを特徴とする請求項1乃至3のいずれかに記載の共有メモリ環境再現システム。
【請求項5】
前記共有メモリ展開手段は、前記ジャーナルファイルに記録された前記時刻情報を参照して、指定された任意の時刻における第一の共有メモリの状態を復元することを特徴とする請求項1乃至4のいずれかに記載の共有メモリ環境再現システム。
【請求項6】
第一の共有メモリと共有メモリ監視記録手段とを備えるユーザ環境と、第二の共有メモリと共有メモリ展開手段とを備える再現環境と、を含むシステムにおいて、前記第一の共有メモリの内容を前記第二の共有メモリ上に再現する方法であって、
前記共有メモリ監視記録手段が、前記第一の共有メモリの変更を定期的に監視し、変更内容を時刻情報と共にジャーナルファイルに記録し、
前記共有メモリ展開手段が、前記ジャーナルファイルに基づいて、前記第二の共有メモリへ前記変更内容を展開させて、前記第一の共有メモリの状態を前記第二の共有メモリ上で復元する、共有メモリ環境再現方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−58842(P2012−58842A)
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願番号】特願2010−199049(P2010−199049)
【出願日】平成22年9月6日(2010.9.6)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】