JP2012234462A - データ管理装置及びデータ管理方法及びプログラム - Google Patents
データ管理装置及びデータ管理方法及びプログラム Download PDFInfo
- Publication number
- JP2012234462A JP2012234462A JP2011104124A JP2011104124A JP2012234462A JP 2012234462 A JP2012234462 A JP 2012234462A JP 2011104124 A JP2011104124 A JP 2011104124A JP 2011104124 A JP2011104124 A JP 2011104124A JP 2012234462 A JP2012234462 A JP 2012234462A
- Authority
- JP
- Japan
- Prior art keywords
- data
- update
- time
- completion time
- completed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】複数データベース間のデータの整合性がとれている状態で、過去のデータを取得可能とする。
【解決手段】トランザクション監視部101が、トランザクションの処理状況を監視し、データベース間で整合性が取れた時刻をDB静止点記憶部105に記録する。リアルタイムの更新はプライマリDBのみ行い、プライマリDBの更新ログを更新ログ蓄積部106に蓄積する。更新ログ蓄積部106に蓄積されたログのうち、一定期間経過したものから順にセカンダリDBの更新を行うことにより、セカンダリDBの更新を遅延させて行う。過去データの取得要求があった場合に、セカンダリDBの更新処理を停止し、DB静止点記憶部105に記録された時刻であって、要求された時刻に最も近い時刻の更新ログを更新ログ蓄積部106から取得し、セカンダリDBのデータと更新ログ蓄積部106から取得した更新ログから過去データを作成する。
【選択図】図1
【解決手段】トランザクション監視部101が、トランザクションの処理状況を監視し、データベース間で整合性が取れた時刻をDB静止点記憶部105に記録する。リアルタイムの更新はプライマリDBのみ行い、プライマリDBの更新ログを更新ログ蓄積部106に蓄積する。更新ログ蓄積部106に蓄積されたログのうち、一定期間経過したものから順にセカンダリDBの更新を行うことにより、セカンダリDBの更新を遅延させて行う。過去データの取得要求があった場合に、セカンダリDBの更新処理を停止し、DB静止点記憶部105に記録された時刻であって、要求された時刻に最も近い時刻の更新ログを更新ログ蓄積部106から取得し、セカンダリDBのデータと更新ログ蓄積部106から取得した更新ログから過去データを作成する。
【選択図】図1
Description
本発明は、冗長構成のデータベースにおけるデータを管理する技術に関する。
データベースを過去の状態にリカバリする方式として、データベースのスナップショットとジャーナル格納域を設け過去の状態に回復する方式が提案されている(例えば、特許文献1)。
従来の過去の状態にリカバリする方式はデータベースを2重化し、片方のデータベースは、スナップショットとジャーナルを保管することで過去の状態を取得可能とする。
この方式では、スナップショットとジャーナルからデータを取得する際、データの更新処理の完了(トランザクションの完了)を意識しないでデータベースを切り離す。
このため、採取したバックアップのデータには、必ずしも更新処理が完了した後のデータ内容が反映されているとは限らず、データベースの利用者から見て、データベース間で整合性がとれた状態であることが保障されないという課題がある。
例えば、プログラムのテスト目的などのために過去のある時点のデータベースのデータを取得した場合に、取得したデータがある処理の途中(トランザクションの途中)まで更新された状態となっている場合がある。
このようにデータ内容に不整合が生じている可能性がある場合には、リストア先でデータを完全に再利用することはできない。
この方式では、スナップショットとジャーナルからデータを取得する際、データの更新処理の完了(トランザクションの完了)を意識しないでデータベースを切り離す。
このため、採取したバックアップのデータには、必ずしも更新処理が完了した後のデータ内容が反映されているとは限らず、データベースの利用者から見て、データベース間で整合性がとれた状態であることが保障されないという課題がある。
例えば、プログラムのテスト目的などのために過去のある時点のデータベースのデータを取得した場合に、取得したデータがある処理の途中(トランザクションの途中)まで更新された状態となっている場合がある。
このようにデータ内容に不整合が生じている可能性がある場合には、リストア先でデータを完全に再利用することはできない。
この発明は上記のような課題を解決することを主な目的としており、更新処理が完了した後のデータ内容が反映されるデータを得ることを目的とする。
本発明に係るデータ管理装置は、
更新される第1のデータと、前記第1のデータの更新処理が完了してから所定時間が経過した後に前記第1のデータと同じ更新処理処理が行われる第2のデータとを管理するデータ管理装置であって、
前記第1のデータの更新処理が完了する度に、更新処理が完了した時刻を第1データ更新完了時刻として記憶する第1データ更新完了時刻記憶部と、
前記第1のデータの更新に用いられた更新データと、更新データによる前記第1のデータの更新時刻とを関連付けて記憶する更新データ記憶部と、
過去の時刻が指定時刻として指定され、指定時刻での第1のデータを生成するよう要求するデータ生成要求を入力する入力部と、
前記入力部により前記データ生成要求が入力された場合に、前記データ生成要求の前記指定時刻に基づき、前記第1データ更新完了時刻記憶部に記憶されている第1データ更新完了時刻の中から特定の第1データ更新完了時刻を選択第1データ更新完了時刻として選択し、更新時刻が選択第1データ更新完了時刻までの更新データと、前記第2のデータとを用いて、選択第1データ更新完了時刻での第1のデータを生成するデータ生成部とを有することを特徴とする。
更新される第1のデータと、前記第1のデータの更新処理が完了してから所定時間が経過した後に前記第1のデータと同じ更新処理処理が行われる第2のデータとを管理するデータ管理装置であって、
前記第1のデータの更新処理が完了する度に、更新処理が完了した時刻を第1データ更新完了時刻として記憶する第1データ更新完了時刻記憶部と、
前記第1のデータの更新に用いられた更新データと、更新データによる前記第1のデータの更新時刻とを関連付けて記憶する更新データ記憶部と、
過去の時刻が指定時刻として指定され、指定時刻での第1のデータを生成するよう要求するデータ生成要求を入力する入力部と、
前記入力部により前記データ生成要求が入力された場合に、前記データ生成要求の前記指定時刻に基づき、前記第1データ更新完了時刻記憶部に記憶されている第1データ更新完了時刻の中から特定の第1データ更新完了時刻を選択第1データ更新完了時刻として選択し、更新時刻が選択第1データ更新完了時刻までの更新データと、前記第2のデータとを用いて、選択第1データ更新完了時刻での第1のデータを生成するデータ生成部とを有することを特徴とする。
本発明によれば、第1のデータの更新処理が完了した時刻である第1データ更新完了時刻を記憶し、第1データ更新完了時刻を基準にして第1のデータを生成するため、更新処理が完了した後のデータ内容が反映されるデータを得ることができる。
実施の形態1.
本実施の形態では、例えば24時間稼動する情報システムにおいて、一連のデータベースの更新処理が完了し、データベース間のデータの整合性がとれている状態で、過去に遡って、データベースのデータを取得可能とするデータリカバリ方式を説明する。
本実施の形態では、例えば24時間稼動する情報システムにおいて、一連のデータベースの更新処理が完了し、データベース間のデータの整合性がとれている状態で、過去に遡って、データベースのデータを取得可能とするデータリカバリ方式を説明する。
図1は、本実施の形態に係るデータベース管理装置100とデータベースシステム200の構成例を示す。
なお、データベース管理装置100は、データ管理装置の例に相当する。
なお、データベース管理装置100は、データ管理装置の例に相当する。
図1に示すように、データベース管理装置100は、データベースシステム200に接続され、データベースシステム200を管理する。
データベースシステム200には、一例としてシステムA用DB(プライマリ)201、システムB用DB(プライマリ)202、システムA用DB(セカンダリ)203、システムB用DB(セカンダリ)204が配置されている。
システムAとシステムBは互いに連動しており、例えば、システムAが商品の出入庫管理システムであり、システムBが商品の在庫管理システムである。
システムA用のデータベース(システムA用DB(プライマリ)201とシステムA用DB(セカンダリ)203)は、1つのトランザクションにより商品の出入庫履歴を更新し、システムB用のデータベース(システムB用DB(プライマリ)202とシステムB用DB(セカンダリ)204)は、同じトランザクションにより商品の在庫量を更新する。
そして、システムA用DB(プライマリ)201はシステムA用のデータを記憶する主系のデータベースであり、システムB用DB(プライマリ)202はシステムB用のデータを記憶する主系のデータベースである。
また、システムA用DB(セカンダリ)203はシステムA用のデータを記憶する予備系のデータベースであり、システムB用DB(セカンダリ)204はシステムB用のデータを記憶する予備系のデータベースである。
原則としてシステムA用DB(プライマリ)201とシステムA用DB(セカンダリ)203は同じデータを持つが、システムA用DB(セカンダリ)は、システムA用DB(プライマリ)の更新が行われてからある程度遅延して同じデータの更新が行われる。
なお、以下では、システムA用DB(プライマリ)201及びシステムB用DB(プライマリ)202を区別しない場合は、両者をまとめてプライマリデータベース又はプライマリDBという。
また、システムA用DB(セカンダリ)203及びシステムB用DB(セカンダリ)204を区別しない場合は、両者をまとめてセカンダリデータベース又はセカンダリDBという。
また、プライマリデータベースとセカンダリデータベースを別のサーバ(別のコンピュータ)としてもよい。
また、システムA用DB(プライマリ)201のデータとシステムB用DB(プライマリ)202のデータが第1のデータの例に相当し、システムA用DB(セカンダリ)203のデータとシステムB用DB(セカンダリ)204のデータが第2のデータの例に相当する。
データベースシステム200には、一例としてシステムA用DB(プライマリ)201、システムB用DB(プライマリ)202、システムA用DB(セカンダリ)203、システムB用DB(セカンダリ)204が配置されている。
システムAとシステムBは互いに連動しており、例えば、システムAが商品の出入庫管理システムであり、システムBが商品の在庫管理システムである。
システムA用のデータベース(システムA用DB(プライマリ)201とシステムA用DB(セカンダリ)203)は、1つのトランザクションにより商品の出入庫履歴を更新し、システムB用のデータベース(システムB用DB(プライマリ)202とシステムB用DB(セカンダリ)204)は、同じトランザクションにより商品の在庫量を更新する。
そして、システムA用DB(プライマリ)201はシステムA用のデータを記憶する主系のデータベースであり、システムB用DB(プライマリ)202はシステムB用のデータを記憶する主系のデータベースである。
また、システムA用DB(セカンダリ)203はシステムA用のデータを記憶する予備系のデータベースであり、システムB用DB(セカンダリ)204はシステムB用のデータを記憶する予備系のデータベースである。
原則としてシステムA用DB(プライマリ)201とシステムA用DB(セカンダリ)203は同じデータを持つが、システムA用DB(セカンダリ)は、システムA用DB(プライマリ)の更新が行われてからある程度遅延して同じデータの更新が行われる。
なお、以下では、システムA用DB(プライマリ)201及びシステムB用DB(プライマリ)202を区別しない場合は、両者をまとめてプライマリデータベース又はプライマリDBという。
また、システムA用DB(セカンダリ)203及びシステムB用DB(セカンダリ)204を区別しない場合は、両者をまとめてセカンダリデータベース又はセカンダリDBという。
また、プライマリデータベースとセカンダリデータベースを別のサーバ(別のコンピュータ)としてもよい。
また、システムA用DB(プライマリ)201のデータとシステムB用DB(プライマリ)202のデータが第1のデータの例に相当し、システムA用DB(セカンダリ)203のデータとシステムB用DB(セカンダリ)204のデータが第2のデータの例に相当する。
データベース管理装置100において、トランザクション監視部101は、データベースを操作するトランザクションの処理中/完了の状態を監視する機能である。
また、トランザクション監視部101は、過去データ要求を入力する。
過去データ要求には、過去データ取得開始要求、過去データ取得要求、過去データ取得終了要求が含まれる。
過去データ取得開始要求、過去データ取得要求、過去データ取得終了要求の詳細は後述する。
なお、過去データとは、所定の過去の時刻でのデータである。
プライマリデータベースのデータの更新処理が完了してから所定時間が経過した後に、セカンダリデータベースのデータの更新処理が行われるため、プライマリデータベースの更新処理後であっても、更新処理前のセカンダリデータベースのデータを用いて、プライマリデータベースの更新処理前の過去のデータを生成することができる。
なお、トランザクション監視部101は入力部及び更新状況監視部の例に相当し、また、トランザクション監視部101が実行する処理が入力ステップの例に相当する。
また、トランザクション監視部101は、過去データ要求を入力する。
過去データ要求には、過去データ取得開始要求、過去データ取得要求、過去データ取得終了要求が含まれる。
過去データ取得開始要求、過去データ取得要求、過去データ取得終了要求の詳細は後述する。
なお、過去データとは、所定の過去の時刻でのデータである。
プライマリデータベースのデータの更新処理が完了してから所定時間が経過した後に、セカンダリデータベースのデータの更新処理が行われるため、プライマリデータベースの更新処理後であっても、更新処理前のセカンダリデータベースのデータを用いて、プライマリデータベースの更新処理前の過去のデータを生成することができる。
なお、トランザクション監視部101は入力部及び更新状況監視部の例に相当し、また、トランザクション監視部101が実行する処理が入力ステップの例に相当する。
DB同期管理部102は、後述のセカンダリDB更新部104の同期/分離状態の監視、セカンダリDB更新部104の同期/分離を制御する機能である。
ここで、「同期」とは、セカンダリDBの更新処理が許可されている状態であり、「分離」とは、セカンダリDBの更新処理が禁止されている状態である。
セカンダリDBは、プライマリDBの更新処理の完了から所定時間が経過するとプライマリDBと同じ更新処理が行われるが、セカンダリDBの更新タイミング時に「分離」の状態であれば、DB同期管理部102により「同期」の状態に変更されるまで、セカンダリDBの更新処理が保留される。
DB同期管理部102は、第2データ状態管理部の例である。
ここで、「同期」とは、セカンダリDBの更新処理が許可されている状態であり、「分離」とは、セカンダリDBの更新処理が禁止されている状態である。
セカンダリDBは、プライマリDBの更新処理の完了から所定時間が経過するとプライマリDBと同じ更新処理が行われるが、セカンダリDBの更新タイミング時に「分離」の状態であれば、DB同期管理部102により「同期」の状態に変更されるまで、セカンダリDBの更新処理が保留される。
DB同期管理部102は、第2データ状態管理部の例である。
プライマリDB更新部103は、データベースシステム200内のシステムA用DB(プライマリ)201及びシステムB用DB(プライマリ)202の更新処理を行う機能である。
セカンダリDB更新部104は、プライマリDB更新部103が更新処理の対象とするプライマリデータベースと同じシステムのセカンダリデータベースの更新処理を行い、過去データ取得時はデータの更新処理を停止し、過去データ取得後に当該セカンダリデータベースの更新処理を行う機能である。
DB静止点記憶部105は、トランザクション監視部101がすべてのトランザクションが完了し、プライマリデータベース間の状態が整合性がとれていることを検知したときにその時刻を記録するための領域である。
つまり、DB静止点記憶部105は、プライマリDBのデータ(第1のデータの例)の更新処理が完了する度に、更新処理が完了した時刻をDB静止点(第1データ更新完了時刻の例)として記憶する。
DB静止点記憶部105は、第1データ更新完了時刻記憶部の例に相当し、DB静止点記憶部105が実行する処理は、第1データ更新完了時刻記憶ステップの例に相当する。
つまり、DB静止点記憶部105は、プライマリDBのデータ(第1のデータの例)の更新処理が完了する度に、更新処理が完了した時刻をDB静止点(第1データ更新完了時刻の例)として記憶する。
DB静止点記憶部105は、第1データ更新完了時刻記憶部の例に相当し、DB静止点記憶部105が実行する処理は、第1データ更新完了時刻記憶ステップの例に相当する。
更新ログ蓄積部106は、セカンダリDBの更新を遅延させるためにプライマリDBの更新ログを一定期間蓄積しておく保管領域である。
つまり、更新ログ蓄積部106は、プライマリDBのデータ(第1のデータの例)の更新に用いられた更新データと、更新データによるプライマリDBの更新時刻とが関連付けられた更新ログを記憶する。
更新ログ蓄積部106は、更新データ記憶部の例に相当し、更新ログ蓄積部106が実行する処理は、更新データ記憶ステップの例に相当する。
つまり、更新ログ蓄積部106は、プライマリDBのデータ(第1のデータの例)の更新に用いられた更新データと、更新データによるプライマリDBの更新時刻とが関連付けられた更新ログを記憶する。
更新ログ蓄積部106は、更新データ記憶部の例に相当し、更新ログ蓄積部106が実行する処理は、更新データ記憶ステップの例に相当する。
更新ログ制御管理部107は、更新ログ蓄積部106に蓄積されているシステムA用DB(プライマリ)201及びシステムB用DB(プライマリ)202の更新ログのうち、あらかじめ設定されたDBリカバリ可能期間(保管期間ともいう)を超過したログを取り出し、その更新ログをもとにしたセカンダリDBの更新をセカンダリDB更新部104に要求する機能である。
更新ログ制御管理部107は、過去データ取得要求があった際に、システムA用DB(セカンダリ)203及びシステムB用DB(セカンダリ)204のデータ、及び、更新ログ蓄積部106に蓄積されている更新ログを用いて、過去データを生成する。
より具体的には、更新ログ制御管理部107は、セカンダリDBのデータの更新に最後に用いられた更新データの更新時刻よりも後のDB静止点であって、過去データ取得要求で指定されている過去の時刻(指定時刻という)に最も近いDB静止点を選択する。
そして、更新ログ制御管理部107は、セカンダリDBのデータの更新に最後に用いられた更新データの更新時刻と選択したDB静止点(選択第1データ更新完了時刻の例)までの時間に更新時刻が含まれる更新データと、セカンダリDBのデータとを用いて、選択したDB静止点でのプライマリDBのデータを生成する。
更新ログ制御管理部107は、データ生成部の例に相当する。また、更新ログ制御管理部107が実施する処理は、データ生成ステップの例に相当する。
更新ログ制御管理部107は、過去データ取得要求があった際に、システムA用DB(セカンダリ)203及びシステムB用DB(セカンダリ)204のデータ、及び、更新ログ蓄積部106に蓄積されている更新ログを用いて、過去データを生成する。
より具体的には、更新ログ制御管理部107は、セカンダリDBのデータの更新に最後に用いられた更新データの更新時刻よりも後のDB静止点であって、過去データ取得要求で指定されている過去の時刻(指定時刻という)に最も近いDB静止点を選択する。
そして、更新ログ制御管理部107は、セカンダリDBのデータの更新に最後に用いられた更新データの更新時刻と選択したDB静止点(選択第1データ更新完了時刻の例)までの時間に更新時刻が含まれる更新データと、セカンダリDBのデータとを用いて、選択したDB静止点でのプライマリDBのデータを生成する。
更新ログ制御管理部107は、データ生成部の例に相当する。また、更新ログ制御管理部107が実施する処理は、データ生成ステップの例に相当する。
トランザクション完了管理テーブル108は、現在処理中のトランザクション数を管理するための情報である。
監視対象トランザクションテーブル109は、1つのトランザクションに含まれる更新要求のうち、トランザクション監視部101が監視すべき更新要求が示されている情報である。
DB同期状態管理テーブル110は、DB同期管理部102が管理する更新ログ制御管理部107の同期/分離状態を記憶する保管領域である。
最終DB更新時刻テーブル111は、更新ログ蓄積部106に蓄積された更新ログのうち、セカンダリDBの更新に最後に用いられた更新データの更新時刻、つまり、セカンダリDBの状態と一致していたときのプライマリDBの時刻を記憶する保管領域である。
ここで、トランザクションについて説明する。
1つのトランザクションは、複数のデータベース更新要求で構成される。
1つトランザクションには、トランザクションの開始を示す(データベースの更新開始を示す)更新要求(以下、STARTと呼ぶ)とトランザクションの完了を示す(データベースの更新完了を示す)更新要求(以下、COMMITと呼ぶ)があり、STARTとCOMMITの間に、具体的な更新処理の内容(更新対象の商品コード、数量等)を示す更新要求が発行される。
具体的な更新処理の内容(更新対象の商品コード、数量等)が、更新データに相当する。
トランザクションにおける各更新要求は、トランザクション監視部101が入力する。
1つのトランザクションは、複数のデータベース更新要求で構成される。
1つトランザクションには、トランザクションの開始を示す(データベースの更新開始を示す)更新要求(以下、STARTと呼ぶ)とトランザクションの完了を示す(データベースの更新完了を示す)更新要求(以下、COMMITと呼ぶ)があり、STARTとCOMMITの間に、具体的な更新処理の内容(更新対象の商品コード、数量等)を示す更新要求が発行される。
具体的な更新処理の内容(更新対象の商品コード、数量等)が、更新データに相当する。
トランザクションにおける各更新要求は、トランザクション監視部101が入力する。
また、トランザクション監視部101は、過去データ取得開始要求、過去データ取得要求、過去データ取得終了通知も入力する。
トランザクション監視部101は、トランザクション、過去データ取得開始要求及び過去データ取得終了通知を、例えば、データベース管理装置100のオペレータ又はデータベース管理装置100を利用するアプリケーションプログラムから入力する。
過去データ取得開始要求は、データベースシステム200内から過去の状態のデータの取得開始を通知するメッセージである。
データベース管理装置100は、過去データ取得開始要求を入力した際には、過去データを取得する処理を開始する。
過去データ取得終了通知は、取得の対象となっていた過去の状態のデータの取得が完了したことを通知するメッセージである。
データベース管理装置100は、過去データ取得終了通知を入力した際には、セカンダリDBの遅延更新を再開させるための処理(「分離」状態から「同期」状態にする処理)を行う。
本実施の形態では、過去データ取得開始要求が入力された際には、システムA用DB(セカンダリ)203とシステムB用DB(セカンダリ)204がともに過去データ取得の対象となる。
同様に、過去データ取得終了通知が入力された際には、システムA用DB(セカンダリ)203とシステムB用DB(セカンダリ)204の過去データ取得がともに完了しており、システムA用DB(セカンダリ)203とシステムB用DB(セカンダリ)204がともに遅延更新再開の対象となることとする。
なお、システムA用DB(セカンダリ)203の過去データとは、過去データ取得要求で指定されている指定時刻に最も近いDB静止点でのシステムA用DB(プライマリ)201のデータ内容が復元されているデータである。
同様に、システムB用DB(セカンダリ)204の過去データとは、過去データ取得要求で指定されている指定時刻に最も近いDB静止点でのシステムB用DB(プライマリ)202のデータ内容が復元されているデータである。
トランザクション監視部101は、トランザクション、過去データ取得開始要求及び過去データ取得終了通知を、例えば、データベース管理装置100のオペレータ又はデータベース管理装置100を利用するアプリケーションプログラムから入力する。
過去データ取得開始要求は、データベースシステム200内から過去の状態のデータの取得開始を通知するメッセージである。
データベース管理装置100は、過去データ取得開始要求を入力した際には、過去データを取得する処理を開始する。
過去データ取得終了通知は、取得の対象となっていた過去の状態のデータの取得が完了したことを通知するメッセージである。
データベース管理装置100は、過去データ取得終了通知を入力した際には、セカンダリDBの遅延更新を再開させるための処理(「分離」状態から「同期」状態にする処理)を行う。
本実施の形態では、過去データ取得開始要求が入力された際には、システムA用DB(セカンダリ)203とシステムB用DB(セカンダリ)204がともに過去データ取得の対象となる。
同様に、過去データ取得終了通知が入力された際には、システムA用DB(セカンダリ)203とシステムB用DB(セカンダリ)204の過去データ取得がともに完了しており、システムA用DB(セカンダリ)203とシステムB用DB(セカンダリ)204がともに遅延更新再開の対象となることとする。
なお、システムA用DB(セカンダリ)203の過去データとは、過去データ取得要求で指定されている指定時刻に最も近いDB静止点でのシステムA用DB(プライマリ)201のデータ内容が復元されているデータである。
同様に、システムB用DB(セカンダリ)204の過去データとは、過去データ取得要求で指定されている指定時刻に最も近いDB静止点でのシステムB用DB(プライマリ)202のデータ内容が復元されているデータである。
本実施の形態では、データベース内の複数のテーブルが更新されるシステムにおいて、複数データベース間のデータの整合性がとれている状態で、過去のデータを取得可能とする。
本実施の形態では、トランザクション監視部101が、トランザクションの処理状況を監視し、処理中のトランザクションがなくなったタイミングで、データベース間の整合性が取れている状態として、その時刻をDB静止点記憶部105に記録する。
前述したように、データベースは、複数個のプライマリDBと、複数個のセカンダリDBを持ち、データベースのリアルタイムの更新はプライマリDBのみ行い、プライマリDBの更新ログを更新ログ蓄積部106に蓄積する。
更新ログ蓄積部106に蓄積されたログのうち、一定期間経過したものから順にセカンダリDBの更新を行うことにより、セカンダリDBの更新を遅延させて行う。
過去データの取得が要求された場合は、セカンダリDBの更新処理を停止し、DB静止点記憶部105に記録された時刻(データの整合性が取れている時刻)であって、過去データ取得要求で要求された時刻に最も近い時刻の更新ログを更新ログ蓄積部106から取得する。
また、過去データを取得する際には、セカンダリDBの内容と更新ログ蓄積部106に蓄積された更新ログの内容から要求された時刻のデータを作成する。
前述したように、データベースは、複数個のプライマリDBと、複数個のセカンダリDBを持ち、データベースのリアルタイムの更新はプライマリDBのみ行い、プライマリDBの更新ログを更新ログ蓄積部106に蓄積する。
更新ログ蓄積部106に蓄積されたログのうち、一定期間経過したものから順にセカンダリDBの更新を行うことにより、セカンダリDBの更新を遅延させて行う。
過去データの取得が要求された場合は、セカンダリDBの更新処理を停止し、DB静止点記憶部105に記録された時刻(データの整合性が取れている時刻)であって、過去データ取得要求で要求された時刻に最も近い時刻の更新ログを更新ログ蓄積部106から取得する。
また、過去データを取得する際には、セカンダリDBの内容と更新ログ蓄積部106に蓄積された更新ログの内容から要求された時刻のデータを作成する。
次に、本実施の形態に係るデータベース管理装置100の動作の概要をトランザクション監視部101の動作を中心にして説明する。
ここでは、図2〜図8のフローチャートを参照して説明する。
図2、図3、図4は、データベース管理装置100の全体の動作を示す。
図5は、DB分離処理の詳細を示す。
図6は、DB結合処理の詳細を示す。
図7は、DB更新処理の詳細を示す。
図8は、過去データ取得処理の詳細を示す。
ここでは、図2〜図8のフローチャートを参照して説明する。
図2、図3、図4は、データベース管理装置100の全体の動作を示す。
図5は、DB分離処理の詳細を示す。
図6は、DB結合処理の詳細を示す。
図7は、DB更新処理の詳細を示す。
図8は、過去データ取得処理の詳細を示す。
最初に、通常時のデータベースの更新処理の動作について説明する。
トランザクション監視部101がトランザクションの開始要求(DB更新要求)を受け取ると(図2のS101→S102→S103→図3のS108)、監視対象トランザクションテーブル109に登録されているトランザクションであるかを判定する(S109)。
監視対象トランザクションテーブル109に登録されているトランザクションである場合(S109でYES)には、トランザクション監視部101は、トランザクション完了管理テーブル108の処理カウンタの値を1カウントアップし(S110)、データベース更新処理を行う(S111)。
監視対象トランザクションテーブル109に登録されていないトランザクションである場合(S109でNO)には、トランザクション完了管理テーブル108の処理カウンタは変更せずにそのままデータベース更新処理を行う。
監視対象トランザクションテーブル109に登録されているトランザクションである場合(S109でYES)には、トランザクション監視部101は、トランザクション完了管理テーブル108の処理カウンタの値を1カウントアップし(S110)、データベース更新処理を行う(S111)。
監視対象トランザクションテーブル109に登録されていないトランザクションである場合(S109でNO)には、トランザクション完了管理テーブル108の処理カウンタは変更せずにそのままデータベース更新処理を行う。
データベース更新処理(S111)では、図7に示すように、プライマリDB更新部103が管理するプライマリDB201、202のみのデータを更新し(S401)、このとき更新したデータの更新ログを更新日時と合わせて更新ログ蓄積部106に保管する(S402)。
次にトランザクション監視部101がトランザクションの終了要求(DB更新完了通知)を受け取ると(図2のS101→S102→S103→図3のS108→S112)、監視対象トランザクションテーブル109に登録されているトランザクションの完了であるかを判定する(S113)。
監視対象トランザクションテーブル109に登録されているトランザクションの完了である場合(S113でYES)には、トランザクション完了管理テーブル108の処理カウンタの値を1カウントダウンする(S114)。
その結果、トランザクション完了管理テーブル108の処理カウンタが0、すなわち処理中のトランザクションが存在しない状態のとき(S115でYES)は、データベース間の整合性が取れている状態であると判断し、DB静止点記憶部105に日時をDB静止点として記録する(S116)。
監視対象トランザクションテーブル109に登録されているトランザクションの完了である場合(S113でYES)には、トランザクション完了管理テーブル108の処理カウンタの値を1カウントダウンする(S114)。
その結果、トランザクション完了管理テーブル108の処理カウンタが0、すなわち処理中のトランザクションが存在しない状態のとき(S115でYES)は、データベース間の整合性が取れている状態であると判断し、DB静止点記憶部105に日時をDB静止点として記録する(S116)。
次に過去データを取得するときの動作について説明する。
トランザクション監視部101が過去データ取得開始要求を受け取ると(図2のS101→S102)、最終DB更新時刻テーブル111を参照し、取得したい過去のデータの時刻(指定時刻)が最終DB更新時刻テーブル111に保管されている時刻より新しいかを判定する(S104)。
指定時刻が最終DB更新時刻テーブル111に保管されている時刻より古い場合(S104でNO)は、トランザクション監視部101は、セカンダリDB203、204の現在の状態は、要求された指定時刻の状態を過ぎた後の状態であると判断し、過去データを取得できない旨を回答する。
指定時刻が最終DB更新時刻テーブル111に保管されている時刻より新しい場合(S104でYES)は、トランザクション監視部101は、セカンダリDB203、204の現在の状態が要求された指定時刻の前の状態であり、過去データを取得可能であると判断し、セカンダリDBの分離処理が行われる(S105)。
指定時刻が最終DB更新時刻テーブル111に保管されている時刻より古い場合(S104でNO)は、トランザクション監視部101は、セカンダリDB203、204の現在の状態は、要求された指定時刻の状態を過ぎた後の状態であると判断し、過去データを取得できない旨を回答する。
指定時刻が最終DB更新時刻テーブル111に保管されている時刻より新しい場合(S104でYES)は、トランザクション監視部101は、セカンダリDB203、204の現在の状態が要求された指定時刻の前の状態であり、過去データを取得可能であると判断し、セカンダリDBの分離処理が行われる(S105)。
DB分離処理(S105)では、図5に示すように、DB同期状態管理テーブル110の状態が「同期」であれば(S201)、DB同期管理部102が、DB同期状態管理テーブル110の状態を「分離」に変更する(S202)。
DB同期状態管理テーブル110の状態を「分離」にすることで、セカンダリDB更新部104からのセカンダリDB203、204の更新処理は停止する。
DB分離処理が完了すると、トランザクション監視部101は、過去データが取得可能であることを回答する(図2のS106)。
DB同期状態管理テーブル110の状態を「分離」にすることで、セカンダリDB更新部104からのセカンダリDB203、204の更新処理は停止する。
DB分離処理が完了すると、トランザクション監視部101は、過去データが取得可能であることを回答する(図2のS106)。
次にトランザクション監視部101が過去データ取得要求を受け取ると(図2のS101→S102→S103→図3のS108→S112→図4のS117)、過去データ取得処理が行われる(S108)。
過去データ取得処理(S108)では、図8に示すように、DB同期管理部102が、DB同期状態管理テーブル110の状態を確認する(S501)。
DB同期状態管理テーブル110の状態が「分離」以外の場合(S501でNO)は、セカンダリDB203、204が切り離されておらず、過去データを取得できる状態ではないため、取得不可の回答を返す。
「分離」のときは、更新ログ制御管理部107が、DB同期管理部102を介して、DB静止点記憶部105に保管されている時刻の中から、過去データとして取得したい時刻(指定時刻)に最も近い時刻を検索する(S502)。
検索対象の時刻は指定時刻に最も近い時刻であればよく、指定時刻よりも前の時刻であっても、指定時刻よりも後の時刻であってもよい。
また、このとき抽出する時刻は、最終DB更新時刻テーブル111に保管されている時刻よりも新しい時刻とする。
次に、更新ログ制御管理部107は、更新ログ蓄積部106に保管されている更新ログから、最終DB更新時刻テーブル111の時刻からS502で抽出した時刻までの時間に更新時刻が含まれる更新データを抽出し、抽出した更新データをセカンダリDB203、204のデータに反映させて過去データを作成し(S503)、作成した過去データを返す。
DB同期状態管理テーブル110の状態が「分離」以外の場合(S501でNO)は、セカンダリDB203、204が切り離されておらず、過去データを取得できる状態ではないため、取得不可の回答を返す。
「分離」のときは、更新ログ制御管理部107が、DB同期管理部102を介して、DB静止点記憶部105に保管されている時刻の中から、過去データとして取得したい時刻(指定時刻)に最も近い時刻を検索する(S502)。
検索対象の時刻は指定時刻に最も近い時刻であればよく、指定時刻よりも前の時刻であっても、指定時刻よりも後の時刻であってもよい。
また、このとき抽出する時刻は、最終DB更新時刻テーブル111に保管されている時刻よりも新しい時刻とする。
次に、更新ログ制御管理部107は、更新ログ蓄積部106に保管されている更新ログから、最終DB更新時刻テーブル111の時刻からS502で抽出した時刻までの時間に更新時刻が含まれる更新データを抽出し、抽出した更新データをセカンダリDB203、204のデータに反映させて過去データを作成し(S503)、作成した過去データを返す。
過去データ取得完了後、トランザクション監視部101が過去データ取得終了要求を受け取ると(図2のS101→S102→S103)、DB結合処理が行われる(S107)。
DB結合処理(S107)では、図6に示すように、DB同期管理部102が、DB同期状態管理テーブル110の状態を「同期」に変更する(S301)。
最後に更新ログ制御管理部107によるセカンダリDB203、204の更新処理を、図9を参照して説明する。
更新ログ制御管理部107は、起動後、システムで設定された一定時間何も処理をしないで待機する(S601)。
セカンダリDBの更新処理についての終了要求がなく(S602でNO)一定時間が経過した後に、更新ログ制御管理部107は、DB同期状態管理テーブル110の状態を参照し、状態が「分離」である場合(S603でYES)は、過去データを取得中であると判断し、セカンダリDBの更新は行わずに、再度待機する(S601)。
DB同期状態管理テーブル110の状態が「同期」である場合(S603でNO)は、更新ログ制御管理部107は、更新ログ蓄積部106に蓄積されている更新ログのうち、最も古いログを参照し、その更新ログをセカンダリDBに反映するかを判定する。
更新ログの更新日時がシステムで設定された保管期間を超過している場合は、反映する必要があると判断し(S604)、セカンダリDB203、204を更新ログの内容で更新する(S605)。
更新ログの反映が完了すると、更新ログ制御管理部107は、最終DB更新時刻テーブル111の時刻を更新ログの時刻に書き換える(S606)。
更新ログのセカンダリDBへの反映は、保管期間を超過したすべての更新ログについて行う。
超過したすべての更新ログの反映が完了すると、再度、一定時間待機を行う(S601)。
この処理を繰り返し行うことで、セカンダリDB203、204は、プライマリDB201、202に比べ、常に一定期間遅れた状態を保持することが可能となる。
セカンダリDBの更新処理についての終了要求がなく(S602でNO)一定時間が経過した後に、更新ログ制御管理部107は、DB同期状態管理テーブル110の状態を参照し、状態が「分離」である場合(S603でYES)は、過去データを取得中であると判断し、セカンダリDBの更新は行わずに、再度待機する(S601)。
DB同期状態管理テーブル110の状態が「同期」である場合(S603でNO)は、更新ログ制御管理部107は、更新ログ蓄積部106に蓄積されている更新ログのうち、最も古いログを参照し、その更新ログをセカンダリDBに反映するかを判定する。
更新ログの更新日時がシステムで設定された保管期間を超過している場合は、反映する必要があると判断し(S604)、セカンダリDB203、204を更新ログの内容で更新する(S605)。
更新ログの反映が完了すると、更新ログ制御管理部107は、最終DB更新時刻テーブル111の時刻を更新ログの時刻に書き換える(S606)。
更新ログのセカンダリDBへの反映は、保管期間を超過したすべての更新ログについて行う。
超過したすべての更新ログの反映が完了すると、再度、一定時間待機を行う(S601)。
この処理を繰り返し行うことで、セカンダリDB203、204は、プライマリDB201、202に比べ、常に一定期間遅れた状態を保持することが可能となる。
このように、本実施の形態によれば、すべてのトランザクションが完了したタイミングを記録しながら2重化したデータベースの一方を遅らせながら更新するので、データの整合性がとれている過去の状態のデータを取得することができる。
以上、本実施の形態では、
複数のデータベースを管理するデータベース管理装置であって、
前記複数のデータベースにおけるトランザクションの処理状況を監視し、処理中のトランザクションがなくなったときにデータベースが整合性がとれている状態であると記録するトランザクション監視部と、
前記トランザクション監視部により過去データ取得指示が出力された場合に、一部のデータベースの更新処理を停止させるDB同期管理部とを有するデータベース管理装置を説明した。
複数のデータベースを管理するデータベース管理装置であって、
前記複数のデータベースにおけるトランザクションの処理状況を監視し、処理中のトランザクションがなくなったときにデータベースが整合性がとれている状態であると記録するトランザクション監視部と、
前記トランザクション監視部により過去データ取得指示が出力された場合に、一部のデータベースの更新処理を停止させるDB同期管理部とを有するデータベース管理装置を説明した。
また、本実施の形態では、
前記データベース管理装置は、
監視するトランザクションの種類を登録する監視対象トランザクションテーブルを有することを説明した。
前記データベース管理装置は、
監視するトランザクションの種類を登録する監視対象トランザクションテーブルを有することを説明した。
また、本実施の形態では、
前記データベース管理装置は、
それぞれが同じデータを記憶する複数のデータベースを管理し、
前記データベース管理装置は、更に、
前記複数のデータベースの一部のデータベースの更新処理のログを蓄積する更新ログ蓄積部と、
蓄積した更新ログを一定時間経過してからデータベースの更新を行う更新ログ制御管理部を有することを説明した。
前記データベース管理装置は、
それぞれが同じデータを記憶する複数のデータベースを管理し、
前記データベース管理装置は、更に、
前記複数のデータベースの一部のデータベースの更新処理のログを蓄積する更新ログ蓄積部と、
蓄積した更新ログを一定時間経過してからデータベースの更新を行う更新ログ制御管理部を有することを説明した。
また、本実施の形態では、
前記データベース管理装置は、更に、
過去データを取得する際、DBのデータと前記更新ログ蓄積部に蓄積された更新ログから取得したい時点のデータを生成する更新ログ制御管理部を有することを説明した。
前記データベース管理装置は、更に、
過去データを取得する際、DBのデータと前記更新ログ蓄積部に蓄積された更新ログから取得したい時点のデータを生成する更新ログ制御管理部を有することを説明した。
また、本実施の形態では、
前記データベース管理装置は、更に、
前記トランザクション監視部により監視しているトランザクションがすべて処理完了したことを検知可能なトランザクション完了管理テーブルと、
トランザクションがすべて完了し、データベースのデータの整合性がとれているタイミングを記録可能なDB静止点記憶部を有することを説明した。
前記データベース管理装置は、更に、
前記トランザクション監視部により監視しているトランザクションがすべて処理完了したことを検知可能なトランザクション完了管理テーブルと、
トランザクションがすべて完了し、データベースのデータの整合性がとれているタイミングを記録可能なDB静止点記憶部を有することを説明した。
また、本実施の形態では、
複数のデータベースを管理するデータベース管理装置であって、
データベースにおけるトランザクションの処理状況を監視し、処理中のトランザクションがなくなったときにその時間をDB静止点記憶部に記憶するトランザクション監視部と、
DB静止点記憶部に記録されたDBの整合性がとれている時間、最終DB更新時刻TBLに記録されたセカンダリDBの最終更新時刻から要求された過去の時間で最も近い整合性がとれているデータベースの時刻を判断するDB同期管理部とを有することを説明した。
複数のデータベースを管理するデータベース管理装置であって、
データベースにおけるトランザクションの処理状況を監視し、処理中のトランザクションがなくなったときにその時間をDB静止点記憶部に記憶するトランザクション監視部と、
DB静止点記憶部に記録されたDBの整合性がとれている時間、最終DB更新時刻TBLに記録されたセカンダリDBの最終更新時刻から要求された過去の時間で最も近い整合性がとれているデータベースの時刻を判断するDB同期管理部とを有することを説明した。
最後に、本実施の形態に示したデータベース管理装置100のハードウェア構成例について説明する。
図10は、本実施の形態に示すデータベース管理装置100のハードウェア資源の一例を示す図である。
なお、図10の構成は、あくまでもデータベース管理装置100のハードウェア構成の一例を示すものであり、データベース管理装置100のハードウェア構成は図10に記載の構成に限らず、他の構成であってもよい。
図10は、本実施の形態に示すデータベース管理装置100のハードウェア資源の一例を示す図である。
なお、図10の構成は、あくまでもデータベース管理装置100のハードウェア構成の一例を示すものであり、データベース管理装置100のハードウェア構成は図10に記載の構成に限らず、他の構成であってもよい。
図10において、データベース管理装置100は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
本実施の形態で説明した「DB静止点記憶部105」、「更新ログ蓄積部106」は、RAM914、磁気ディスク装置920等により実現される。
通信ボード915、キーボード902、マウス903、スキャナ装置907、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
本実施の形態で説明した「DB静止点記憶部105」、「更新ログ蓄積部106」は、RAM914、磁気ディスク装置920等により実現される。
通信ボード915、キーボード902、マウス903、スキャナ装置907、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
通信ボード915は、ネットワークに接続されている。
例えば、通信ボード915は、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されている。
例えば、通信ボード915は、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されている。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
データベース管理装置100の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
データベース管理装置100の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
上記プログラム群923には、本実施の形態の説明において「〜部」(「DB静止点記憶部105」、「更新ログ蓄積部106」以外、以下同様)として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、本実施の形態の説明において、「〜の判断」、「〜の検索」、「〜の抽出」、「〜の生成」、「〜の作成」、「〜の比較」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の入力」、「〜の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、本実施の形態で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。
また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、本実施の形態で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。
また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、本実施の形態の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、本実施の形態で説明したフローチャートに示すステップ、手順、処理により、本発明に係る「データ管理方法」を実現することができる。
また、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。
プログラムはCPU911により読み出され、CPU911により実行される。
すなわち、プログラムは、本実施の形態の「〜部」としてコンピュータを機能させるものである。あるいは、本実施の形態の「〜部」の手順や方法をコンピュータに実行させるものである。
すなわち、本実施の形態で説明したフローチャートに示すステップ、手順、処理により、本発明に係る「データ管理方法」を実現することができる。
また、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。
プログラムはCPU911により読み出され、CPU911により実行される。
すなわち、プログラムは、本実施の形態の「〜部」としてコンピュータを機能させるものである。あるいは、本実施の形態の「〜部」の手順や方法をコンピュータに実行させるものである。
このように、本実施の形態に示すデータベース管理装置100は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータである。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
100 データベース管理装置、101 トランザクション監視部、102 DB同期管理部、103 プライマリDB更新部、104 セカンダリDB更新部、105 DB静止点記憶部、106 更新ログ蓄積部、107 更新ログ制御管理部、108 トランザクション完了管理テーブル、109 監視対象トランザクションテーブル、110 DB同期状態管理テーブル、111 最終DB更新時刻テーブル、201 システムA用DB(プライマリ)、202 システムB用DB(プライマリ)、203 システムA用DB(セカンダリ)、204 システムB用DB(セカンダリ)。
Claims (8)
- 更新される第1のデータと、前記第1のデータの更新処理が完了してから所定時間が経過した後に前記第1のデータと同じ更新処理が行われる第2のデータとを管理するデータ管理装置であって、
前記第1のデータの更新処理が完了する度に、更新処理が完了した時刻を第1データ更新完了時刻として記憶する第1データ更新完了時刻記憶部と、
前記第1のデータの更新に用いられた更新データと、更新データによる前記第1のデータの更新時刻とを関連付けて記憶する更新データ記憶部と、
過去の時刻が指定時刻として指定され、指定時刻での第1のデータを生成するよう要求するデータ生成要求を入力する入力部と、
前記入力部により前記データ生成要求が入力された場合に、前記データ生成要求の前記指定時刻に基づき、前記第1データ更新完了時刻記憶部に記憶されている第1データ更新完了時刻の中から特定の第1データ更新完了時刻を選択第1データ更新完了時刻として選択し、更新時刻が選択第1データ更新完了時刻までの更新データと、前記第2のデータとを用いて、選択第1データ更新完了時刻での第1のデータを生成するデータ生成部とを有することを特徴とするデータ管理装置。 - 前記データ生成部は、
前記指定時刻に最も近い第1データ更新完了時刻を選択することを特徴とする請求項1に記載のデータ管理装置。 - 前記データ管理装置は、
前記更新データ記憶部に記憶されている更新データを用いて前記第1のデータと同じ更新処理が行われる第2のデータを管理し、
前記データ生成部は、
前記第2のデータの更新に最後に用いられた更新データの更新時刻よりも後の第1データ更新完了時刻であって、前記指定時刻に最も近い第1データ更新完了時刻を選択することを特徴とする請求項2に記載のデータ管理装置。 - 前記データ生成部は、
前記第2のデータの更新に最後に用いられた更新データの更新時刻から選択第1データ更新完了時刻までの時間に更新時刻が含まれる更新データと、直近の更新の後の第2のデータとを用いて、選択第1データ更新完了時刻での第1のデータを生成することを特徴とする請求項1〜3のいずれかに記載のデータ管理装置。 - 前記データ管理装置は、更に、
前記第1のデータに対する更新状況を監視し、前記第1のデータに対する更新処理が完了した時刻を第1データ更新完了時刻として前記第1データ更新完了時刻記憶部に書き込む更新状況監視部を有することを特徴とする請求項1〜4のいずれかに記載のデータ管理装置。 - 前記データ管理装置は、更に、
前記入力部により前記データ生成要求が入力された際に前記第2のデータの更新を禁止し、前記データ生成部による第1のデータの生成が完了した際に前記第2のデータの更新を許可する第2データ状態管理部を有することを特徴とする請求項1〜5のいずれかに記載のデータ管理装置。 - 更新される第1のデータと、前記第1のデータの更新処理が完了してから所定時間が経過した後に前記第1のデータと同じ更新処理が行われる第2のデータとをコンピュータが管理するデータ管理方法であって、
前記第1のデータの更新処理が完了する度に、前記コンピュータが、更新処理が完了した時刻を第1データ更新完了時刻として記憶する第1データ更新完了時刻記憶ステップと、
前記コンピュータが、前記第1のデータの更新に用いられた更新データと、更新データによる前記第1のデータの更新時刻とを関連付けて記憶する更新データ記憶ステップと、
過去の時刻が指定時刻として指定され、指定時刻での第1のデータを生成するよう要求するデータ生成要求を、前記コンピュータが入力する入力ステップと、
前記入力ステップにより前記データ生成要求が入力された場合に、前記コンピュータが、前記データ生成要求の前記指定時刻に基づき、前記第1データ更新完了時刻記憶ステップにより記憶された第1データ更新完了時刻の中から特定の第1データ更新完了時刻を選択第1データ更新完了時刻として選択し、更新時刻が選択第1データ更新完了時刻までの更新データと、前記第2のデータとを用いて、選択第1データ更新完了時刻での第1のデータを生成するデータ生成ステップとを有することを特徴とするデータ管理方法。 - 更新される第1のデータと、前記第1のデータの更新処理が完了してから所定時間が経過した後に前記第1のデータと同じ更新処理が行われる第2のデータとを管理するコンピュータに、
前記第1のデータの更新処理が完了する度に、更新処理が完了した時刻を第1データ更新完了時刻として記憶する第1データ更新完了時刻記憶ステップと、
前記第1のデータの更新に用いられた更新データと、更新データによる前記第1のデータの更新時刻とを関連付けて記憶する更新データ記憶ステップと、
過去の時刻が指定時刻として指定され、指定時刻での第1のデータを生成するよう要求するデータ生成要求を入力する入力ステップと、
前記入力ステップにより前記データ生成要求が入力された場合に、前記データ生成要求の前記指定時刻に基づき、前記第1データ更新完了時刻記憶ステップにより記憶された第1データ更新完了時刻の中から特定の第1データ更新完了時刻を選択第1データ更新完了時刻として選択し、更新時刻が選択第1データ更新完了時刻までの更新データと、前記第2のデータとを用いて、選択第1データ更新完了時刻での第1のデータを生成するデータ生成ステップとを実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011104124A JP2012234462A (ja) | 2011-05-09 | 2011-05-09 | データ管理装置及びデータ管理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011104124A JP2012234462A (ja) | 2011-05-09 | 2011-05-09 | データ管理装置及びデータ管理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012234462A true JP2012234462A (ja) | 2012-11-29 |
Family
ID=47434701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011104124A Withdrawn JP2012234462A (ja) | 2011-05-09 | 2011-05-09 | データ管理装置及びデータ管理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012234462A (ja) |
-
2011
- 2011-05-09 JP JP2011104124A patent/JP2012234462A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11768739B2 (en) | Manifest-based snapshots in distributed computing environments | |
US20230308508A1 (en) | Fault-tolerant and highly available configuration of distributed services | |
US10949401B2 (en) | Data replication in site recovery environment | |
US9141685B2 (en) | Front end and backend replicated storage | |
KR102047216B1 (ko) | 서비스의 2차 위치에서의 작업의 재생 기법 | |
US20150347250A1 (en) | Database management system for providing partial re-synchronization and partial re-synchronization method of using the same | |
US20130198134A1 (en) | Online verification of a standby database in log shipping physical replication environments | |
JP6447258B2 (ja) | 管理プログラム、管理方法、および管理装置 | |
JP5686034B2 (ja) | クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム | |
JP2014067369A (ja) | 情報処理装置,プログラム,情報処理方法 | |
US10936224B1 (en) | Cluster controller selection for shared storage clusters | |
US9201740B2 (en) | Computer system, cluster management method, and management computer | |
US9998544B2 (en) | Synchronization testing of active clustered servers | |
JP2006004031A (ja) | データ処理方法およびシステム並びにストレージ装置方法およびその処理プログラム | |
US20170075776A1 (en) | Methods for preserving state across a failure and devices thereof | |
US9766949B2 (en) | System and method for locking exclusive access to a divided resource | |
US20120197846A1 (en) | Dynamic recovery of server applications | |
JP2012155634A (ja) | 情報処理プログラム、情報処理装置および情報処理方法 | |
JP2012234462A (ja) | データ管理装置及びデータ管理方法及びプログラム | |
JP5967628B2 (ja) | クエリを処理する装置及び方法 | |
JP2012068693A (ja) | データベース管理装置及びデータベース管理方法及びプログラム | |
JP5335150B2 (ja) | 計算機装置及びプログラム | |
JP2011043865A (ja) | データ処理装置及びデータ処理方法及びプログラム | |
US20170255499A1 (en) | Hybrid quorum system with persistent and non-persistent | |
JP5321416B2 (ja) | 情報処理システム及び情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140805 |