(57)【特許請求の範囲】
【請求項１】
オンライン運用するコンピュータシステムの設備データを格納し、該データをシステム運用に供すると共に設備の新設／変更／撤去に応じてデータメンテナンスを行うデータベースシステムにおいて、
データを格納するデータレコードと、当該レコードの使用状態を管理するレコード使用フラグと、メンテナンス種別を管理するメンテナンス種別と、変更内容を格納する別レコードの位置を管理する変更ポインタとで構成するテーブルをデータ格納の単位要素とするデータベースと、データベースアクセスルーチンとを備え、
前記データベースアクセスルーチンは、
設備新設のデータメンテナンス時にはレコード使用フラグで空きレコードを探して当該レコードを「使用」にしメンテナンス種別を「新設」にして新設内容をデータレコードに格納し、設備撤去のデータメンテナンス時にはメンテナンス種別を「撤去」とし、設備変更のデータメンテナンス時にはレコード使用フラグで空きレコードを探して当該空きレコードを「使用」にし当該空きレコードに変更内容を書き込み元のレコードの変更ポインタに空きレコードの位置を書き込みメンテナンス種別を「変更」にし、
前記データメンテナンス中には、設備新設箇所のデータレコードに対する運用プロセスからのアクセスは拒否し、設備撤去箇所と設備変更箇所のデータレコードに対する運用プロセスからのアクセスは要求どおりアクセスすることを特徴とするデータベースシステム。
【請求項２】
前記データベースアクセスルーチンは、データメンテナンス後、設備新設箇所のデータレコードに対する運用プロセスからのアクセスには要求どおり当該データレコードをアクセスし、設備撤去箇所のデータレコードに対する運用プロセスからのアクセスを拒否し、設備変更箇所のデータレコードに対する運用プロセスからのアクセスには当該変更ポインタが示す変更内容を格納したデータレコードをアクセスすることを特徴とする請求項１に記載のデータベースシステム。
【請求項３】
前記データベースアクセスルーチンは、メンテナンスしたデータを運用プロセスへの運用データに反映後、設備新設箇所のデータレコードの前記メンテナンス種別はクリアし、設備撤去箇所のデータレコードの前記レコード使用フラグとメンテナンス種別はクリアし、設備変更箇所のデータレコードの変更内容を格納してある別レコードの内容を元のレコードにコピーし、別レコードの前記レコード使用フラグと元のレコードの前記メンテナンス種別と変更ポインタをクリアし、データメンテナンス用の前記レコード使用フラグとメンテナンス種別と変更ポインタをクリアするデータメンテナンス本登録手段を備えたことを特徴とする請求項１又は２に記載のデータベースシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、１日２４時間オンライン運用するコンピュータシステムのデータベースシステムに関する。
【０００２】
【従来の技術】
監視制御システムなど、１日２４時間オンライン運用するコンピュータシステムにおいては、監視対象設備などの設備情報をデータベースで管理し、常時、運用処理で参照している。その設備は保守や監視対象領域の変更等により、設置されている現地において新設／変更／撤去などの工事が行われる。それを反映してデータベースを更新する処理、いわゆるデータメンテナンスが行われる。
【０００３】
しかし、運用中にデータベースを更新してしまうと、運用処理が更新途中の不完全なデータを参照して処理してしまうので不具合を生じる恐れがある。これを防ぐため、完全に同じ構造のデータベースを２組用意し、１つは運用プロセスでデータ参照などのアクセスに利用し、もう１つはデータメンテナンスで用い、データメンテナンス後、全ての処理が行われていないタイミングを見計らって、運用プロセス用とデータメンテナンス用のデータベースを入れ替えている。
【０００４】
この入れ替えは、物理的に内容を入れ替えるわけではなく、運用処理やデータメンテナンスのプロセス群が見るべきデータベースを替えるというだげである。これにより、一瞬にしてデータベースを切り替えることがでぎ、運用に支障を与えることはない。
【０００５】
また、データメンテナンス内容を運用に反映せずに元に戻す場合も、データメンテナンス用のデータベースのみ元に戻すだけでよく、運用処理には影響を与えない。
【０００６】
この例を図７に示し、詳細に説明する。まず、同図の（ａ）に示すように、運用プロセス１はデータベース２Ａの設備データ等を参照しながらオンラインで監視制御処理を行っている。データメンテナンスプロセス３は事前にデータベース２Ａの内容をデータベース２Ｂにコピーしておく。このタイミングは前回のメンテナンスの直後でも良いし、今回の直前でもよい。
【０００７】
この状態で、プロセス３は、データメンテナンスを開始し、データベース２Ｂの内容を更新する。
【０００８】
この後、運用プロセス１の処理の合間を縫って、運用プロセス１とデータメンテナンスプロセス３が参照すべきデータベースを変更する。
【０００９】
すなわち、同図の（ｂ）に示すように、運用プロセス１はデータベース２Ｂを、データメンテナンスプロセス３はデータベース２Ａを参照するようにする。これは、例えばデータベースをＯＰＥＮし直すと考えても良い。ＯＰＥＮし直した後は、両データベースの構造は同じなのでそれぞれのプロセスではそれ以前と同様に処理を行うことがでぎる。
【００１０】
【発明が解決しようとする課題】
従来の方式では、通常、データメンテナンスの対象がデータベースのごく一部であるにもかかわらず、データメンテナンス用に同構造のデータベースをそっくりそのまま持つため、データベースの使用効率が悪くなる。
【００１１】
さらに、監視制御システムでは性能向上のためデータベースをメモリ上にとることが多く、この方式の場合コストが非常に高くつく。
【００１２】
本発明の目的は、１組分のデータベースを使用してシステム運用とデータメンテナンスの並行処理ができるようにしたデータベースシステムを提供することにある。
【００１３】
【課題を解決するための手段】
本発明は、データベースを二重に持つことはせず、１組分のデータベースの空きエリアを利用してデータメンテナンスを行うようにしたもので、以下のシステム構成を特徴とする。
【００１４】
オンライン運用するコンピュータシステムの設備データを格納し、該データをシステム運用に供すると共に設備の新設／変更／撤去に応じてデータメンテナンスを行うデータベースシステムにおいて、
データを格納するデータレコードと、当該レコードの使用状態を管理するレコード使用フラグと、メンテナンス種別を管理するメンテナンス種別と、変更内容を格納する別レコードの位置を管理する変更ポインタとで構成するテーブルをデータ格納の単位要素とするデータベースと、データベースアクセスルーチンとを備え、
前記データベースアクセスルーチンは、
設備新設のデータメンテナンス時にはレコード使用フラグで空きレコードを探して当該レコードを「使用」にしメンテナンス種別を「新設」にして新設内容をデータレコードに格納し、設備撤去のデータメンテナンス時にはメンテナンス種別を「撤去」とし、設備変更のデータメンテナンス時にはレコード使用フラグで空きレコードを探して当該空きレコードを「使用」にし当該空きレコードに変更内容を書き込み元のレコードの変更ポインタに空きレコードの位置を書き込みメンテナンス種別を「変更」にし、
前記データメンテナンス中には、設備新設箇所のデータレコードに対する運用プロセスからのアクセスは拒否し、設備撤去箇所と設備変更箇所のデータレコードに対する運用プロセスからのアクセスは要求どおりアクセスすることを特徴とする。
【００１５】
また、前記データベースアクセスルーチンは、データメンテナンス後、設備新設箇所のデータレコードに対する運用プロセスからのアクセスには要求どおり当該データレコードをアクセスし、設備撤去箇所のデータレコードに対する運用プロセスからのアクセスを拒否し、設備変更箇所のデータレコードに対する運用プロセスからのアクセスには当該変更ポインタが示す変更内容を格納したデータレコードをアクセスすることを特徴とする。
【００１６】
また、前記データベースアクセスルーチンは、メンテナンスしたデータを運用プロセスへの運用データに反映後、設備新設箇所のデータレコードの前記メンテナンス種別はクリアし、設備撤去箇所のデータレコードの前記レコード使用フラグとメンテナンス種別はクリアし、設備変更箇所のデータレコードの変更内容を格納してある別レコードの内容を元のレコードにコピーし、別レコードの前記レコード使用フラグと元のレコードの前記メンテナンス種別と変更ポインタをクリアし、データメンテナンス用の前記レコード使用フラグとメンテナンス種別と変更ポインタをクリアするデータメンテナンス本登録手段を備えたことを特徴とする。
【００１７】
【発明の実施の形態】
図１は、本発明の実施形態を示すデータベースシステム構成である。データベース５の内部は、複数のテーブル５Ａ〜５Ｎで構成する。
【００１８】
各テーブル５Ａ〜５Ｎの内部には、データを格納するデータレコード６と、そのデータレコードに対応して各レコードの使用状態を管理するレコード使用フラグ７と、各レコードがデータメンテナンスされたか否かを管理するメンテナンス種別８を設ける。さらに、当該メンテナンス種別が「変更」であった場合、当該レコードの元の内容とは別のエリアに変更内容を格納するが、そのレコード位置を示す変更ポインタ９を設ける。
【００１９】
以上のように構成するテーブルをデータアクセスルーチン１０を使用してアクセスし、運用プロセスとデータメンテナンスプロセスの参照するデータを切り替えてデータベースを二重に持った場合と同等の機能を実現する。
【００２０】
この動作を図２以降に詳細に説明する。まず、図２の（ａ）のように、データメンテナンス３で設備等を新設する場合、レコード使用フラグ７を参照して空きレコードを探し、見つけたレコードの使用フラグを「使用」とし、メンテナンス種別８を「新設」とし、当該データレコード６に新設内容を書き込む。
【００２１】
次に、図２（ｂ）のように設備等を撤去する場合、当該レコードのメンテナンス種別８を「撤去」とする。さらに、図２（ｃ）のように設備等を変更する場合、当該レコードのメンテナンス種別８を「変更」とし、レコード使用フラグ７を参照して空きレコードを探し、空きレコード位置に元の「レコード変更ポインタ」に書き込むと同時に、当該空きレコードの使用フラグを「使用」として空きレコードに変更内容を書き込む。
【００２２】
上記のように、データメンテナンスを行っている最中、運用プロセスは図３のように動作する。まず、図３の（ａ）のように、新設箇所のアクセスがあった場合、アクセスを拒否する。次に、図３（ｂ）のように撤去箇所のアクセスがあった場合や図３（ｃ）のように変更箇所のアクセスがあった場合も要求どおり当該データレコードをアクセスする。
【００２３】
こうすることにより、データメンテナンス中でも運用に影響を与えないようになる。
【００２４】
上記のようなデータメンテナンス後、その内容を運用に反映させた時の動作は図４のとおりである。なお、運用に反映させると言っても、その際のデータ処理は一切不要で、データベースアクセスルーチンがメンテナンスが施されたレコードを見なかったのを、見るようにするだけである。これは一瞬で切り替わり、以後メンテナンス内容を見て運用するようになる。
【００２５】
具体的には、図４（ａ）において新設箇所をアクセスする場合、要求どおり当該データレコードをアクセスする。図４（ｂ）において撤去箇所をアクセスする場合、アクセスを拒否される。図４（ｃ）において変更箇所をアクセスする場合、変更ポインタが示すデータレコードをアクセスする。
【００２６】
上記は、瞬時にデータメンテナンス内容を運用に反映させるアクセスの仕方であるが、レコード使用フラグメンテナンス種別，変更ポインタの内容は当該データメンテナンス直後の状態であり、次のデータメンテナンスに備えてこれらを完全に運用データに反映する必要がある。これを本登録という。
【００２７】
本登録についての動作を図５に示す。図５（ａ）において新設箇所の本登録を行う場合、メンテナンス種別をクリアする。図５（ｂ）において撤去箇所を本登録する場合、レコード使用フラグとメンテナンス種別をクリアする。図５（ｃ）において変更箇所を本登録する場合、別レコードに格納していた変更内容を元のレコードにコピーし、当該別レコードの使用フラグと元のレコードのメンテナンス種別と変更ポインタをクリアする。
【００２８】
以上により、データメンテナンスは運用データに反映され、かつレコード使用フラグ、メンテナンス種別，変更ポインタが次回のデータメンテナンスに備えてクリアされる。この最終形態を図６に示す。
【００２９】
【発明の効果】
以上のとおり、本発明によれば、データレコードのレコード使用フラグと、メンテナンス種別と、変更ポインタとで構成するテーブルをデータ格納の単位要素とするデータベースを設け、データベースの空きエリアを利用してデータメンテナンスを行うようにしたため、以下の効果がある。
【００３０】
（１）将来の増分を見越した空きエリアを利用してデータメンテナンスを行うため、データメンテナンス用の余分なデータエリアが不要で、使用効率が良くなる。
【００３１】
（２）データベースのサイズが運用に必要な最小限のサイズでよく、データベースをメモリにマップする場合にはコストを低く抑えることができる。しかも、メモリに制限がある場合でも極力メモリにマップでき、性能向上を図ることができる。
【００３２】
（３）従来と同様に、データメンテナンス中にも運用処理には一切影響を与えず並行動作ができる。
【００３３】
（４）従来と同様に、データメンテナンス後、その内容を運用処理に瞬時に反映できる。
【図面の簡単な説明】
【図１】本発明の実施形態を示すデータベース構成図。
【図２】実施形態におけるデータメンテナンス時のデータベース動作手順。
【図３】実施形態における運用時のデータメンテナンス中のデータベース動作手順。
【図４】実施形態における運用時のデータメンテナンス仮登録後のデータベース動作手順。
【図５】実施形態におけるデータメンテナンス本登録時のデータベース動作手順。
【図６】実施形態におけるデータメンテナンス本登録後のデータベース状態。
【図７】従来のデータベース二重持ち方式。
【符号の説明】
１…運用プロセス
３…データメンテナンスプロセス
５…データベース
５Ａ，５Ｎ…テーブル
６…データレコード
７…レコード使用フラグ
８…メンテナンス種別
９…変更ポインタ
１０…データベースアクセスルーチン
【図１】
0003840726.tif 000002
【図２】
0003840726.tif 000003
【図３】
0003840726.tif 000004
【図４】
0003840726.tif 000005
【図５】
0003840726.tif 000006
【図６】
0003840726.tif 000007
【図７】
0003840726.tif 000008