(57)【要約】【課題】  運用系でのサービス提供を中断することなく、かつ同期中の更新内容をバッファリングするためのリソースを必要とせずに、運用系と待機系間のデータベースの同期処理と整合処理を実行することが可能なデータベースシステムを提供する。【解決手段】  運用系システム１０と待機系システム２０によってデータベースを２重化したデータベースシステムであって、運用系システム１０と待機系システム２０が、データベース１３０、２３０のデータに、更新時にインクリメントするシーケンス番号を付与し、シーケンス番号を用いて、運用系システムと待機系システム間のデータベースの同期及び整合を行う制御部１２０、２２０を備える。【選択図】  図１
2010152591.tif 000002
【特許請求の範囲】
【請求項１】
運用系システムと待機系システムによってデータベースを２重化したデータベースシステムであって、
前記運用系システムと前記待機系システムが、データベースのデータに、更新時にインクリメントするシーケンス番号を付与し、前記シーケンス番号を用いて、前記運用系システムと前記待機系システム間のデータベースの同期及び整合を行う制御手段を備えることを特徴とするデータベースシステム。
【請求項２】
前記運用系システムの制御手段は、データの更新、追加又は削除指示を受けると、前記データベースのデータの更新、追加又は削除を実行し、更新、追加又は削除したデータの更新前と更新後のシーケンス番号を指定してデータの更新、追加又は削除を前記待機系システムの制御手段に対して通知し、
前記待機系システムの制御手段は、前記通知に従って、前記前記データベースのデータの更新、追加又は削除を行うことを特徴とする請求項１に記載のデータベースシステム。
【請求項３】
前記運用系システムの制御手段は、
前記待機系システムに対して前記データの追加を通知する際、更新前のシーケンス番号として存在しないデータであることを示す番号と、更新後のシーケンス番号として新たなシーケンス番号とを通知し、
前記待機系システムに対して前記データの削除を通知する際、更新前のシーケンス番号と、更新後のシーケンス番号として存在しないデータであることを示す番号とを通知することを特徴とする請求項２に記載のデータベースシステム。
【請求項４】
前記運用系システムと前記待機系システム間のデータベースの同期処理において、前記運用系システムの制御手段は、前記待機系システムの制御手段からのデータ取得要求に基づいて、前記データベース内の全データを前記シーケンス番号順に前記待機系システムに送信し、
前記待機系システムの制御手段は、前記運用系システムからのデータを受信し、前記シーケンス番号順に前記データベースに登録することを特徴とする請求項１に記載のデータベースシステム。
【請求項５】
前記運用系システムの制御手段は、前記データベース内の全データの送信処理を、バックグランドで実行することを特徴とする請求項４に記載のデータベースシステム。
【請求項６】
前記同期処理中に、前記運用系システムのデータベースに対してデータの追加又は更新がなされ、前記運用系システムの制御手段から追加又は更新したデータのシーケンス番号を指定して前記待機系システムの制御手段に対してデータの追加又は更新の通知がなされた場合、前記待機系システムの制御手段は、前記通知を無視することを特徴とする請求項４又は請求項５に記載のデータベースシステム。
【請求項７】
前記同期処理中に追加又は更新された前記運用系システムのデータベースのデータを、前記全データの送信処理において、最後のシーケンス番号のデータとして送信することを特徴とする請求項６に記載のデータベースシステム。
【請求項８】
前記同期処理中に、前記運用系システムのデータベースに対してデータの削除がなされ、前記運用系システムの制御手段から削除したデータのシーケンス番号を指定して前記待機系システムの制御手段に対してデータの削除の通知がなされた場合、前記待機系システムの制御手段は、通知された前記シーケンス番号のデータを、前記運用系システムから既に受信している場合、通知されたシーケンス番号のデータを削除し、未だ受信していない場合、前記通知を無視することを特徴とする請求項４から請求項７の何れかに記載のデータベースシステム。
【請求項９】
前記運用系システムと前記待機系システム間のデータベースの整合処理において、前記運用系システムの制御手段は、前記待機系システムの制御手段からのデータ取得要求に基づいて、前記データベース内の全データを前記シーケンス番号順に前記待機系システムに送信し、
前記待機系システムの制御手段は、前記運用系システムからのデータを受信し、前記シーケンス番号順に前記データベースのデータの整合処理を行うことを特徴とする請求項１に記載のデータベースシステム。
【請求項１０】
前記運用系システムと前記待機系システム間のデータベースの整合処理において、前記待機系システムの制御手段は、前記運用系システムの制御手段からのデータ取得要求に基づいて、前記データベース内の全データを前記シーケンス番号順に前記運用系システムに送信し、
前記運用系システムの制御手段は、前記待機系システムからのデータを受信し、前記シーケンス番号順に前記データベースのデータの整合処理を行うことを特徴とする請求項１に記載のデータベースシステム。
【請求項１１】
前記運用系システムの制御手段又は前記待機系システムの制御手段は、前記データベース内の全データの送信処理を、バックグランドで実行することを特徴とする請求項９又は請求項１０に記載のデータベースシステム。
【請求項１２】
前記整合処理中に、前記運用系システムのデータベースに対してデータの追加、更新又は削除がなされ、前記運用系システムの制御手段から追加、更新又は削除したデータのシーケンス番号を指定して前記待機系システムの制御手段に対してデータの追加、更新又は削除の通知がなされた場合、前記待機系システムの制御手段は、前記通知で指定されたシーケンス番号のデータを追加し、更新し又は削除することを特徴とする請求項９から請求項１１の何れかに記載のデータベースシステム。
【請求項１３】
前記運用系システムの制御手段は、前記整合処理中にデータの不整合を検出した場合、前記待機系システムに対して不整合が発生したデータの更新要求を行い、
前記待機系システムの制御手段は、通知されたシーケンス番号のデータを通知に従って更新することを特徴とする請求項１０から請求項１２の何れかに記載のデータベースシステム。
【請求項１４】
前記待機系システムを複数含み、
前記運用系システムと前記複数の待機系システムを、前記運用システムと待機系システム間のユニキャスト通信とブロードキャスト通信を可能とするスイッチ手段を介して接続したことを特徴とする請求項１から請求項１３の何れか１項に記載のデータベースシステム。
【請求項１５】
前記運用系システムの前記データベースのデータの更新、追加又は削除がなされた場合、前記運用系システムの制御手段は、データの更新、追加又は削除の通知を、前記スイッチ手段のブロードキャスト通信によって前記複数の待機系システムに送信し、
前記運用系システムと特定の待機系システム間の同期処理又は整合処理においては、前記運用系システムのデータベースの全データを、前記スイッチ手段のユニキャスト通信によって前記特定の待機システムに対して送信することを特徴とする請求項１４に記載のデータベースシステム。
【請求項１６】
運用系システムと待機系システムによってデータベースを２重化したデータベースシステムのデータ処理方法であって、
データベースのデータに、更新時にインクリメントするシーケンス番号を付与し、前記シーケンス番号を用いて、前記運用系システムと前記待機系システム間のデータベースの同期及び整合処理を行うことを特徴とするデータ処理方法。
【請求項１７】
前記運用系システムは、データの更新、追加又は削除指示を受けると、前記データベースのデータの更新、追加又は削除を実行し、更新、追加又は削除したデータの更新前と更新後のシーケンス番号を指定してデータの更新、追加又は削除を前記待機系システムに対して通知し、
前記待機系システムは、前記通知に従って、前記前記データベースのデータの更新、追加又は削除を行うことを特徴とする請求項１６に記載のデータ処理方法。
【請求項１８】
前記運用系システムは、
前記待機系システムに対して前記データの追加を通知する際、更新前のシーケンス番号として存在しないデータであることを示す番号と、更新後のシーケンス番号として新たなシーケンス番号とを通知し、
前記待機系システムに対して前記データの削除を通知する際、更新前のシーケンス番号と、更新後のシーケンス番号として存在しないデータであることを示す番号とを通知することを特徴とする請求項１７に記載のデータ処理方法。
【請求項１９】
前記運用系システムと前記待機系システム間のデータベースの同期処理において、前記運用系システムは、前記待機系システムからのデータ取得要求に基づいて、前記データベース内の全データを前記シーケンス番号順に前記待機系システムに送信し、
前記待機系システムは、前記運用系システムからのデータを受信し、前記シーケンス番号順に前記データベースに登録することを特徴とする請求項１６に記載のデータ処理方法。
【請求項２０】
前記運用系システムは、前記データベース内の全データの送信処理を、バックグランドで実行することを特徴とする請求項１９に記載のデータ処理方法。
【請求項２１】
前記同期処理中に、前記運用系システムのデータベースに対してデータの追加又は更新がなされ、前記運用系システムから追加又は更新したデータのシーケンス番号を指定して前記待機系システムに対してデータの追加又は更新の通知がなされた場合、前記待機系システムは、前記通知を無視することを特徴とする請求項１９又は請求項２０に記載のデータ処理方法。
【請求項２２】
前記同期処理中に追加又は更新された前記運用系システムのデータベースのデータを、前記全データの送信処理において、最後のシーケンス番号のデータとして送信することを特徴とする請求項２１に記載のデータ処理方法。
【請求項２３】
前記同期処理中に、前記運用系システムのデータベースに対してデータの削除がなされ、前記運用系システムから削除したデータのシーケンス番号を指定して前記待機系システムに対してデータの削除の通知がなされた場合、前記待機系システムは、通知された前記シーケンス番号のデータを、前記運用系システムから既に受信している場合、通知されたシーケンス番号のデータを削除し、未だ受信していない場合、前記通知を無視することを特徴とする請求項１９から請求項２２の何れかに記載のデータ処理方法。
【請求項２４】
前記運用系システムと前記待機系システム間のデータベースの整合処理において、前記運用系システムは、前記待機系システムからのデータ取得要求に基づいて、前記データベース内の全データを前記シーケンス番号順に前記待機系システムに送信し、
前記待機系システムは、前記運用系システムからのデータを受信し、前記シーケンス番号順に前記データベースのデータの整合処理を行うことを特徴とする請求項１６に記載のデータ処理方法。
【請求項２５】
前記運用系システムと前記待機系システム間のデータベースの整合処理において、前記待機系システムは、前記運用系システムからのデータ取得要求に基づいて、前記データベース内の全データを前記シーケンス番号順に前記運用系システムに送信し、
前記運用系システムは、前記待機系システムからのデータを受信し、前記シーケンス番号順に前記データベースのデータの整合処理を行うことを特徴とする請求項１６に記載のデータ処理方法。
【請求項２６】
前記運用系システム又は前記待機系システムは、前記データベース内の全データの送信処理を、バックグランドで実行することを特徴とする請求項２４又は請求項２５に記載のデータ処理方法。
【請求項２７】
前記整合処理中に、前記運用系システムのデータベースに対してデータの追加、更新又は削除がなされ、前記運用系システムから追加、更新又は削除したデータのシーケンス番号を指定して前記待機系システムに対してデータの追加、更新又は削除の通知がなされた場合、前記待機系システムは、前記通知で指定されたシーケンス番号のデータを追加し、更新し又は削除することを特徴とする請求項２４から請求項２６の何れかに記載のデータ処理方法。
【請求項２８】
前記運用系システムは、前記整合処理中にデータの不整合を検出した場合、前記待機系システムに対して不整合が発生したデータの更新要求を行い、
前記待機系システムは、通知されたシーケンス番号のデータを通知に従って更新することを特徴とする請求項２５から請求項２７の何れかに記載のデータ処理方法。
【請求項２９】
前記待機系システムを複数含み、前記運用システムと複数の前記待機系システム間でユニキャスト通信とブロードキャスト通信を行うことを特徴とする請求項１６から請求項２８の何れか１項に記載のデータ処理方法。
【請求項３０】
前記運用系システムの前記データベースのデータの更新、追加又は削除がなされた場合、前記運用系システムは、データの更新、追加又は削除の通知を、ブロードキャスト通信によって前記複数の待機系システムに送信し、
前記運用系システムと特定の待機系システム間の同期処理又は整合処理においては、前記運用系システムのデータベースの全データを、ユニキャスト通信によって前記特定の待機システムに対して送信することを特徴とする請求項２９に記載のデータ処理方法。
【請求項３１】
運用系システムと待機系システムによってデータベースを２重化したデータベースシステムにおけるデータ処理プログラムであって、
前記運用系システムと前記待機系システムを構成するコンピュータに、
データベースのデータに、更新時にインクリメントするシーケンス番号を付与し、前記シーケンス番号を用いて、前記運用系システムと前記待機系システム間のデータベースの同期及び整合処理を、実行させることを特徴とするデータ処理プログラム。
【請求項３２】
前記運用系システムに、データの更新、追加又は削除指示を受けると、前記データベースのデータの更新、追加又は削除を実行し、更新、追加又は削除したデータの更新前と更新後のシーケンス番号を指定してデータの更新、追加又は削除を前記待機系システムに対して通知する処理を実行させ、
前記待機系システムで、前記通知に従って、前記前記データベースのデータの更新、追加又は削除を行う処理を実行させることを特徴とする請求項３１に記載のデータ処理プログラム。
【請求項３３】
前記運用系システムは、
前記待機系システムに対して前記データの追加を通知する際、更新前のシーケンス番号として存在しないデータであることを示す番号と、更新後のシーケンス番号として新たなシーケンス番号とを通知し、
前記待機系システムに対して前記データの削除を通知する際、更新前のシーケンス番号と、更新後のシーケンス番号として存在しないデータであることを示す番号とを通知することを特徴とする請求項３２に記載のデータ処理プログラム。
【請求項３４】
前記運用系システムと前記待機系システム間のデータベースの同期処理において、前記運用系システムに、前記待機系システムからのデータ取得要求に基づいて、前記データベース内の全データを前記シーケンス番号順に前記待機系システムに送信する処理を実行させ、
前記待機系システムに、前記運用系システムからのデータを受信し、前記シーケンス番号順に前記データベースに登録する処理を実行させることを特徴とする請求項３１に記載のデータ処理プログラム。
【請求項３５】
前記運用系システムは、前記データベース内の全データの送信処理を、バックグランドで実行することを特徴とする請求項３４に記載のデータ処理プログラム。
【請求項３６】
前記同期処理中に、前記運用系システムのデータベースに対してデータの追加又は更新がなされ、前記運用系システムから追加又は更新したデータのシーケンス番号を指定して前記待機系システムに対してデータの追加又は更新の通知がなされた場合、前記待機系システムに、前記通知を無視させることを特徴とする請求項３４又は請求項３５に記載のデータ処理プログラム。
【請求項３７】
前記同期処理中に追加又は更新された前記運用系システムのデータベースのデータを、前記全データの送信処理において、最後のシーケンス番号のデータとして送信することを特徴とする請求項３６に記載のデータ処理プログラム。
【請求項３８】
前記同期処理中に、前記運用系システムのデータベースに対してデータの削除がなされ、前記運用系システムから削除したデータのシーケンス番号を指定して前記待機系システムに対してデータの削除の通知がなされた場合、前記待機系システムは、通知された前記シーケンス番号のデータを、前記運用系システムから既に受信している場合、通知されたシーケンス番号のデータを削除し、未だ受信していない場合、前記通知を無視することを特徴とする請求項３４から請求項３７の何れかに記載のデータ処理プログラム。
【請求項３９】
前記運用系システムと前記待機系システム間のデータベースの整合処理において、前記運用系システムに、前記待機系システムからのデータ取得要求に基づいて、前記データベース内の全データを前記シーケンス番号順に前記待機系システムに送信する処理を実行させ、
前記待機系システムに、前記運用系システムからのデータを受信し、前記シーケンス番号順に前記データベースのデータの整合処理を実行させることを特徴とする請求項３１に記載のデータ処理プログラム。
【請求項４０】
前記運用系システムと前記待機系システム間のデータベースの整合処理において、前記待機系システムに、前記運用系システムからのデータ取得要求に基づいて、前記データベース内の全データを前記シーケンス番号順に前記運用系システムに送信する処理を実行させ、
前記運用系システムは、前記待機系システムからのデータを受信し、前記シーケンス番号順に前記データベースのデータの整合処理を実行させることを特徴とする請求項３１に記載のデータ処理プログラム。
【請求項４１】
前記運用系システム又は前記待機系システムは、前記データベース内の全データの送信処理を、バックグランドで実行することを特徴とする請求項３９又は請求項４０に記載のデータ処理プログラム。
【請求項４２】
前記整合処理中に、前記運用系システムのデータベースに対してデータの追加、更新又は削除がなされ、前記運用系システムから追加、更新又は削除したデータのシーケンス番号を指定して前記待機系システムに対してデータの追加、更新又は削除の通知がなされた場合、前記待機系システムに、前記通知で指定されたシーケンス番号のデータを追加し、更新し又は削除する処理を実行させることを特徴とする請求項３９から請求項４１の何れかに記載のデータ処理プログラム。
【請求項４３】
前記整合処理中にデータの不整合を検出した場合、前記運用系システムから前記待機系システムに対して不整合が発生したデータの更新要求を行い、
前記待機系システムに、通知されたシーケンス番号のデータを通知に従って更新する処理を実行させることを特徴とする請求項４０から請求項４２の何れかに記載のデータ処理プログラム。
【請求項４４】
前記待機系システムを複数含み、前記運用システムと複数の前記待機系システム間でユニキャスト通信とブロードキャスト通信を行うことを特徴とする請求項３１から請求項４３の何れか１項に記載のデータ処理プログラム。
【請求項４５】
前記運用系システムの前記データベースのデータの更新、追加又は削除がなされた場合、前記運用系システムに、データの更新、追加又は削除の通知を、ブロードキャスト通信によって前記複数の待機系システムに送信する処理を実行させ、
前記運用系システムと特定の待機系システム間の同期処理又は整合処理においては、前記運用系システムのデータベースの全データを、ユニキャスト通信によって前記特定の待機システムに対して送信する処理を実行させることを特徴とする請求項４４に記載のデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、運用系システムと待機系システムによってデータベースを２重化したデータベースシステム、そのデータ処理方法及びデータ処理プログラムに関する。
【背景技術】
【０００２】
高信頼性のシステムにおいて、システムの情報を格納するデータベースを冗長化することが一般的である。このようなデータベースシステムでは、通常の運用では、同一のデータを保持したデータベースを複数稼動させ、運用系のシステムの障害や保守作業時には、待機系のシステムがサービスを引き継ぐことができる構成となっている。
【０００３】
信頼性の高いデータベースシステムを構築するためには、運用系のデータベースの状態が更新された場合、即座に待機系のデータベースの状態を運用系のデータベースに同期させて更新することが必要である。また、運用中に新たな待機系システムを組み込んだ場合、提供中のサービスに影響を与えることなく、新たな待機系システムにデータを同期させる必要がある。さらに、データの同期処理中にも運用系のサービス提供が継続されて運用系のデータベースの状態が変化するため、同期中に変化した情報についても同期をとる必要がある。
【０００４】
これまで、運用系システムと待機系システムの同期処理の方法としては、データベース同期中は運用系システムでのサービスの提供を一時的に停止する手法があるが、この方法では、サービスを中断する必要があるため、運用に制限が発生する。
【０００５】
また、サービスを中断することなく同期処理を行う方法としては、データベースを２面化し、データベースを一旦同期した後、データベース同期中に変化した運用系システムの更新内容をバッファリングし、同期終了後にバッファリングした更新内容を待機系システムに反映させるといった方法がある。この方法では、例えば、サービス運用中に待機系システムを増設した場合、増設した待機系システムに対して運用系のデータを一斉に同期する。同期中にも運用系システムのデータベースの状態は変化するため、データの同期開始以降のデータの更新内容をバッファリングしておき、全てのデータを同期した後にバッファリングした更新内容を転送して待機系システムに反映させるという処理を行う。
【０００６】
この方法の関連技術が、例えば、特許文献１（特許公開２０００−７６２１８号公報）等に記載されている。
【特許文献１】特許公開２０００−７６２１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述した特許文献１に記載される同期処理方法では、全データの同期中に大量のデータの更新が発生すると、更新内容をバッファリングできなくなり、システムが極めて不安定となるという問題がある。
【０００８】
また、運用系のデータベースのリソースを大量に消費するため、小型のシステムには不向きであるという問題がある。
【０００９】
さらに、運用系システムが待機系システムの状態を管理する必要があるため、待機系システムが複数存在した場合に、運用系システムのリソースをさらに消費するという問題がある。
【００１０】
（発明の目的）
本発明の目的は、データベースを２重化したシステムにおいて、運用系でのサービス提供を中断することなく、かつ同期中の更新内容をバッファリングするためのリソースを必要とせずに、運用系と待機系間のデータベースの同期処理と整合処理を実行することが可能なデータベースシステム、データ処理方法及びデータ処理プログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明のデータベースシステムによれば、運用系システムと待機系システムによってデータベースを２重化したデータベースシステムであって、運用系システムと待機系システムが、データベースのデータに、更新時にインクリメントするシーケンス番号を付与し、シーケンス番号を用いて、運用系システムと待機系システム間のデータベースの同期及び整合を行う制御手段を備える。
【００１２】
本発明のデータ処理方法によれば、運用系システムと待機系システムによってデータベースを２重化したデータベースシステムのデータ処理方法であって、データベースのデータに、更新時にインクリメントするシーケンス番号を付与し、シーケンス番号を用いて、運用系システムと待機系システム間のデータベースの同期及び整合処理を行う。
【００１３】
本発明のデータ処理プログラムによれば、運用系システムと待機系システムによってデータベースを２重化したデータベースシステムにおけるデータ処理プログラムであって、運用系システムと待機系システムを構成するコンピュータに、データベースのデータに、更新時にインクリメントするシーケンス番号を付与し、シーケンス番号を用いて、運用系システムと待機系システム間のデータベースの同期及び整合処理を、実行させる。
【発明の効果】
【００１４】
本発明によれば、運用系でのサービス提供を中断することなく、かつ同期中の更新内容をバッファリングするためのリソースを必要とせずに、運用系と待機系間のデータベースの同期処理と整合処理を実行することができる。
【発明を実施するための最良の形態】
【００１５】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１６】
（第１の実施の形態）
図１に、本発明の第１の実施の形態によるデータベースシステムの基本構成を示す。データベースシステムは、運用系システム１０と、待機系システム２０を含む構成である。
【００１７】
運用系システム１０と待機系システム２０は、それぞれ、サービスを提供するためのデータを格納するデータベース１３０、２３０、データベース１３０、２３０にアクセスしてサービスの提供を実行するアプリケーションプログラム１１０、２１０、運用系のデータベース１３０、２３０間のデータの同期と整合処理を実行するデータベース制御部１２０、２２０を備えている。
【００１８】
本実施の形態によるデータベースシステムでは、サービスを提供している運用系システム１０が、障害や保守交換等により、サービスの提供を継続できなくなった場合、待機系システム２０がサービスの提供を引き継ぐことができる。サービスを引き継ぐために、運用系システム１０のデータベース１３０の全てのデータを待機系システム２０のデータベース２３０で保持する。
【００１９】
また、本実施の形態によるデータベースシステムでは、待機系システム２０の交換や増設時には、運用系システム１０によるサービス提供を停止することなく、運用系のデータベース１３０のデータを、増設した待機系システム２０のデータベース２３０に同期させる機能を有している。さらに、運用系システム１０と待機系システム２０間のデータの完全同一性を保障するために、定期的に運用系システム１０のデータベース１３０と待機系システム２０のデータベース２３０間の整合処理を行う機能も有している。
【００２０】
データベース１３０と２３０間の同期を行うため、運用系システム１０のデータベース制御部１２０と待機系システム２０のデータベース制御部２２０間は、信頼性のあるトランスポート３０で接続されている。本実施の形態では、トランスポートの種類を限定しないが、トランスポート層としてＴＣＰ（Transmission Control Protocol）、ネットワーク層としてＩＰ（Internet Protocol）、データリンク層としてイーサネットプロトコルを使用することが可能である。
【００２１】
データベース１３０及びデータベース２３０には、図２に示すような形式のデータが格納される。シーケンス番号３１０は、データベース内で一意に決まる数値であり、データベースのデータが更新される毎にその値がインクリメントされる。データキー３２０は、アプリケーションプログラム１１０、２１０がデータを識別するためのキーである。図２の例では、データキーを１つしか示していないが、複数存在してもよい。データ３３０はデータの中身である。本実施の形態では、データキー２００とデータ３００の内容についてはどのようなものでも差し支えなく、その種類は限定されない。
【００２２】
図３に、データベース１３０、２３０内のデータの格納方法を示す。データベース１３０、２３０内のデータはシーケンス番号３１０順にソートした形で格納され、シーケンス番号３１０順に容易に処理可能なように並べられている。その他、データキー３２０を検索キーとして高速にデータを参照できるように格納されている。本実施の形態では、その手法には依存しないため、ここでは言及しない。
【００２３】
図３に示すように、データのシーケンス番号３１０はデータが更新される度にインクリメントされ、それに伴いデータの並び順も更新される。この方法は、リンクリスト構造でデータを保持することで容易に実現できるため、ここでは言及しない。
【００２４】
図３の（Ａ）に示すように、データ（１）から（３）がシーケンス番号順にソートされ格納されている状態で、データキー（ｋｅｙ＝Ｋ２）のデータ（２）が更新されて、データ（２）のシーケンス番号（ｓｅｑ＝Ｓ２）がインクリメントされてシーケンス番号（ｓｅｑ＝Ｓ４）となった場合、図３の（Ｂ）に示すように、データの並び順が更新される。
【００２５】
また、図３の（Ｂ）に示す状態で、データキー（ｋｅｙ＝Ｋ３）のデータ（３）が削除されると、図３の（Ｃ）に示すようにデータの並び順が更新される。
【００２６】
（第１の実施の形態の動作）
次に、図４から図１０のシーケンス図を参照して、第１の実施の形態によるデータベースシステムの動作について詳細に説明する。
【００２７】
まず、図４を使用して定常状態におけるデータの同期の方法について説明する。ここで、定常状態とは、運用系システム１０のデータベース１３０の内容と待機系システム２０のデータベース２３０の内容が一致している状態とする。図４は、定常状態において、運用系システム１０のデータベース１３０の更新があった場合のシーケンス図を示している。データベースの更新とは、新たなデータの追加、既存のデータの内容変更、及びデータの削除の何れかを意味している。
【００２８】
最初に、運用系システム１０のデータベース１３０に新たなデータが追加される場合の動作を説明する。
【００２９】
アプリケーションプログラム１１０は、追加指示Ｓ１０１によってデータの追加を指示する。信号３の「ｋｅｙ＝Ｋｎ」は、データキー３２０の値が「Ｋｎ」であることを意味する。データベース制御部１２０は、信号Ｓ４０３を受信すると、処理Ｓ１０２において新たなシーケンス番号３１０を付与した新たなデータをデータベース１３０に追加する。
【００３０】
その後、データベース制御部１２０は、更新通知Ｓ１０３によって待機系システム２０のデータベース制御部２２０に対してデータが更新されたことを通知する。また、アプリケーション１１０に対して、通知Ｓ１０５で更新の完了を通知する。
【００３１】
更新通知Ｓ１０３の「ｐｒｅｖ＿ｓｅｑ」は更新前のシーケンス番号３１０を示し、「ｎｅｗ＿ｓｅｑ」は更新後のシーケンス番号３１０を示している。さらに、シーケンス番号「０」は、データが存在しないことを示す。すなわち、信号５は、更新前のシーケンス番号が「０」で、更新後のシーケンス番号が「Ｓｎ」であることを示している。ここで、シーケンス番号「０」は、データが存在しないことを示している。
【００３２】
待機系システム２０のデータベース制御部２２０は、更新通知Ｓ１０３を受信すると、処理７においてシーケンス番号３１０が「Ｓｎ」のデータをデータベース７０に追加する。
【００３３】
次に、運用系システム１０のデータベース１３０に新たに追加されたデータが更新（内容の変更）された場合の動作を説明する。
【００３４】
追加指示Ｓ１０１で追加したデータが更新（内容の変更）する場合、アプリケーション１１０から更新指示Ｓ１０６を使用してデータ（ｋｅｙ＝Ｋｎ）の更新を指示する。データベース制御部１２０は、処理Ｓ１０７において、データキー３２０の「ｋｅｙ＝Ｋｎ」から該当するデータを見つけ出して、該当するデータを更新指示Ｓ１０６に基づいて更新すると共に、該当するデータのシーケンス番号３１０を「Ｓｎ」から「Ｓｎ＋１」にインクリメントする。
【００３５】
その後、更新通知Ｓ１０８を使用して待機系システム２０のデータベース制御部２２０に対してデータが更新されたことを通知する。また、アプリケーション１１０に対して、通知Ｓ１０９で更新の完了を通知する。更新通知Ｓ１０８は、更新前のシーケンス番号１００が「Ｓｎ」で、更新後のシーケンス番号が「Ｓｎ＋１」であることを示している。
【００３６】
待機系システム２０データベース制御部２２０は、更新通知Ｓ１０８を受信すると、処理Ｓ１１０において更新前のシーケンス番号（Ｓｎ）を検索キーにしてデータを見つけ出し、更新通知Ｓ１０８に基づいてデータベース２３０の該当するデータを更新する。
【００３７】
次に、運用系システム１０のデータベース１３０のデータが削除された場合の動作を説明する。
【００３８】
更新通知Ｓ１０８で更新したデータが削除する場合、アプリケーション１１０から削除指示Ｓ１１１を使用してデータ（ｋｅｙ＝Ｋｎ）の削除を指示する。データベース制御部１２０は、削除指示Ｓ１１１を受信すると、処理Ｓ１１２において、データキー（ｋｅｙ＝Ｋｎ）から削除するデータを見つけ出し、データベース１３０から該当するデータを削除する。
【００３９】
その後、更新通知Ｓ１１３を使用して待機系システム２０のデータベース制御部２２０に対してデータが更新されたことを通知する。また、アプリケーション１１０に対して、通知Ｓ１１４で削除の完了を通知する。更新通知Ｓ１１３は、更新前のシーケンス番号が「Ｓｎ＋１」で、更新後のシーケンス番号が「０」（存在しないデータ）であることを示している。
【００４０】
待機系システム２０データベース制御部２２０は、更新通知Ｓ１１３を受信すると、処理Ｓ１１３において更新前のシーケンス番号（Ｓｎ）を検索キーにしてデータを見つけ出し、データベース２３０から該当するデータを削除する。
【００４１】
図５に、待機系システム２０を新規に追加した場合に、運用系システム１０と待機系システム２０間のデータベース１３０、２３０の内容を同期するためのシーケンス図を示す。
【００４２】
新規に追加した待機系システム２０が起動すると、全データ取得要求Ｓ２０１を使用して運用形システム１０に対して全てのデータを送信するように要求する。
【００４３】
運用系システム１０のデータベース制御部１２０は、全データ取得要求Ｓ２０１を受信すると、データベース１３０内のデータをシーケンス番号順に待機系システム２０に送信する（取得応答Ｓ２０２、Ｓ２０４、Ｓ２０６）。このデータの送信処理は、サービスの提供に影響を与えることがないようにバックグラウンドで実行される。運用系システム１０のデータベース制御部１２０は、最後に送信したデータのシーケンス番号を保持しながら順番にデータを送信する。
【００４４】
待機系システム２０のデータベース制御部２２０は、運用系システム１０からデータを受信する度に、順番にデータベース２３０に受信したデータを登録する（処理Ｓ２０３、Ｓ２０５、Ｓ２０７）。
【００４５】
運用系システム１０のデータベース制御部１２０は、データベース１３０の全てのデータの送信が完了すると、全データ送信完了通知Ｓ２０８を送信し、待機系システム２０のデータベース制御部２２０に対して全てのデータの送信完了を通知する。
【００４６】
図６に、図５で示した同期処理中に運用系システム１０のデータベース１３０にデータが追加された場合のシーケンス図を示す。
【００４７】
図６において、待機系システム２０からの全データ取得要求Ｓ３０１を運用系システム１０で受け取ってから、待機系システム２０のデータベース制御部２２０がシーケンス番号（ｓｅｑ＝Ｓ１）と（ｓｅｑ＝Ｓ２）のデータを、データベース２３０に登録する（処理Ｓ３０３、Ｓ３０５）までの動作は、図５の動作と同様である。
【００４８】
図６では、待機系システム２０のデータベース制御部２２０がシーケンス番号（ｓｅｑ＝Ｓ２）のデータを、データベース２３０に登録した時点で、運用系システム１０のデータベース１３０にデータが追加された場合の動作を示している。すなわち、運用系システム１０から未だ全てのデータの送信が完了していない状態で、運用系システム１０のデータベース１３０にデータが追加される場合を示している。
【００４９】
アプリケーション１１０から追加指示Ｓ３０６によりデータの追加の指示を受けると、運用系システム１０のデータベース制御部１２０は、処理Ｓ３０７により運用系のデータベース２２０に指示に基づいてシーケンス番号３１０を付与した新たなデータを追加する。ここで、追加されたデータのシーケンス番号を「Ｓｎ＋１」とする。
【００５０】
その後、運用系システム１０のデータベース制御部１２０は、更新通知Ｓ３０８により待機系システム２０にデータの更新を通知する。この一連の処理において、運用系システム１０は、バックグラウンドで動作している全データの同期処理に影響を与えることなく、通常のデータ追加時の処理を実行する。
【００５１】
待機系システム２０のデータベース制御部２２０は、更新通知Ｓ３０８を受信するが、運用系システム１０からまだ全てのデータの取得が完了していないために、この更新通知Ｓ３０８を無視し、データの更新を実行しない。
【００５２】
その後、運用系システム１０のデータベース制御部１２０は、続きのシーケンス番号順にデータベース１３０のデータを送信し（取得応答Ｓ３０９）、待機系システム２０のデータベース制御部２２０は、運用系システム１０からデータを受信する度に、順番にデータベース２３０に受信したデータを登録する（処理Ｓ３１０）。
【００５３】
同期処理中にデータベース１３０に追加されたデータ（シーケンス番号「Ｓｎ＋１」）については、処理Ｓ３０７により、データベース１３０の末尾に登録されることから、同期処理における取得応答Ｓ３１１によって待機系システム２０に送信され、処理Ｓ３１２においてデータベース２３０に追加される。
【００５４】
そして、運用系システム１０のデータベース制御部１２０は、同期処理中に追加した新たなデータまでの全てのデータの送信が完了すると、全データ送信完了通知Ｓ３１３を送信し、待機系システム２０のデータベース制御部２２０に対して全てのデータの送信完了を通知する。
【００５５】
図７に、図５の同期処理中に運用系システム１０のデータベース１３０のデータが更新された場合のシーケンス図を示す。
【００５６】
図７において、待機系システム２０からの全データ取得要求Ｓ４０１を運用システム１０で受け取ってから、待機系システム２０のデータベース制御部２２０がシーケンス番号（ｓｅｑ＝Ｓ１）と（ｓｅｑ＝Ｓ２）のデータを、データベース２３０に登録する（処理Ｓ４０３、Ｓ４０５）までの動作は、図５の動作と同様である。
【００５７】
図７では、待機系システム２０のデータベース制御部２２０がシーケンス番号（ｓｅｑ＝Ｓ２）のデータを、データベース２３０に登録した時点で、運用系システム１０のデータベース１３０のデータが更新された場合の動作を示している。すなわち、運用系システム１０から未だ全てのデータの送信が完了していない状態で、運用系システム１０のデータベース１３０にデータが更新された場合を示している。
【００５８】
アプリケーション１１０から更新指示Ｓ４０６によりデータの更新の指示を受けると、運用系システム１０のデータベース制御部１２０は、処理Ｓ４０７において運用系のデータベース１３０の該当するデータを指示に基づいて更新する。ここで、更新されたデータの更新後のシーケンス番号を、「Ｓｎ＋１」とする。
【００５９】
その後、運用系システム１０のデータベース制御部１２０は、更新通知Ｓ４０８により待機系システム２０にデータの更新を通知する。この一連の処理において、運用系システム１０は、バックグラウンドで動作している全データの同期処理に影響を与えることなく、通常のデータ更新時の処理を実行する。
【００６０】
待機系システム２０のデータベース制御部２２０は、更新通知Ｓ４０８を受信するが、運用系システム１０からまだ全てのデータの取得が完了していないために、この信号１０を無視し、データの更新を実行しない。
【００６１】
その後、運用系システム１０のデータベース制御部１２０は、続きのシーケンス番号順にデータベース１３０のデータを送信し（取得応答Ｓ４０９）、待機系システム２０のデータベース制御部２２０は、運用系システム１０からデータを受信する度に、順番にデータベース２３０に受信したデータを登録する（処理Ｓ４１０）。
【００６２】
同期処理中に更新されたデータベース１３０のデータ（シーケンス番号「Ｓｎ＋１」）については、処理Ｓ４０７の更新処理により、データベース１３０の末尾に登録されることから、同期処理における取得応答Ｓ４１１によって待機系システム２０に送信され、処理Ｓ４１２においてデータベース２３０に追加される。
【００６３】
そして、運用系システム１０のデータベース制御部１２０は、同期処理中に追加した新たなデータまでの全てのデータの送信が完了すると、全データ送信完了通知Ｓ４１３を送信し、待機系システム２０のデータベース制御部２２０に対して全てのデータの送信完了を通知する。
【００６４】
図８に、図５の同期処理中に運用系システム１０のデータベース１２０のデータが削除された場合のシーケンス図を示す。
【００６５】
図８において、待機系システム２０からの全データ取得要求Ｓ５０１を運用システム１０で受け取ってから、待機系システム２０のデータベース制御部２２０がシーケンス番号（ｓｅｑ＝Ｓ１）と（ｓｅｑ＝Ｓ２）のデータを、データベース２３０に登録する（処理Ｓ５０３、Ｓ５０５）までの動作は、図５の動作と同様である。
【００６６】
図８では、運用系システム１０から送信されたシーケンス番号（ｓｅｑ＝Ｓ２）のデータを、待機系システム２０のデータベース制御部２２０が、データをデータベース２３０に登録して追加した時点で、すなわち、運用系システム１０から未だ全てのデータの送信が完了していない状態で、運用系システム１０のデータベース１３０にデータが削除された場合の動作を示している。
【００６７】
アプリケーション１１０から削除指示Ｓ５０６によりデータの削除の指示を受けると、運用系システム１０のデータベース制御部１２０は、処理Ｓ５０７により運用系のデータベース１３０の該当するデータを指示に基づいて削除する。ここで、削除されたデータの削除前のシーケンス番号を「Ｓ１」とする。
【００６８】
その後、運用系システム１０のデータベース制御部１２０は、更新通知Ｓ５０８により待機系システム２０にデータの更新を通知する。
【００６９】
待機系システム２０のデータベース制御部２２０は、更新通知Ｓ５０８を受信すると、シーケンス番号「Ｓ１」のデータについては受信済みであるため、処理Ｓ５０９においてデータベース２３０から該当するデータを削除する。
【００７０】
また、アプリケーション１１０から削除指示Ｓ５１０によりデータの削除の指示を受けると、運用系システム１０のデータベース制御部１２０は、処理Ｓ５１１において指示に基づいて運用系のデータベース１３０の該当するデータを削除する。ここで、削除されたデータの削除前のシーケンス番号を「Ｓｎ」とする。
【００７１】
その後、運用系システム１０のデータベース制御部１２０は、更新通知Ｓ５１２により待機系システム２０にデータの更新を通知する。
【００７２】
待機系システム２０のデータベース制御部２２０は、更新通知Ｓ５１２を受信すると、シーケンス番号「Ｓｎ」のデータについては未だ受信していないので、この更新通知Ｓ５１２を無視し、データの削除を実行しない。
【００７３】
その後、運用系システム１０のデータベース制御部１２０は、続きのシーケンス番号順にデータベース１３０のデータを送信し（取得応答Ｓ５１３）、待機系システム２０のデータベース制御部２２０は、運用系システム１０からデータを受信する度に、順番にデータベース２３０に受信したデータを登録する（処理Ｓ５１４）。
【００７４】
同期処理中に削除されたデータベース１３０のデータ（シーケンス番号「Ｓｎ」）については、処理Ｓ５１１でデータベース１３０から削除されているので、運用系システム１０から待機系システム２０に送信されない。
【００７５】
そして、運用系システム１０のデータベース制御部１２０は、全てのデータの送信が完了すると、全データ送信完了通知Ｓ５１５を送信し、待機系システム２０のデータベース制御部２２０に対して全てのデータの送信完了を通知する。
【００７６】
図６から図８で説明したように、運用系システム１０のデータベース１３０と待機系システム２０のデータベース２３０間における全データの同期中に、運用系システム１０のデータベース１３０の状態が変化しても、運用系システム１０の処理に大きな影響を与えることなくデータベースの同期を実行することが可能となる。
【００７７】
次に、図９に運用中に運用系システム１０と待機系システム２０間でデータベース１３０、２３０の整合を行うためのシーケンス図を示す。一般的に、データベースの内容を保障するため、運用系システム１０と待機系システム２０のデータベース１３０、２３０の整合処理を行うことで、よりシステムの信頼性を高めることが可能である。
【００７８】
データ整合処理の開始時には、全データ取得要求Ｓ６０１を使用して待機系システム２０から運用系システム１０に対してデータベース１３０の全データの取得要求を行う。
【００７９】
運用系システム１０のデータベース制御部１２０は、全データ取得要求Ｓ６０１を受信すると、データベース１３０内の全データをシーケンス番号順に待機系システム２０に送信する（取得応答Ｓ６０２、Ｓ６０４、Ｓ６１４）。このデータの送信処理は、サービスの提供に影響を与えることがないようにバックグラウンドで実行される。
【００８０】
待機系システム２０のデータベース制御部２２０は、運用系システム１０からデータを取得する度に、順番にデータベース２３０のデータの整合処理を行う（処理Ｓ６０３、Ｓ６０５、Ｓ６１５）。
【００８１】
運用系システム１０のデータベース制御部１２０は、全てのデータの送信が完了すると、全データ送信完了通知Ｓ６１６を送信し、待機系システム２０のデータベース制御部２２０に対して全てのデータの送信完了を通知する。
【００８２】
待機系システム２０のデータベース制御部２２０によるデータの整合処理は、以下に示す論理に従って実行される。
【００８３】
１．受信したデータのシーケンス番号と同じシーケンス番号を持つデータがデータベース２３０に存在しない場合、データが欠けていると判断してデータベース２３０に追加する。
２．受信したデータのシーケンス番号と同じシーケンス番号を持つデータがデータベース２３０に存在する場合、データの内容を比較し、異なる場合は受信したデータでデータベース２３０のデータを更新する。
３．運用系システム１０からはシーケンス番号の小さい順にデータが送信されるため、待機系システム２０が次に受信するシーケンス番号は、最後に受信したシーケンス番号の次に大きな数字のシーケンス番号である。待機系システム２０は、最後に受信したシーケンス番号に続くシーケンス番号と異なるシーケンス番号のデータを受信した場合、最後に受信したシーケンス番号から受信したシーケンス番号の間のデータは削除されたと判断する。
【００８４】
次に、データの整合処理中に、運用系システム１０側でデータの削除やデータの更新（変更、追加）がなされた場合について説明する。
【００８５】
アプリケーション１１０からの削除指示Ｓ６０６によりデータの削除の指示を受けると、運用系システム１０のデータベース制御部１２０は、処理Ｓ６０７において指示に基づいて運用系のデータベース１３０の該当するデータを削除する。ここで、削除されたデータの削除前のシーケンス番号を「Ｓ１」とする。
【００８６】
その後、運用系システム１０のデータベース制御部１２０は、更新通知Ｓ６０８により待機系システム２０にデータの削除を通知する。
【００８７】
待機系システム２０のデータベース制御部２２０は、更新通知Ｓ６０８を受信すると、全データの同期中の場合と異なり、シーケンス番号を考慮することなく、処理Ｓ６０９においてデータベース２３０から更新通知６０８で指示されたデータを削除する。
【００８８】
また、アプリケーション１１０から更新通知Ｓ６１０によりデータの更新の指示を受けると、運用系システム１０のデータベース制御部１２０は、処理Ｓ６１１において指示に基づいて運用系のデータベース１３０の該当するデータを更新する。ここで、更新されたデータの更新後のシーケンス番号を「Ｓｎ＋１」とする。
【００８９】
その後、運用系システム１０のデータベース制御部１２０は、更新通知Ｓ６１２により待機系システム２０にデータの更新を通知する。
【００９０】
待機系システム２０のデータベース制御部２２０は、更新通知Ｓ６１２を受信すると、データベース２３０の該当するデータを更新する。
【００９１】
運用系システム１０側から新たなデータの追加による更新通知があった場合についても、上記データの更新と同様、待機系システム２０のデータベース制御部２２０は、更新通知Ｓ６１２に基づいてデータベース２３０の該当するデータを更新する。
【００９２】
以上のように、データの整合処理中に運用系システム１０のデータベース１３０の状態が変化しても、非常に簡単な処理でサービスの提供を中断することなくデータの整合処理を行うことができる。
【００９３】
（第１の実施の形態による効果）
本実施の形態では、運用系システム１０でのサービス提供を中断等することなく、かつ運用系システムに同期処理のための大量のリソースを必要とすることなく、運用系システム１０と待機系システム２０間の同期処理と整合処理を実行することができる。その理由は、データベースのデータに、更新時にインクリメントするシーケンス番号を付与し、シーケンス番号を用いて同期処理と整合処理を行うことにより、全データベースの同期／整合処理において、運用系システムで管理が必要な情報は、待機系システムにどこまでデータを送信したという情報のみであり、最小限のリソースで同期と整合処理を実行することができるからである。
【００９４】
また、運用系のシステム１０は、待機系システム２０からの要求によりデータベース１３０の全データをシーケンス番号順に待機系システム２０に送信するが、その処理中に運用系システムのデータベースの状態が変更されても、その２つの処理はサービス提供に影響を与えることなく独立して実行される。
【００９５】
さらに、待機系システムにおいて、容易にデータの整合が可能であるということである。その理由は、運用系システムからは、シーケンス番号の小さい順にデータが送信されるため、データの抜けがあった場合に容易に判定が可能となるためである。
【００９６】
（第２の実施の形態）
次に、本発明の第２の実施の形態について説明する。この第２の実施の形態によるデータベースシステムの構成については、図１に示す第１の実施の形態の構成と同様であるので説明を省略する。
【００９７】
本第２の実施の形態によるデータベースシステムが、第１の実施の形態と相違する点は、運用系システム１０主導でデータベースの整合を行う点である。
【００９８】
図１０に、第２の実施の形態によるデータベースの整合処理を行う場合のシーケンス図を示す。
データベースの整合を行う場合、全データ取得要求Ｓ７０１を使用して運用形システム１０から待機系システム２０に対してデータベース２３０の全データの取得要求を行う。
【００９９】
待機系システム２０のデータベース制御部２２０は、全データ取得要求Ｓ７０１を受信すると、データベース２３０内の全データをシーケンス番号順に運用系システム１０に送信する（取得応答Ｓ７０２、Ｓ７０４、Ｓ７０８）。
【０１００】
取得応答Ｓ７０２以降で待機系システム２０からデータを取得すると、運用系システム１０のデータベース制御部１２０は、順番にデータベース１３０のデータ整合処理を行う（処理Ｓ７０３、Ｓ７０５、Ｓ７０９）。データベースの整合処理は、シーケンス番号を検索キーとして行う。
【０１０１】
データ整合処理において、データの不整合（データの不一致）を検出すると、運用系システム１０のデータベース制御部１２０は、待機系システム２０に対して該当するデータの更新要求を行うことでデータベース間の整合を行う。
【０１０２】
処理Ｓ７０５においてデータの不整合を検出した場合、運用系システム１０のデータベース制御部１２０は、更新通知Ｓ７０６により待機系システム２０に対してデータの更新を通知する。待機系システム２０のデータベース制御部２２０は、通知されたシーケンス番号のデータを処理Ｓ７０７において更新する。
【０１０３】
待機系システム２０のデータベース制御部２２０は、全てのデータの送信が完了すると、全データ送信完了通知Ｓ７１０を送信し、運用系システム１０のデータベース制御部１２０に対して全てのデータの送信完了を通知する。
【０１０４】
（第２の実施の形態による効果）
第２の実施の形態によれば、上述した第１の実施の形態による効果に加えて、第２の実施の形態による運用系システム主導の整合処理は、運用系システム１０に何らかの障害等が発生した場合に、待機系のシステム２０の情報を使用して運用系システムの情報を復旧させる場合にも利用することができる。
【０１０５】
（第３の実施の形態）
次に、本発明の第３の実施の形態について説明する。図１１に、第３の実施の形態によるデータベースシステムの構成例を示す。
【０１０６】
本実施の形態では、待機系システムが１つではなく２つ以上存在する。図１１では、待機系システム２０−１、２０−２の２つを備える構成を示している。
【０１０７】
運用系システム１０は、アプリケーション１１０、データベース制御部１２０、データベース１３０を備える。また、待機系システム２０−１、２０−２は、それぞれアプリケーション２１０−１、２１０−２、データベース制御部２２０−１、２２０−２、データベース２３０−１、２３０−２を備えている。これらアプリケーション、データベース制御部、データベースの機能については、第１の実施の形態と同じであるので説明は省略する。
【０１０８】
それぞれの待機系システム２０−１、２０−２は、スイッチ８０を経由して運用系システム１０と接続されている。このスイッチ８０は、一般的なイーサネットスイッチと同様に、システム間でブロードキャスト通信とユニキャスト通信を可能にする。
【０１０９】
（第３の実施の形態の動作）
次に、図１２を使用して、２つの待機系システム２０−１、２０−２に対してデータベース同期を行う場合のシーケンス図について説明する。
【０１１０】
定常状態において運用系システム１０のデータベース１３０にデータが追加される場合、追加指示Ｓ８０１を使用してアプリケーション１１０からデータベース１３０に対してデータの追加が指示される。運用系システム１０のデータベース制御部１２０は、追加指示Ｓ８０１を受信すると、処理Ｓ８０２においてシーケンス番号を付与した新たなデータをデータベース１３０に追加し、ブロードキャスト通信を指定して更新通知Ｓ８０３をスイッチ８０に送信する。
【０１１１】
スイッチ８０は、受け取った更新通知Ｓ８０３を待機系システム２０−１と待機系システム２０−２のそれぞれに更新通知Ｓ８０４、Ｓ８０５として送信する。
【０１１２】
待機系システム２０−１，２０−２では、スイッチ８０から更新通知Ｓ８０４、Ｓ８０５を受け取ると、それぞれが独立して処理Ｓ８０６を実行し、データベース２３０−１、２３０−２に更新通知Ｓ８０４、Ｓ８０５で通知されたデータを追加する。
【０１１３】
上記説明では、運用系システム１０のデータベース１３０にデータが追加される場合の動作について説明したが、運用系システム１０のデータベース１３０のデータが更新、削除された場合においても、上記と同様の動作が実行される。
【０１１４】
次に、待機系システム２０−２のみについてデータ整合処理が実行された場合のシーケンス図を説明する。
【０１１５】
待機系システム２０−２のデータベース制御部２２−２からスイッチ８０を経由してユニキャストにより全データ取得要求Ｓ８０７が送信されると、運用系システム１０のデータベース制御部１２０では、バックグラウンド処理を起動し、データベース１３０内の全データをシーケンス番号順にスイッチ８０を経由して待機系システム２０−２に送信する（取得応答Ｓ８０８、Ｓ８１０、Ｓ８１８）。
【０１１６】
取得応答Ｓ８０８以降で運用系システム１０からデータを取得すると、待機系システム２０−２のデータベース制御部２２０−２は、順番にデータベース２３０−２のデータ整合処理を行う（処理Ｓ８０９、Ｓ８１１、Ｓ８１９）。
【０１１７】
運用系システム１０のデータベース制御部１２０は、全てのデータの送信が完了すると、スイッチ８０を経由して全データ送信完了通知Ｓ８２０を送信し、待機系システム２０−２のデータベース制御部２２０−２に対して全てのデータの送信完了を通知する。
【０１１８】
待機系システム２０−２に対して全データの送信処理中に、更新指示Ｓ８１２によりデータベース１３０のデータの更新の指示を受けると、運用系システム１０のデータベース制御部１２０は、処理Ｓ８１３においてデータベース１３０の該当するデータを更新し、スイッチ８０に対して、更新内容を指定した更新通知Ｓ８１４を、ブロードキャストを指定して送信する。
【０１１９】
スイッチ８０は、受け取った更新通知Ｓ８１４を、待機系システム２０−１、待機系システム２０−２のそれぞれに更新通知Ｓ８１５、Ｓ８１６として送信する。
【０１２０】
待機系システム２０−１のデータベース制御部２２０−１と、待機系システム２０−２のデータベース制御部２２０−２は、更新通知Ｓ８１５、Ｓ８１６を受信すると、処理Ｓ８１７においてデータベース２３０−１、２３０−２の指定されたデータを更新する。
【０１２１】
なお、図１２では、全データの送信処理中に、運用系システム１０のデータベース１３０のデータが更新された場合について説明したが、待機系システム２０−２に対して全データの送信処理中に、運用系システム１０のデータベース１３０に新たなデータが追加された場合、データベース１３０のデータが削除された場合についても、上述した更新の場合と同様に処理される。
【０１２２】
また、上記説明では、データの整合処理について説明したが、待機系システムを新規に追加した場合に、運用系システム１０と待機系システムのデータベース間の同期処理については、図５に示した第１の実施の形態と同様に実行することができる。
【０１２３】
（第３の実施の形態による効果）
第３の実施の形態によれば、上述した第１の実施の形態による効果に加えて、待機系システムが複数存在した場合でも、それぞれの待機系システムの状態を把握することなく、運用系システムのデータの更新処理、同期と整合処理を行うことが可能となる。
【０１２４】
次いで、データベースシステムを構成する運用系システム１０のハードウェア構成例について図１３を参照して説明する。
【０１２５】
図１３を参照すると、運用系システム１０は、一般的なコンピュータ装置と同様のハードウェア構成によって実現することができ、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等からなり、データの作業領域やデータの一時退避領域に用いられる主記憶部４０２、ネットワークを介して他のノードとデータの送受信を行う通信部４０３、外部の装置と接続してデータの送受信を行う入出力インタフェース部４０４、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置等の記憶装置４０５（データベース１３０に相当）、キーボードやマウス等の入力装置４０６、表示装置等の出力装置４０７、上記各構成要素を相互に接続するシステムバス４０８を備えている。
【０１２６】
本実施の形態による運用系システム１０は、データベース制御部１２０の各処理を実行するデータ処理プログラムを組み込んだ、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、上記データベース制御部１２０の各機能を提供するデータ処理プログラムを、記憶装置４０５に格納し、そのプログラムを主記憶部４０２にロードしてＣＰＵ４０１で実行することにより、ソフトウェア的に実現することも可能である。
【０１２７】
図１３は、パ運用系システム１０のハードウェア構成例について説明したが、待機系システム２０についても、図１３と同様のハードウェア構成である。
【０１２８】
以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【産業上の利用可能性】
【０１２９】
本発明によれば、冗長化システムでの利用だけでなく、データベースの分散システム、コントローラとエージェントといった組み合わせ分散ネットワークシステムに利用可能である。
【図面の簡単な説明】
【０１３０】
【図１】本発明の第１の実施の形態によるデータベースシステムの構成例を示すブロック図である。
【図２】第１の実施の形態によるデータベースシステムの運用系システム及び待機系システムのデータベースに格納するデータの形式を示す図である。
【図３】第１の実施の形態によるデータベースシステムの運用系システム及び待機系システムのデータベースのデータの格納方法を説明する図である。
【図４】第１の実施の形態によるデータベースシステムにおける定常状態でのデータの同期の方法を説明するシーケンス図である。
【図５】第１の実施の形態によるデータベースシステムにおいて、待機系システムを新規に追加した場合の、運用系システムと待機系システム間の同期方法を説明するシーケンス図である。
【図６】図５に示す同期処理中に運用系システムのデータベースにデータが追加された場合の動作を説明するシーケンス図である。
【図７】図５に示す同期処理中に運用系システムのデータベースのデータが更新された場合の動作を説明するシーケンス図である。
【図８】図５に示す同期処理中に運用系システムのデータベースのデータが削除された場合の動作を説明するシーケンス図である。
【図９】第１の実施の形態によるデータベースシステムにおいて、運用中に運用系システムと待機系システム間でデータベースの整合を行うための動作を説明するシーケンス図である。
【図１０】第２の実施の形態によるデータベースの整合処理を行う場合の動作を説明するシーケンス図である。
【図１１】本発明の第３の実施の形態によるデータベースシステムの構成例を示すブロック図である。
【図１２】本発明の第３の実施の形態において、２つの待機系システムに対してデータベース同期を行う場合の動作と、一方の待機系システムのみについてデータ整合処理を行う場合の動作を説明するシーケンス図である。
【図１３】本発明の実施の形態によるデータベースシステムの運用系システムと待機系システムのハードウェア構成を示すブロック図である。
【符号の説明】
【０１３１】
１０：運用系システム
２０：待機系システム
１１０、２１０：アプリケーション
１２０、２２０：データベース制御部
１３０、２３０：データベース
３１０：シーケンス番号
３２０：データキー
３３０：データ
【図１】
2010152591.tif 000003
【図２】
2010152591.tif 000004
【図３】
2010152591.tif 000005
【図４】
2010152591.tif 000006
【図５】
2010152591.tif 000007
【図６】
2010152591.tif 000008
【図７】
2010152591.tif 000009
【図８】
2010152591.tif 000010
【図９】
2010152591.tif 000011
【図１０】
2010152591.tif 000012
【図１１】
2010152591.tif 000013
【図１２】
2010152591.tif 000014
【図１３】
2010152591.tif 000015