JP2006251990A - データベース再編成プログラムおよびデータベース再編成方法 - Google Patents

データベース再編成プログラムおよびデータベース再編成方法 Download PDF

Info

Publication number
JP2006251990A
JP2006251990A JP2005065347A JP2005065347A JP2006251990A JP 2006251990 A JP2006251990 A JP 2006251990A JP 2005065347 A JP2005065347 A JP 2005065347A JP 2005065347 A JP2005065347 A JP 2005065347A JP 2006251990 A JP2006251990 A JP 2006251990A
Authority
JP
Japan
Prior art keywords
page
database
reorganization
extended
record
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.)
Granted
Application number
JP2005065347A
Other languages
English (en)
Other versions
JP4854973B2 (ja
Inventor
Akihide Nishino
晃英 西野
Hisayuki Enbutsu
久幸 圓佛
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005065347A priority Critical patent/JP4854973B2/ja
Priority to US11/174,766 priority patent/US7797290B2/en
Publication of JP2006251990A publication Critical patent/JP2006251990A/ja
Application granted granted Critical
Publication of JP4854973B2 publication Critical patent/JP4854973B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures

Abstract

【課題】 必要最小限の容量の拡張でデータベースを再編成する。
【解決手段】 データベース1aの再編成要求が入力されると、レコード再編成手段6によって、インデックス3aが参照されることにより基本領域21内のページが順次選択され、選択されたページ内のレコードが拡張インデックス3bを参照することにより拡張データベース2に移動される。さらに、レコード再編成手段6により、データベース2内のページ毎の移動の進捗状況がページ状態管理テーブル7に設定される。
【選択図】 図1

Description

本発明はデータベースの再編成をするためのデータベース再編成プログラムおよびデータベース再編成方法に関し、特に容量拡張を最小限に止めてデータベースの再編成を行うデータベース再編成プログラムおよびデータベース再編成方法に関する。
多くのデータベースシステムでは、効率的なデータ入出力環境を維持するためデータベースの再編成が必要となる。たとえば、以下のような目的で再編成が行われる。
・ページ内のレコード間にある空き領域の統合(フラグメンテーション解消)
・オーバフローページにあるレコードをプライムページに格納することによるアクセス性能向上
・データベース内においてレコードが満杯状態になる前の領域の拡張
従来の一般的な再編成処理では、まず、複写元のデータベースより容量の大きい複写先データベースを用意する。次に、複写元のデータベース中にある全てのレコードが、複写先データベースに格納される(たとえば、特許文献1参照)。この処理について、以下具体的に説明する。
図14は、従来の一般的なデータベース再構築方法を示す図である。図14には、データベース941のデータを再構築して、データベース951に格納する場合の例が示されている。
この方式では、データベースを使用する処理機能からアクセスしているデータベース941(複写元)とは別に、新規に再編成を実施するためのデータベース951(複写先)を用意する。各データベース941、951には、対応するインデックス942、952が設けられている。また、データベース941は、複数のプライムページを格納するプライムページ格納領域941aと、複数のオーバフローページを格納するオーバフローページ格納領域941bとを有している。同様に、データベース951は、複数のプライムページを格納するプライムページ格納領域951aと、複数のオーバフローページを格納するオーバフローページ格納領域951bとを有している。なお、この例では、データベース951は、データベース941よりも記憶容量が拡張されているものとする。
そして、複写元のデータベース941の先頭ページから順に、格納されているレコードが複写先のデータベース951に複写され、データベースの再編成が実施される(ステップS111)。
このとき、複写元のデータベース941に対するレコードの更新を意図するトランザクション961を受け付けることができる。たとえば、トランザクション961によってプライムページ内のレコード(レコード番号「R1」)が変更され、オーバフローページにレコード(レコード番号「R33」)が追加される(ステップS112)。再編成中にレコードの更新処理が行われると、その処理内容が更新後ログ943に記録される(ステップS113)。
ここで、この複写されたレコードに対して応用プログラムからの更新があった場合、複写のレコードに対する更新後ログ943を複写先のデータベース951のレコードに付け込む(ステップS114)。付け込みとは、更新されたレコードの内容をデータベース951に反映させる処理である。付け込みによりレコードの上書きを行うことで、整合性が保証される。このようなデータベースの再編成方式は、DBsnapperと呼ばれる。
特開2000−339210号公報
しかし、図14に示した方式では、別個に複写先のデータベースを確保する必要があるため、たとえば、少しの容量拡張に対しても、複写元以上の容量を有する複写先のデータベースを用意する必要があった。すなわち、複写を行うデータの容量に対して、二倍以上の容量を有するデータベースが必要であった。また、複写が終了した複写元のデータベースが無駄となるという問題があった。さらに、データベースを設置するスペースが増大し、維持費がかかるという問題があった。
本発明はこのような点に鑑みてなされたものであり、必要最小限の容量の拡張でデータベースを再編成可能なデータベース再編成プログラムおよびデータベース再編成方法を提供することを目的とする。
本発明では上記課題を解決するために、図1に示すようなデータベース再編成プログラムが提供される。本発明に係るデータベース再編成プログラムは、コンピュータに、基本領域21内の複数のページそれぞれに対して格納すべきレコードがインデックス3aにより定義されたデータベースの再編成処理を実行させるためのものである。
このデータベース再編成プログラムを実行するコンピュータは、拡張データベース作成手段4、拡張インデックス作成手段5およびレコード再編成手段6を有する。
拡張データベース作成手段4は、データベースの再編成要求に応じて、新たな拡張領域22を作成し、基本領域21と拡張領域22とからなる拡張データベース2を作成する。
拡張インデックス作成手段5は、基本領域21および拡張領域22の各ページに格納すべきレコードを定義した拡張インデックス3bを作成する。
レコード再編成手段6は、インデックス3aを参照することにより基本領域21内のページを選択し、選択したページ内のレコードを、拡張インデックス3bを参照することにより拡張データベース2内の選択したページに移動すると共に、拡張データベース2内のページ毎の移動の進捗状況をページ状態管理テーブル7に設定する。
このようなデータベース再編成プログラムを実行するコンピュータによれば、データベースの再編成要求が入力されると、このデータベースに拡張データベース作成手段4により新たな拡張領域22が作成され、基本領域21と拡張領域22とからなる拡張データベース2が作成される。
また、拡張インデックス作成手段5により基本領域21および拡張領域22の各ページに格納すべきレコードを決める拡張インデックス3bが作成される。
そして、レコード再編成手段6によりインデックス3aを参照することにより基本領域21内のページが順次選択され、選択されたページ内のレコードが拡張インデックス3bを参照することにより拡張データベース2の選択したページに移動される。さらに、レコード再編成手段6により、データベース2内のページ毎の移動の進捗状況がページ状態管理テーブル7に設定される。
また、上記課題を解決するために、基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成方法において、拡張データベース作成手段が、前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成し、拡張インデックス作成手段が、前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成し、レコード再編成手段が、前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定することを特徴とするデータベース再編成方法が提供される。
このようなデータベース再編成方法によれば、データベースの再編成要求が入力されると、拡張データベース作成手段により新たな拡張領域が作成され、また、基本領域と拡張領域とからなる拡張データベースが作成される。その後、拡張インデックス作成手段により基本領域および拡張領域に格納すべきレコードを決める拡張インデックスが作成される。
その後、レコード再編成手段によって、インデックスが参照されることにより基本領域内のページが選択され、選択されたページ内のレコードは、拡張インデックスを参照することにより拡張データベース内の選択したページに移動される。さらに、レコード再編成手段により、拡張データベース内のページ毎の移動の進捗状況がページ状態管理テーブルに設定される。
以上説明したように本発明では、再編成前のデータベースを構成する基本領域に、新たに拡張領域を追加することにより、基本領域を含む新たな拡張データベースを作成して再編成を行うようにした。そのため、再編成時に必要なデータベースの容量の追加を最小限にすることができる。これにより、従来必要としていた、再編成前のデータベース以上の容量を有するデータベースを別個に用意する必要が無く、データベースの省容量化を図ることができる。
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、実施の形態に適用される発明の概念図である。図1の例では、記憶手段1に設けられたデータベースを再構成し、拡張データベース2を作成するものとする。
拡張データベース2内の記憶領域は、基本領域21と拡張領域22とを有している。
ここで、基本領域21は、再構成前のデータベースが有していた領域であり、拡張領域22は、再構成により新たに拡張された領域である。
この基本領域21と拡張領域22とは、それぞれ複数のページに分割されている。図1では、基本領域21はページ番号「P0」、「P1」および「P2」のページを有し、拡張領域22はページ番号「P3」、「P4」および「P5」のページを有している。そして、データベースの再構成前の各ページに格納すべきレコードが、インデックス3aで定義されている。また、拡張データベース2に対してレコードの更新処理が行われると、更新処理の内容がログとして保存される。
なお、図1の例では、インデックス3a、拡張インデックス3bにおいて、レコード番号(Rm:mは0以上の整数)とページ番号(Pn:nは0以上の整数)との対応関係が示されている。各ページには、インデックス3a、拡張インデックス3bで対応付けられたレコード番号以下であり、且つ、ページ番号が1つ小さいページに対応付けられたレコード番号より大きなレコード番号を有するレコードが格納される。
拡張データベース作成手段4は、データベースの再編成要求に応じて、新たな拡張領域を作成し、前述したように基本領域21と拡張領域22とで構成される拡張データベース2を作成する。
拡張インデックス作成手段5は、基本領域21および拡張領域22に格納すべきレコードを決める拡張インデックス3bを作成する。
レコード再編成手段6は、インデックス3aを参照することにより基本領域21内の、後述する未編成のページを選択する。そして、レコード再編成手段6は、選択したページ内のレコードを、拡張インデックス3bを参照することにより拡張データベース2内の選択したページに再編成する。また、レコード再編成手段6は、拡張データベース2内のページ毎の再編成の進捗状況をページ状態管理テーブル7に設定する。
ページ状態管理テーブル7には、拡張前のデータベース内のページ毎に、再編成の状態が設定されている。再編成の状態としては、未編成(図中「未」と示す)、再編成処理中(図中「中」と示す)、および編成済(図中「済」と示す)がある。
レコード書き込み手段8は、更新レコードの書き込み要求に応じてページ状態管理テーブル7を参照し、書き込み対象のページの状態に応じて、更新レコードの書き込み対象を判定する。具体的には、レコード書き込み手段8は、拡張データベース2内の書き込み対象ページが未編成の状態であればインデックス3aを参照し、拡張データベース2内の該当ページに対して更新レコードを書き込む。書き込み対象ページが編成済の状態であれば拡張インデックス3bを参照して、拡張データベース2内の該当ページに対して前記更新レコードを書き込む。さらに、レコード書き込み手段8は、書き込み対象ページが再編成処理中の状態であれば編成済に遷移するのを待ち、再編成処理中から編成済の状態に遷移したときに、拡張データベース2に更新レコードを書き込む。
このようなデータベース再編成装置によれば、データベース1aの再編成要求が入力されると、レコード再編成手段6により、インデックス3aを参照することにより基本領域21内のページが順次選択され、選択されたページ内のレコードが、拡張インデックス3bを参照することにより拡張データベース2内の選択したページに再編成される。さらに、レコード再編成手段6により、拡張データベース2内のページ毎の再編成の進捗状況がページ状態管理テーブル7に設定される。詳述すると、このページ状態管理テーブル7は、インデックス3aに対応したページ番号が割り振られており、拡張前のデータベースのレコードが格納された各ページに対して、処理が終了したか否かの進捗状況が設定される。
ここで、ページ番号「P0」〜「P2」が大きい順に、ページが選択されるものとする。図1には、ページ番号「P1」のページを再編成しているときのページ状態管理テーブル7が示されている。この例では、ページ番号「P0」のページが未編成、ページ番号「P1」のページが再編成処理中、ページ番号「P2」のページが編成済である。
データベース再編成処理中に、更新レコードの書き込み要求が入力されると、レコード書き込み手段5により、ページ状態管理テーブル7が参照され、書き込み対象のページの状態が判断される。
たとえば、レコード番号「R3」が更新レコード9aとして入力された場合、拡張前のデータベースのページ番号「P0」のページが書き込み対象となる。図1の例では、ページ番号「P0」のページは、未編成の状態である。そのため、更新レコード9aは、インデックス3aを参照し、得られた書き込み先である拡張データベース2のページ番号「P0」のページに書き込まれる。
レコード番号「R4」が更新レコード9bとして入力された場合、拡張前のデータベースのページ番号「P1」のページが書き込み対象となる。図1の例では、ページ番号「P1」のページは、再編成処理中の状態である。そのため、該当ページの状態が編成済になるのを待ち、更新レコード9bは、拡張インデックス3bを参照し、拡張データベース2の得られた書き込み先に書き込まれる。
レコード番号「R6」が更新レコード9cとして入力された場合、拡張前のデータベースのページ番号「P2」のページが書き込み対象となる。図1の例では、ページ番号「P2」のページは、編成済の状態である。そのため、更新レコード9cは拡張インデックス3bを参照し、得られた書き込み先である拡張データベース2のページ番号「P5」のページに書き込まれる。
このようにして、レコードの書き込みを停止することなく、データベースの再編成が行われる。なお、ページが再編成処理中の場合、書き込みの待機時間が発生するが、1ページの再編成処理は短時間で実行できるため、業務を停止させる程の影響はない。
以下、本発明の実施の形態を具体的に説明する。
図2は、本発明の実施の形態のシステム構成例を示す図である。本発明の実施の形態では、複数のホストコンピュータ100、200、300、400と複数の端末装置31、32、・・・とがネットワーク10を介して接続されている。ホストコンピュータ100、200、300、400には、ストレージデバイス500、600が接続されている。また、ホストコンピュータ100と他のホストコンピュータ200、300、400とは、高速の通信回線で互いに接続されている。ホストコンピュータ200、300、400は、その通信回線を介して、ホストコンピュータ100内の共有メモリにアクセスできる。
ホストコンピュータ100、200、300、400は、ネットワーク10を介して端末装置31、32、・・・からの要求に応じて、ストレージデバイス500、600内に構築されたデータベースに対するトランザクションを実行する。また、少なくとも1つのホストコンピュータは、データベースを再構成するための処理機能を有している。本実施の形態では、ホストコンピュータ100がデータベースの再構成を行うものとする。ホストコンピュータ100は、データベースの再構成を行うために、以下のようなハードウェア構成を有している。
図3は、データベースの再構成を行うホストコンピュータのハードウェア構成例を示す図である。ホストコンピュータ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス101aを介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、共有メモリ106、ストレージデバイスインタフェース107、通信インタフェース108、およびホストコンピュータ間通信インタフェース109が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。さらに、データベースの再編成時には、RAM102内に、データベース内のブロック毎の状態を示すページ状態管理テーブル120が格納される。HDD103には、OSやアプリケーションプログラムが格納される。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス101aを介してCPU101に送信する。
共有メモリ106は、他のホストコンピュータ200、300、400との間で共有可能な記録媒体である。この共有メモリ106は、データベースの再編成時には、ページ状態管理テーブルの内容が、所定のタイミングで格納されるページ状態管理データ格納部として機能する。なお、ページ状態管理テーブルおよびページ状態管理データ格納部については後に詳述する。
共有メモリ106としては、たとえば、バッテリでバックアップされた半導体メモリが使用される。
ストレージデバイスインタフェース107は、ストレージデバイス500、600に接続されている。ストレージデバイスインタフェース107は、CPU101からの指示に従って、ストレージデバイス500、600に対するデータの入出力を行う。
通信インタフェース108は、ネットワーク10に接続されている。通信インタフェース108は、ネットワーク10を介して、端末装置31、32、・・・との間でデータの送受信を行う。
ホストコンピュータ間通信インタフェース109は、他のホストコンピュータ200、300、400に接続されている。ホストコンピュータ間通信インタフェース109は、他のホストコンピュータ200、300、400との間でデータの送受信を行う。たとえば、ホストコンピュータ間通信インタフェース109は、他のホストコンピュータ200、300、400に対して共有メモリ106に格納されている情報を送信する。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、ホストコンピュータ100のハードウェア構成を説明したが、他のホストコンピュータ200、300、400も同様のハードウェア構成で実現することができる。ただし、ホストコンピュータ200、300、400には、共有メモリは搭載されていなくてもよい。
以下、図2、3に示す構成のシステムにおけるデータベース再編成処理について詳細に説明する。
図4は、本実施の形態を実現するための機能を示すブロック図である。図4には、ストレージデバイス500内に構築されているデータベースが拡張データベース520aに再編成された場合の例が示されている。
ホストコンピュータ100には、ストレージデバイス500、600が接続されている。
ストレージデバイス500には、インデックス510、拡張インデックス550、基本領域521と拡張領域522とを有する拡張データベース520a、更新前ログ530、および更新後ログ540が含まれる。データベースの再編成を実行する以前のデータベースには、拡張領域522および拡張インデックス550は存在せず、インデックス510、基本領域521を有するデータベース、更新前ログ530および更新後ログ540を用いて端末装置31、32、・・・に対するサービスが提供される。
インデックス510には、基本領域521の各ページに格納すべきレコードの識別番号(レコード番号)が定義されている。拡張インデックス550には、データ再編成後の基本領域521および拡張領域522の各ページに格納すべきレコードの識別番号(レコード番号)が定義されている。基本領域521および拡張領域522は、複数のページに分割された記憶領域を有している。すなわち、拡張データベース520aの記憶容量は、基本領域521と拡張領域522との容量を加えたものになる。データ再編成前には、各ページにインデックス510で対応付けられたレコードが格納されており、データ再編成後には、各ページに拡張インデックス550で対応付けられたレコードが格納される。
更新前ログ530には、再編成前のデータベースおよび拡張データベース520a内の、それぞれのレコードが更新された際の更新前のレコードの内容が記録される。更新後ログ540には、再編成前のデータベースおよび拡張データベース520a内の、それぞれのレコードが更新された際の更新後のレコードの内容が記録される。
ホストコンピュータ100は、再編成トランザクション処理部110、ページ状態管理テーブル120、オンライントランザクション処理部130およびページ状態管理データ格納部140を有する。
再編成トランザクション処理部110は、データベースの再編成処理を行う。具体的には、再編成トランザクション処理部110は、データベースの再編成要求を受け付けると、ストレージデバイス500内に、前述の拡張インデックス550および拡張領域522を作成する。これにより、拡張データベース520aの記憶容量は、拡張前のデータベースに対して拡張領域522の分だけ大きく設定される。そして、再編成トランザクション処理部110は、拡張データベース520a内のレコードをページ単位で再編成する。その際の各ページの状態は、ページ状態管理テーブル120に設定される。
ページ状態管理テーブル120には、データベース再編成中に、拡張データベース520a内の各ページの状態が登録される。ページの状態は、「未編成」、「再編成処理中」、「編成済」がある。
オンライントランザクション処理部130は、端末装置31、32、・・・からの要求に応じてデータベース操作のトランザクションを実行する。なお、データベース再構成処理中においては、オンライントランザクション処理部130は、ページ状態管理テーブル120を参照し、アクセス対象とすべきデータベースを判断する。
ページ状態管理データ格納部140は、ページ状態管理テーブル120の内容が変更されたときに、前述したページ状態管理テーブル120の登録内容を、前述した共有メモリ106に格納する。
図5は、インデックスとデータベースとのデータ構造を示す図である。
次に、図5を参照してインデックス510とデータベース520との関係について詳細に説明する。
データベース520は、拡張領域522を作成する前のデータベースである。
インデックス510には、各ページのページ番号に対応付けて、そのページに格納すべきレコードのレコード番号が定義されている(ページ番号をPm、レコード番号をRnで表している)。
効率的なトランザクション処理を行うために、レコード番号の小さいレコードほど、ページ番号の小さいページに割り当てられる。そこで、インデックス510では、各ページのページ番号に対応付けて、そのページに格納されるレコードに対するレコード番号の最大値が設定されている。
図5の例ではインデックス510において、ページ番号「P0」に対応付けてレコード番号「R3」が設定されている。これは、ページ番号「P0」のページに対して、レコード番号が「R0x」〜「R3x」(xは0以上の整数)のレコードが登録されることを意味する。
また、ページ番号「P1」に対応付けてレコード番号「R4」が設定されている。これは、ページ番号「P1」のページに対して、レコード番号「R4x」のレコードが登録されることを意味する。
ページ番号「P2」に対応付けてレコード番号「R6」が設定されている。これは、ページ番号「P2」のページに対して、レコード番号が「R5x」、「R6x」のレコードが登録されることを意味する。
なお、データベース520がネットワークデータベース(NDB)として利用される場合、各レコードには、ツリー構造で互いに関連付けられた複数のデータが含まれる。この場合、再編成前のデータベース520でのデータ間の関連付けは、再編成後の拡張データベース520aで再現される。
データベース520の基本領域521には、複数のプライムページを格納するためのプライムページ格納領域521aと複数のオーバフローページを格納するためのオーバフローページ格納領域521bとが設けられている。プライムページは、インデックス510に設定されている各ページ番号に対応する記憶領域である。各プライムページには、インデックス510で定義されたレコード番号のレコードのみが格納できる。
オーバフローページは、プライムページの容量不足によって、レコード番号に対応するプライムページに格納できなかったレコードを格納するための記憶領域である。オーバフローページにレコードが格納された場合、そのレコードのレコード番号に対応するプライムページ内に、オーバフローページへのポインタが設定される。そのポインタを参照することで、レコードが格納されたオーバフローページを特定できる。
このように、各プライムページには、格納可能なレコードのレコード番号が予め指定されている。そして、1つのプライムページにレコードが格納しきれなくなると、レコードがオーバフローページに格納される。
しかし、オーバフローページに格納されるレコードの量が増加すると、データベース520へのアクセス効率が悪化する。すなわち、任意のレコードにアクセスする場合、オンライントランザクション処理部130は、まずインデックス510を参照して、レコードが登録されているプライムページを判断する。そして、オンライントランザクション処理部130は、該当するプライムページからアクセス対象のレコードを検索する。
ここで、アクセス対象のレコードが見つからない場合、オンライントランザクション処理部130は、プライムページに登録されているポインタを参照して、関連付けられたオーバフローページを判断する。そして、オンライントランザクション処理部130は、該当するオーバフローページからアクセス対象のレコードを検索する。
このように、オーバフローページに格納されたページにアクセスする場合、オンライントランザクション処理部130において2段階の検索処理が行われる。そのため、アクセスの処理効率が低下する。
そこで、オーバフローページに格納されたレコードの量が増加した場合、プライムページの容量を拡張するように、データベース再編成が行われる。データベース520を再編成する際には、データベース520内の各レコードがページ単位で再編成される。その際、基本領域521内のプライムページの状態が、ページ状態管理テーブル120で管理される。
図6は、ページ状態管理テーブルのデータ構造例を示す図である。ページ状態管理テーブル120には、データベース520内のプライムページのページ番号に対応付けて、そのページの状態が設定されている。状態には、未編成(図中「未」と示す)、再編成処理中(図中「中」と示す)、および編成済(図中「済」と示す)がある。未編成の状態とは、該当するページに格納されているレコードの再編成処理が行われていないことを示す。再編成処理中の状態とは、該当するページに格納されているレコードの再編成処理中であることを示す。編成済の状態とは、該当するページに格納されているレコードの再編成処理が完了したことを示す。
なお、本実施の形態では、オンライントランザクションを継続して実行しながらデータベース再編成処理を行うことができる。以下、データベース再構成処理と、データベース再構成中のオンライントランザクションについて具体的に説明する。
図7は、データベース再編成処理の手順を示すフローチャートである。以下、図7に示す処理をステップ番号に沿って説明する。
[ステップS11]再編成トランザクション処理部110は、ストレージデバイス500に拡張インデックス550を作成する。この拡張インデックス550では、プライムページの数を増加させるように、ページ番号の数を増加させる。すなわち、図7に示すレコード「R1」〜「R6」の数以上のプライムページ格納領域について定義される。プライムページの数が増加することにより、データベース520の容量が増加する。
[ステップS12]再編成トランザクション処理部110は、拡張インデックス550に基づいて、拡張領域522を作成する。
[ステップS13]再編成トランザクション処理部110は、ページ状態管理テーブル120の全てのページの状態を「未編成」にする。
[ステップS14]再編成トランザクション処理部110は、拡張データベース520aのプライムページから、基本領域521の、拡張領域522側に最も近い未編成のプライムページを選択する。
[ステップS15]再編成トランザクション処理部110は、ページ状態管理テーブル120におけるステップS14で選択したプライムページの状態を、「再編成処理中」に変更する。
[ステップS16]再編成トランザクション処理部110は、拡張データベース520a内のステップS14で選択したプライムページ内のレコードを、再編成する。
具体的には、再編成トランザクション処理部110は、ステップS14で選択したプライムページ内のレコードをRAM102に読み込み、このプライムページ内のレコードを削除する。次に、RAM102内のレコードを移動先のプライムページに格納する。この際の移動先のプライムページは、ステップS11で作成した拡張インデックス550に従う。また、再編成トランザクション処理部110は、ステップS14で選択したプライムページからポインタで指し示されたオーバフローページに格納されたレコードも、同様に再編成する。
[ステップS17]再編成トランザクション処理部110は、ステップS14で選択されたプライムページおよびポインタで関連付けられたオーバフローページに格納されていた全てのレコードの再編成が行われたか否かを判断する。ページ内の全てのレコードの再編成が完了したら(ステップS17のYes)、処理がステップS18に進められる。再編成の完了していないレコードがある場合(ステップS17のNo)、処理がステップS16に進められ、該当レコードの再編成が行われる。
[ステップS18]再編成トランザクション処理部110は、ページ状態管理テーブル120におけるステップS14で選択したプライムページの状態を、「編成済」に変更する。
[ステップS19]再編成トランザクション処理部110は、拡張データベース520a内の全てのページに対する再編成処理が完了したか否かを判断する。全てのページの再編成が完了した場合、処理が終了する。再編成していないページがある場合、処理がステップS14に進められ、該当ページの再編成が行われる。
このように、再編成トランザクション処理部110がページ単位で再編成を行い、ページ状態管理テーブル120における編成対象のページの状態を適宜更新する。これにより、ページ状態管理テーブル120を参照することで、オンライントランザクション処理部130が各プライムページの状態を認識することができる。オンライントランザクション処理部130が、プライムページの状態を認識することにより、データベース再構成中であっても、データベースに対するレコード更新のトランザクションが可能となる。
また、再編成処理の途中に、何らかの原因によりページ状態管理テーブル120の内容が消去された場合においても、ページ状態管理テーブル120が、ページ状態管理データ格納部140に格納された登録内容を再度読み込むことにより、中断された状態から、引き続き再編成処理を行うことができる。
図8は、データベース再構成中のレコード更新処理の手順を示すフローチャートである。以下、図8に示す処理をステップ番号に沿って説明する。
[ステップS21]オンライントランザクション処理部130は、インデックス510を参照し、処理対象のレコードが格納されているプライムページを判断する。そして、オンライントランザクション処理部130は、ページ状態管理テーブル120を参照し、該当するプライムページの状態が、再編成処理中、未編成または編成済かを判断する。再編成処理中であれば、処理がステップS22に進められる。未編成であれば、処理がステップS23に進められる。編成済であれば、処理がステップS26に進められる。
[ステップS22]アクセス対象のプライムページが再編成処理中の場合、オンライントランザクション処理部130は、所定時間待機後処理をステップS21に進め、再度プライムページの状態を判断する。
[ステップS23]アクセス対象のプライムページが未編成であれば、オンライントランザクション処理部130は、インデックス510を参照する。
[ステップS24]オンライントランザクション処理部130は、ステップS23で参照したインデックス510の内容に従って、拡張データベース520aから更新対象のレコードをリードする。
[ステップS25]オンライントランザクション処理部130は、ステップS23でリードしたレコードの内容を更新し、拡張データベース520aにライトする。その後、処理が終了する。
[ステップS26]アクセス対象のプライムページが編成済であれば、オンライントランザクション処理部130は、拡張インデックス550を参照する。
[ステップS27]オンライントランザクション処理部130は、ステップS26で参照した拡張インデックス550の内容に従って、拡張データベース520aから更新対象のレコードをリードする。
[ステップS28]オンライントランザクション処理部130は、ステップS26でリードしたレコードの内容を更新し、拡張データベース520aにライトする。その後、処理が終了する。
このように、更新対象となるプライムページの状態に応じて、アクセスするインデックスを判断することで、データベース再編成中であってもオンライントランザクションが可能となる。
図9〜図12は、データベースの再編成処理を具体的に示す概念図である。
図9は、再編成処理前のストレージデバイスを示す概念図である。
図9に示すように、再編成処理前のデータベース520の基本領域521は、複数のプライムページを格納するプライムページ格納領域521aと複数のオーバフローページを格納するオーバフローページ格納領域521bとを有している。このデータベース520は、プライムページ格納領域521aのページ番号「P0」のページにレコードR1、R2が格納され、ページ番号「P1」のページにレコードR4が格納され、ページ番号「P2」のページにレコードR5が格納されている。また、オーバフローページ格納領域521bのページ番号「00」のページにR3が格納され、ページ番号「01」のページにR6が格納されている。
図10は、再編成要求が出されたときのストレージデバイスを示す概念図である。
システム管理者からの操作入力等によってデータベース520の再編成要求が出されると、再編成トランザクション処理部110は、ストレージデバイス500内に拡張インデックス550と、プライムページ格納領域522aおよびオーバフローページ領域522bを有する拡張領域522とを作成する。
また、再編成トランザクション処理部110は、ページ状態管理テーブル120の全てのページの状態を「未編成」にする。
その後、再編成トランザクション処理部110によって、拡張データベース520aの再編成が開始される。
レコードの再編成は、1つのプライムページ毎に生成される再編成トランザクション111により実行される。
再編成トランザクション111がスタートすると、基本領域521内の、拡張領域522側に最も近いプライムページに格納されているレコードから再編成処理が開始される。
図10の例では、ページ番号「P2」のページに格納されているR5から再編成処理が開始される。ページ番号「P2」のページに対する処理を完了すると、次に、ページ番号「P1」のページに格納されているレコードに対して処理を行う。このようにして、順次再編成処理を進めていく。
この際、まず、拡張領域522のページ(本実施の形態ではページ番号「P5」、「P4」、「P3」のページ)に、拡張領域522に格納すべきレコード(本実施の形態ではレコード「R6」、「R5」、「R4」)を、それぞれ移動させる。
その後、基本領域521の、すでに移動されたレコードが格納されていたページ(本実施の形態では、ページ番号「P2」、「P1」、「P0」)に、基本領域521に格納すべきレコード(本実施の形態ではレコード「R3」、「R2」、「R1」)を、それぞれ移動させる。
図11は、再編成処理中のストレージデバイスを示す概念図である。
図11では、ページ状態管理テーブル120において、ページ番号「P2」のプライムページの状態が編成済(図中「済」と示す)に変更されており、ページ番号「P1」のプライムページの状態が再編成処理中(図中「中」と示す)に変更されている。
次に、再編成トランザクション111では、拡張データベース520a内の編成対象のプライムページ、およびそのプライムページからポインタで関連付けられたオーバフローページから、順次レコードが読み出される。図11の例では、ページ番号「P1」のプライムページからレコード番号「R4」のレコードが読み出され、ページ番号「01」のオーバフローページからレコード番号「R6」のレコードが読み出される。
次に、読み出されたレコードの内容が、拡張インデックス550に従って拡張データベース520aに書き込まれる。図11の例では、拡張データベース520aに対する拡張インデックス550において、レコード番号「R4」、「R6」のレコードは、それぞれページ番号「P3」、「P5」に対応付けられている。したがって、レコード番号「R4」のレコードはページ番号「P3」のプライムページに書き込まれ、「R6」のレコードはページ番号「P5」のプライムページに書き込まれる。
このようにして、拡張データベース520aのページ番号「P1」のプライムページのレコードおよびページ番号「P1」のプライムページに関連付けられたオーバフローページのレコードが、拡張インデックス550を参照することにより、対応付けた新たなプライムページに全て格納されると、ページ状態管理テーブル120における該当ページ(本実施形態ではページ番号「P1」のページ)の状態が、再編成処理中から編成済(図中「済」と示す)に変更される。これにより、1つのプライムページに対する再編成トランザクションが終了する。
再編成トランザクション処理部110は、他のプライムページに対する同様の再編成トランザクションを繰り返し実行する。これにより、拡張データベース520aの先頭ページから最終ページまでのレコードの再編成が実施される。
図12は、再編成済のストレージデバイスを示す概念図である。
図12に示すように、全てのページ状態管理テーブル120のプライムページが、「済」に変更となったことを確認すると、拡張データベース520aの再編成処理を終了する。本実施形態では、プライムページ「P2」、「P1」、「P0」の順番で再編成処理を行ったため、プライムページ「P0」が「済」になったことを確認すると、拡張データベース520aの再編成処理を終了する。
図13は、データベース更新処理とオンライントランザクションとが同時に実行された場合の処理を具体的に示す概念図である。
図11に示す状態、すなわち、再編成中に、オンライントランザクション処理部130が端末装置31からレコードの更新の処理要求を受け取ると、オンライントランザクション131が開始される。オンライントランザクション131では、ページ状態管理テーブル120が参照され、書き込み対象のプライムページの状態が未編成の場合、インデックス510が参照され、データベース520の該当ページにレコードが追加される。また、書き込み対象のプライムページの状態が編成済の場合、拡張インデックス550が参照され、データベース520の該当ページにレコードが追加される。
ページ状態が再編成処理中の場合は、排他制御によりオンライントランザクション131を待機させる。そして、再編成が完了し、ページ状態が編成済になると、前述した処理を行う。
図13に示す例では、オンライントランザクション処理部130が、レコード「R3」およびレコード「R6」に対して更新の処理要求を受け取った場合を示している。レコード「R3」の更新の処理を行う場合、オンライントランザクション131は、ページ状態管理テーブル120を参照し、書き込み対象のプライムページの状態が未編成であると判断してインデックス510を参照する。そして、書き込み対象のプライムページ「P0」に登録されたポインタを参照して、関連付けられたオーバフローページ「00」のレコード「R3」を検索する。その後、このオーバフローページ「00」にレコード「R33」を追加する(ステップS41)。
また、レコード「R6」の更新の処理を行う場合、オンライントランザクション131は、ページ状態管理テーブル120を参照し、書き込み対象のプライムページの状態が編成済であると判断して拡張インデックス550を参照する。そして、書き込み対象のプライムページ「P5」を参照してレコード「R6」を検索する。その後、このプライムページ「R6」にレコード「R36」を追加する(ステップS42)。
このように、再編成前のデータベース520を構成する基本領域521に、新たに拡張領域522を追加することにより、基本領域521を含む新たな拡張データベース520aを作成して再編成を行うことによって、再編成時に必要なデータベースの容量の追加を最小限にすることができる。これにより、従来必要としていた、再編成前のデータベース以上の容量を有するデータベースを別個に用意する必要が無く、データベースの省容量化を図ることができる。
また、オンライントランザクション処理部130がレコードの更新の処理要求を受け取ると、オンライントランザクション処理部130が、ページ状態管理テーブル120の内容に従って、未処理、再編成処理中、編成済を判断してインデックス510および拡張インデックス550を参照することにより、処理対象のページを一意に定め、この該当ページに対してレコードの更新を行う。これにより、1トランザクション内での更新回数を削減することができ、この結果トランザクション性能が向上する。
そして、再編成単位を最小単位のページ単位にしたことで、オンラインサービスを停止することなくデータベース再編成が可能となる。しかも、再編成時には、オンライントランザクション処理部130により、書き込まれたレコードの内容を含むログが更新後ログ540に記録される。更新後ログ540にレコードが記録されることで、ホストコンピュータ100が異常終了等によりデータベース520および拡張データベース520aの内容が不完全なものとなっても、データベース520および拡張データベース520aの内容を容易に復旧することができる。
さらに、ページ状態管理データ格納部140を設けたことにより、ホストコンピュータ100が異常終了等によりページ状態管理テーブル120の内容が不完全なものとなっても、異常終了前のページ状態管理テーブル120の登録内容が、共有メモリ106に格納されているため、ページ状態管理テーブル120の内容を容易に復旧することができ、引き続き再編成処理を行うことができる。
なお、本実施の形態では、拡張インデックス550に基づいて、拡張領域522を作成したが、これに限らず、拡張領域522を作成した後に、拡張インデックス550を作成してもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ホストコンピュータが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
(付記1) コンピュータに、基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成プログラムにおいて、
前記コンピュータを、
前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成する拡張データベース作成手段、
前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成する拡張インデックス作成手段、
前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定するレコード再編成手段、
として機能させることを特徴とするデータベース再編成プログラム。
(付記2) さらに、前記コンピュータを、
更新レコードの書き込み要求に応じて前記ページ状態管理テーブルを参照し、前記拡張データベース内の書き込み対象ページが未編成の状態であれば前記インデックスを参照し、前記書き込み対象ページが編成済の状態であれば前記拡張インデックスを参照して、前記拡張データベース内の該当ページに対して前記更新レコードを書き込むレコード書き込み手段、
として機能させることを特徴とする付記1記載のデータベース再編成プログラム。
(付記3) 前記データベースの基本領域は、格納すべきレコードの番号が予め規定されている複数のプライムページと、前記プライムページに格納できなかったレコードが格納される複数のオーバフローページとを有しており、
前記コンピュータを前記レコード再編成手段として機能させる際、前記拡張データベースには、前記データベースのプライムページとオーバフローページとに格納されている全てのレコードを格納し得るプライムページが作成されることを特徴とする付記1記載のデータベース再編成プログラム。
(付記4) 前記コンピュータを前記レコード再編成手段として機能させる際、前記拡張領域に格納すべきレコードを前記基本領域から前記拡張領域に移動し、前記拡張領域の移動の終了後、前記基本領域に格納すべきレコードを移動することを特徴とする付記1記載のデータベース再編成プログラム。
(付記5) 前記コンピュータを前記レコード再編成手段として機能させる際、前記拡張領域の再編成の終了後、前記基本領域の、すでに移動されたレコードが格納されていたページに、前記基本領域に格納すべきレコードを移動することを特徴とする付記4記載のデータベース再編成プログラム。
(付記6) 前記コンピュータを前記レコード再編成手段として機能させる際、前記ページ状態管理テーブルの内容を逐次不揮発性メモリに格納することを特徴とする付記1記載のデータベース再編成プログラム。
(付記7) 前記拡張データベース作成手段は、前記拡張インデックスに基づいて、前記拡張領域を作成する付記1記載のデータベース再編成プログラム。
(付記8) 基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成方法において、
拡張データベース作成手段が、前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成し、
拡張インデックス作成手段が、前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成し、
レコード再編成手段が、前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定する、
ことを特徴とするデータベース再編成方法。
(付記9) 基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成装置において、
前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成する拡張データベース作成手段と、
前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成する拡張インデックス作成手段と、
前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定するレコード再編成手段と、
を有することを特徴とするデータベース再編成装置。
(付記10) コンピュータに、基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータを、
前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成する拡張データベース作成手段、
前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成する拡張インデックス作成手段、
前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定するレコード再編成手段、
として機能させることを特徴とするデータベース再編成プログラムを記録したコンピュータ読み取り可能な記録媒体。
実施の形態に適用される発明の概念図である。 本発明の実施の形態のシステム構成例を示す図である。 データベースの再構成を行うホストコンピュータのハードウェア構成例を示す図である。 本実施の形態を実現するための機能を示すブロック図である。 インデックスとデータベースとのデータ構造を示す図である。 ページ状態管理テーブルのデータ構造例を示す図である。 データベース再編成処理の手順を示すフローチャートである。 データベース再編成中のレコード更新処理の手順を示すフローチャートである。 再編成処理前のストレージデバイスを示す概念図である。 再編成要求が出されたときのストレージデバイスを示す概念図である。 再編成処理中のストレージデバイスを示す概念図である。 再編成済のストレージデバイスを示す概念図である。 データベース更新処理とオンライントランザクションとが同時に実行された場合の処理を示す概念図である。 従来の一般的なデータベース再構築方法を示す図である。
符号の説明
1 記憶手段
2 拡張データベース
3a インデックス
3b 拡張インデックス
4 拡張データベース作成手段
5 拡張インデックス作成手段
6 レコード再編成手段
7 ページ状態管理テーブル
8 レコード書き込み手段
21 基本領域
22 拡張領域
106 共有メモリ

Claims (5)

  1. コンピュータに、基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成プログラムにおいて、
    前記コンピュータを、
    前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成する拡張データベース作成手段、
    前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成する拡張インデックス作成手段、
    前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定するレコード再編成手段、
    として機能させることを特徴とするデータベース再編成プログラム。
  2. さらに、前記コンピュータを、
    更新レコードの書き込み要求に応じて前記ページ状態管理テーブルを参照し、前記拡張データベース内の書き込み対象ページが未編成の状態であれば前記インデックスを参照し、前記書き込み対象ページが編成済の状態であれば前記拡張インデックスを参照して、前記拡張データベース内の該当ページに対して前記更新レコードを書き込むレコード書き込み手段、
    として機能させることを特徴とする請求項1記載のデータベース再編成プログラム。
  3. 前記コンピュータを前記レコード再編成手段として機能させる際、前記拡張領域に格納すべきレコードを前記基本領域から前記拡張領域に移動し、前記拡張領域の移動の終了後、前記基本領域に格納すべきレコードを移動することを特徴とする請求項1記載のデータベース再編成プログラム。
  4. 前記コンピュータを前記レコード再編成手段として機能させる際、前記拡張領域の再編成の終了後、前記基本領域の、すでに移動されたレコードが格納されていたページに、前記基本領域に格納すべきレコードを移動することを特徴とする請求項3記載のデータベース再編成プログラム。
  5. 基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成方法において、
    拡張データベース作成手段が、前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成し、
    拡張インデックス作成手段が、前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成し、
    レコード再編成手段が、前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定する、
    ことを特徴とするデータベース再編成方法。
JP2005065347A 2005-03-09 2005-03-09 記憶制御プログラム、記憶制御方法、記憶制御装置および記憶制御システム Expired - Fee Related JP4854973B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005065347A JP4854973B2 (ja) 2005-03-09 2005-03-09 記憶制御プログラム、記憶制御方法、記憶制御装置および記憶制御システム
US11/174,766 US7797290B2 (en) 2005-03-09 2005-07-05 Database reorganization program and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005065347A JP4854973B2 (ja) 2005-03-09 2005-03-09 記憶制御プログラム、記憶制御方法、記憶制御装置および記憶制御システム

Publications (2)

Publication Number Publication Date
JP2006251990A true JP2006251990A (ja) 2006-09-21
JP4854973B2 JP4854973B2 (ja) 2012-01-18

Family

ID=36972299

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005065347A Expired - Fee Related JP4854973B2 (ja) 2005-03-09 2005-03-09 記憶制御プログラム、記憶制御方法、記憶制御装置および記憶制御システム

Country Status (2)

Country Link
US (1) US7797290B2 (ja)
JP (1) JP4854973B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7487171B2 (en) * 2005-12-30 2009-02-03 International Business Machines Corporation System and method for managing a hierarchy of databases
KR100834574B1 (ko) * 2006-09-29 2008-06-02 한국전자통신연구원 파일 저장 시스템 및 그 시스템에서의 파일 저장 및 검색방법
US8239389B2 (en) * 2008-09-29 2012-08-07 International Business Machines Corporation Persisting external index data in a database
JP5512055B2 (ja) * 2011-12-27 2014-06-04 三菱電機株式会社 検索装置
US9898495B2 (en) 2015-02-23 2018-02-20 Sap Se Zero downtime upgrade for database applications with altering sequences
US20220092049A1 (en) * 2020-09-24 2022-03-24 International Business Machines Corporation Workload-driven database reorganization

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0324643A (ja) * 1989-06-20 1991-02-01 Hitachi Ltd データベースのページ割当て方式
JPH0520143A (ja) * 1991-07-17 1993-01-29 Nec Corp 情報処理装置
JPH0877050A (ja) * 1994-09-02 1996-03-22 Nippon Telegr & Teleph Corp <Ntt> データベース再構成装置及びデータベース再構成方法
JPH11102311A (ja) * 1997-09-26 1999-04-13 Fujitsu Ltd データベース再編成装置及びプログラム記憶媒体
JP2000222258A (ja) * 1999-02-04 2000-08-11 Internatl Business Mach Corp <Ibm> データベースの構造を変更する方法、データベース・アクセス要求の制御方法、オンラインシステム、データベース運用支援ミドルウエアを格納する記憶媒体、及び、移行ユーティリティを格納する記憶媒体
JP2004199152A (ja) * 2002-12-16 2004-07-15 Casio Comput Co Ltd 組織図編集装置およびプログラム

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4875155A (en) * 1985-06-28 1989-10-17 International Business Machines Corporation Peripheral subsystem having read/write cache with record access
US5247665A (en) * 1988-09-30 1993-09-21 Kabushiki Kaisha Toshiba Data base processing apparatus using relational operation processing
JPH05151037A (ja) 1991-06-24 1993-06-18 Nec Corp 業務処理中データベース再編成処理方式
JP2616686B2 (ja) 1993-12-06 1997-06-04 日本電気株式会社 業務処理中データベース再編成方式
US5721915A (en) * 1994-12-30 1998-02-24 International Business Machines Corporation Interaction between application of a log and maintenance of a table that maps record identifiers during online reorganization of a database
US5687361A (en) * 1995-02-13 1997-11-11 Unisys Corporation System for managing and accessing a dynamically expanding computer database
US5778392A (en) * 1996-04-01 1998-07-07 Symantec Corporation Opportunistic tile-pulling, vacancy-filling method and apparatus for file-structure reorganization
US6105039A (en) * 1998-06-23 2000-08-15 Microsoft Corporation Generation and validation of reference handles
US6105038A (en) * 1998-06-23 2000-08-15 Microsoft Corporation Hysteresis system and method for achieving a mean constant cost per action in a computer system
US6122640A (en) * 1998-09-22 2000-09-19 Platinum Technology Ip, Inc. Method and apparatus for reorganizing an active DBMS table
JP4046893B2 (ja) 1999-05-28 2008-02-13 富士通株式会社 データベース複写装置及びデータベース複写方法並びにデータベース複写プログラムを記録したコンピュータ読み取り可能な記録媒体
US6343296B1 (en) * 1999-09-03 2002-01-29 Lucent Technologies Inc. On-line reorganization in object-oriented databases
CA2302981C (en) * 2000-03-29 2004-06-01 Ibm Canada Limited-Ibm Canada Limitee Online database table reorganization
US7000230B1 (en) * 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
WO2002098048A2 (en) * 2001-05-31 2002-12-05 Computer Associates Think, Inc. A method and system for online reorganization of databases
JP4183400B2 (ja) 2001-06-27 2008-11-19 株式会社日立製作所 データベースシステムとデータベース管理方法およびプログラム
US7228309B1 (en) * 2001-10-19 2007-06-05 Neon Enterprise Software, Inc. Facilitating maintenance of indexes during a reorganization of data in a database
FR2838214B1 (fr) * 2002-04-08 2004-05-28 Infotel Methode de gestion des reorganisations dans un ensemble de bases de donnees d'un systeme informatique d'information
WO2004025475A1 (ja) * 2002-09-10 2004-03-25 Annex Systems Incorporated データベースの再編成システム、並びに、データベース
JP4318940B2 (ja) 2002-10-08 2009-08-26 本田技研工業株式会社 圧縮機翼型
JP2004178035A (ja) * 2002-11-25 2004-06-24 Hitachi Ltd データベース運用管理方法
US7496572B2 (en) * 2003-07-11 2009-02-24 Bmc Software, Inc. Reorganizing database objects using variable length keys
US7516221B2 (en) * 2003-08-14 2009-04-07 Oracle International Corporation Hierarchical management of the dynamic allocation of resources in a multi-node system
WO2005086003A1 (ja) * 2004-03-08 2005-09-15 Annex Systems Incorporated データベース・システム
JP4390618B2 (ja) 2004-04-28 2009-12-24 富士通株式会社 データベース再編成プログラム、データベース再編成方法、及びデータベース再編成装置
US7519637B2 (en) * 2004-08-13 2009-04-14 Computer Associates Think, Inc. System and method for reorganizing a database
US7447717B2 (en) * 2004-10-07 2008-11-04 International Business Machines Corporation Method of changing the page size of a DB2 table space while keeping the object available
JP2008522254A (ja) * 2004-11-08 2008-06-26 イノパス・ソフトウェアー・インコーポレーテッド スタティック・ファイル・システムの差異検出および更新

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0324643A (ja) * 1989-06-20 1991-02-01 Hitachi Ltd データベースのページ割当て方式
JPH0520143A (ja) * 1991-07-17 1993-01-29 Nec Corp 情報処理装置
JPH0877050A (ja) * 1994-09-02 1996-03-22 Nippon Telegr & Teleph Corp <Ntt> データベース再構成装置及びデータベース再構成方法
JPH11102311A (ja) * 1997-09-26 1999-04-13 Fujitsu Ltd データベース再編成装置及びプログラム記憶媒体
JP2000222258A (ja) * 1999-02-04 2000-08-11 Internatl Business Mach Corp <Ibm> データベースの構造を変更する方法、データベース・アクセス要求の制御方法、オンラインシステム、データベース運用支援ミドルウエアを格納する記憶媒体、及び、移行ユーティリティを格納する記憶媒体
JP2004199152A (ja) * 2002-12-16 2004-07-15 Casio Comput Co Ltd 組織図編集装置およびプログラム

Also Published As

Publication number Publication date
US7797290B2 (en) 2010-09-14
JP4854973B2 (ja) 2012-01-18
US20060206543A1 (en) 2006-09-14

Similar Documents

Publication Publication Date Title
JP6708929B2 (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
US7418563B2 (en) Method for controlling storage device controller, storage device controller, and program
JP4864557B2 (ja) ソフトウェアの更新処理プログラム及び更新処理装置
US7966470B2 (en) Apparatus and method for managing logical volume in distributed storage systems
CN102272751B (zh) 在数据库环境通过背景同步的数据完整性
JP2005529410A (ja) 複数の同時にアクティブなファイルシステム
CN102591982A (zh) 执行增量sql服务器数据库备份的方法和系统
JP4693540B2 (ja) データベース再構成装置、およびデータベース再構成プログラム
JP2008146408A (ja) データ記憶装置、そのデータ再配置方法、プログラム
JP2000122902A (ja) ログ構造記憶先にデ―タを書き込む方法、媒体及びデ―タ記憶システム
JP4854973B2 (ja) 記憶制御プログラム、記憶制御方法、記憶制御装置および記憶制御システム
JP4755244B2 (ja) 情報生成方法、情報生成プログラム及び情報生成装置
JP2005148854A (ja) ファイルシステム及びプログラム
JP2010198528A (ja) ストレージシステム
JP4390618B2 (ja) データベース再編成プログラム、データベース再編成方法、及びデータベース再編成装置
JP2007102436A (ja) ストレージ制御装置およびストレージ制御方法
JP2005215940A (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法
JPH10124359A (ja) キャッシュ選択方法およびデータ処理システム
US8074100B2 (en) Method and apparatus for restore management
JPH11175376A (ja) データベースの更新方法、更新装置及び更新方法が書き込まれた記録媒体
JP2006189976A (ja) 記憶装置、そのデータ処理方法、そのデータ処理プログラム及びデータ処理システム
CN111858516A (zh) 数据处理方法及装置
JP2002132555A (ja) データベースアクセス方式,方法,および記録媒体
WO2006125024A1 (en) Method and apparatus for database unloading
JP2004240802A (ja) データ処理システム及びデータ処理方法、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110401

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: 20111025

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: 20111026

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

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees