(57)【要約】【課題】アプリケーション開発者が作成したデータベース運用管理情報が正常に動作するかを予め検証し、また、アプリケーション管理者が選択・変更したデータベース運用管理情報がアプリケーションの要件や稼働環境に対して妥当であるかを予め検証することが課題である。【解決手段】データベース運用管理検証処理が、データベース運用管理情報を読み込み、データベース運用管理情報の実行内容に記述したＤＢＭＳの運用管理を行うコマンドと運用管理関数の構文の検証と、データベース運用管理情報の実行契機に衝突の検証を行う。データベース運用管理検証処理が、前記検証の結果を出力する。【選択図】  図１
2005004669.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを用いたデータベースの運用管理情報を検証する方法において、
前記コンピュータは、予め記憶装置に格納された前記データベースに対する運用管理の実行契機の情報と運用管理の実行内容の情報を含む運用管理情報を読み出し、
前記読み出した運用管理の実行契機の情報と運用管理の実行内容の情報にもとづいて、前記運用管理情報の内容を検証し、前記検証結果を出力し、
前記検証結果にもとづいて、前記運用管理情報を修正することを特徴とするデータベースの運用管理情報を検証する方法。
【請求項２】
コンピュータを用いたデータベースの運用管理情報を検証するシステムにおいて、
予め記憶装置に格納された前記データベースに対する運用管理の実行契機の情報と運用管理の実行内容の情報を含む運用管理情報を読み出す手段と、
前記読み出した運用管理の実行契機の情報と運用管理の実行内容の情報にもとづいて、前記運用管理情報の内容を検証し前記検証結果を出力する手段と、
前記検証結果にもとづいて、前記運用管理情報を修正する手段とを含むことを特徴とするデータベースの運用管理情報を検証するシステム。
【請求項３】
請求項１のデータベース運用管理情報を検証する方法において、前記データベース運用管理情報の内容を検証することとは、データベース運用管理情報の実行内容に記述したＤＢＭＳの運用管理を行うコマンドと関数の構文を検証することと、データベース運用管理情報の実行契機の衝突を検証することを含むことを特徴とするデータベース運用管理情報を検証する方法。
【請求項４】
コンピュータを用いたデータベースの運用管理情報を検証する方法において、
前記コンピュータは、予め記憶装置に格納された前記データベースに対する運用管理の実行契機の情報と運用管理の実行内容の情報を含む運用管理情報と、データベースの運用管理を行う場合に、ＤＢＭＳが提供するデータベースの運用管理を行うコマンドと関数を呼び出す順番を指示した情報である実行順序情報を読み出し、
前記読み出した運用管理の実行契機の情報と運用管理の実行内容の情報と前記実行順序情報にもとづいて、データベース運用管理情報の実行内容に記述したＤＢＭＳの運用管理を行うコマンドと関数の実行順序を検証し、
前記検証結果にもとづいて、前記運用管理情報を修正することを特徴とするデータベースの運用管理情報を検証する方法。
【請求項５】
アプリケーションプログラムから利用されるＤＢＭＳで使用するデータベースの運用管理情報を検証するプログラムであって、
前記プログラムは、データベースの運用管理の実行契機と実行内容を記述した情報であるデータベース運用管理情報に記述する情報のうち、アプリケーションプログラムの稼働環境に依存しない情報を記述したデータベース運用管理マスタ情報と、データベースの運用管理を行う場合に、ＤＢＭＳが提供するデータベースの運用管理を行うコマンドと関数を呼び出す順番を指示した情報である実行順序情報を読み込み、
前記データベース運用管理マスタ情報に記述したＤＢＭＳの運用管理を行うコマンドと関数の構文とＤＢＭＳの運用管理を行うコマンドと関数の実行順序とデータベース運用管理情報の実行契機の衝突とを検証し、前記検証結果を出力し、
前記検証結果に応じて、前記データベース運用管理マスタ情報を修正し、
データベース運用管理情報を作成するために必要なアプリケーションの稼働環境に依存する情報を記述した稼働環境定義情報と、前記データベース運用管理マスタ情報から、データベース運用管理情報を作成し、
前記作成されたデータベース運用管理情報と前記実行順序情報を読み込み、データベース運用管理情報に記述したＤＢＭＳの運用管理を行うコマンドと関数の構文を検証し、ＤＢＭＳの運用管理を行うコマンドと関数の実行順序を検証し、データベース運用管理情報の実行契機の衝突を検証し、検証結果を出力し、
前記検証結果にもとづいて、前記運用管理情報を修正することを特徴とするデータベースの運用管理情報を検証するプログラム。
【請求項６】
アプリケーションプログラムから利用されるＤＢＭＳで使用するデータベースの運用管理情報を検証する方法であって、
データベースの運用管理の実行契機と実行内容を記述した情報であるデータベース運用管理情報に記述する情報のうち、アプリケーションプログラムの稼働環境に依存しない情報を記述したデータベース運用管理マスタ情報と、データベースの運用管理を行う場合に、ＤＢＭＳが提供するデータベースの運用管理を行うコマンドと関数を呼び出す順番を指示した情報である実行順序情報を読み込み、
前記データベース運用管理マスタ情報に記述したＤＢＭＳの運用管理を行うコマンドと関数の構文とＤＢＭＳの運用管理を行うコマンドと関数の実行順序とデータベース運用管理情報の実行契機の衝突とを検証し、検証結果を出力し、
前記検証結果に応じて、前記データベース運用管理マスタ情報を修正し、
データベース運用管理情報を作成するために必要なアプリケーションの稼働環境に依存する情報を記述した稼働環境定義情報と、前記データベース運用管理マスタ情報から、データベース運用管理情報を作成し、
前記作成されたデータベース運用管理情報と前記実行順序情報を読み込み、データベース運用管理情報に記述したＤＢＭＳの運用管理を行うコマンドと関数の構文を検証し、ＤＢＭＳの運用管理を行うコマンドと関数の実行順序を検証し、データベース運用管理情報の実行契機の衝突を検証し、検証結果を出力し、
前記検証結果にもとづいて、前記運用管理情報を修正することを特徴とするデータベースの運用管理情報を検証する方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
データベース管理システム（ＤＢＭＳ）におけるデータベースの運用管理の検証方法に関する。
【０００２】
【従来の技術】
システム運用管理ソフトウェアや文書管理ソフトウェア等のアプリケーションでは、データ管理の信頼性を向上させたいという要求がある。そのため、これらのアプリケーションでは、データベース管理システム（ＤＢＭＳ：Ｄａｔａｂａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）を使用してシステムを構築することが多い。
【０００３】
ＤＢＭＳを使用して構築したシステムでは、データベースの信頼性を向上させることやデータベースの状態を適切に保つことを目的として、バックアップや再編成等の運用管理が行なわれる。データベースの運用管理には、上記の他にトランザクションログのバックアップ、データベース格納領域の拡張、データベースの回復、および、データベースのチューニングなどが存在する。
【０００４】
データベースの運用管理を行うためには、ＤＢＭＳを直接意識して、予め運用管理の計画を策定することや、データベースの状況に応じて臨機応変な処置を行うことが必要となる。このためには、データベースおよびＤＢＭＳに関する広範な知識が必要となるので、運用管理の役割を担った特別なユーザであるデータベース管理者が運用管理を行うことが望ましい。
【０００５】
しかしながら、システムの環境によっては、データベースの運用管理のために、データベース管理者を割当てることができない場合がある。この場合、アプリケーションのユーザが、ＤＢＭＳを直接意識したデータベースの運用管理を行う必要が発生する。これは、アプリケーションのユーザにとって、新たな負担である。
【０００６】
そのため、ＤＢＭＳを使用して構築したシステムにおいては、ＤＢＭＳを直接意識したデータベースの運用管理が必要になるという問題点があった。
【０００７】
本問題を解決する方法として、非特許文献１に記載された方式が開示されている。
【０００８】
本公知例に記述された方式（非特許文献１）の概略は、以下の通りである。
アプリケーションで行うデータベース運用管理の実行契機と実行内容を記述した定義情報を作成し、それをＤＢＭＳに登録する。次に、ＤＢＭＳは登録されたデータベース運用管理に関する定義情報を読み込み、運用管理の実行契機を判定する。次に、運用管理の実行契機になると、ＤＢＭＳが、データベースの運用管理を行うコマンドやユティリティを起動する。その結果、データベースの運用管理を行うコマンドやユティリティが、データベースの運用管理を実行する。
【０００９】
これらにより、作成したデータベースの運用管理に関する定義情報の内容に基づいて、ＤＢＭＳがデータベースの運用管理を行うことができるようになり、アプリケーションのユーザがＤＢＭＳを直接意識することなく、データベースの運用管理が行われるようになる。
【００１０】
ここで、運用管理の実行契機とは、運用管理の実行を開始するきっかけを意味する。例えば、運用管理の実行契機には、指定した特定の年月日および時刻になったことや、周期的に繰り返し特定の運用管理を行う場合は、指定した運用管理の実行開始日時と運用管理を実行する周期から決定される日時になったこと等が存在する。また、運用管理の実行内容とは、実行する運用管理の項目及び方法である。例えば、特定の運用管理を行うために、ＤＢＭＳが提供する運用管理コマンドまたは運用管理関数を用いて記述したシェルスクリプトやバッチファイルなどの各種の簡易型プログラムによって与えられる。ここで、運用管理コマンドおよび運用管理関数とは、データベースのバックアップや、リカバリ、再編成、トランザクションログファイルの切り換え、データベース格納領域の閉塞および閉塞解除などの個別のデータベース運用管理項目を実行するために、ＤＢＭＳが提供するコマンドおよび関数である。
【００１１】
以降では、データベース運用管理の実行契機と実行内容を記述した定義情報を、データベース運用管理情報と記す。
【００１２】
本公知技術に記述された方式においては、アプリケーション開発者が開発するアプリケーションの要件に従ってデータベース運用管理情報を作成し、アプリケーション管理者がアプリケーションの稼動環境の条件に従ってデータベース運用管理情報の内容を変更する場合や、アプリケーション管理者がアプリケーションの要件やアプリケーションの稼働環境の条件に従ってデータベース運用管理情報を直接作成する場合が存在する。ここで、アプリケーション開発者とは、ＤＢＭＳを使用したアプリケーションプログラムを開発するユーザであり、アプリケーション管理者とは、アプリケーション開発者が作成したアプリケーションの稼働環境において、アプリケーションの動作、データや、運用を管理するユーザを表す。
【００１３】
しかしながら、本公知技術に記述された方式では、アプリケーション開発者がデータベース運用管理情報のスクリプトプログラムに記述するＤＢＭＳの運用管理コマンドの構文や実行順序を誤った場合や、アプリケーション管理者が複数のスクリプトプログラムに対して同じ実行契機を指定してしまった場合は、データベース運用管理の実行時にエラーが発生し、アプリケーションが正常に動作しなくなる可能性があるという問題があった。
【００１４】
【非特許文献１】
Ｍａｒｃｉ  Ｆｒｏｈｏｃｋ  Ｇａｒｃｉａ、Ｊａｍｉｅ  Ｒｅｄｉｎｇ、Ｅｄｗａｒｄ  Ｗｈａｌｅｎ、Ｓｔｅｖｅ  Ａｄｒｉｅｎ  ＤｅＬｕｃａ  著，「Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ  ２０００  Ａｄｍｉｎｉｓｔｒａｔｏｒ’ｓ  Ｃｏｍｐａｎｉｏｎ」，（米国），  ＩＳＢＮ  ０−７３５６−１０５１−７，  Ｍｉｃｒｏｓｏｆｔ  Ｐｒｅｓｓ，  ２０００年１０月１日，ｐ．８３６−８５３，ｐ．８５６−８６５
【００１５】
【発明が解決しようとする課題】
本発明では、データベース運用管理情報のスクリプトプログラムに記述されたＤＢＭＳの運用管理コマンドの構文と実行順序の検証、および、データベース運用管理情報の実行契機に衝突が発生しないかどうかの検証を行うことによって、アプリケーション開発者やアプリケーション管理者が作成および変更したデータベース運用管理情報がアプリケーションの稼働条件に対して適切であるかを予め検証する。
これにより、ＤＢＭＳがアプリケーションの要件や稼働環境の条件に従って、データベースの運用管理を適切に実行できるようにすることが目的である。
【００１６】
【課題を解決するための手段】
上記の課題を解決するため、本発明におけるデータベース運用管理の検証方法では、データベース運用管理情報に記述された運用管理の実行契機と運用管理の実行内容を検証し、検証の結果を出力するステップを有する。
【００１７】
データベース運用管理情報に記述する運用管理の実行契機とは、データベースの運用管理を実行するきっかけとなる事象を示す。そのような事象には、指定された時刻を経過したこと、ＤＢＭＳからアラートが出力されたこと、および、ＤＢＭＳやシステムの内部情報が指定された条件を満たしたこと等が存在する。
【００１８】
また、データベース運用管理情報に記述する運用管理の実行内容とは、実行するデータベースの運用管理の項目及び方法を示す。具体的には、特定の運用管理を行うために、ＤＢＭＳが提供する運用管理コマンドまたは運用管理関数を用いて作成したプログラム、または、シェルスクリプトやバッチファイルなどの簡易型プログラムである。以降では、このようなスクリプトを運用管理スクリプトと記す。
本実施例のデータベース運用管理の検証方法は、以下のステップを有する。
（１）データベース運用管理検証処理が、前記データベース運用管理情報を読み込む。
（２）データベース運用管理情報の実行内容に記述されたＤＢＭＳの運用管理を行うコマンドと関数の構文に誤りが無いかどうかを検証する。
（３）データベース運用管理情報に記述された運用管理の実行契機が、データベース運用管理情報に記述された別の運用管理の実行契機と重複していないかを検証する。
（４）上記の検証結果を出力する。
これにより、アプリケーション開発者やアプリケーション管理者が作成や変更したデータベース運用管理情報に基づいて、ＤＢＭＳがアプリケーションの稼働環境でデータベースの運用管理を適切に実行できるようになる。ここで、アプリケーション開発者とは、ＤＢＭＳを使用したアプリケーションプログラムを開発するユーザであり、アプリケーション管理者とは、アプリケーション開発者が作成したアプリケーションの稼働環境において、アプリケーションの動作、データや、運用を管理するユーザを表す。
【００１９】
【発明の実施の形態】
〔発明の原理図〕
以下に実施例を示す。
図１を用いて本実施例のデータベース運用管理の検証方法の原理を説明する。本実施例のデータベース運用管理の検証方法は、データベース運用管理の実行契機と実行内容を記述した定義情報であるデータベース運用管理情報１０１の内容を検証し、検証結果１０３を出力するデータベース運用管理検証処理１０２を有する。
本実施例のデータベース運用管理の検証方法によるデータベース運用管理情報１０１の内容の検証は、データベース運用管理情報１０１をＤＢＭＳ（１０５）に登録する前に行う。データベース運用管理情報とは、データベース運用管理の実行契機と実行内容を記述した定義情報を含む。
【００２０】
予め記憶装置に格納されたデータベース１０６の運用管理に関する定義情報の内容に基づき、データベースの運用管理を行うＤＢＭＳにおけるデータベースの運用管理の検証方法を提供する。ＤＢＭＳを使用して構築したシステムでは、データベースの信頼性を向上させることやデータベースの状態を適切に保つことを目的として、バックアップや再編成等の運用管理が行なわれる。データベースの運用管理には、上記の他にトランザクションログのバックアップ、データベース格納領域の拡張、データベースの回復、および、データベースのチューニングなどが存在する。
【００２１】
データベース運用管理情報１０１は、アプリケーションプログラム（以下、アプリケーション）１０４で行うデータベース運用管理の実行契機と実行内容を記述した定義情報である。運用管理の実行契機とは、運用管理の実行を開始するきっかけとなる事象である。運用管理の実行内容とは、実行する運用管理の項目及び方法である。
【００２２】
データベース運用管理検証処理１０２では、まず初めに、データベース運用管理情報１０１の実行内容に記述されたＤＢＭＳの運用管理コマンドまたは関数の構文を検証する構文検証処理を行う（１０７）。次に、実行内容に記述されたＤＢＭＳの運用管理コマンドまたは関数の呼び出しのシーケンスを検証する実行順序検証処理を行う（１０８）。次に、データベース運用管理情報１０１の実行契機に衝突が発生しないかどうかを検証する実行契機衝突検証処理を行う（１０９）。
データベース運用管理検証処理１０２は、上記の検証の結果を検証結果１０３として出力する。
【００２３】
ここで、検証結果１０３に不適切な箇所が含まれる場合、検証結果１０３の内容をデータベース運用管理情報１０１にフィードバックして修正し、検証結果１０３に不適切な箇所が含まれなくなるまで、繰り返しデータベース運用管理情報１０１を検証する。
【００２４】
データベース運用管理検証処理１０２が出力した検証結果１０３に不適切な箇所が含まれない場合は、データベース運用管理情報１０１を、ＤＢＭＳに登録する。
【００２５】
その後、ＤＢＭＳが登録されたデータベース運用管理情報１０１の内容に従って、データベースの運用管理を行う。
尚、上述した各処理を行う処理部は、それぞれ個別のプログラムとして実装してもよいし、複数の処理部を１つのプログラムとして実装してもよいし、それ以外の方法で実現してもよい。
【００２６】
（実施形態１）
以下に第一の実施形態について説明する。
〔システム構成図〕
図２は、第一の実施形態におけるシステムの構成図である。
図２に示す本実施形態のデータベース運用管理の検証方法を実施する計算機システムは、中央処理装置（ＣＰＵ）２０１、ディスプレイ２０２、キーボード２０３、可搬型媒体用ドライブ２０４、通信制御装置２０６、システムバス２０８、主メモリ２０９、および、磁気ディスク装置２１０から構成される。本実施例の計算機システムは、一般的な計算機システムと同様な構成を有する。
【００２７】
中央処理装置２０１は、本実施例で使用する各種プログラムを実行する。ディスプレイ２０２は、処理の実行状況や実行結果などを表示するために使用する。キーボード２０３は、データベース管理システムの実行などを指示するコマンドや関数を入力するために使用する。可搬型媒体用ドライブ２０４は、フレキシブルディスク、光磁気ディスクや、追記型光磁気ディスクなどの可搬型媒体２０５へのデータの読み書きのために使用する。
【００２８】
通信制御装置２０６は、ネットワーク２０７を介した通信のために使用する。主メモリ２０９は、本実施例で使用する各種プログラムと一時的なデータの格納に使用する。磁気ディスク装置２１０は、データベースやデータベースの運用管理に関する定義情報を格納するために使用する。システムバス２０８は、これらの各種装置を接続するために使用する。
【００２９】
磁気ディスク装置２１０中には、データベース格納領域１０６、および、定義情報格納領域２１４を格納する領域が確保される。
【００３０】
データベース格納領域１０６は、データベースとデータベースに関する定義情報を格納するために用いられる。定義情報格納領域２１４は、データベース運用管理定義検証プログラム２１１で使用する各種の定義情報を格納するために用いられる。定義情報格納領域２１４には、データベース運用管理情報１０１が保存される。
【００３１】
データベース運用管理情報１０１は、アプリケーションプログラム１０４で必要なデータベースの運用管理の実行契機と実行内容を記述した定義情報である。データベース運用管理情報１０１は、データベース運用管理検証プログラム１０２によって読み込まれ、記述の内容を検証される。
【００３２】
主メモリ２０９中には、アプリケーションプログラム１０４、データベース運用管理検証プログラ２１１、データベース管理システムプログラム１０５、システムプログラム２１２、および、ワークエリア２１３が保持される。
【００３３】
アプリケーションプログラム１０４は、データベース管理システムプログラム１０５が提供する機能を利用することによって、ユーザにサービスを提供する。
データベース運用管理検証プログラム２１１は、データベース運用管理情報１０１を読み込んで、その内容を検証する。
【００３４】
データベース管理システムプログラム１０５は、アプリケーションプログラム１０４に対してデータベース１０６の操作機能を提供すると供に、個別のデータベース運用管理を行うコマンドや関数を提供する。
【００３５】
システムプログラム２１２は、周辺機器との間のデータの入出力など、本実施例で使用する各種プログラムを実行するための基本的な機能を提供する。ワークエリア２１３は、プログラムの実行時に一時的に必要となるデータを記憶するために用いられる。
本実施例で使用するプログラムは、可搬型媒体２０５やネットワーク２０７を介して、主メモリ２０９中に設定される。
【００３６】
〔全体のフローチャート〕
図３は、第一の実施形態におけるデータベースの運用管理を検証する手順の概略を示すフローチャートである。データベースの運用管理を検証する手順は、以下の通りである。
【００３７】
（１）データベース運用管理情報１０１を読み込んで、データベース運用管理情報１０１の内容を検証し、検証結果１０３を出力する（ステップ３０１）。
（２）上記（１）の検証結果に不適切な個所が含まれていないかどうかを確認する（ステップ３０２）。
【００３８】
（３）上記（２）で、検証結果に不適切な個所が含まれる場合は（４）に進み、不適切な個所が含まれていない場合は全体の処理を終了する。
（４）データベース運用管理情報１０１の内容の修正を受け付ける（ステップ３０３）。尚、実行契機に関する情報が不適切であるという検証結果が出た場合は、データベース運用管理情報１０１の内容で修正する個所は、実行開始日時の情報を定められた時刻ずらすよう定義しておいてもよい。たとえば、現在設定された実行開始時刻から４時間後を修正後の実行開始時刻に設定してもよい。また、検証結果に応じた修正情報や修正個所等を予め設定しておき、検証結果に応じた修正を行ってもよい。
（５）上記（１）に戻る。
【００３９】
ここで、ステップ３０１は、データベース運用管理検証プログラムが行う。データベース運用管理検証プログラムの処理手順は、図５で説明する。
【００４０】
〔データベース運用管理情報〕
図４は、第一の実施形態におけるデータベース運用管理情報１０１の一例である。
本実施形態のデータベース運用管理情報では、指定された時刻を経過したこと、ＤＢＭＳからアラートが出力されたこと、ＤＢＭＳやシステムの内部情報が指定された条件を満たしたこと、および、これらの３つの事象を組み合わせた事象を、運用管理の実行契機とする。
【００４１】
データベース運用管理情報１０１は、アプリケーション１０４の要件や稼動環境の条件に従って、これらの開発者や管理者が作成および変更する。例えば、日中のみ処理を行い、夜間は処理を行わないアプリケーション１０４で使用されるＤＢＭＳ（１０５）では、バックアップや再編成などのデータベースの運用管理を夜間に行う。そのため、このようなアプリケーションに対しては、アプリケーション管理者などが、夜間にオフライン（データベースへのアクセスを受け付けない状態）の運用管理を実行するためのデータベース運用管理情報１０１を作成し、記憶装置へ格納する。
【００４２】
一方、２４時間３６５日連続で稼動することが前提のアプリケーションで使用されるＤＢＭＳでは、アプリケーションの処理と並行してオンラインのデータベースの運用管理を行う。そのため、このようなアプリケーション１０４に対しては、アプリケーション管理者などが、アプリケーション１０４の処理が少ない時間帯にオンライン（データベースへのアクセスを受け付けた状態）の運用管理を実行するためのデータベース運用管理情報１０１を作成し、記憶装置へ格納する。
【００４３】
ここで、アプリケーション開発者とは、ＤＢＭＳを使用したアプリケーションプログラムを開発するユーザであり、アプリケーション管理者とは、アプリケーション開発者が作成したアプリケーションの稼働環境において、アプリケーションの動作、データや、運用を管理するユーザを表す。
【００４４】
図４に示したデータベース運用管理情報１０１は、一つ以上の運用管理定義４０１（４０１ａおよび４０１ｂ）から構成される。各運用管理定義は、実行契機フィールド４０２（４０２ａおよび４０２ｂ）と実行内容フィールド４０３（４０３ａおよび４０３ｂ）から構成される。
【００４５】
実行契機フィールド４０２の内容は、運用管理の実行契機とする時刻の情報、アラートの情報、および、判定条件の情報を表す。実行契機フィールド４０２には、（１）時刻４０４（４０４ａおよび４０４ｂ）、（２）アラート４０５、及び、（３）判定条件４０６の３つの項目が含まれる。
【００４６】
（１）時刻４０４は、運用管理の実行指示を行う時刻を特定するための情報を示す。時刻の項目４０４は、（ａ）実行開始日時４０８（４０８ａおよび４０８ｂ）、（ｂ）実行周期４０９（４０９ａおよび４０９ｂ）、および、（ｃ）有効期限４１０（４１０ａおよび４１０ｂ）を副項目として含む。
【００４７】
（２）アラート４０５は、ＤＢＭＳからの出力を待つアラートの番号と内容を示す。アラートの項目４０５は、（ａ）アラートＩＤ４１１、および、（ｂ）テーブルＩＤ４１２を副項目として含む。尚、アラートとは、不正な操作や異常な状態などを検出した時などに送信される警告の情報である。警告情報に、識別子を付与して情報の管理してもよい。また、何（データ、表など）に対して警告すべき状態が発生したのかがわかるような情報を付与してもよいし、それ以外の情報を追加してもよい。
【００４８】
（３）判定条件４０６は、ＤＢＭＳやシステムの内部情報とそれに対して設定した閾値との比較による判定条件を示す。判定条件の項目４０６は、（ａ）パラメータ４１３、（ｂ）閾値４１４、および、（ｃ）比較条件４１７を副項目として含む。
【００４９】
実行内容フィールド４０３は、ＤＢＭＳの運用管理コマンドまたは運用管理関数を使用して行う運用管理の内容および実行指示手順を示す。実行内容フィールド４０３には、運用管理スクリプト４０７（４０７ａおよび４０７ｂ）が含まれる。運用管理スクリプト４０７は、ＤＢＭＳの一つ以上の運用管理コマンドまたは運用管理関数とそれらの起動順序を記述したスクリプトプログラム（シェルスクリプトやバッチファイルなどの各種の簡易型プログラム）である。
【００５０】
ここで、運用管理コマンドおよび運用管理関数とは、データベースのバックアップや、リカバリ、再編成、トランザクションログファイルの切り換え、データベース格納領域の閉塞および閉塞解除などの個別のデータベース運用管理項目を実行するために、ＤＢＭＳが提供するコマンドおよび関数である。
【００５１】
例えば、図４のデータベース運用管理情報１０１の運用管理定義１（４０１ａ）は、２００３年４月１日の午後１０時００分から一年の間、一週間周期で、実行内容４０３ａに記述した運用管理スクリプト４０７ａを起動することを表す。図４の運用管理定義１（４０１ａ）に記述した運用管理スクリプト４０７ａは、オンラインバックアップの手順の一例を示す。この例で記述した運用管理スクリプト４０７ａのオンラインバックアップは、（１）データベースのトランザクションログファイルの切り換えを行い、（２）データベース全体のオンラインバックアップを取得するという流れに従う。
【００５２】
ここで、図４の運用管理定義１（４０１ａ）の運用管理スクリプト４０７ａ中に記述した“ＤＯＬＯＧＳＷＡＰ”４０１６ａ、および、“ＤＯＢＡＣＫＵＰ”  ４０１６ｂは、それぞれ、ＤＢＭＳのトランザクションログファイルの切り換えを行う運用管理コマンドとデータベースのバックアップを行う運用管理コマンドを表す。
【００５３】
また、図４のデータベース運用管理情報１０１の運用管理定義２（４０１ｂ）は、２００３年４月１日以降で、アラート番号Ａ００２１２「テーブルＵＴ１内に未使用のセグメントが無くなりました。」のアラートを受信し、時刻が２１時００分を経過し、かつ、「データベース格納領域の使用済みセグメント比率が９０％以上である」という条件が成立した場合に、実行内容４０３ｂに記述した運用管理スクリプト４０７ｂを起動することを表す。
【００５４】
言い換えると、２００３年４月１日以降で、アラート番号Ａ００２１２のアラートを受信した場合、その日の２１時００分に、データベース内部情報に対する条件判定を行う。条件判定の結果、条件が満たされている場合は運用管理スクリプト４０７ｂの起動を指示し、条件が満たされていない場合は起動を指示しない。
【００５５】
図４の運用管理定義２（４０１ｂ）に記述した運用管理スクリプト４０７ｂは、オフラインの再編成の手順の一例を示す。この例で記述した運用管理スクリプト４０７ｂのオフライン再編成は、（１）データベース格納領域を閉塞（データベース格納領域へのアクセスを受け付けない状態にすること）し、（２）テーブルの再編成を行い、（３）データベース格納領域の閉塞を解除するという流れに従う。
【００５６】
ここで、図４の運用管理定義２（４０１ｂ）の運用管理スクリプト４０７ｂ中に記述した“ＤＢＨＯＬＤ”４０１６ｃ、“ＲＥＯＲＧＡＮＩＺＡＴＩＯＮ”４０１６ｄ、および、“ＤＢＵＮＨＯＬＤ”４０１６ｅは、それぞれ、データベース格納領域を閉塞する運用管理コマンド、テーブルの再編成を行う運用管理コマンド、および、データベース格納領域の閉塞を解除する運用管理コマンドを表す。
【００５７】
図４の運用管理スクリプト４０７は、シェルスクリプトに似た形式で記述しているが、データベースの運用管理の内容および実行指示手順を示すことができるのであれば、バッチファイルやその他のスクリプトプログラムの形式でも良い。
【００５８】
図４では、アラートの受信、時刻を経過、および、判定条件の成立のという３つの事象の全てが満たされたことと、指定された時間が経過したことを実行契機としたが、指定したアラートを受信したことや、時刻の経過と判定条件の成立のみを組み合わせるなど、部分的な組み合わせを実行契機としても良い。
【００５９】
図４では、本実施形態の説明で必要な情報のみを示しており、この他に情報があっても良いし、運用管理を実行する契機と実行する運用管理の内容を示す情報が取得できるならば、他の形式の情報で表現しても良い。
【００６０】
〔データベース運用管理検証プログラムのフローチャート〕
図５は、第一の実施形態におけるデータベース運用管理検証プログラム３０１のフローチャートである。データベース運用管理検証プログラムの処理手順は、以下の通りである。
（１）データベース運用管理情報１０１を読み込む（ステップ５０１）。
（２）データベース運用管理情報１０１から、未検証の運用管理定義４０１を一つ取り出す（ステップ５０２）。
（３）取り出した運用管理定義に対して、運用管理コマンドと運用管理関数の構文の検証を行う（ステップ５０３）。
（４）データベース運用管理情報１０１中にある全ての運用管理定義４０１の検証を行ったかどうかを確認する（ステップ５０４）。
（５）上記（４）で、全ての運用管理定義４０１を検証済みの場合は（６）に進み、未検証の運用管理定義４０１が存在する場合は（２）に戻る。
（６）データベース運用管理情報の実行契機の衝突の検証を行う（ステップ５０５）。
（７）検証結果１０３を出力して、全体の処理を終了する（ステップ５０６）。
【００６１】
ここで、ステップ５０３は、構文検証処理が行う。構文検証処理のフローチャートは、図６で説明する。また、ステップ５０５は、実行契機衝突検証処理が行う。実行契機衝突検証処理のフローチャートは、図７で説明する。
【００６２】
〔構文検証処理のフローチャート〕
図６は、第一の実施形態における構文検証処理のフローチャートである。構文検証の処理手順は、以下の通りである。
（１）運用管理定義４０１の実行内容４０３にある運用管理スクリプト４０７から、未検証の運用管理コマンドまたは運用管理関数を一つ取り出す（ステップ６０１）。
（２）取り出した運用管理コマンドまたは運用管理関数の構文解析を行う（ステップ６０２）。
（３）構文解析の結果に対して、構文誤りがあるかどうかを確認する（ステップ６０３）。
（４）上記（３）で、構文に誤りがある場合は（５）に進み、構文に誤りが無い場合は（６）に進む。
（５）コマンドまたは関数の構文と、構文誤りがある個所を検証結果に記述する（ステップ６０４）。
（６）運用管理定義４０１の実行内容４０３にある運用管理スクリプト４０７中に存在する全ての運用管理コマンドと運用管理関数の構文の検証を行ったかどうかを確認する（ステップ６０５）。
（７）上記（６）で、全てのコマンドと関数の構文を検証済みの場合は全体の処理を終了し、未検証のコマンドと関数がある場合は（１）に戻る。
【００６３】
〔実行契機衝突検証処理のフローチャート〕
図７は、第一の実施形態における実行契機衝突検証処理のフローチャートである。実行契機衝突検証の処理手順は、以下の通りである。
（１）データベース運用管理情報１０１から、運用管理定義４０１の二つの組み合わせのうち、未検証の組み合わせを一組読み出す（ステップ７０１）。
（２）二つの運用管理定義４０１に記載してある実行契機４０２を比較する（ステップ７０２）。
（３）比較の結果から、実行契機４０２の衝突が発生するかを確認する（ステップ７０３）。尚、実行契機の衝突は、コマンドやプログラムなどが同時期に実行される場合や、ある処理が実行中に並列して実行できない処理を行おうとした場合などに発生する。実行契機に関する情報（実行開始日時、実行周期、有効期限など）などにもとづいて、衝突が発生するか否かを判断する。
【００６４】
（４）上記（３）で、実行契機の衝突が発生する場合は（５）に進み、衝突が発生しない場合は（６）に進む。
（５）実行契機の衝突が発生する運用管理定義の組み合わせを、検証結果に記述する（ステップ７０４）。
（６）データベース運用管理情報にある運用管理定義の二つの組み合わせに対して、全ての場合を検証済みかどうか確認する（ステップ７０５）。
（７）上記（６）で、全ての組み合わせを検証済みの場合は全体の処理を終了し、未検証の組み合わせがある場合は（１）に戻る。
【００６５】
以上説明したように、本実施形態のデータベース運用管理の検証方法によれば、アプリケーション管理者が直接作成したデータベース運用管理情報の実行内容に記述した運用管理コマンドと運用管理関数の構文と、データベース運用管理情報の実行契機の衝突を検証できる。
【００６６】
これにより、ＤＢＭＳがデータベース運用管理情報の内容に従ってデータベースを運用管理する際に、運用管理コマンドと運用管理関数の構文エラーや運用管理スクリプトの同時起動による障害を発生させることなく、アプリケーションの要件や稼働環境の条件に従って、データベースの運用管理を適切に実行できるようになる。
【００６７】
（実施形態２）
以下に第二の実施形態について説明する。第二の実施形態は、データベース運用管理検証プログラムが行う処理内容を、第一の実施形態におけるデータベース運用管理検証プログラムが行う処理に加えて、運用管理スクリプトに記述した運用管理コマンドまたは運用管理関数の実行順序の検証処理を行うように変更した実施形態である。
【００６８】
〔システム構成図〕
図８は、第二の実施形態におけるシステム構成図である。図８に示す本実施形態のデータベース運用管理の検証方法を実施する計算機システムの構成は、図２で示した構成とほとんど同一である。
磁気ディスク装置２１０中の定義情報格納領域２１４には、図２で示す定義情報の他に、実行順序定義情報８０１が保存される。
【００６９】
実行順序定義情報８０１は、ＤＢＭＳ（１０５）が提供する運用管理コマンドまたは運用管理関数を使用してデータベースの運用管理を行う場合に、運用管理コマンドまたは運用管理関数の呼び出しのシーケンスを記述した情報である。実行順序定義情報８０１は、ＤＢＭＳ（１０５）が提供する運用管理コマンドまたは運用管理関数に依存して規定された情報であり、本実施形態のデータベース運用管理の検証処理において、予め与えられた情報である。
【００７０】
実行順序定義情報８０１は、データベース運用管理検証プログラム１０２によって読み込まれ、データベース運用管理情報１０１の内容を検証するために使用される。
【００７１】
〔全体のフローチャート〕
第二の実施形態におけるデータベースの運用管理を検証する手順の概略を示すフローチャートは、図３で説明した第一の実施形態におけるフローチャートと同様である。
【００７２】
〔データベース運用管理情報〕
第二の実施形態におけるデータベース運用管理情報の一例は、図４で説明した第一の実施形態におけるデータベース運用管理情報の一例と同様である。
【００７３】
〔データベース運用管理検証プログラムのフローチャート〕
図９は、第二の実施形態におけるデータベース運用管理検証プログラムのフローチャートである。データベース運用管理検証プログラムの処理手順は、以下の通りである。
（１）データベース運用管理情報１０１を読み込む（ステップ９０１）。
（２）実行順序定義情報８０１を読み込む（ステップ９０２）。
（３）データベース運用管理情報１０１から、未検証の運用管理定義４０１を一つ取り出す（ステップ９０３）。
（４）取り出した運用管理定義に対して、運用管理コマンドと運用管理関数の構文の検証を行う（ステップ９０４）。
【００７４】
（５）取り出した運用管理定義に対して、運用管理コマンドと運用管理関数の実行順序の検証を行う（ステップ９０５）。
（６）データベース運用管理情報１０１中にある全ての運用管理定義４０１の検証を行ったかどうかを確認する（ステップ９０６）。
（７）上記（６）で、全ての運用管理定義４０１を検証済みの場合は（８）に進み、未検証の運用管理定義４０１が存在する場合は（３）に戻る。
（８）データベース運用管理情報の実行契機の衝突の検証を行う（ステップ９０７）。
（９）検証結果１０３を出力して、全体の処理を終了する（ステップ９０８）。
【００７５】
ここで、ステップ９０４は、構文検証処理が行う。構文検証処理のフローチャートは、図６で説明した第一の実施形態における構文検証処理のフローチャートと同様である。ステップ９０５は、実行順序検証処理が行う。実行順序検証処理のフローチャートは、図１１で説明する。また、ステップ９０７は、実行契機衝突検証処理が行う。実行契機衝突検証処理のフローチャートは、図７で説明した第一の実施形態における実行契機衝突検証処理のフローチャートと同様である。
【００７６】
〔構文検証処理のフローチャート〕
第二の実施形態における構文検証処理のフローチャートは、図６で説明した第一の実施形態における構文検証処理のフローチャートと同様である。
〔実行順序定義情報〕
図１０は、第二の実施形態における実行順序定義情報の一例である。
図１０に示す実行順序定義情報８０１は、一つ以上の順序定義１００１（１００１ａおよび１００１ｂ）から構成される。各順序定義１００１は、冒頭に見出しとして付与されたタグ１００２（１００２ａおよび１００２ｂ）と、行頭に項番を付与された行１００３（１００３ａ〜１００３ｅ）の並びから構成される。
【００７７】
順序定義中の項番を付与された行１００３の並びは、ＤＢＭＳの運用管理コマンドまたは運用管理関数を用いて、冒頭のタグ１００２に記述された内容に該当するデータベース運用管理を行う場合に、運用管理コマンドおよび運用管理関数を呼び出す順番を表す。
【００７８】
例えば、図１０の実行順序定義情報８０１の順序定義１（１００１ａ）は、データベースのオンラインバックアップを行う順序を定義しており、まず、（１）データベースのトランザクションログ切り換えを行う運用管理コマンドまたは運用管理関数を起動（１００３ａ）した後、（２）データベースのバックアップを行う運用管理コマンドまたは運用管理関数を起動（１００３ｂ）する必要があることを示す。
【００７９】
図１０の順序定義１００１は、運用管理コマンドまたは運用管理関数の実行順序を自然言語で記述しているが、実際には、計算機システムによって解釈することができる数値や記号の列によって、運用管理コマンドまたは運用管理関数の実行順序を記述する。
【００８０】
〔実行順序検証処理のフローチャート〕
図１１は、第二の実施形態における実行順序検証処理のフローチャートである。実行順序検証の処理手順は、以下の通りである。
（１）運用管理定義４０１の実行内容４０３にある運用管理スクリプト４０７に記述された運用管理コマンドまたは運用管理関数の実行順序を抽出する（ステップ１１０１）。
（２）実行順序定義情報８０１から未照合の順序定義１００１を一つ取り出す（ステップ１１０２）。
（３）抽出した実行順序と取り出した順序定義１００１を照合する（ステップ１１０３）。
【００８１】
（４）照合の結果、一致するかを確認する（ステップ１１０４）。
（５）上記（４）で一致する場合は全体の処理を終了し、一致しない場合は（６）に進む。
（６）実行順序定義情報８０１の全ての順序情報１００１が照合済みかを確認する（ステップ１１０５）。
（７）上記（６）で全ての順序定義１００１が照合済みの場合は（８）に進み、照合済みでない場合は（２）に戻る。
（８）抽出した実行順序と照合結果を検証結果１０３に記述する（ステップ１１０６）。
【００８２】
〔実行契機衝突検証処理のフローチャート〕
第二の実施形態における実行契機衝突検証処理のフローチャートは、図７で説明した第一の実施形態における実行契機衝突検証処理のフローチャートと同様である。
【００８３】
以上説明したように、本実施形態のデータベース運用管理の検証方法によれば、アプリケーション管理者が直接作成したデータベース運用管理情報の実行内容に記述した運用管理コマンドと運用管理関数の構文、データベース運用管理情報の実行契機の衝突、および、運用管理コマンドと運用管理関数の実行順序を検証することができる。これにより、ＤＢＭＳがデータベース運用管理情報の内容に従ってデータベースを運用管理する際に、運用管理コマンドと運用管理関数の構文エラーや起動順序誤りによる障害、および、運用管理スクリプトの同時起動による障害を発生させることなく、アプリケーションの要件や稼働環境の条件に従って、データベースの運用管理を適切に実行できるようになる。
【００８４】
（実施形態３）
以下に第三の実施形態について説明する。第三の実施形態は、データベース運用管理の検証方法を、始めに、データベース運用管理情報におけるアプリケーションの稼働環境に依存しない情報の検証処理を行い、次に、データベース運用管理情報におけるアプリケーションの稼働環境に依存する情報の検証処理を行うように変更した実施形態である。
【００８５】
〔システム構成図〕
図１２は、第三の実施形態におけるシステム構成図である。図１３に示す本実施形態のデータベース運用管理の検証方法を実施する計算機システムの構成は、図２で示した構成とほとんど同一である。
【００８６】
磁気ディスク装置２１０中の定義情報格納領域２１４には、図２に示すデータベース運用管理情報１０１の他に、実行順序定義情報８０１、データベース運用管理マスタ情報１２０３、稼働環境定義情報１２０４、および、検証済みデータベース運用管理マスタ情報１２０５が保存される。
【００８７】
実行順序定義情報８０１は、ＤＢＭＳ１０５が提供する運用管理コマンドまたは運用管理関数を使用してデータベースの運用管理を行う場合の運用管理コマンドまたは運用管理関数の実行順序を規定した情報である。
【００８８】
データベース運用管理マスタ情報１２０３は、データベース運用管理情報１０１を作成するために必要なデータベース運用管理の実行契機と実行内容に関する項目を予め記述した定義情報である。データベース運用管理マスタ情報１２０３は、アプリケーション１０４の要件に従って、アプリケーション１０４の開発者が作成する。
【００８９】
データベース運用管理マスタ情報１２０３は、図４で示したデータベース運用管理情報１０１と同様の構造を持ち、かつ、データベース運用管理情報１０１の実行契機と実行内容に記載する項目のうちで、予め値が指定されていない項目を持つ。予め値が指定されない項目は、アプリケーションの稼働環境の制約や条件に依存して値が変更されるために、アプリケーションの開発時には、アプリケーション開発者が予め適切な値を指定できない項目である。
【００９０】
このような項目には、例えば、実行契機の時刻の項目に記述する実行開始日時と有効期限、判定条件の項目に記述する閾値や、実行内容の運用管理スクリプトに記述するデータベースの格納ディレクトリのパス名などが存在する。
【００９１】
稼働環境定義情報１２０４は、データベース運用管理マスタ情報１２０３で予め値が指定されていない項目の値を記述した定義情報である。そのため、稼働環境定義情報に記述された情報は、データベース運用管理情報の実行契機と実行内容に記述する項目のうち、アプリケーションの稼働環境に依存する項目に関する情報である。稼働環境定義情報は、アプリケーションの稼働環境の条件に従って、アプリケーションの管理者が作成する。ここで、アプリケーション管理者とは、アプリケーション開発者が作成したアプリケーションの稼働環境において、アプリケーションの動作、データや、運用を管理するユーザである。
【００９２】
本実施形態のデータベース運用管理情報１０１は、データベース運用管理マスタ情報１２０３の内容に基づいて作成される。具体的には、データベース運用管理情報１０１は、データベース運用管理マスタ情報１２０３と稼働環境定義情報１２０４から、データベース運用管理情報作成プログラム１２０１によって作成される。
【００９３】
検証済み箇所指示情報１２０５は、データベース運用管理マスタ情報１２０３のうちで、データベース運用管理マスタ情報検証プログラム１２０２によって内容を検証済みの項目を記述した定義情報であり、データベース運用管理マスタ情報検証プログラム１２０２によって出力される。
【００９４】
主メモリ２０９中には、図２に示すプログラムの他に、データベース運用管理情報作成プログラム１２０１、および、データベース運用管理マスタ情報検証プログラム１２０２が保持される。
【００９５】
データベース運用管理情報作成プログラム１２０１は、データベース運用管理マスタ情報１２０３、および、稼働環境定義情報１２０４を入力として受け取り、データベース運用管理情報１０１を作成するプログラムである。データベース運用管理マスタ情報検証プログラム１２０２は、データベース運用管理マスタ情報１２０３に記載された内容を検証し、検証済み箇所指示情報１２０５と検証結果１０３を出力するプログラムである。
【００９６】
〔全体のフローチャート〕
図１３は、第三の実施形態におけるデータベースの運用管理を検証する手順の概略を示すフローチャートである。データベースの運用管理を検証する手順は、以下の通りである。
（１）データベース運用管理マスタ情報１２０２と実行順序定義情報８０１を読み込んで、データベース運用管理情報のアプリケーションの稼働環境に依存しない情報の検証を行い、検証結果１０３と検証済み箇所指示情報１２０５を出力する。ここで、データベース運用管理情報のアプリケーションの稼働環境に依存しない情報とは、データベース運用管理マスタ情報１２０２に記述された項目のうち、値が指定されている項目によって示される情報ことである。（ステップ１３０１）
（２）上記（１）の検証結果に不適切な個所が含まれていないかどうかを確認する（ステップ１３０２）。
【００９７】
（３）上記（２）で、検証結果に不適切な個所が含まれる場合は（４）に進み、不適切な個所が含まれていない場合は（６）に進む。
（４）データベース運用管理マスタ情報１２０２の内容の修正を受け付ける（ステップ１３０３）。
（５）上記（１）に戻る。
（６）データベース運用管理マスタ情報１２０２と稼働環境定義情報１２０４を読み込んで、データベース運用管理情報１０１を出力する（１３０４）。
【００９８】
（７）データベース運用管理情報１０１、実行順序定義情報８０１、および、検証済み箇所指示情報１２０５を読み込んで、データベース運用管理情報のアプリケーションの稼働環境に依存する情報の検証を行い、検証結果１０３を出力する。ここで、データベース運用管理情報のアプリケーションの稼働環境に依存しない情報とは、データベース運用管理情報１０１に記述された項目のうちで、データベース運用管理マスタ情報１２０３で予め値が指定されていない項目によって示される情報ことである。（ステップ１３０５）
（８）上記（７）の検証結果に不適切な個所が含まれていないかどうかを確認する（ステップ１３０６）。
（９）上記（８）で、検証結果に不適切な個所が含まれる場合は（１０）に進み、不適切な個所が含まれていない場合は全体の処理を終了する。
（１０）データベース運用管理情報１０１の内容の修正を受け付ける（ステップ１３０７）。
（１１）上記（７）に戻る。
【００９９】
ここで、ステップ１３０１は、データベース運用管理マスタ情報検証プログラムが行う。データベース運用管理マスタ情報検証プログラムの処理手順は、図１６で説明する。ステップ１３０４は、データベース運用管理情報作成プログラムが行う。データベース運用管理情報作成プログラムの処理手順は、図２１で説明する。また、ステップ１３０５は、データベース運用管理検証プログラムが行う。データベース運用管理プログラムの処理手順は、図９で説明した第二の実施形態におけるデータベース運用管理検証プログラムのフローチャートと同様である。
【０１００】
〔データベース運用管理情報〕
第三の実施形態におけるデータベース運用管理情報の一例は、図４で説明した第一の実施形態におけるデータベース運用管理情報の一例と同様である。
【０１０１】
〔データベース運用管理マスタ情報〕
図１４は、第三の実施形態におけるデータベース運用管理マスタ情報の一例である。
本実施形態のデータベース運用管理マスタ情報１２０３は、データベース運用管理情報１０１を作成するために必要なデータベース運用管理の実行契機と実行内容に関する項目を予め記述した定義情報である。データベース運用管理マスタ情報１２０３は、アプリケーション１０４の要件に従って、アプリケーション１０４の開発者が作成する。ここで、アプリケーション開発者とは、ＤＢＭＳを使用したアプリケーションプログラムを開発するユーザでる。
【０１０２】
データベース運用管理マスタ情報１２０３は、図４で示したデータベース運用管理情報１０１と同様の形式および構造を持ち、かつ、データベース運用管理情報１０１の実行契機と実行内容に記載する項目のうちで、予め値が指定されていない項目を持つ。予め値が指定されない項目は、アプリケーションの稼働環境の制約や条件に依存して値が変更されるために、アプリケーションの開発時には、アプリケーション開発者が予め適切な値を指定できない項目である。
【０１０３】
このような項目には、例えば、実行契機の時刻の項目に記述する実行開始日時と有効期限、判定条件の項目に記述する閾値や、実行内容の運用管理スクリプトに記述するデータベースの格納ディレクトリのパス名などが存在する。
【０１０４】
本実施形態のデータベース運用管理情報１０１は、データベース運用管理マスタ情報１２０３の内容に基づいて作成される。具体的には、データベース運用管理情報１０１は、データベース運用管理マスタ情報１２０３と稼働環境定義情報１２０４から、データベース運用管理情報作成プログラム１２０１によって作成される。
【０１０５】
図１４に示したデータベース運用管理マスタ情報１２０３の構造は、図４に示したデータベース運用管理情報１０１の構造と同様である。
データベース運用管理マスタ情報１２０３は、一つ以上の運用管理定義１４０１（１４０１ａおよび１４０１ｂ）から構成される。各運用管理定義は、実行契機フィールド１４０２（１４０２ａおよび１４０２ｂ）と実行内容フィールド１４０３（１４０３ａおよび１４０３ｂ）から構成される。
【０１０６】
実行契機フィールド１４０２には、（１）時刻１４０４（１４０４ａおよび１４０４ｂ）、（２）アラート１４０５、及び、（３）判定条件１４０６の３つの項目が含まれる。
（１）時刻１４０４は、運用管理の実行指示を行う時刻を特定するための情報を示す。時刻の項目１４０４は、（ａ）実行開始日時１４０８（１４０８ａおよび１４０８ｂ）、（ｂ）実行周期１４０９（１４０９ａおよび１４０９ｂ）、および、（ｃ）有効期限１４１０（１４１０ａおよび１４１０ｂ）を副項目として含む。
（２）アラート１４０５は、ＤＢＭＳからの出力を待つアラートの番号と内容を示す。アラートの項目１４０５は、（ａ）アラートＩＤ  １４１１、および、（ｂ）テーブルＩＤ  １４１２を副項目として含む。
（３）判定条件１４０６は、ＤＢＭＳやシステムの内部情報とそれに対して設定した閾値との比較による判定条件を示す。判定条件の項目１４０６は、（ａ）パラメータ１４１３、（ｂ）閾値１４１４、および、（ｃ）比較条件１４１５を副項目として含む。
実行内容フィールド４０３には、一つの運用管理スクリプト１４０７（１４０７ａおよび１４０７ｂ）が含まれる。
【０１０７】
運用管理スクリプト１４０７は、ＤＢＭＳの一つ以上の運用管理コマンドまたは運用管理関数とそれらの起動順序を記述したスクリプトプログラム（シェルスクリプトやバッチファイルなどの各種の簡易型プログラム）である。
【０１０８】
図１４に示したデータベース運用管理マスタ情報１２０３には、図４に示したデータベース運用管理情報１０１と異なり、予め値が指定されない項目が含まれる。
例えば、図１４のデータベース運用管理マスタ情報１２０３では、運用管理定義１  １４０１ａの実行契機１４０２ａにある時刻の項目１４０４ａに含まれる実行開始日時１４０８ａ、実行周期１４０９ａ、および、有効期限１４１０ａの各項目や、運用管理定義２  １４０１ｂの実行内容１４０３ｂにある運用管理スクリプトプログラム１４０７ｂ中にあるデータベース格納ディレクトリ指定の項目１４１６には、予め値が指定されていない。
【０１０９】
図１４のデータベース運用管理マスタ情報１２０３では、実行開始日時１４０８ａ、実行周期１４０９ａ、有効期限１４１０ａ、および、データベース格納ディレクトリ指定の項目１４１６などの予め値が指定されない項目を、疑問符（？）で囲まれた文字列を指定することによって示している。
【０１１０】
本実施形態では、以降、データベース運用管理マスタ情報１２０３中で疑問符（？）で囲まれた文字列によって、予め値が指定されない項目であることを表し、データベース運用管理マスタ情報１２０３中の疑問符（？）で囲まれた文字列を、データベース運用管理マスタ情報１２０３の雛形パラメータと表記する。
【０１１１】
〔検証済み箇所指示情報〕
図１５は、第三の実施形態における検証済み箇所指示情報１２０５の一例である。
検証済み箇所指示情報１２０５は、データベース運用管理マスタ情報１２０３のうちで、内容を検証済みの項目を指定した定義情報であり、データベース運用管理マスタ情報検証プログラム１２０２によって作成される。
【０１１２】
図１５に示す検証済み箇所指示情報１２０５は、構文検証済み箇所指示情報１５０１、実行順序検証済み箇所指示情報１５０２、および、実行契機衝突検証済み箇所指示情報１５０３の３つの項目から構成される。
【０１１３】
構文検証済み箇所指示情報１５０１は、各運用管理定義１４０１の実行内容１２０３にある運用管理スクリプト１４０７に記述された運用管理コマンド又は関数のうちで、構文に誤りが無いか否かの検証を実施済みのものの出現位置と内容を指定した情報である。
【０１１４】
実行順序検証済み箇所指示情報１５０２は、各運用管理定義１４０１の実行内容１２０３にある運用管理スクリプト１４０７のうちで、運用管理スクリプト１４０７に記述された運用管理コマンド又は関数の実行順序が適切か否かの検証を実施済みの運用管理定義とスクリプトファイルの名称を指定した情報である。
【０１１５】
実行契機衝突検証済み箇所指示情報１５０３は、データベース運用管理マスタ情報１２０３の各運用管理定義１４０１に記述された実行契機１４０２のうちで、運用管理スクリプト１４０７の実行契機の衝突が発生しないかどうかの検証を実施済みの運用管理定義１４０１の名称を指定した情報である。
【０１１６】
構文検証済み箇所指示情報１５０１、実行契機衝突検証済み箇所指示情報１５０３、および、実行順序検証済み箇所指示情報１５０２は、それぞれ、データベース運用管理マスタ情報検証プログラム１２０２のマスタ情報用構文検証処理１６０４、マスタ情報用実行契機衝突検証処理１６０７、および、マスタ情報用実行順序検証処理１６０５によって、検証済み箇所指示情報１２０５中に記述される。
【０１１７】
例えば、図１５の検証済み箇所指示情報１２０５の構文検証済み箇所指示情報１５０１は、図１４に示すデータベース運用管理マスタ情報１２０３の運用管理定義１  １４０１ａにある運用管理スクリプトｂａｃｋｕｐ．ｓｃｒｉｐｔ  １４０７ａ  の８行目（Ｌｉｎｅ  ８）にある運用管理コマンド  ＤＯＬＯＧＳＷＡＰ、および、１５行目（Ｌｉｎｅ  １５）にある運用管理コマンドＤＯＢＡＣＫＵＰに、構文に誤りが無いことが検証済みであることを表す。
【０１１８】
また、図１５の実行順序検証済み箇所指示情報１５０２は、図１４に示すデータベース運用管理マスタ情報１２０３の運用管理定義１  １４０１ａにある運用管理スクリプトｂａｃｋｕｐ．ｓｃｒｉｐｔ  １４０７ａ、および、運用管理定義２  １４０１ｂにある運用管理スクリプトｒｅｏｒｇａｎｉｚａｔｉｏｎ．ｓｃｒｉｐｔ  １４０７ｂに、運用管理コマンド又は関数の実行順序に誤りがないことを検証済みであることを表す。
【０１１９】
図１５に示す検証済み箇所指示情報１２０５は、検証済みの項目を指示する情報を自然言語で記述しているが、データベース運用管理マスタ情報１２０３の中で内容を検証済みの項目を表すことができるのであれば、他の形式の情報で表現してもよい。
【０１２０】
〔データベース運用管理マスタ情報検証プログラムのフローチャート〕
図１６は、第三の実施形態におけるデータベース運用管理マスタ情報検証プログラム１２０２のフローチャートである。データベース運用管理マスタ情報検証プログラム１２０２の処理手順は、以下の通りである。
（１）データベース運用管理マスタ情報１２０３を読み込む（ステップ１６０１）。
（２）実行順序定義情報８０１を読み込む（ステップ１６０２）。
（３）データベース運用管理マスタ情報１２０３から、未検証の運用管理定義１４０１を一つ取り出す（ステップ１６０３）。
（４）取り出した運用管理定義１４０１に対して、運用管理スクリプト１４０７に記述された運用管理コマンドと運用管理関数の構文に誤りが無いか否かの検証を行う（ステップ１６０４）。
【０１２１】
（５）取り出した運用管理定義に対して、運用管理スクリプト１４０７に記述された運用管理コマンドと運用管理関数の実行順序に誤りが無いか否かの検証を行う（ステップ１６０５）。
（６）データベース運用管理マスタ情報１２０３中にある全ての運用管理定義１４０１の検証を行ったかどうかを確認する（ステップ１６０６）。
（７）上記（６）で、全ての運用管理定義１４０１を検証済みの場合は（８）に進み、未検証の運用管理定義１４０１が存在する場合は（３）に戻る。
（８）データベース運用管理マスタ情報中にある各運用管理定義に対して、運用管理スクリプト１４０７の実行契機の衝突が発生しないか否か検証を行う（ステップ１６０７）。
（９）検証結果１０３を出力する（ステップ１６０８）。
（１０）検証済み箇所指示情報１２０５を出力して、全体の処理を終了する（ステップ１６０９）。
【０１２２】
ここで、ステップ１６０４は、マスタ情報用構文検証処理が行う。マスタ情報用構文検証処理のフローチャートは、図１７で説明する。ステップ１６０５は、マスタ情報用実行順序検証処理が行う。マスタ情報用実行順序検証処理のフローチャートは、図１８で説明する。また、ステップ１６０７は、マスタ情報用実行契機衝突検証処理が行う。マスタ情報用実行契機衝突検証処理のフローチャートは、図１９で説明する。
【０１２３】
〔マスタ情報用構文検証処理のフローチャート〕
図１７は、第三の実施形態におけるマスタ情報用構文検証処理１６０４のフローチャートである。マスタ情報用構文検証処理１６０４の処理手順は、以下の通りである。
（１）運用管理定義１４０１の実行内容１４０３の運用管理スクリプト１４０７から、構文誤りがあるか否かの検証を行っておらず、かつ、運用管理コマンド又は関数の名称およびオプションとパラメータの指定部分が雛形パラメータとして指定されていない運用管理コマンド又は関数を一つ取り出す（ステップ１７０１）。
【０１２４】
（２）取り出した運用管理コマンドまたは運用管理関数の構文解析を行う（ステップ１７０２）。
（３）構文解析の結果に対して、構文誤りがあるかどうかを確認する（ステップ１７０３）。
（４）上記（３）で、構文に誤りがある場合は（５）に進み、構文に誤りが無い場合は（６）に進む。
（５）コマンドまたは関数の構文と、構文誤りがある個所を検証結果１０３に記述して、（７）に進む（ステップ１７０４）。
（６）検証済み箇所指示情報１２０５に、検証した運用管理コマンド又は関数のデータベース運用管理マスタ情報１２０３における出現位置と内容を記述し、（７）に進む（ステップ１７０５）。
【０１２５】
（７）運用管理定義の運用管理スクリプトにある、運用管理コマンド又は関数の名称およびオプションとパラメータの指定部分が雛形パラメータとして指定されていない全ての運用管理コマンドと関数の構文を検証済みかどうかを確認する（ステップ１７０６）。
（８）上記（７）で、全てのコマンドと関数の構文を検証済みの場合は全体の処理を終了し、未検証のコマンドと関数がある場合は（１）に戻る。
【０１２６】
〔実行順序定義情報〕
第三の実施形態における実行順序定義情報は、図１０で説明した第二の実施形態における実行順序定義情報と同様である。
【０１２７】
〔マスタ情報用実行順序検証処理のフローチャート〕
図１８は、第三の実施形態におけるマスタ情報用実行順序検証処理１６０５のフローチャートである。マスタ情報用実行順序検証処理１６０５の処理手順は、以下の通りである。
（１）運用管理定義１４０１の実行内容１４０３にある運用管理スクリプト１４０７中に、運用管理コマンド又は関数の名称が雛形パラメータとして指定されている箇所が存在するか否かを確認する（ステップ１８０１）。
（２）上記（１）で雛形パラメータが存在する場合は全体の処理を終了し、存在しない場合は（３）に進む。
（３）運用管理スクリプト４０７に記述された運用管理コマンドまたは運用管理関数の実行順序を抽出する（ステップ１８０２）。
【０１２８】
（４）実行順序定義情報８０１から未照合の順序定義１００１を一つ取り出す（ステップ１８０３）。
（５）抽出した実行順序と取り出した順序定義１００１を照合する（ステップ１８０４）。
（６）照合の結果、一致するかを確認する（ステップ１８０５）。
（７）上記（６）で一致する場合は（１１）に進み、一致しない場合は（８）に進む。
（８）実行順序定義情報８０１の全ての順序情報１００１が照合済みかを確認する（ステップ１８０６）。
【０１２９】
（９）上記（８）で全ての順序定義１００１が照合済みの場合は（１０）に進み、照合済みでない場合は（４）に戻る。
（１０）抽出した実行順序と照合結果を検証結果１０３に記述し、全体の処理を終了する（ステップ１８０７）。
（１１）検証済み箇所指示情報１２０５に、検証した運用管理定義１４０１と運用管理スクリプト１４０７の名称を記述する（ステップ１８０８）。
【０１３０】
〔マスタ情報用実行順序衝突検証処理のフローチャート〕
図１９は、第三の実施形態におけるマスタ情報用実行契機衝突検証処理１６０７のフローチャートである。マスタ情報用実行契機衝突検証の処理手順は、以下の通りである。
（１）データベース運用管理マスタ情報１２０３から、運用管理定義１４０１の２つの組み合わせのうち、実行契機の衝突が発生するか否かの検証を行っておらず、かつ、実行契機中に雛形パラメータの指定が無い運用管理定義１４０１の組み合わせを取り出す（ステップ１９０１）。
【０１３１】
（２）二つの運用管理定義１４０１に記載してある実行契機４０２を比較する（ステップ１９０２）。
（３）比較の結果から、実行契機１４０２の衝突が発生するかを確認する（ステップ１９０３）。
（４）上記（３）で、実行契機１４０２の衝突が発生する場合は（５）に進み、衝突が発生しない場合は（６）に進む。
（５）実行契機１４０２の衝突が発生する運用管理定義１４０１の組み合わせを検証結果１０３に記述し、（７）に進む（ステップ１９０４）。
【０１３２】
（６）検証した２つの運用管理定義１４０１の組み合わせを、検証済み箇所指示情報１２０５に記述し、（７）に進む（ステップ１９０５）。
（７）データベース運用管理マスタ情報１２０３にある運用管理定義１４０１の二つの組み合わせに対して、全ての場合を検証済みかどうか確認する（ステップ１９０６）。
（８）上記（７）で、全ての組み合わせを検証済みの場合は全体の処理を終了し、未検証の組み合わせがある場合は（１）に戻る。
【０１３３】
〔稼動環境定義情報〕
図２０は、第三の実施形態における稼動慣用定義情報１２０４の一例である。稼働環境定義情報１２０４は、データベース運用管理マスタ情報１２０３で雛形パラメータを指定された項目の値を記述した定義情報である。
図２０に示す稼働環境情報１２０４は、データベース運用管理マスタ情報１２０３にある運用管理定義１４０１ごとに、出現する雛形パラメータとそれに対応する値を記述した複数の列２００１（２００１ａから２００１ｈ）によって構成される。
【０１３４】
例えば、図２の稼働環境定義情報１２０４の一行目２００１ａでは、図１４のデータベース運用管理マスタ情報１２０３の運用管理定義１  １４０１ａの実行契機１４０２ａにある時刻の項目１４０４ａ中の実行開始日時１４０８ａに指定された雛形パラメータｄａｔａ１に、“２００３年４月１日  ２２時００分”を指定することを表す。
【０１３５】
〔データベース運用管理情報作成プログラムのフローチャート〕
図２１は、第三の実施形態におけるデータベース運用管理情報作成プログラム１２０１のフローチャートである。データベース運用管理情報作成プログラム１２０１の処理手順は、以下の通りである。
【０１３６】
（１）データベース運用管理マスタ情報１２０３を読み込む（ステップ２１０１）。
（２）稼働環境定義情報１２０４を読み込む（ステップ２１０２）。
（３）データベース運用管理マスタ情報１２０３中の雛形パラメータに、稼働環境情報１２０４に記述された対応する値を書き込んで、データベース運用管理情報１０１を作成する（ステップ２１０３）。
（４）データベース運用管理情報１０１を出力する（ステップ２１０４）。
【０１３７】
〔データベース運用管理検証プログラムのフローチャート〕
図２２は、第三の実施形態におけるデータベース運用管理検証プログラム２１１のフローチャートである。データベース運用管理検証プログラム２１１の処理手順は、以下の通りである。
（１）データベース運用管理情報１０１を読み込む（ステップ２２０１）。
（２）実行順序定義情報８０１を読み込む（ステップ２２０２）。
（３）検証済み箇所指示情報１２０５を読み込む（ステップ２２０３）。
（４）データベース運用管理情報１０１から、未検証の運用管理定義４０１を一つ取り出す（ステップ２２０４）。
【０１３８】
（５）取り出した運用管理定義に対して、運用管理コマンドと運用管理関数の構文の検証を行う（ステップ２２０５）。
（６）取り出した運用管理定義に対して、運用管理コマンドと運用管理関数の実行順序の検証を行う（ステップ２２０６）。
（７）データベース運用管理情報１０１中にある全ての運用管理定義４０１の検証を行ったかどうかを確認する（ステップ２２０７）。
（８）上記（７）で、全ての運用管理定義４０１を検証済みの場合は（９）に進み、未検証の運用管理定義４０１が存在する場合は（４）に戻る。
（９）データベース運用管理情報の実行契機の衝突の検証を行う（ステップ２２０８）。
（１０）検証結果１０３を出力して、全体の処理を終了する（ステップ２２０９）。
【０１３９】
ここで、ステップ２２０５は、構文検証処理が行う。構文検証処理のフローチャートは、図６で説明した第一の実施形態における構文検証処理のフローチャートと同様である。ステップ２２０６は、実行順序検証処理が行う。実行順序検証処理のフローチャートは、図１１で説明した第二の実施形態における構文検証処理のフローチャートと同様である。また、ステップ２２０８は、実行契機衝突検証処理が行う。実行契機衝突検証処理のフローチャートは、図７で説明した第一の実施形態における実行契機衝突検証処理のフローチャートと同様である。
【０１４０】
〔構文検証処理のフローチャート〕
第三の実施形態における構文検証処理のフローチャートは、図６で説明した第一の実施形態における構文検証処理のフローチャートと同様である。
【０１４１】
〔実行順序検証処理のフローチャート〕
第三の実施形態における実行順序検証処理のフローチャートは、図１１で説明した第ニの実施形態における実行順序検証処理のフローチャートと同様である。
【０１４２】
〔実行契機衝突検証処理のフローチャート〕
第三の実施形態における実行契機衝突検証処理のフローチャートは、図７で説明した第一の実施形態における実行契機衝突検証処理のフローチャートと同様である。
【０１４３】
以上説明したように、本実施形態のデータベース運用管理の検証方法によれば、始めに、アプリケーション開発者が作成したデータベース運用管理マスタ情報の実行内容に記述した運用管理コマンドと運用管理関数の構文、データベース運用管理情報の実行契機の衝突、および、運用管理コマンドと運用管理関数の実行順序を検証することができ、次に、アプリケーション管理者が作成した稼働環境定義情報を用いて作成したデータベース運用管理情報について、上記と同様の検証を行うことができる。これにより、アプリケーション開発者がアプリケーションの要件に従ってデータベース運用管理情報を作成し、アプリケーション管理者がアプリケーションの稼働環境の条件に従ってデータベース運用管理情報の内容を変更する場合において、ＤＢＭＳが、運用管理コマンドと運用管理関数の構文エラーや起動順序誤りによる障害、および、運用管理スクリプトの同時起動による障害を発生させることなく、アプリケーションの要件や稼働環境の条件に従って、データベースの運用管理を適切に実行できるようになる。
【０１４４】
このように、アプリケーション開発者とアプリケーション管理者が作成および変更したデータベース運用管理情報の内容を、アプリケーションの要件やアプリケーションの稼働環境の条件に対して適切であるかどうかを予め検証することができる。また、データベース運用管理情報の内容を予め検証することによって、ＤＢＭＳがアプリケーションの稼働環境においてデータベースを適切に運用管理することができるようになる。
【０１４５】
また、ＤＢＭＳがアプリケーションの稼働環境において適切にデータベースを運用管理できるようになることの副次的な効果として、ＤＢＭＳを使用して構築したシステムにおいて、データベースの運用管理を行う役割を担ったユーザであるデータベース管理者の負担を少なくすることができる。
【０１４６】
さらに、データベース管理者の負担を少なくすることによって、データベースの運用管理に掛かる人件費などの費用を削減することができ、データベースの運用管理に必要なコストを少なくできるという効果が期待できる。
【０１４７】
【発明の効果】
本発明によれば、データベース運用管理情報の内容を、アプリケーションの要件やアプリケーションの稼働環境の条件などに対して適切であるかどうかを予め検証することができる。これにより、データベースの運用管理に必要な労力やコストを軽減できるという効果が期待できる。
【図面の簡単な説明】
【図１】データベース運用管理の検証方法の原理図を示す。
【図２】実施形態１におけるシステム構成を示す。
【図３】実施形態１におけるデータベースの運用管理を検証する手順を示したフローチャートである。
【図４】実施形態１におけるデータベース運用管理情報の一例を示した図である。
【図５】実施形態１におけるデータベース運用管理検証プログラムのフローチャートである。
【図６】実施形態１における構文検証処理のフローチャートである。
【図７】実施形態１における実行契機衝突検証処理のフローチャートである。
【図８】実施形態２におけるシステム構成を示す。
【図９】実施形態２におけるデータベース運用管理検証プログラムのフローチャートである。
【図１０】実施形態２における実行順序定義情報の一例を示した図である。
【図１１】実施形態２における実行順序検証処理のフローチャートである。
【図１２】実施形態３におけるシステム構成を示す。
【図１３】実施形態３におけるデータベース運用管理検証プログラムのフローチャートである。
【図１４】実施形態３におけるデータベース運用管理マスタ情報の一例を示した図である。
【図１５】実施形態３における検証済み箇所指示情報の一例を示した図である。
【図１６】実施形態３におけるデータベース運用管理マスタ情報検証プログラムのフローチャートである。
【図１７】実施形態３におけるマスタ情報用構文検証処理のフローチャートである。
【図１８】実施形態３におけるマスタ情報用実行順序検証処理のフローチャートである。
【図１９】実施形態３におけるマスタ情報用実行契機衝突検証処理のフローチャートである。
【図２０】実施形態３における稼働環境定義情報の一例を示した図である。
【図２１】実施形態３におけるデータベース運用管理情報作成プログラムのフローチャートである。
【図２２】実施形態３におけるデータベース運用管理検証プログラムのフローチャートである。
【符号の説明】
１０１  データベース運用管理情報
１０２  データベース運用管理検証処理
１０３  検証結果
１０４  アプリケーション
１０５  ＤＢＭＳ
１０６  データベース
【図１】
2005004669.tif 000003
【図２】
2005004669.tif 000004
【図３】
2005004669.tif 000005
【図４】
2005004669.tif 000006
【図５】
2005004669.tif 000007
【図６】
2005004669.tif 000008
【図７】
2005004669.tif 000009
【図８】
2005004669.tif 000010
【図９】
2005004669.tif 000011
【図１０】
2005004669.tif 000012
【図１１】
2005004669.tif 000013
【図１２】
2005004669.tif 000014
【図１３】
2005004669.tif 000015
【図１４】
2005004669.tif 000016
【図１５】
2005004669.tif 000017
【図１６】
2005004669.tif 000018
【図１７】
2005004669.tif 000019
【図１８】
2005004669.tif 000020
【図１９】
2005004669.tif 000021
【図２０】
2005004669.tif 000022
【図２１】
2005004669.tif 000023
【図２２】
2005004669.tif 000024