JP5044475B2 - データベース自動修復装置及びその方法並びにデータベース自動修復プログラム - Google Patents

データベース自動修復装置及びその方法並びにデータベース自動修復プログラム Download PDF

Info

Publication number
JP5044475B2
JP5044475B2 JP2008102499A JP2008102499A JP5044475B2 JP 5044475 B2 JP5044475 B2 JP 5044475B2 JP 2008102499 A JP2008102499 A JP 2008102499A JP 2008102499 A JP2008102499 A JP 2008102499A JP 5044475 B2 JP5044475 B2 JP 5044475B2
Authority
JP
Japan
Prior art keywords
record
database
function unit
update
repair
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.)
Expired - Fee Related
Application number
JP2008102499A
Other languages
English (en)
Other versions
JP2009252148A (ja
Inventor
啓敏 須賀
正樹 久田
史和 小西
清次 冨田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2008102499A priority Critical patent/JP5044475B2/ja
Publication of JP2009252148A publication Critical patent/JP2009252148A/ja
Application granted granted Critical
Publication of JP5044475B2 publication Critical patent/JP5044475B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、特に、データベース破壊が発生している状況において、データベースシステムが自動的にデータベースの修復を行い、サービスの停止を必要とせずにデータベースを復旧させることを可能とする、データベース自動修復装置及びその方法並びにデータベース自動修復プログラムに関するものである。
データベースに格納されるテーブル(表)のレコード(行)を高速に検索する方法として、事前にインデックスを作成しておき、このインデックスを使用することで高速な検索を可能とする方法がある。
このようなインデックス方式で、一般的なデータベースシステムで使用されるものとしては、木構造のインデックスのB+−tree等がある(例えば、非特許考文献1参照。)。
このような木構造のインデックスリーフノード(末端のノード)に、例えば、図5に示す、キー値とテーブル内のレコードへのポインタPを格納しておき、レコードの検索を行う際には、キー値を使用して木構造のインデックスをたどり、リーフノードのキー値とポインタPの組みを特定し、そのポインタPが示す場所を参照することで該当レコードを検索することができる。
図5に示すテーブル中にn個のレコードが格納されている場合に、図6(a)に示すように、一件ずつキー値で順次検索するとO(n)のオーダの検索コストがかかるのに対し、図6(b)に示す木構造のインデックスを使用して検索すると、O(log n)のオーダに検索コストが低減され、高速な検索が可能となる。
DOUGALAS COMERD,"The Ubiquitous B−Tree",ACM Computing Surveys,Vol 11,No2,121−138,June 1979.
データベースの更新(レコードの挿入、削除、更新)が発生する際には、木構造のインデックスも更新されることになる。その更新の際にハードウェアの不具合、またはソフトウェアの不具合があった場合には、例えば、図7に示すようにインデックスには、キー値とポインタPは存在(図中○印)するが、テーブルにはレコードが存在しないとき、木構造のインデックスリーフノードに格納されたポインタPが、テーブル内の正しいレコードのアドレスを指していない状態(図中×印)が発生する。これをデータベース破壊と呼ぶ。このようなデータベース破壊の状態では、正常なデータベースの参照・更新処理ができなくなるため、サービスの継続が不可能になってしまう。
データベース破壊を復旧する方法として、定期的に取得しておいたバックアップから復旧させる方法が考えられる。この復旧方法では、バックアップされたデータベースからの再起動が必要となり、一旦データベースのサービスを停止する必要がある。しかし、電話サービス等の24時間365日無停止でサービスを継続することが必要な業務では、サービスを停止することは許容できないため、バックアップからの復旧は許容できない。
一方、サービス継続中(オンライン)にデータベースを修復する方法として、データベース破壊が発生しているポインタと同じリーフノードに格納されているキー値と同一のキー値を持つレコードを、テーブル内の全レコードを順次検索することで探し、同一のキー値が見つかった場合には、インデックスのポインタを修正することでデータベース破壊を復旧する方法が考えられる。
しかし、レコードのキー値がテーブル内で一意でなく、異なるレコードでキー値が同一となるレコードがテーブル内に格納されている場合には、どのレコードのアドレスをポインタに設定すべきか決定できないため、データベースを修復することができない。
よって、データベースのサービスを停止することなく自動的に、かつ異なるレコードが同一のキー値データベース破壊を修復する方法が必要となる。
本発明の目的は、上記のような問題点に鑑みてなされたもので、データベース破壊が発生しても、そのデータベースを自動修復することによって、データベースのサービスを停止することなく、サービスの継続を可能としたデータベース自動修復装置及びその方法並びにデータベース自動修復プログラム提供することにある。
上記課題を達成するために、請求項1に係る発明は、データベースユーザからのデータベースの操作を受け付けるデータベース操作入出力装置と、データベースにレコードを挿入するレコード挿入機能部と、データベースに格納されたレコードを参照・更新するレコード参照・更新機能部と、レコード参照・更新機能部からのデータベース破壊修復依頼によりデータベース破壊を修復するデータベース破壊修復機能部と、データベースの実体である複数のインデックス及び複数のテーブルを管理するデータベース管理部とを備え、
前記データベース操作入出力装置は、前記ユーザからのデータベースへのレコード挿入要求及びレコード参照・更新要求操作を受け付けて、それぞれ前記レコード挿入機能部及びレコード参照・更新機能部に、レコードの挿入指示及びレコード参照・更新指示を出す手段を有し、
前記レコード挿入機能部は、前記データベース管理部のテーブルにレコードを挿入し、そのレコード挿入の際に、レコードにレコードIDを付与して前記テーブルに格納するとともに、レコードへのポインタを保持するリーフノードを前記データベース管理部のインデックスに挿入する手段を有し、
前記レコード参照・更新機能部は、前記データベース管理部のテーブルに格納されたレコードを参照・更新し、前記レコード参照・更新の際、リーフノードからレコードへのポインタを取得し、そのポインタの指すアドレスに存在するレコードのレコードIDと、リーフノードのレコードIDが一致の場合には、レコード参照・更新処理を行い、不一致の場合には、データベース破壊と判断して、前記データベース破壊修復機能部にデータベース破壊修復依頼を出す手段を有し、
前記データベース破壊修復機能部は、前記テーブル内のレコードのレコードIDの列を順次走査して、リーフノードのレコードIDと同一のレコードIDを検索し、同一のレコードIDが検索された場合は、リーフノードのレコードへのポインタを、検索された同一のレコードIDを含むレコードのアドレスで上書きしてデータベース破壊を修復する手段を有し、かつ、同一のレコードIDが検索されなかった場合、当該リーフノードを削除してデータベース破壊を修復する手段を有することを特徴とする。
また、請求項2に係る発明は、請求項1において、前記データベース操作入出力装置は、前記レコード挿入機能部及びレコード参照・更新機能部に、レコードの挿入指示及びレコード参照・更新指示を出した際のそれぞれの処理結果を受け取り、前記ユーザに通知する手段を有し、
前記レコード挿入機能部は、前記レコードにレコードIDを付与して前記テーブルに格納するとともに、レコードへのポインタを保持するリーフノードを前記データベース管理部のインデックスに挿入した際のそれぞれの処理結果を前記データベース入出力操作装置に通知する手段を有し、
前記レコード参照・更新機能部は、レコードIDが一致の場合のレコード参照・更新処理と、前記IDが不一致の場合のデータベース破壊修復機能部よりの修復依頼を出した際のそれぞれの処理結果を前記データベース操作入出力装置に通知する手段を有する、ことを特徴とする。
また、請求項3に係る発明は、データベースユーザからのデータベースの操作を受け付けるデータベース操作入出力装置と、データベースにレコードを挿入するレコード挿入機能部と、データベースに格納されたレコードを参照・更新するレコード参照・更新機能部と、レコード参照・更新機能部からのデータベース破壊修復依頼によりデータベース破壊を修復するデータベース破壊修復機能部と、データベースの実体である複数のインデックス及び複数のテーブルを管理するデータベース管理部とを備えたデータベース自動修復方法であって、
前記データベース操作入出力装置は、前記ユーザからのデータベースへのレコード挿入要求及びレコード参照・更新要求操作を受け付けるステップと、前記レコード挿入機能部及びレコード参照・更新機能部に、レコードの挿入指示及びレコード参照・更新指示を出すステップとを有し、
前記レコード挿入機能部は、前記データベース管理部のテーブルにレコードを挿入するステップと、前記レコード挿入の際に、前記レコードにレコードIDを付与して前記テーブルに格納するステップと、レコードへのポインタを保持するリーフノードを前記データベース管理部のインデックスに挿入するステップとを有し、
前記レコード参照・更新機能部は、前記データベース管理部のテーブルに格納されたレコードを参照・更新するステップと、前記レコード参照・更新の際、前記リーフノードからレコードへのポインタを取得し、そのポインタの指すアドレスに存在するレコードのレコードIDと、リーフノードのレコードIDが一致の場合には、レコード参照・更新処理を行うステップと、前記それぞれのIDが不一致の場合には、データベース破壊と判断して、前記データベース破壊修復機能部にデータベース破壊修復依頼を出すステップとを有し、
前記データベース破壊修復機能部は、前記テーブル内のレコードのレコードIDの列を順次走査して、リーフノードのレコードIDと同一のレコードIDを検索するステップと、同一のレコードIDが検索された場合は、リーフノードのレコードへのポインタを、検索された同一のレコードIDを含むレコードのアドレスで上書きしてデータベース破壊を修復するステップとを有し、かつ、同一のレコードIDが検索されなかった場合、当該リーフノードを削除してデータベース破壊を修復するステップとを有する、ことを特徴とする。
また、請求項4に係る発明は、請求項3において、前記データベース操作入出力装置は、前記レコード挿入機能部及びレコード参照・更新機能部に、レコードの挿入指示及びレコード参照・更新指示を出すステップを実施した際のそれぞれの処理結果を受け取り、前記ユーザに通知するステップを有し、
前記レコード挿入機能部は、前記レコードにレコードIDを付与して前記テーブルに格納するステップと、レコードへのポインタを保持するリーフノードを前記データベース管理部のインデックスに挿入するステップの実施によるそれぞれの処理結果を前記データベース操作入出力装置に通知するステップを有し、
前記レコード参照・更新機能部は、レコードIDが一致の場合のレコード参照・更新処理するステップと、前記IDが不一致の場合のデータベース破壊修復機能部よりの修復依頼を出すステップの実施によるそれぞれの処理結果を前記データベース操作入出力装置に通知するステップとを有する、ことを特徴とする。
また請求項5に係る発明は、請求項3から4のいずれか1項に記載のデータベース自動修復方法の各ステップをコンピュータに実行させることを特徴とするプログラムである。
本発明によれば、データベース破壊が発生しても、データベースのサービスを停止することなく、データベースを自動修復することによって、データベースのサービスの継続が可能となり、システムの可用性が向上する。また、レコードIDを使用してデータベースを修復することにより、キー値がテーブル内で一意でなく、同一のキー値のレコードが複数存在する場合でも、データベースの自動修復が可能となる。
以下本発明の実施の形態を図面に基づいて説明する。図1は本発明のデータベース自動修復装置を示す構成図である。データベース自動修復装置は、データベースユーザからのデータベースの操作を受け付けるデータベース操作入出力装置001と、データベースにレコードを挿入するレコード挿入機能部002と、データベースに格納されたレコードを参照・更新するレコード参照・更新機能部003と、レコード参照・更新機能部003からのデータベース破壊修復依頼によりデータベース破壊を修復するデータベース破壊修復機能部004と、データベースの実体である複数のインデックス及び複数のテーブルを管理するデータベース管理部005とからなる。
データベース操作入出力装置001では、データベースユーザからのレコード挿入要求、レコード参照・更新要求を受け付けて、それぞれレコード挿入機能部002、レコード参照・更新機能部003に、レコードの挿入指示、レコード参照・更新指示を出す。その後、データベース操作入出力装置001は、レコード挿入機能部002、レコード参照・更新機能部003からそれぞれの処理結果を受け取り、データベースのユーザに処理結果を通知する。
レコード挿入機能部002では、データベース管理部005のテーブルにレコードを挿入し、その処理結果をデータベース操作入出力装置001に通知する。レコードの挿入の際には、図2に示すように、レコードにレコードIDを付与してテーブル内に格納し、さらに、この挿入したレコードのレコードID、キー値、レコードへのポインタPを保持するリーフノードを木構造インデックスに挿入する。このとき、レコードIDはテーブル内において、レコードが一意に識別可能となる数値とする。
次に、図1に戻って、レコード参照・更新機能部003では、データベース管理部005のテーブルに格納されたレコードを参照・更新し、その処理結果をデータベース操作入出力装置001に通知する。レコードの参照・更新する際には、ユーザが指定したキー値:Kで、木構造インデックスをルートノードからリーフノードへと走査して、このキー値:Kを含むリーフノード:Lを取得する。そのリーフノード:Lからレコードへのポインタ:Pを取得し、そのポインタ:Pの指すアドレスに存在するレコードのレコードIDと、リーフノード:LのレコードIDが一致している場合には、正常にレコード参照・更新処理を行い、その処理結果をデータベース操作入出力装置001に通知する。
一方、上記処理で、ポインタ:Pの指すアドレスに存在するレコードのレコードIDと、リーフノード:LのレコードIDが一致していない場合には、データベース(DB)破壊が発生していると判断し、DB破壊修復機能部004にDB破壊修復依頼を出す。その後、DB破壊修復機能部004より処理結果をレコード参照・更新機能部003が受け取り、その処理結果をデータベース操作入出力装置001に通知する。
DB破壊修復機能部004では、テーブル内のレコードの、レコードIDの列を順次走査して、リーフノード:LのレコードIDと同一のレコードIDを検索する。
この順次走査で同一のレコードIDが検索された場合は、リーフノード:Lのレコードへのポインタ:Pを、この検索された同一のレコードIDを含むレコードのアドレスで上書きしてデータベース破壊を修復する。そして正常にレコード参照・更新処理を行い、レコード参照・更新機能部003に処理結果を通知する。なお、この処理結果通知の際には、データベースの修復を行った旨も通知して、過去にデータベースが破壊状態にあったことをユーザに認識させる。
同一のレコードIDが検索されなかった場合は、既に削除済みのレコードであったと判断し、対象レコードは存在しなかったとして、レコード参照・更新機能部003に処理結果を通知する。ただし、この処理結果通知の際には、データベースの修復を行った旨も通知して、過去にデータベースが破壊状態にあったことをユーザに認識させる。
以上の手段により、データベースを停止することなく、データベース破壊の修復(復旧)を行う。
次に上記実施の形態における処理の流れを図3、図4に示すフローチャートにより述べる。
(1)データベースのテーブルへのレコードの挿入の処理
データベースのユーザよりテーブルへレコード挿入要求をデータベース操作入出力装置001が受け付ける。要求を受け付ける為のユーザとデータベース操作入出力装置001間のインターフェースとしては、SQL(SQL92:IS9075−1992、JIS X3005−1995など)を使用することができる。(ステップ1001)
ステップ1001でデータベース操作入出力装置001が受け取ったレコードの挿入をレコード挿入機能部002に指示する。(ステップ1002)
ステップ1002で挿入を指示されたレコードに、レコード挿入機能部002にて、格納対象テーブル内で一意となる番号をレコードIDとして付与する。(ステップ1003)
ステップ1003でレコードIDが付与されたレコードを、データベース管理部005の格納対象テーブルに格納する。(ステップ1004)
ステップ1004で格納されたレコード内のキー値を使用して、木構造インデックス内でリーフノードを格納する位置を決定する。位置の決定方法としては、前述した非特許文献1に記載のB+−Tree等のアルゴリズムを使用することができる。(ステップ1005)
ステップ1005で決定された位置にリーフノードを挿入する。(ステップ1006)
ステップ1006で設置されたリーフノードに、ステップ1003で付与したレコードIDと同じ番号のレコードIDを格納する。(ステップ1007)
ステップ1006で設置されたリーフノードに、ステップ1005で位置の決定に使用したキー値を格納する。(ステップ1008)
ステップ1006で設置されたリーフノードに、ステップ1004で格納したレコードのアドレスをポインタとして格納する。(ステップ1009)
データベース操作入出力装置001へステップ1002で受け付けた要求の処理が完了したことを通知する。(ステップ1010)
データベース操作入出力装置001で、ユーザに対しステップ1001で受け付けた要求の処理が完了したことを通知する。(ステップ1011)。
(2)レコードの更新・参照処理時にデータベース破壊が発見されなかった場合の処理
データベースのユーザよりレコードの更新・参照処理の要求をデータベース操作入出力装置001が受け付ける。要求を受け付ける為のユーザとデータベース操作入出力装置001間のインターフェースとしては、SQL(SQL92:IS9075−1992、JIS X3005−1995など)を使用することができる。(ステップ2001)
ステップ2001でデータベース操作入出力装置001が受け付けたレコードの参照・更新をレコード参照・更新機能部002に指示する。(ステップ2002)
レコード参照・更新機能部002にて、ステップ2002で受け付けた指示の中から、更新・参照処理要求の対象となるレコードのキー値を抽出し、そのキー値でインデックスを走査し、そのキー値が格納されているリーフノードを取得する。インデックスの走査方法としては、前述の非特許文献1に記載のB+−Tree等のアルゴリズムを使用することができる。(ステップ2003)
ステップ2003で取得したリーフノードに格納されているレコードIDを取得する。(ステップ2004)
ステップ2003で取得したリーフノードに格納されているレコードへのポインタを取得する。(ステップ2005)
ステップ2005で取得したレコードへのポインタをたどって、ポインタが指し示すレコードを取得する。(ステップ2006)
ステップ2006で取得したレコードからレコードIDを取得する。(ステップ2007)
ステップ2004で取得したレコードIDと、ステップ2007で取得したレコードIDが一致していることを確認する。(ステップ2008)
ステップ2006で取得したレコードに対して、データベース操作入出力装置001から指示された更新・参照処理を行う。(ステップ2009)
ステップ2009で実施した処理結果をデータベース操作入出力装置001に通知する。(ステップ2010)
データベース操作入出力装置001にて、ユーザに対しステップ2010で受け取った処理結果を通知する。(ステップ2011)。
(3)レコードの更新・参照処理時にデータベース破壊を検出し、テーブル内で一致するレコードIDが検索できた場合の処理
ステップ2001からステップ2007までは前記(2)項と同じ動作となる。
ステップ2004で取得したレコードIDと、ステップ2007で取得したレコードIDが一致していないことを確認する。(ステップ2008)
ステップ2004で取得したレコードIDと同じレコードIDを持つ(一致する)レコードをテーブル内から検索する。(ステップ2012)
ステップ2012にて同じレコードIDを持つ(一致する)レコードが検索できたことを確認する。(ステップ2013)
ステップ2003で取得したリーフノードのポインタを、ステップ2012で検索されたレコードのアドレスで上書きして、このレコードを指すように修正する。(ステップ2014)
ステップ2012で検索したレコードに対して、データベース操作入出力装置001からレコード参照・更新機能部003に指示された更新・参照処理を行う。(ステップ2015)
ステップ2014で実施したデータベース修復処理の内容と、ステップ2015で実施した処理結果をレコード参照・更新機能部003に通知する。(ステップ2016)
レコード参照・更新機能部003にて、ステップ2016で受け取った処理結果をデータベース操作入出力装置001に通知する。(ステップ2017)
データベース操作入出力装置001にて、ユーザに対しステップ2017で受け取った処理結果を通知する。(ステップ2018)。
(4)レコードの更新・参照処理時にデータベース破壊を検出し、テーブル内で一致するレコードIDが検索できなかった場合の処理
ステップ2001からステップ2012までは、(3)項と同じ動作となる。
ステップ2010にて同じレコードIDを持つレコードがテーブル内に存在しなかったことを確認する。(ステップ2013)
ステップ2003で取得したリーフノードを削除する。リーフノードの削除方法としては、前述した非特許文献1に記載のB+−Tree等のアルゴリズムを使用することができる。(ステップ2019)
ステップ2019で実施したデータベース修復処理の内容と、更新・参照処理要求の対象レコードはテーブル内に存在していないこと(レコード削除済み)をレコード参照・更新機能部003に通知する。(ステップ2020)
レコード参照・更新機能部003にて、ステップ2020で受け取った処理結果をデータベース操作入出力装置001に通知する。(ステップ2021)
データベース操作入出力装置001にて、ユーザに対しステップ2021で受け取った処理結果を通知する。(ステップ2022)。
図1に示した構成図における各部の一部若しくは全部の機能部をコンピュータプログラムで構成し、そのプログラムを、コンピュータを用いて実行して、本発明を実現することができること、あるいは、図3、図4に示したステップをコンピュータのプログラムで構成し、そのプログラムをコンピュータに実行させることができることは言うまでもなく、コンピュータでその機能部を実現するためのプログラム、あるいは、コンピュータにその処理ステップを実行させるためのプログラムを、そのコンピュータが読み取り可能な記録媒体、例えば、フレキシブルディスクや、MO、ROM、メモリカード、CD、DVD、リムーバブルディスクなどに記録して、保存したり、配布したりすることが可能である。
また、上記のプログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。このように、記録媒体やネットワークにより提供されたプログラムをコンピュータにインストールすることで、本発明が実施可能となる。
本発明のデータベース自動修復装置を示す構成図。 データベース管理部におけるテーブルと木構造インデックスとの関係を示す説明図。 データベース自動修復装置における処理の流れを述べるフローチャート。 データベース自動修復装置における処理の流れを述べるフローチャート。 テーブルと木構造インデックスとの関係を示す説明図。 高速検索が可能であるかを説明する図。 データベース破壊を説明する図。
符号の説明
001…データベース操作入出力装置
002…レコード挿入機能部
003…レコード参照・更新機能部
004…データベース(DB)破壊修復機能部
005…データベース管理部

Claims (5)

  1. データベースユーザからのデータベースの操作を受け付けるデータベース操作入出力装置と、データベースにレコードを挿入するレコード挿入機能部と、データベースに格納されたレコードを参照・更新するレコード参照・更新機能部と、レコード参照・更新機能部からのデータベース破壊修復依頼によりデータベース破壊を修復するデータベース破壊修復機能部と、データベースの実体である複数のインデックス及び複数のテーブルを管理するデータベース管理部とを備え、
    前記データベース操作入出力装置は、前記ユーザからのデータベースへのレコード挿入要求及びレコード参照・更新要求操作を受け付けて、それぞれ前記レコード挿入機能部及びレコード参照・更新機能部に、レコードの挿入指示及びレコード参照・更新指示を出す手段を有し、
    前記レコード挿入機能部は、前記データベース管理部のテーブルにレコードを挿入し、そのレコード挿入の際に、レコードにレコードIDを付与して前記テーブルに格納するとともに、レコードへのポインタを保持するリーフノードを前記データベース管理部のインデックスに挿入する手段を有し、
    前記レコード参照・更新機能部は、前記データベース管理部のテーブルに格納されたレコードを参照・更新し、前記レコード参照・更新の際、リーフノードからレコードへのポインタを取得し、そのポインタの指すアドレスに存在するレコードのレコードIDと、リーフノードのレコードIDが一致の場合には、レコード参照・更新処理を行い、不一致の場合には、データベース破壊と判断して、前記データベース破壊修復機能部にデータベース破壊修復依頼を出す手段を有し、
    前記データベース破壊修復機能部は、前記テーブル内のレコードのレコードIDの列を順次走査して、リーフノードのレコードIDと同一のレコードIDを検索し、同一のレコードIDが検索された場合、リーフノードのレコードへのポインタを、検索された同一のレコードIDを含むレコードのアドレスで上書きしてデータベース破壊を修復する手段を有し、かつ、同一のレコードIDが検索されなかった場合、当該リーフノードを削除してデータベース破壊を修復する手段を有する、
    ことを特徴とするデータベース自動修復装置。
  2. 請求項1記載のデータベース自動修復装置において、
    前記データベース操作入出力装置は、前記レコード挿入機能部及びレコード参照・更新機能部に、レコードの挿入指示及びレコード参照・更新指示を出した際のそれぞれの処理結果を受け取り、前記ユーザに通知する手段を有し、
    前記レコード挿入機能部は、前記レコードにレコードIDを付与して前記テーブルに格納するとともに、レコードへのポインタを保持するリーフノードを前記データベース管理部のインデックスに挿入した際のそれぞれの処理結果をデータベース操作入出力装置に通知する手段を有し、
    前記レコード参照・更新機能部は、レコードIDが一致の場合のレコード参照・更新処理と、前記IDが不一致の場合のデータベース破壊修復機能部よりの修復依頼を出した際のそれぞれの処理結果を前記データベース操作入出力装置に通知する手段を有する、
    ことを特徴とするデータベース自動修復装置。
  3. データベースユーザからのデータベースの操作を受け付けるデータベース操作入出力装置と、データベースにレコードを挿入するレコード挿入機能部と、データベースに格納されたレコードを参照・更新するレコード参照・更新機能部と、レコード参照・更新機能部からのデータベース破壊修復依頼によりデータベース破壊を修復するデータベース破壊修復機能部と、データベースの実体である複数のインデックス及び複数のテーブルを管理するデータベース管理部とを備えたデータベース自動修復方法であって、
    前記データベース操作入出力装置は、前記ユーザからのデータベースへのレコード挿入要求及びレコード参照・更新要求操作を受け付けるステップと、前記レコード挿入機能部及びレコード参照・更新機能部に、レコードの挿入指示及びレコード参照・更新指示を出すステップとを有し、
    前記レコード挿入機能部は、前記データベース管理部のテーブルにレコードを挿入するステップと、前記レコード挿入の際に、前記レコードにレコードIDを付与して前記テーブルに格納するステップと、レコードへのポインタを保持するリーフノードを前記データベース管理部のインデックスに挿入するステップとを有し、
    前記レコード参照・更新機能部は、前記データベース管理部のテーブルに格納されたレコードを参照・更新するステップと、前記レコード参照・更新の際、前記リーフノードからレコードへのポインタを取得し、そのポインタの指すアドレスに存在するレコードのレコードIDと、リーフノードのレコードIDが一致の場合には、レコード参照・更新処理を行うステップと、前記それぞれのIDが不一致の場合には、データベース破壊と判断して、前記データベース破壊修復機能部にデータベース破壊修復依頼を出すステップとを有し、
    前記データベース破壊修復機能部は、前記テーブル内のレコードのレコードIDの列を順次走査して、リーフノードのレコードIDと同一のレコードIDを検索するステップと、同一のレコードIDが検索された場合、リーフノードのレコードへのポインタを、検索された同一のレコードIDを含むレコードのアドレスで上書きしてデータベース破壊を修復するステップとを有し、かつ、同一のレコードIDが検索されなかった場合、当該リーフノードを削除してデータベース破壊を修復するステップとを有する、
    ことを特徴とするデータベース自動修復方法。
  4. 請求項3記載のデータベース自動修復方法において、
    前記データベース操作入出力装置は、前記レコード挿入機能部及びレコード参照・更新機能部に、レコードの挿入指示及びレコード参照・更新指示を出すステップを実施した際のそれぞれの処理結果を受け取り、前記ユーザに通知するステップを有し、
    前記レコード挿入機能部は、前記レコードにレコードIDを付与して前記テーブルに格納するステップと、レコードへのポインタを保持するリーフノードを前記データベース管理部のインデックスに挿入するステップの実施によるそれぞれの処理結果を前記データベース操作入出力装置に通知するステップを有し、
    前記レコード参照・更新機能部は、レコードIDが一致の場合のレコード参照・更新処理するステップと、前記IDが不一致の場合のデータベース破壊修復機能部よりの修復依頼を出すステップの実施によるそれぞれの処理結果を前記データベース操作入出力装置に通知するステップとを有する、
    ことを特徴とするデータベース自動修復方法。
  5. 請求項3から4のいずれか1項に記載のデータベース自動修復方法の各ステップをコンピュータに実行させるデータベース自動修復プログラム。
JP2008102499A 2008-04-10 2008-04-10 データベース自動修復装置及びその方法並びにデータベース自動修復プログラム Expired - Fee Related JP5044475B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008102499A JP5044475B2 (ja) 2008-04-10 2008-04-10 データベース自動修復装置及びその方法並びにデータベース自動修復プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008102499A JP5044475B2 (ja) 2008-04-10 2008-04-10 データベース自動修復装置及びその方法並びにデータベース自動修復プログラム

Publications (2)

Publication Number Publication Date
JP2009252148A JP2009252148A (ja) 2009-10-29
JP5044475B2 true JP5044475B2 (ja) 2012-10-10

Family

ID=41312756

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008102499A Expired - Fee Related JP5044475B2 (ja) 2008-04-10 2008-04-10 データベース自動修復装置及びその方法並びにデータベース自動修復プログラム

Country Status (1)

Country Link
JP (1) JP5044475B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013098918A1 (ja) * 2011-12-26 2013-07-04 株式会社日立製作所 データベースシステム及びデータベース管理方法
US9449039B2 (en) * 2012-11-26 2016-09-20 Amazon Technologies, Inc. Automatic repair of corrupted blocks in a database
US20210232581A1 (en) * 2020-01-23 2021-07-29 Coupang Corp. Systems and methods for propagating timer management and event triggering

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000082001A (ja) * 1998-09-04 2000-03-21 Ai Soft Kk データ管理装置およびデータ管理方法
JP2005332019A (ja) * 2004-05-18 2005-12-02 Matsushita Electric Ind Co Ltd 破損データの修復装置及び方法

Also Published As

Publication number Publication date
JP2009252148A (ja) 2009-10-29

Similar Documents

Publication Publication Date Title
US7933870B1 (en) Managing file information
US9183236B2 (en) Low level object version tracking using non-volatile memory write generations
JP4598055B2 (ja) データベースバックアップの整合性チェックのためのシステムおよび方法
US7685189B2 (en) Optimizing backup and recovery utilizing change tracking
US7954003B2 (en) Fault management system in multistage copy configuration
US20040163029A1 (en) Data recovery techniques in storage systems
US8285677B2 (en) Method and apparatus for propagating tables while preserving cyclic foreign key relationships
US10481988B2 (en) System and method for consistency verification of replicated data in a recovery system
US9348831B1 (en) Persistent file system objects for management of databases
US8103621B2 (en) HSM two-way orphan reconciliation for extremely large file systems
US7801867B2 (en) Optimizing backup and recovery utilizing change tracking
US6654771B1 (en) Method and system for network data replication
US20130151476A1 (en) Processing archive content based on hierarchical classification levels
JP2008527571A (ja) データの削除を管理するための方法および装置
CN107291710B (zh) 一种用于分布式数据库系统的更新数据的方法及装置
US8479203B2 (en) Reducing processing overhead and storage cost by batching task records and converting to audit records
US20090177856A1 (en) Method and apparatus for automated backup process
US11429498B2 (en) System and methods of efficiently resyncing failed components without bitmap in an erasure-coded distributed object with log-structured disk layout
JP5044475B2 (ja) データベース自動修復装置及びその方法並びにデータベース自動修復プログラム
CN110263060B (zh) 一种erp电子附件管理方法及计算机设备
US8775371B2 (en) Synchronizing an auxiliary data system with a primary data system
US11379318B2 (en) System and method of resyncing n-way mirrored metadata on distributed storage systems without requiring checksum in the underlying storage
US11218318B2 (en) Two-step data deletion having confirmation hold
US11494090B2 (en) Systems and methods of maintaining fault tolerance for new writes in degraded erasure coded distributed storage
CN111427989B (zh) 一种全文检索的索引处理方法、索引处理系统及存储介质

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20100602

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120608

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120710

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120713

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150720

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees