(57)【要約】【課題】  高度な信頼性を維持しながら、サービスを停止せずにデータベースを再編成する。【解決手段】  複写元データベース１ａの再編成要求が入力されると、レコード複写手段３により複写元データベース１ａ内のページが順次選択され、選択されたページ内のレコードが複写先データベース２ａに複写される。さらに、レコード複写手段３により、複写元データベース１ａ内のページ毎の複写の進捗状況がページ状態管理テーブル４に設定される。その後、更新レコードの書き込み要求が入力されると、レコード書き込み手段５により、ページ状態管理テーブル４が参照され、複写元データベース１ａ内の書き込み対象ページが未複写の状態であれば複写元データベース１ａ内の該当ページに対して更新レコードが書き込まれる。また、書き込み対象ページが複写済の状態であれば複写元データベース１ａと複写先データベース２ａとに更新レコードが書き込まれる。【選択図】  図１
2005316624.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、複数のページそれぞれに対して格納すべきレコードが決められているデータベースを再編成処理を行わせるデータベース再編成プログラムにおいて、
前記コンピュータを、
前記複写元データベースの再編成要求に応じて、複写元データベース内のページを順次選択し、選択した前記ページ内のレコードを複写先データベースに複写すると共に、前記複写元データベース内のページ毎の複写の進捗状況をページ状態管理テーブルに設定するレコード複写手段、
更新レコードの書き込み要求に応じて前記ページ状態管理テーブルを参照し、前記複写元データベース内の書き込み対象ページが未複写の状態であれば前記複写元データベース内の該当ページに対して前記更新レコードを書き込み、前記書き込み対象ページが複写済の状態であれば前記複写元データベースと前記複写先データベースとに前記更新レコードを書き込むレコード書き込み手段、
として機能させることを特徴とするデータベース再編成プログラム。
【請求項２】
前記コンピュータを前記レコード書き込み手段として機能させる際、前記書き込み対象ページが複写中の状態であれば複写済に遷移するのを待ち、複写中から複写済の状態に遷移したときに、前記複写元データベースと前記複写先データベースとに前記更新レコードを書き込むことを特徴とする請求項１記載のデータベース再編成プログラム。
【請求項３】
前記複写元データベースは、格納すべきレコードの番号が予め規定されている複数のプライムページと、前記プライムページに格納できなかったレコードが格納される複数のオーバフローページとを有しており、
前記コンピュータを前記レコード複写手段として機能させる際、前記プライムページを順次選択し、選択された前記プライムページと、選択された前記プライムページに格納できなかったレコードが格納された前記オーバフローページとの複写処理を行うことを特徴とする請求項１記載のデータベース再編成プログラム。
【請求項４】
複数のページそれぞれに対して格納すべきレコードが決められているデータベースを再編成するデータベース再編成方法において、
レコード複写手段が、前記複写元データベースの再編成要求に応じて、複写元データベース内のページを順次選択し、選択した前記ページ内のレコードを複写先データベースに複写すると共に、前記複写元データベース内のページ毎の複写の進捗状況をページ状態管理テーブルに設定し、
レコード書き込み手段が、更新レコードの書き込み要求に応じて前記ページ状態管理テーブルを参照し、前記複写元データベース内の書き込み対象ページが未複写の状態であれば前記複写元データベース内の該当ページに対して前記更新レコードを書き込み、前記書き込み対象ページが複写済の状態であれば前記複写元データベースと前記複写先データベースとに前記更新レコードを書き込む、
ことを特徴とするデータベース再編成方法。
【請求項５】
複数のページそれぞれに対して格納すべきレコードが決められているデータベースを再編成するデータベース再編成装置において、
前記複写元データベースの再編成要求に応じて、複写元データベース内のページを順次選択し、選択した前記ページ内のレコードを複写先データベースに複写すると共に、前記複写元データベース内のページ毎の複写の進捗状況をページ状態管理テーブルに設定するレコード複写手段と、
更新レコードの書き込み要求に応じて前記ページ状態管理テーブルを参照し、前記複写元データベース内の書き込み対象ページが未複写の状態であれば前記複写元データベース内の該当ページに対して前記更新レコードを書き込み、前記書き込み対象ページが複写済の状態であれば前記複写元データベースと前記複写先データベースとに前記更新レコードを書き込むレコード書き込み手段と、
を有することを特徴とするデータベース再編成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータベースの再編成をするためのデータベース再編成プログラム、データベース再編成方法、及びデータベース再編成装置に関し、特にデータベースに対するトランザクションを継続したままデータベースの再編成を行うデータベース再編成プログラム、データベース再編成方法、及びデータベース再編成装置に関する。
【背景技術】
【０００２】
多くのデータベースシステムでは、効率的なデータ入出力環境を維持するためデータベースの再編成が必要となる。たとえば、以下のような目的で再編成が行われる。
・ページ内のレコード間にある空き領域の統合（フラグメンテーション解消）
・オーバフローページにあるレコードをプライムページに格納することによるアクセス性能向上
・データベース内においてレコードが満杯状態になる前の領域の拡張
従来の一般的な再編成処理では、まず、データベース中にある全てのレコードが中間ファイルに退避される。そこで、データベースの容量拡張等を実施した後、退避したデータが復元される。
【０００３】
図１０は、従来の一般的なデータベース再構築方法を示す図である。図１０には、データベース９１１のデータを再構築して、データベース９２１に格納する場合の例が示されている。
【０００４】
データベース９１１は、複数のプライムページが格納されたプライムページ格納領域９１１ａと複数のオーバフローページが格納されたオーバフローページ格納領域９１１ｂとを有している。プライムページは、レコードの基本的な格納領域である。各レコードを格納すべきプライムページは、インデックス９１２によって予め定義されている。
【０００５】
オーバフローページは、プライムページの空き容量が足りないために格納できなかったレコードを格納するための格納領域である。オーバフローページにレコードが格納された場合、そのレコードが本来格納されるべきプライムページから実際に格納されたオーバフローページに対して、ポインタが設定される。
【０００６】
このデータベース９１１を再構築する際には、まず、データベース９１１内のレコードが磁気テープ等の記録媒体９３０に退避される（ステップＳ１０１）。退避の順番は、インデックス情報に従ったプライムページの先頭から昇順で行われる。プライムページからポインタで示されたオーバフローページがある場合は、１つのプライムページのレコードを退避後、対応するオーバフローページのレコードを順に退避していく。この退避処理が最終ページまで繰り返される。
【０００７】
次に、インデックス９２２が再作成され、容量の拡張されたデータベース９２１が構築される（ステップＳ１０２）。作成されたインデックス９２２では、全てのレコードがプライムページ格納領域９２１ａ内に納めるように、レコードを格納するページが定義される。データベース９１１はストレージデバイス上で一旦削除され、その後領域拡張したデータベース９２１が構築される。そして、記録媒体９３０に退避したレコードをデータベース９２１に復元する（ステップＳ１０３）。
【０００８】
このようにしてデータベースを再構築することができる。新たに生成されたインデックス９２２の指定に沿ってデータベース９２１へのレコード格納が行われることにより、たとえば、より多くのプライムページが利用可能となり、アクセス性能が向上する。また、その後、レコード格納があった場合においても、ある程度プライムページに空きができるため、オーバフローページを切り出すことはなく、アクセス性能劣化を防止できる。
【０００９】
ただし、このようなデータベース再構築手法では、レコードを退避させてから復元するまでの間、データベース９１１に対する更新等の処理を停止する必要がある。これは、データベース再編成時にレコードを格納すると、データ保証ができないためである。そのため、２４時間連続して稼働させることが要求されるシステムには適用できない。そこで、データベースへのアクセスを伴う処理機能動作中にデータベース再編成を実行するための方式が必要となる。
【００１０】
図１１は、アクセスを停止せずにデータベース再編成を実行する方式を示す図である。この方式では、データベースを使用する処理機能からアクセスしているデータベース９４１（複写元）とは別に、新規に再編成を実施するためのデータベース９５１（複写先）を用意する。各データベース９４１，９５１には、対応するインデックス９４２，９５２が設けられている。また、データベース９４１は、複数のプライムページを格納するプライムページ格納領域９４１ａと、複数のオーバフローページを格納するオーバフローページ格納領域９４１ｂとを有している。同様に、データベース９５１は、複数のプライムページを格納するプライムページ格納領域９５１ａと、複数のオーバフローページを格納するオーバフローページ格納領域９５１ｂとを有している。なお、この例では、データベース９５１は、データベース９４１よりも記憶容量が拡張されているものとする。
【００１１】
そして、複写元のデータベース９４１の先頭ページから順に、格納されているレコードが複写先のデータベース９５１に複写され、データベースの再編成が実施される（ステップＳ１１１）。
【００１２】
このとき、複写元のデータベース９４１に対するレコードの更新を意図するトランザクション９６１を受け付けることができる。たとえば、トランザクション９６１によってプライムページ内のレコード（レコード番号「Ｒ１」）が変更され、オーバフローページにレコード（レコード番号「Ｒ３３」）が追加される（ステップＳ１１２）。再編成中にレコードの更新処理が行われると、その処理内容が更新後ログ９４３に記録される（ステップＳ１１３）。
【００１３】
ここで、この複写されたレコードに対して応用プログラムからの更新があった場合、複写のレコードに対する更新後ログ９４３を複写先のデータベース９５１のレコードに付け込む（ステップＳ１１４）。付け込みとは、更新されたレコードの内容をデータベース９５１に反映させる処理である。付け込みによりレコードの上書きを行うことで、整合性が保証される。このようなデータベースの再編成方式は、ＤＢｓｎａｐｐｅｒと呼ばれる（たとえば、特許文献１参照）。
【００１４】
なお、図１１に示す方式では、更新後ログ９４３を付け込むまでの間、最新性が保証できない。そのため、再編成後のデータベース９５１へのアクセスを伴うトランザクション９６２は、データベース９５１の参照であってもアクセスが拒否される（ステップＳ１１５）。図１１の例では、付け込み処理中に、レコード番号「Ｒ１１」のレコードの参照を伴うトランザクション９６２が行われている。このとき、複写先のデータベース９５１に該当レコードに対する複写が完了していないため、即時参照できない（タイムラグあり）。複写先のデータベース９５１に更新後ログ９４３の付け込みが完了すると、それ以降、そのレコードの参照が可能となる。
【００１５】
なお、データベース内のデータをブロック単位で複製し、ブロック毎に再編成が完了したか否かを管理することもできる。この場合、再編成が完了したブロックに対するアクセスは、複写先のデータベースに対して行われる。また、再編成が未完了のブロックに対するアクセスは、複写元のデータベースに対して行われる。そして、複写中のブロックに対するアクセスは、複写の完了を待ってから、複写先のデータベースに対して行われる（たとえば、特許文献２参照）。
【特許文献１】特開２０００−３３９２１０号公報
【特許文献２】特開平５−１５１０３７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかし、図１０に示した方式では、ログの付け込みを行う間、データベースにアクセスできない。すなわち、レコード更新してからログ反映するまでの間、そのレコードに対して最新性を保証できない。そのため、応用プログラムからの即時利用ができない。
【００１７】
なお、特許文献２記載の方式によれば、レコードへのアクセスを停止せずにデータベースの再編成が可能である。ただし、この方式では、システムに障害等が発生し、データベースの内容が壊れたとき、正しく復旧するのが困難である。すなわち、この方式では、複写されたブロックの内容を更新する場合、複写先のデータベースに対してのみレコードが書き込まれる。したがって、複写先のデータベースに対する更新処理のみが更新後ログとして記録される。
【００１８】
ここで、再編成の途中で複写元のデータベースに障害が発生すると、複写元のデータベースの内容が過去のバックアップ時の状態に戻される。その状態のデータベースに複写元のデータベースに対する更新後ログの内容を反映させても、複写先のデータベースに対して行われた更新処理の内容は反映されない。そのため、複写先のデータベースに対して書き込まれたレコードの保証が困難となる。したがって、この方式は、銀行の口座管理のような高度な信頼性を要求されるシステムでは利用することができない。
【００１９】
本発明はこのような点に鑑みてなされたものであり、高度な信頼性を維持しながら、サービスを停止せずにデータベースを再編成可能なデータベース再編成プログラム、データベース再編成方法、及びデータベース再編成装置を提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明では上記課題を解決するために、図１に示すようなデータベース再編成プログラムが提供される。本発明に係るデータベース再編成プログラムは、コンピュータに、複数のページそれぞれに対して格納すべきレコードが決められている複写元データベース１ａを再編成する処理を実行させるためのものである。このデータベース再編成プログラムを実行するコンピュータは、レコード複写手段３とレコード書き込み手段５とを有する。
【００２１】
レコード複写手段３は、複写元データベース１ａの再編成要求に応じて、複写元データベース１ａ内のページを順次選択し、選択したページ内のレコードを複写先データベース２ａに複写すると共に、複写元データベース１ａ内のページ毎の複写の進捗状況をページ状態管理テーブル４に設定すると、レコード書き込み手段５は、更新レコードの書き込み要求に応じてページ状態管理テーブル４を参照し、複写元データベース１ａ内の書き込み対象ページが未複写の状態であれば複写元データベース１ａ内の該当ページに対して更新レコードを書き込み、書き込み対象ページが複写済の状態であれば複写元データベース１ａと複写先データベース２ａとに更新レコードを書き込む。
【００２２】
このようなデータベース再編成プログラムを実行するコンピュータによれば、複写元データベース１ａの再編成要求が入力されると、レコード複写手段３により複写元データベース１ａ内のページを順次選択され、選択されたページ内のレコードが複写先データベース２ａに複写される。さらに、レコード複写手段３により、複写元データベース１ａ内のページ毎の複写の進捗状況がページ状態管理テーブル４に設定される。その後、更新レコードの書き込み要求が入力されると、レコード書き込み手段５により、ページ状態管理テーブル４が参照され、複写元データベース１ａ内の書き込み対象ページが未複写の状態であれば複写元データベース１ａ内の該当ページに対して更新レコードが書き込まれる。また、書き込み対象ページが複写済の状態であれば複写元データベース１ａと複写先データベース２ａとに更新レコードが書き込まれる。
【００２３】
また、上記課題を解決するために、複数のページそれぞれに対して格納すべきレコードが決められているデータベースを再編成するデータベース再編成方法において、レコード複写手段が、前記複写元データベースの再編成要求に応じて、複写元データベース内のページを順次選択し、選択した前記ページ内のレコードを複写先データベースに複写すると共に、前記複写元データベース内のページ毎の複写の進捗状況をページ状態管理テーブルに設定し、レコード書き込み手段が、更新レコードの書き込み要求に応じて前記ページ状態管理テーブルを参照し、前記複写元データベース内の書き込み対象ページが未複写の状態であれば前記複写元データベース内の該当ページに対して前記更新レコードを書き込み、前記書き込み対象ページが複写済の状態であれば前記複写元データベースと前記複写先データベースとに前記更新レコードを書き込む、ことを特徴とするデータベース再編成方法が提供される。
【００２４】
このようなデータベース再編成方法によれば、複写元データベースの再編成要求が入力されると、レコード複写手段により複写元データベース内のページが順次選択され、選択されたページ内のレコードが複写先データベースに複写される。さらに、レコード複写手段により、複写元データベース内のページ毎の複写の進捗状況がページ状態管理テーブルに設定される。その後、更新レコードの書き込み要求が入力されると、レコード書き込み手段により、ページ状態管理テーブルが参照され、複写元データベース内の書き込み対象ページが未複写の状態であれば複写元データベース内の該当ページに対して更新レコードが書き込まれる。また、書き込み対象ページが複写済の状態であれば複写元データベースと複写先データベースとに更新レコードが書き込まれる。
【００２５】
また、上記課題を解決するために、複数のページそれぞれに対して格納すべきレコードが決められているデータベースを再編成するデータベース再編成装置において、前記複写元データベースの再編成要求に応じて、複写元データベース内のページを順次選択し、選択した前記ページ内のレコードを複写先データベースに複写すると共に、前記複写元データベース内のページ毎の複写の進捗状況をページ状態管理テーブルに設定するレコード複写手段と、更新レコードの書き込み要求に応じて前記ページ状態管理テーブルを参照し、前記複写元データベース内の書き込み対象ページが未複写の状態であれば前記複写元データベース内の該当ページに対して前記更新レコードを書き込み、前記書き込み対象ページが複写済の状態であれば前記複写元データベースと前記複写先データベースとに前記更新レコードを書き込むレコード書き込み手段と、を有することを特徴とするデータベース再編成装置が提供される。
【００２６】
このようなデータベース再編成装置によれば、上記データベース編成プログラムを実行するコンピュータと同様の処理が実行される。
【発明の効果】
【００２７】
以上説明したように本発明では、ページ単位で複写を行い、書き込み対象ページが未複写の状態であれば複写元データベース内の該当ページに対して更新レコードを書き込み、複写済の状態であれば複写元データベースと複写先データベースとに更新レコードを書き込むようにした。そのため、データベースへのアクセスを伴う業務を停止せずに再編成が実現できると共に、システム障害時には複写元データベースに基づいてデータベースを容易に復旧できる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
【００２９】
図１は、実施の形態に適用される発明の概念図である。図１の例では、第１の記憶手段１に設けられた複写元データベース１ａを再構成し、第２の記憶手段２内に再構成された複写先データベース２ａを生成するものとする。複写元データベース１ａ内の記憶領域は、複数のページに分割されている。そして、各ページに格納すべきレコードが、インデックス１ｂで定義されている。同様に、複写先データベース２ａ内の記憶領域は、複数のページに分割されている。そして、各ページに格納すべきレコードが、インデックス２ｂで定義されている。また、複写元データベース１ａと複写先データベース２ａとに対してレコードの更新処理が行われると、更新処理の内容がログとして保存される。
【００３０】
なお、図１の例では、インデックス１ｂ，２ｂにおいて、レコード番号（Ｒｍ：ｍは０以上の整数）とページ番号（Ｒｎ：ｎは０以上の整数）との対応関係が示されている。各ページには、インデックス１ｂ，２ｂで対応付けられたレコード番号以下であり、且つ、ページ番号が１つ小さいページに対応付けられたレコード番号より大きなレコード番号を有するレコードが格納される。
【００３１】
レコード複写手段３は、複写元データベース１ａの再編成要求に応じて、複写元データベース１ａ内のページを順次選択する。そして、レコード複写手段３は、選択したページ内のレコードを複写先データベース２ａに複写する。また、レコード複写手段３は、複写元データベース１ａ内のページ毎の複写の進捗状況をページ状態管理テーブル４に設定する。
【００３２】
ページ状態管理テーブル４には、複写元データベース１ａ内のページ毎に、複写の状態が設定されている。複写の状態としては、未複写（図中「未」と示す）、複写中（図中「中」と示す）、及び複写済（図中「済」と示す）がある。
【００３３】
レコード書き込み手段５は、更新レコードの書き込み要求に応じてページ状態管理テーブル４を参照し、書き込み対象のページの状態に応じて、更新レコードの書き込み対象を判定する。具体的には、レコード書き込み手段５は、複写元データベース１ａ内の書き込み対象ページが未複写の状態であれば複写元データベース１ａ内の該当ページに対して更新レコードを書き込む。また、レコード書き込み手段５は、書き込み対象ページが複写済の状態であれば複写元データベース１ａと複写先データベース２ａとに更新レコードを書き込む。さらに、レコード書き込み手段５は、書き込み対象ページが複写中の状態であれば複写済に遷移するのを待ち、複写中から複写済の状態に遷移したときに、複写元データベース１ａと複写先データベース２ａとに更新レコードを書き込む。
【００３４】
このようなデータベース再編成装置によれば、複写元データベース１ａの再編成要求が入力されると、レコード複写手段３により複写元データベース１ａ内のページが順次選択され、選択されたページ内のレコードが複写先データベース２ａに複写される。さらに、レコード複写手段３により、複写元データベース１ａ内のページ毎の複写の進捗状況がページ状態管理テーブル４に設定される。
【００３５】
ここで、ページ番号（「Ｐ０」，「Ｐ１」，「Ｐ２」）が小さい順に、ページが選択されるものとする。図１には、ページ番号「Ｐ１」を複写しているときのページ状態管理テーブル４が示されている。この例では、ページ番号「Ｐ０」のページが複写済、ページ番号「Ｐ１」のページが複写中、ページ番号「Ｐ２」のページが未複写である。
【００３６】
データベース再編成処理中に、更新レコードの書き込み要求が入力されると、レコード書き込み手段５により、ページ状態管理テーブル４が参照され、書き込み対象のページの状態が判断される。
【００３７】
たとえば、レコード番号「Ｒ３」が更新レコード６ａとして入力された場合、複写元データベース１ａのページ番号「Ｐ０」のページが書き込み対象となる。図１の例では、ページ番号「Ｐ０」のページは、複写済の状態である。そのため、更新レコード６ａは、複写元データベース１ａと複写先データベース２ａとに書き込まれる。
【００３８】
レコード番号「Ｒ４」が更新レコード６ｂとして入力された場合、複写元データベース１ａのページ番号「Ｐ１」のページが書き込み対象となる。図１の例では、ページ番号「Ｐ１」のページは、複写中の状態である。そのため、該当ページの状態が複写済になるのを待ち、更新レコード６ａが複写元データベース１ａと複写先データベース２ａとに書き込まれる。
【００３９】
レコード番号「Ｒ５」が更新レコード６ｃとして入力された場合、複写元データベース１ａのページ番号「Ｐ２」のページが書き込み対象となる。図１の例では、ページ番号「Ｐ２」のページは、未複写の状態である。そのため、更新レコード６ｃは複写元データベース１ａに書き込まれる。
【００４０】
このようにして、レコードの書き込みを停止することなく、データベースの再編成が行われる。なお、ページが複写中の場合、書き込みの待機時間が発生するが、１ページの複写処理は短時間で実行できるため、業務を停止させる程の影響はない。しかも、複写済のページに対する更新の場合、複写元データベース１ａに対しても書き込みが行われるため、ジョブキャンセル時等のデータベースの復旧が可能となる。
【００４１】
以下、本発明の実施の形態を具体的に説明する。
図２は、本発明の実施の形態のシステム構成例を示す図である。本発明の実施の形態では、複数のホストコンピュータ１００，２００，３００，４００と複数の端末装置２１，２２，・・・とがネットワーク１０を介して接続されている。ホストコンピュータ１００，２００，３００，４００には、ストレージデバイス５００，６００が接続されている。また、ホストコンピュータ１００と他のホストコンピュータ２００，３００，４００とは、高速の通信回線で互いに接続されている。ホストコンピュータ２００，３００，４００は、その通信回線を介して、ホストコンピュータ１００内の共有メモリにアクセスできる。
【００４２】
ホストコンピュータ１００，２００，３００，４００は、端末装置２１，２２，・・・からの要求に応じて、ストレージデバイス５００，６００内に構築されたデータベースに対するトランザクションを実行する。また、少なくとも１つのホストコンピュータは、データベースを再構成するための処理機能を有している。本実施の形態では、ホストコンピュータ１００がデータベースの再構成を行うものとする。ホストコンピュータ１００は、データベースの再構成を行うために、以下の様なハードウェア構成を有している。
【００４３】
図３は、データベースの再構成を行うホストコンピュータのハードウェア構成例を示す図である。ホストコンピュータ１００は、ＣＰＵ(Central Processing Unit)１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０１ａを介してＲＡＭ(Random Access Memory)１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、ストレージデバイスインタフェース１０７、通信インタフェース１０８、およびホストコンピュータ間通信インタフェース１０９が接続されている。
【００４４】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。
【００４５】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０１ａを介してＣＰＵ１０１に送信する。
【００４６】
共有メモリ１０６は、他のホストコンピュータ２００，３００，４００との間で共有可能な記録媒体である。共有メモリ１０６としては、たとえば、バッテリでバックアップされた半導体メモリが使用される。データベースの再編成時には、共有メモリ１０６内に、データベース内のブロック毎の状態を示すページ状態管理テーブルが格納される。
【００４７】
ストレージデバイスインタフェース１０７は、ストレージデバイス５００，６００に接続されている。ストレージデバイスインタフェース１０７は、ＣＰＵ１０１からの指示に従って、ストレージデバイス５００，６００に対するデータの入出力を行う。
【００４８】
通信インタフェース１０８は、ネットワーク１０に接続されている。通信インタフェース１０８は、ネットワーク１０を介して、端末装置２１，２２，・・・との間でデータの送受信を行う。
【００４９】
ホストコンピュータ間通信インタフェース１０９は、他のホストコンピュータ２００，３００，４００に接続されている。ホストコンピュータ間通信インタフェース１０９は、他のホストコンピュータ２００，３００，４００との間でデータの送受信を行う。たとえば、ホストコンピュータ間通信インタフェース１０９は、他のホストコンピュータ２００，３００，４００に対して共有メモリ１０６に格納されている情報を送信する。
【００５０】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には、ホストコンピュータ１００のハードウェア構成を説明したが、他のホストコンピュータ２００，３００，４００も同様のハードウェア構成で実現することができる。ただし、ホストコンピュータ２００，３００，４００には、共有メモリは搭載されていなくてもよい。
【００５１】
以下、図２，３に示す構成のシステムにおけるデータベース再編成処理について詳細に説明する。
図４は、本実施の形態を実現するための機能を示すブロック図である。図４には、ストレージデバイス５００内に構築されているデータベースを、ストレージデバイス６００内に再編成する場合の例が示されている。
【００５２】
ストレージデバイス５００には、インデックス５１０、複写元のデータベース５２０、更新前ログ５３０、及び更新後ログ５４０が含まれる。データベース再編成を実行する以前は、ストレージデバイス５００内の各要素を用いて端末装置２１，２２，・・・に対するサービスが提供される。
【００５３】
インデックス５１０には、データベース５２０内に設けられた各ページに格納すべきレコードの識別番号（レコード番号）が定義されている。データベース５２０は、複数のページに分割された記憶領域を有している。各ページには、インデックス５１０で対応付けられたレコードが格納される。更新前ログ５３０には、データベース５２０内のレコードが更新された際の更新前のレコードの内容が記録される。更新後ログ５４０には、データベース５２０内のレコードが更新された際の更新後のレコードの内容が記録される。
【００５４】
ストレージデバイス６００には、インデックス６１０、複写先のデータベース６２０、更新前ログ６３０、及び更新後ログ６４０が含まれる。なお、ストレージデバイス６００内の各要素は、データベース再編成処理が開始された際に生成される。
【００５５】
インデックス６１０には、データベース６２０内に設けられた各ページに格納すべきレコードの識別番号（レコード番号）が定義されている。データベース６２０は、複数のページに分割された記憶領域を有している。各ページには、インデックス６１０で対応付けられたレコードが格納される。更新前ログ６３０には、データベース６２０内のレコードが更新された際の更新前のレコードの内容が記録される。更新後ログ６４０には、データベース６２０内のレコードが更新された際の更新後のレコードの内容が記録される。
【００５６】
ホストコンピュータ１００は、複写トランザクション処理部１１０、ページ状態管理テーブル１２０、およびオンライントランザクション処理部１３０を有する。
複写トランザクション処理部１１０は、データベースの再編成処理を行う。具体的には、複写トランザクション処理部１１０は、データベース５２０の再編成要求を受け付けると、ストレージデバイス６００内に、前述のインデックス６１０、複写先のデータベース６２０、更新前ログ６３０、及び更新後ログ６４０を生成する。このとき、複写先のデータベース６２０の記憶容量が複写元のデータベース５２０の記憶容量よりも大きくなるように、インデックス６１０内の情報を設定する。そして、複写トランザクション処理部１１０は、データベース５２０内のレコードをページ単位でデータベース６２０に複写する。その際の各ページの状態は、ページ状態管理テーブル１２０に設定される。
【００５７】
ページ状態管理テーブル１２０には、データベース再編成中に、複写元のデータベース５２０内の各ページの状態が登録される。ページの状態は、「未複写」、「複写中」、「複写済」がある。
【００５８】
オンライントランザクション処理部１３０は、端末装置２１，２２，・・・からの要求に応じてデータベース操作のトランザクションを実行する。なお、データベース再構成処理中においては、オンライントランザクション処理部１３０は、ページ状態管理テーブル１２０を参照し、アクセス対象とすべきデータベースを判断する。
【００５９】
次に、インデックス５１０とデータベース５２０との関係について詳細に説明する。
図５は、インデックスとデータベースとのデータ構造を示す図である。インデックス５１０には、各ページのページ番号に対応付けて、そのページに格納すべきレコードのレコード番号が定義されている（ページ番号をＰｍ、レコード番号をＲｎで表している）。
【００６０】
効率的なトランザクション処理を行うために、レコード番号の小さいレコードほど、ページ番号の小さいページに割り当てられる。そこで、インデックス５１０では、各ページのページ番号に対応付けて、そのページに格納されるレコードに対するレコード番号の最大値が設定されている。
【００６１】
図５の例ではインデックス５１０において、ページ番号「Ｐ０」に対応付けてレコード番号「Ｒ３」が設定されている。これは、ページ番号「Ｐ０」のページに対して、レコード番号が「Ｒ０ｘ」〜「Ｒ３ｘ」（ｘは０以上の整数）のレコードが登録されることを意味する。
【００６２】
また、ページ番号「Ｐ１」に対応付けてレコード番号「Ｒ４」が設定されている。これは、ページ番号「Ｐ１」のページに対して、レコード番号「Ｒ４ｘ」のレコードが登録されることを意味する。
【００６３】
ページ番号「Ｐ２」に対応付けてレコード番号「Ｒ６」が設定されている。これは、ページ番号「Ｐ２」のページに対して、レコード番号が「Ｒ５ｘ」，「Ｒ６ｘ」のレコードが登録されることを意味する。
【００６４】
なお、データベース５２０がネットワークデータベース（ＮＤＢ）として利用される場合、各レコードには、木構造で互いに関連付けられた複数のデータが含まれる。この場合、データベース５２０でのデータ間の関連付けは、複写先のデータベース６２０で再現される。
【００６５】
データベース５２０には、複数のプライムページを格納するためのプライムページ格納領域５２１と複数のオーバフローページを格納するためのオーバフローページ格納領域５２２とが設けられている。プライムページは、インデックス５１０に設定されている各ページ番号に対応する記憶領域である。各プライムページには、インデックス５１０で定義されたレコード番号のレコードのみが格納できる。
【００６６】
オーバフローページは、プライムページの容量不足によって、レコード番号に対応するプライムページに格納できなかったレコードを格納するための記憶領域である。オーバフローページにレコードが格納された場合、そのレコードのレコード番号に対応するプライムページ内に、オーバフローページへのポインタが設定される。そのポインタを参照することで、レコードが格納されたオーバフローページを特定できる。
【００６７】
このように、各プライムページには、格納可能なレコードのレコード番号が予め指定されている。そして、１つのプライムページにレコードが格納しきれなくなると、レコードがオーバフローページに格納される。
【００６８】
しかし、オーバフローページに格納されるレコードの量が増加すると、データベース５２０へのアクセス効率が悪化する。すなわち、任意のレコードにアクセスする場合、オンライントランザクション処理部１３０は、まずインデックス５１０を参照して、レコードが登録されているプライムページを判断する。そして、オンライントランザクション処理部１３０は、該当するプライムページからアクセス対象のレコードを検索する。
【００６９】
ここで、アクセス対象のレコードが見つからない場合、オンライントランザクション処理部１３０は、プライムページに登録されているポインタを参照して、関連付けられたオーバフローページを判断する。そして、オンライントランザクション処理部１３０は、該当するオーバフローページからアクセス対象のレコードを検索する。
【００７０】
このように、オーバフローページに格納されたページにアクセスする場合、オンライントランザクション処理部１３０において２段階の検索処理が行われる。そのため、アクセスの処理効率が低下する。
【００７１】
そこで、オーバフローページに格納されたレコードの量が増加した場合、プライムページの容量を拡張するように、データベース再編成が行われる。データベースを再編成する際には、データベース５２０内の各レコードがページ単位でデータベース６２０に複写される。その際、データベース５２０内のプライムページの状態が、ページ状態管理テーブル１２０で管理される。
【００７２】
図６は、ページ状態管理テーブルのデータ構造例を示す図である。ページ状態管理テーブル１２０には、データベース５２０内のプライムページのページ番号に対応付けて、そのページの状態が設定されている。状態には、未複写（図中「未」と示す）、複写中（図中「中」と示す）、及び複写済（図中「済」と示す）がある。未複写の状態とは、データベース５２０からデータベース６２０へのレコードの複写処理が行われていないことを示す。複写中の状態とは、データベース５２０からデータベース６２０へのレコードの複写中であることを示す。複写済みの状態とは、データベース５２０からデータベース６２０へのレコードの複写が完了したことを示す。
【００７３】
なお、本実施の形態では、オンライントランザクションを継続して実行しながらデータベース再編成処理を行うことができる。以下、データベース再構成処理と、データベース再構成中のオンライントランザクションについて具体的に説明する。
【００７４】
図７は、データベース再編成処理の手順を示すフローチャートである。以下、図７に示す処理をステップ番号に沿って説明する。
［ステップＳ１１］複写トランザクション処理部１１０は、ストレージデバイス６００にインデックス６１０を作成する。このインデックス６１０では、プライムページの数を増加させる。すなわち、データベース５２０のプライムページよりも多数のプライムページ格納領域６２１について定義される。プライムページの数が増加することにより、データベースの容量が増加する。
【００７５】
［ステップＳ１２］複写トランザクション処理部１１０は、移行先ボリュームを決定する。本実施の形態では、ストレージデバイス６００を移行先ボリュームとする。
［ステップＳ１３］複写トランザクション処理部１１０は、ページ状態管理テーブル１２０の全てのページの状態を「未複写」にする。
【００７６】
［ステップＳ１４］複写トランザクション処理部１１０は、データベース５２０のプライムページから、最もページ番号が小さい未複写のページを選択する。
［ステップＳ１５］複写トランザクション処理部１１０は、ページ状態管理テーブル１２０におけるステップＳ１４で選択したプライムページの状態を、「複写中」に変更する。
【００７７】
［ステップＳ１６］複写トランザクション処理部１１０は、複写元のデータベース５２０内のステップＳ１４で選択したプライムページ内のレコードを、ストレージデバイス６００のデータベース６２０に複写する。この際の複写先のプライムページは、ステップＳ１１で作成したインデックス６１０に従う。また、複写トランザクション処理部１１０は、ステップＳ１４で選択したプライムページからポインタで指し示されたオーバフローページに格納されたレコードも、同様にデータベース６２０に複写する。
【００７８】
［ステップＳ１７］複写トランザクション処理部１１０は、ステップＳ１４で選択されたプライムページ及びポインタで関連付けられたオーバフローページに格納されていた全てのレコードを複写したか否かを判断する。ページ内の全てのレコード複写が完了したら、処理がステップＳ１８に進められる。複写していないレコードがある場合、処理がステップＳ１６に進められ、該当レコードの複写が行われる。
【００７９】
［ステップＳ１８］複写トランザクション処理部１１０は、ページ状態管理テーブル１２０におけるステップＳ１４で選択したプライムページの状態を、「複写済」に変更する。
【００８０】
［ステップＳ１９］複写トランザクション処理部１１０は、データベース５２０内の全てのページに対する複写処理が完了したか否かを判断する。全てのページの複写が完了した場合、処理が終了する。複写していないページがある場合、処理がステップＳ１４に進められ、該当ページの複写が行われる。
【００８１】
このように、複写トランザクション処理部１１０がページ単位で複写を行い、ページ状態管理テーブル１２０における複写対象のページの状態を適宜更新する。これにより、ページ状態管理テーブル１２０を参照することで、オンライントランザクション処理部１３０が各プライムページの状態を認識することができる。オンライントランザクション処理部１３０が、プライムページの状態を認識することにより、データベース再構成中であっても、データベースに対するレコード更新のトランザクションが可能となる。
【００８２】
図８は、データベース再構成中のレコード更新処理の手順を示すフローチャートである。以下、図８に示す処理をステップ番号に沿って説明する。
［ステップＳ２１］オンライントランザクション処理部１３０は、インデックス５１０を参照し、処理対象のレコードが格納されているプライムページを判断する。そして、オンライントランザクション処理部１３０は、ページ状態管理テーブル１２０を参照し、該当するプライムページの状態が複写中か否かを判断する。複写中であれば、処理がステップＳ２２に進められる。複写中でなければ、処理がステップＳ２３に進められる。
【００８３】
［ステップＳ２２］アクセス対象のプライムページが複写中の場合、オンライントランザクション処理部１３０は、所定時間待機後処理をステップＳ２１に進め、再度プライムページの状態を判断する。
【００８４】
［ステップＳ２３］アクセス対象のプライムページが複写中でなければ、オンライントランザクション処理部１３０は、複写元のデータベース５２０から更新対象のレコードをリードする。
【００８５】
［ステップＳ２４］オンライントランザクション処理部１３０は、ステップＳ２３でリードしたレコードの内容を更新し、データベース５２０にライトする。
［ステップＳ２５］オンライントランザクション処理部１３０は、ページ状態管理テーブル１２０を参照し、更新対象のプライムページの状態が複写済か否かを判断する。複写済みであれば、処理がステップＳ２６に進められる。複写済でなければ、処理が終了する。
【００８６】
［ステップＳ２６］オンライントランザクション処理部１３０は、複写先のデータベース６２０から更新対象のレコードをリードする。
［ステップＳ２７］オンライントランザクション処理部１３０は、ステップＳ２６でリードしたレコードの内容を更新し、データベース６２０にライトする。その後、処理が終了する。
【００８７】
このように、更新対象となるプライムページの状態に応じて、アクセスするデータベースを判断することで、データベース再編成中であってもオンライントランザクションが可能となる。
【００８８】
図９は、データベース更新処理とオンライントランザクションとが同時に実行された場合の処理を示す概念図である。システム管理者からの操作入力等によってデータベース５２０の再編成要求が出されると、ストレージデバイス６００内にインデックス６１０とデータベース６２０とが生成される。データベース６２０は、複数のプライムページを格納するプライムページ格納領域６２１と複数のオーバフローページを格納するオーバフローページ格納領域６２２を含んでいる。
【００８９】
その後、複写トランザクション処理部１１０によって、複写元のデータベース５２０から複写先のデータベース６２０へのレコードの複写が開始される。レコードの複写は、１つのプライムページ毎に生成される複写トランザクション１１１により実行される。
【００９０】
複写トランザクション１１１がスタートすると、ページ状態管理テーブル１２０内の複写対象のプライムページ（ページ番号が小さいプライムページから順に、処理対象となる）の状態が複写中に変更され、複写が開始する（ステップＳ３１）。図９の例では、ページ番号が「Ｐ０」のプライムページの状態が複写中（図中「中」と示す）に変更されている。
【００９１】
次に、複写トランザクション１１１では、複写元のデータベース５２０内の複写対象の
プライムページ、及びそのプライムページからポインタで関連付けられたオーバフローページから、順次レコードが読み出される（ステップＳ３２）。図９の例では、プライムページからレコード番号「Ｒ１」，「Ｒ２」のレコードが読み出され、オーバフローページからレコード番号「Ｒ３」のレコードが読み出される。
【００９２】
次に、読み出されたレコードの内容が、インデックス６１０に従って複写先のデータベース６２０に書き込まれる（ステップＳ３３）。図９の例では、複写先のデータベース６２０に対するインデックス６１０において、レコード番号「Ｒ１」，「Ｒ２」，「Ｒ３」のレコードは、それぞれページ番号「Ｐ０」，「Ｐ１」，「Ｐ２」に対応付けられている。したがって、レコード番号「Ｒ１」のレコードはページ番号「Ｐ０」のプライムページに書き込まれ、「Ｒ２」のレコードはページ番号「Ｐ１」のプライムページに書き込まれ、「Ｒ３」のレコードはページ番号「Ｐ２」のプライムページに書き込まれる。
【００９３】
複写先のデータベース６２０に複写元のデータベース５２０の「Ｐ０」のプライムページのレコードが全て格納されると、ページ状態管理テーブル１２０における該当ページの状態が、複写中から複写済（図中「済」と示す）に変更される。これにより、１つのプライムページに対する複写トランザクションが終了する。
【００９４】
複写トランザクション処理部１１０は、他のプライムページ（「Ｐ１」，「Ｐ２」）に対する同様の複写トランザクションを繰り返し実行する。これにより、複写元のデータベース５２０の先頭ページから最終ページまでのレコード複写が実施される。
【００９５】
ここで、オンライントランザクション処理部１３０が端末装置２１からレコードの更新の処理要求を受け取ると、オンライントランザクション１３１が開始される。オンライントランザクション１３１では、複写元のデータベース５２０にレコードが追加される（ステップＳ４１）。また、ページ状態管理テーブル１２０が参照され、書き込み対象のプライムページの状態が複写済の場合、複写先のデータベース６２０にレコードが追加される（ステップＳ４２）。なお、複写先のデータベース６２０にレコード追加をする際のページ番号は、複写先のデータベース６２０のインデックス６１０に基づいて判断される。
【００９６】
ページ状態が複写中の場合は、排他制御によりオンライントランザクション１３１を待機させる。そして、複写が完了しページ状態が複写済になると、複写先のデータベース６２０にレコードが追加される。
【００９７】
ページ状態が未複写の場合は、複写先のデータベース６２０へのレコードの格納処理は行われない。すなわち、複写元のデータベース５２０だけにレコードが格納される。この場合、複写トランザクション１１１により複写元のデータベース５２０から複写先のデータベース６２０にページの内容が複写され、論理的な等価性が保証される。
【００９８】
このように、再編成単位を最小単位のページ単位にしたことで、オンラインサービスを停止することなくデータベース再編成が可能となる。しかも、複写済のページに対して更新を行う場合、複写元のデータベース５２０と複写先のデータベース６２０との双方にレコードが書き込まれる。このとき、オンライントランザクション処理部１３０により、書き込まれたレコードの内容を含むログが更新後ログ５４０に記録される。更新後ログ５４０にレコードが記録されることで、ホストコンピュータ１００が異常終了等によりデータベース５２０の内容が不完全なものとなっても、データベース５２０の内容を容易に復旧することができる。
【００９９】
さらに、本実施の形態では、レコード更新時において、オンラインで使用している複写元のデータベース５２０とオンライン再編成対象の複写先のデータベース６２０とへのレコードの書き込みを、同一トランザクションで処理している。これにより、ジョブキャンセル等があっても、元のデータを保証できる。
【０１００】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ホストコンピュータが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ(Digital Versatile Disc)、ＤＶＤ−ＲＡＭ(Random Access Memory)、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)、ＣＤ−Ｒ(Recordable)／ＲＷ(ReWritable)などがある。光磁気記録媒体には、ＭＯ(Magneto-Optical disk)などがある。
【０１０１】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１０２】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１０３】
（付記１）  コンピュータに、複数のページそれぞれに対して格納すべきレコードが決められているデータベースを再編成処理を行わせるデータベース再編成プログラムにおいて、
前記コンピュータを、
前記複写元データベースの再編成要求に応じて、複写元データベース内のページを順次選択し、選択した前記ページ内のレコードを複写先データベースに複写すると共に、前記複写元データベース内のページ毎の複写の進捗状況をページ状態管理テーブルに設定するレコード複写手段、
更新レコードの書き込み要求に応じて前記ページ状態管理テーブルを参照し、前記複写元データベース内の書き込み対象ページが未複写の状態であれば前記複写元データベース内の該当ページに対して前記更新レコードを書き込み、前記書き込み対象ページが複写済の状態であれば前記複写元データベースと前記複写先データベースとに前記更新レコードを書き込むレコード書き込み手段、
として機能させることを特徴とするデータベース再編成プログラム。
【０１０４】
（付記２）  前記コンピュータを前記レコード書き込み手段として機能させる際、前記書き込み対象ページが複写中の状態であれば複写済に遷移するのを待ち、複写中から複写済の状態に遷移したときに、前記複写元データベースと前記複写先データベースとに前記更新レコードを書き込むことを特徴とする付記１記載のデータベース再編成プログラム。
【０１０５】
（付記３）  前記コンピュータを前記レコード複写手段として機能させる際、前記再編成要求を受け取った際に、前記ページ状態管理テーブルにおいて全てのページの状態を未複写とし、複写を開始したページの状態を複写中に変更し、複写が完了したページの状態を複写済にすることを特徴とする付記１記載のデータベース再編成プログラム。
【０１０６】
（付記４）  前記複写元データベースは、格納すべきレコードの番号が予め規定されている複数のプライムページと、前記プライムページに格納できなかったレコードが格納される複数のオーバフローページとを有しており、
前記コンピュータを前記レコード複写手段として機能させる際、前記プライムページを順次選択し、選択された前記プライムページと、選択された前記プライムページに格納できなかったレコードが格納された前記オーバフローページとの複写処理を行うことを特徴とする付記１記載のデータベース再編成プログラム。
【０１０７】
（付記５）  前記コンピュータを前記レコード複写手段として機能させる際、選択された前記プライムページの複写処理と、選択された前記プライムページに格納できなかったレコードが格納された前記オーバフローページの複写処理とを、同一トランザクションで実行することを特徴とする付記４記載のデータベース再編成プログラム。
【０１０８】
（付記６）  前記コンピュータを前記レコード複写手段として機能させる際、前記プライムページを選択したとき、選択された前記プライムページの状態を複写中に変更し、選択された前記プライムページ及び選択された前記プライムページに格納できなかったレコードが格納された前記オーバフローページとの複写処理が共に完了したとき、選択された前記プライムページの状態を複写済に変更することを特徴とする付記４記載のデータベース再編成プログラム。
【０１０９】
（付記７）  複数のページそれぞれに対して格納すべきレコードが決められているデータベースを再編成するデータベース再編成方法において、
レコード複写手段が、前記複写元データベースの再編成要求に応じて、複写元データベース内のページを順次選択し、選択した前記ページ内のレコードを複写先データベースに複写すると共に、前記複写元データベース内のページ毎の複写の進捗状況をページ状態管理テーブルに設定し、
レコード書き込み手段が、更新レコードの書き込み要求に応じて前記ページ状態管理テーブルを参照し、前記複写元データベース内の書き込み対象ページが未複写の状態であれば前記複写元データベース内の該当ページに対して前記更新レコードを書き込み、前記書き込み対象ページが複写済の状態であれば前記複写元データベースと前記複写先データベースとに前記更新レコードを書き込む、
ことを特徴とするデータベース再編成方法。
【０１１０】
（付記８）  複数のページそれぞれに対して格納すべきレコードが決められているデータベースを再編成するデータベース再編成装置において、
前記複写元データベースの再編成要求に応じて、複写元データベース内のページを順次選択し、選択した前記ページ内のレコードを複写先データベースに複写すると共に、前記複写元データベース内のページ毎の複写の進捗状況をページ状態管理テーブルに設定するレコード複写手段と、
更新レコードの書き込み要求に応じて前記ページ状態管理テーブルを参照し、前記複写元データベース内の書き込み対象ページが未複写の状態であれば前記複写元データベース内の該当ページに対して前記更新レコードを書き込み、前記書き込み対象ページが複写済の状態であれば前記複写元データベースと前記複写先データベースとに前記更新レコードを書き込むレコード書き込み手段と、
を有することを特徴とするデータベース再編成装置。
【０１１１】
（付記９）  コンピュータに、複数のページそれぞれに対して格納すべきレコードが決められているデータベースを再編成処理を行わせるデータベース再編成プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータを、
前記複写元データベースの再編成要求に応じて、複写元データベース内のページを順次選択し、選択した前記ページ内のレコードを複写先データベースに複写すると共に、前記複写元データベース内のページ毎の複写の進捗状況をページ状態管理テーブルに設定するレコード複写手段、
更新レコードの書き込み要求に応じて前記ページ状態管理テーブルを参照し、前記複写元データベース内の書き込み対象ページが未複写の状態であれば前記複写元データベース内の該当ページに対して前記更新レコードを書き込み、前記書き込み対象ページが複写済の状態であれば前記複写元データベースと前記複写先データベースとに前記更新レコードを書き込むレコード書き込み手段、
として機能させることを特徴とするデータベース再編成プログラムを記録したコンピュータ読み取り可能な記録媒体。
【図面の簡単な説明】
【０１１２】
【図１】実施の形態に適用される発明の概念図である。
【図２】本発明の実施の形態のシステム構成例を示す図である。
【図３】データベースの再構成を行うホストコンピュータのハードウェア構成例を示す図である。
【図４】本実施の形態を実現するための機能を示すブロック図である。
【図５】インデックスとデータベースとのデータ構造を示す図である。
【図６】ページ状態管理テーブルのデータ構造例を示す図である。
【図７】データベース再編成処理の手順を示すフローチャートである。
【図８】データベース再構成中のレコード更新処理の手順を示すフローチャートである。
【図９】データベース更新処理とオンライントランザクションとが同時に同時に実行された場合の処理を示す概念図である。
【図１０】従来の一般的なデータベース再構築方法を示す図である。
【図１１】アクセスを停止せずにデータベース再編成を実行する方式を示す図である。
【符号の説明】
【０１１３】
１  第１の記憶手段
１ａ  複写元データベース
１ｂ  インデックス
２  第２の記憶手段
２ａ  複写先データベース
２ｂ  インデックス
３  レコード複写手段
４  ページ状態管理テーブル
５  レコード書き込み手段
６ａ，６ｂ，６ｃ  更新レコード
【図１】
2005316624.tif 000003
【図２】
2005316624.tif 000004
【図３】
2005316624.tif 000005
【図４】
2005316624.tif 000006
【図５】
2005316624.tif 000007
【図６】
2005316624.tif 000008
【図７】
2005316624.tif 000009
【図８】
2005316624.tif 000010
【図９】
2005316624.tif 000011
【図１０】
2005316624.tif 000012
【図１１】
2005316624.tif 000013