第1のボリュームに格納された元データベースのデータをコピーして第2のボリュームにコピーデータベースを作成するコピー部と、アプリケーションプログラムにより前記元データベースのデータのうちコピー中またはコピー済みのデータが更新されるごとに、更新後の値の情報および更新されたデータを識別するための情報を含む更新ログを更新ログ記憶部に記憶させるアクセス先決定部と、前記コピー部による前記コピーデータベースの作成が終わり、かつ前記更新ログ記憶部に記憶された前記更新ログの数が閾値より多いと、前記元データベースの排他ロックを取得せず、前記アプリケーションによる前記元データベースのデータの更新が許可され更新に応じた前記アクセス先決定部による前記更新ログの生成が継続されたまま、前記更新ログ記憶部に記憶された前記更新ログを1つずつ前記コピーデータベースに適用するとともに適用した前記更新ログを前記更新ログ記憶部から削除する処理を前記更新ログ記憶部に記憶された前記更新ログの数が閾値以下となるまで繰り返す初期同期部と、前記コピー部による前記コピーデータベースの作成が終わり、かつ前記更新ログ記憶部に記憶された前記更新ログの数が閾値以下であると、前記元データベースの排他ロックを取得して前記元データベースのデータに対する更新および参照を禁止し、前記更新ログ記憶部に記憶された前記更新ログを1つずつ前記コピーデータベースに適用するとともに適用後の前記更新ログを前記更新ログ記憶部から削除し、前記更新ログ記憶部に記憶された前記更新ログの数がゼロになると、前記元データベースの前記排他ロックを開放することにより、前記元データベースと前記コピー部により作成された前記コピーデータベースとを同期する最終同期部と、前記元データベースと前記コピー部により作成された前記コピーデータベースとが前記最終同期部により同期されると、前記元データベースおよび前記コピーデータベースのいずれかを再編成する再編成部と、を備えたデータベース装置。前記再編成部は、前記元データベースと前記コピー部により作成された前記コピーデータベースとが前記最終同期部により同期されると、前記コピーデータベースを再編成し、前記初期同期部は、前記再編成部による前記コピーデータベースの再編成が終わり、かつ前記更新ログ記憶部に記憶された前記更新ログの数が閾値より多いと、前記元データベースの排他ロックを取得せずに前記更新ログ記憶部に記憶された前記更新ログを1つずつ前記コピーデータベースに適用するとともに適用後の前記更新ログを前記更新ログ記憶部から削除する処理を前記更新ログ記憶部に記憶された前記更新ログの数が閾値以下となるまで繰り返し、前記最終同期部は、前記再編成部による前記コピーデータベースの再編成が終わり、かつ前記更新ログ記憶部に記憶された前記更新ログの数が閾値以下であると、前記元データベースの排他ロックを取得して前記更新ログ記憶部に記憶された前記更新ログを1つずつ前記コピーデータベースに適用するとともに適用後の前記更新ログを前記更新ログ記憶部から削除し、前記更新ログ記憶部に記憶された前記更新ログの数がゼロになると、前記元データベースの前記排他ロックを開放することにより、前記元データベースと前記再編成部により再編成された前記コピーデータベースとを同期し、前記アクセス先決定部は、前記元データベースと前記再編成部により再編成された前記コピーデータベースとが前記最終同期部により同期される前は前記元データベースをアプリケーションプログラムのアクセス先とする一方、前記元データベースと前記再編成部により再編成された前記コピーデータベースとが前記最終同期部により同期された後は、前記コピーデータベースをアプリケーションプログラムのアクセス先とする、請求項1記載のデータベース装置。前記アクセス先決定部は、前記元データベースと前記コピー部により作成された前記コピーデータベースとが前記最終同期部により同期される前は前記元データベースをアプリケーションプログラムのアクセス先とする一方、前記元データベースと前記コピー部により作成された前記コピーデータベースとが前記最終同期部により同期された後は前記コピーデータベースをアプリケーションプログラムのアクセス先とし、前記アプリケーションプログラムにより前記コピーデータベースのデータが更新されるごとに前記更新ログを前記更新ログ記憶部に記憶させ、前記再編成部は、前記元データベースと前記コピー部により作成された前記コピーデータベースとが前記最終同期部により同期されると、前記元データベースを再編成し、前記初期同期部は、前記再編成部による前記元データベースの再編成が終わり、かつ前記更新ログ記憶部に記憶された前記更新ログの数が閾値より多いと、前記コピーデータベースの排他ロックを取得せずに前記更新ログ記憶部に記憶された前記更新ログを1つずつ前記元データベースに適用するとともに適用後の前記更新ログを前記更新ログ記憶部から削除する処理を前記更新ログ記憶部に記憶された前記更新ログの数が閾値以下となるまで繰り返し、前記最終同期部は、前記再編成部による前記元データベースの再編成が終わり、かつ前記更新ログ記憶部に記憶された前記更新ログの数が閾値以下であると、前記コピーデータベースの排他ロックを取得して前記更新ログ記憶部に記憶された前記更新ログを1つずつ前記元データベースに適用するとともに適用後の前記更新ログを前記更新ログ記憶部から削除し、前記更新ログ記憶部に記憶された前記更新ログの数がゼロになると、前記コピーデータベースの前記排他ロックを開放することにより、前記コピーデータベースと前記再編成部により再編成された前記元データベースとを同期し、前記アクセス先決定部はさらに、前記コピーデータベースと前記再編成部により再編成された前記元データベースとが前記最終同期部により同期された後は、前記元データベースをアプリケーションプログラムのアクセス先とする、請求項1記載のデータベース装置。前記閾値はゼロである、請求項1ないし3のいずれか1項に記載のデータベース装置。第1のボリュームに格納された前記元データベースのデータをコピーして第2のボリュームに前記コピーデータベースを作成するステップと、アプリケーションプログラムにより前記元データベースのデータのうちコピー中またはコピー済みのデータが更新されるごとに、更新後の値の情報および更新されたデータを識別するための情報を含む更新ログを更新ログ記憶部に記憶させるステップと、前記コピー部による前記コピーデータベースの作成が終わり、かつ前記更新ログ記憶部に記憶された前記更新ログの数が閾値より多いと、前記元データベースの排他ロックを取得せず前記アプリケーションによる前記元データベースのデータの更新が許可され更新に応じた前記更新ログの生成が継続されたまま、前記更新ログ記憶部に記憶された前記更新ログを1つずつ前記コピーデータベースに適用するとともに適用した前記更新ログを前記更新ログ記憶部から削除する処理を前記更新ログ記憶部に記憶された前記更新ログの数が閾値以下となるまで繰り返すステップと、前記コピー部による前記コピーデータベースの作成が終わり、かつ前記更新ログ記憶部に記憶された前記更新ログの数が閾値以下であると、前記元データベースの排他ロックを取得して前記元データベースのデータに対する更新および参照を禁止し、前記更新ログ記憶部に記憶された前記更新ログを1つずつ前記コピーデータベースに適用するとともに適用後の前記更新ログを前記更新ログ記憶部から削除する処理を前記更新ログ記憶部に記憶された前記更新ログの数がゼロになるまで繰り返すステップと、前記更新ログ記憶部に記憶された前記更新ログの数がゼロになると、前記元データベースの前記排他ロックを開放するステップと、前記元データベースおよび前記コピーデータベースのいずれかを再編成するステップと、を有するデータベース再編成方法。しかし、オリジナルDBとコピーDBとの内容を一致させるためには、コピー、再編成および同期からなる一連の処理以下、再編成処理というの全ての期間または一部の期間において、オリジナルDBに対する更新を禁止してオリジナルDBのデータ内容を凍結させ、この更新禁止期間内に内容の一致を図ることが多い。この場合、更新禁止期間が長いと、各種アプリケーションプログラムは、データの更新や参照などのデータベースアクセスを妨害される期間が長くなってしまい、利便性が悪くなってしまう。また、オリジナルDBとコピーDBとの内容を一致させるためにコピー中に並行して同期を行うと、コピー処理と同期処理とでコピーDB内データのWRITEロックを取り合ってしまう場合があり、この場合も各種アプリケーションプログラムはデータベースアクセスを妨害されてしまい、利便性が悪くなってしまう。本発明の一実施形態に係るデータベース装置は、上述した課題を解決するために、コピー部と、アクセス先決定部と、初期同期部と、最終同期部と、再編成部と、を備える。コピー部は、第1のボリュームに格納された元データベースのデータをコピーして第2のボリュームにコピーデータベースを作成する。アクセス先決定部は、アプリケーションプログラムにより元データベースのデータのうちコピー中またはコピー済みのデータが更新されるごとに、更新後の値の情報および更新されたデータを識別するための情報を含む更新ログを更新ログ記憶部に記憶させる。初期同期部は、コピー部によるコピーデータベースの作成が終わり、かつ更新ログ記憶部に記憶された更新ログの数が閾値より多いと、元データベースの排他ロックを取得せず、アプリケーションによる元データベースのデータの更新が許可され更新に応じたアクセス先決定部による更新ログの生成が継続されたまま、更新ログ記憶部に記憶された更新ログを1つずつコピーデータベースに適用するとともに適用した更新ログを更新ログ記憶部から削除する処理を更新ログ記憶部に記憶された更新ログの数が閾値以下となるまで繰り返す。最終同期部は、コピー部によるコピーデータベースの作成が終わり、かつ更新ログ記憶部に記憶された更新ログの数が閾値以下であると、元データベースの排他ロックを取得して元データベースのデータに対する更新および参照を禁止し、更新ログ記憶部に記憶された更新ログを1つずつコピーデータベースに適用するとともに適用後の更新ログを更新ログ記憶部から削除し、更新ログ記憶部に記憶された更新ログの数がゼロになると、元データベースの排他ロックを開放することにより、元データベースとコピー部により作成されたコピーデータベースとを同期する。再編成部は、元データベースとコピー部により作成されたコピーデータベースとが最終同期部により同期されると、元データベースおよびコピーデータベースのいずれかを再編成する。本発明に係るデータベース装置およびデータベース再編成方法の実施の形態について、添付図面を参照して説明する。第1の実施形態図1は、本発明の第1実施形態に係るデータベース装置10の一例を示す全体構成図である。また、図2は、本発明の第1実施形態に係るデータベース装置10により実行される再編成処理全体における各構成要件間の関係を簡単に示す説明図である。本実施形態では、オリジナルデータベース以下、オリジナルDBというがコピーデータベース以下、コピーDBというにコピーされ、コピー開始後にオリジナルDBになされた更新内容をコピーDBに適用して互いを同期した後、コピーDBが再編成される場合の例について説明する。データベース装置10は、図1に示すように、第1のボリュームに格納されたオリジナルDB11、第2のボリュームに格納されたコピーDB12、再編成処理を制御する主制御部13、進捗情報記憶部14、および更新ログ記憶部15を有する。主制御部13のCPUは、ROMをはじめとする記憶媒体に記憶された再編成処理プログラムおよびこのプログラムの実行のために必要なデータをRAMへロードし、このプログラムに従って、アプリケーションプログラムによるデータベースアクセスに対する妨害を低減しつつ確実にデータベースの再編成処理を行う処理を実行する。主制御部13のRAMは、CPUが実行するプログラムおよびデータを一時的に格納するワークエリアを提供する。主制御部13のROMをはじめとする記憶媒体は、再編成処理プログラムや、これらのプログラムを実行するために必要な各種データを記憶する。なお、ROMをはじめとする記憶媒体は、磁気的もしくは光学的記録媒体または半導体メモリなどの、CPUにより読み取り可能な記録媒体を含んだ構成を有し、これら記憶媒体内のプログラムおよびデータの一部または全部は電子ネットワークを介してダウンロードされるように構成してもよい。また、進捗情報記憶部14および更新ログ記憶部15は、主制御部13のRAMやROMの一部領域に設けられてもよい。図1に示すように、主制御部13のCPUは、再編成処理プログラムによって、少なくともアクセス先決定部21、再編成制御部22、コピー部23、再編成部24および同期部25として機能する。この各部21~25は、RAMの所要のワークエリアをデータの一時的な格納場所として利用する。アクセス先決定部21は、各種アプリケーションプログラムのデータベースアクセス要求を行う機能実現部としてのアクセス部100からデータの更新要求および参照要求を受けると、進捗情報記憶部14に記憶された状態フラグおよびコピー状況の情報を取得し、この状態フラグおよびコピー状況に応じてアクセス部100のアクセス先をオリジナルDB11およびコピーDB12のいずれか一方に決定する。また、アクセス先決定部21は、再編成処理の最後にアクセス先を切り替える際に、状態フラグを変更する。また、アクセス先決定部21は、オリジナルDB11のデータのうちコピー中またはコピー済みのデータが更新されるごとに、更新後の値の情報および更新されたデータを識別するための情報を含む更新ログを更新ログ記憶部15に記憶させる。更新ログとしては、更新後の値と更新されたデータを識別するための情報が内容とされればよく、これらを直接に示す情報やSQL文などを用いることができる。なお、SQL文を用いる場合は、SQL文に第3のデータベースの情報が含まれていないことが好ましい。たとえば第3のデータベースのデータの値を参照するようになっているSQL文など、SQL文に第3のデータベースの情報が含まれている場合、オリジナルDB11の更新時点とコピーDB12への更新ログ適用時点とで第3のデータベースが変化してしまっている可能性があり、オリジナルDB11で行われた更新をコピーDB12で再現することが難しくなるためである。また、データを識別するための情報は、データを特定できる情報であって、テーブル内の位置情報などの物理的な位置情報に限られず、論理アドレスを用いてもよいし、各データにIDが付与されている場合はこのIDを用いてもよい。なお、以下の説明では、コピー中およびコピー済みを総称してコピー済みといい、コピー済みにはコピーが開始され現在コピー中である状態が含まれるものとする。再編成制御部22は、アクセス先決定部21、コピー部23、再編成部24および同期部25を制御することにより再編成処理を制御し、進捗情報記憶部14に記憶された状態フラグを更新および取得する。コピー部23は、再編成制御部22により制御され、オリジナルDB11のデータをページごとにコピーしてコピーDB12を作成する。コピー部23は、コピーを開始したページについて、進捗情報記憶部14に記憶されたコピー状況を、未コピーを示す情報からコピー済みを示す情報に更新する。再編成部24は、再編成制御部22により制御され、オリジナルDB11とコピーDB12とが同期部25の最終同期部32により同期されると、オリジナルDB11とコピーDB12とのいずれかを再編成する。本実施形態では、再編成部24がコピーDB12を再編成する場合の例について説明する。同期部25は、初期同期部31および最終同期部32を有する。初期同期部31は、再編成制御部22により制御され、コピー部23によるコピーDB12の作成が終わり、かつ更新ログ記憶部15に記憶された更新ログの数が閾値より多いと、オリジナルDB11の排他ロックを取得せず、更新ログ記憶部15に記憶された更新ログを1つずつコピーDB12に適用するとともに、適用した更新ログを更新ログ記憶部15から削除する。この処理は、更新ログ記憶部15に記憶された更新ログの数が閾値以下となるまで繰り返される。ここで、排他ロックとは、更新アクセスおよび参照アクセスを禁止するロックである。また、初期同期部31は、再編成部24によるコピーDB12の再編成が終わり、かつ更新ログ記憶部15に記憶された更新ログの数が閾値より多いときも同様に、オリジナルDB11の排他ロックを取得せず、更新ログ記憶部15に記憶された更新ログを1つずつコピーDB12に適用するとともに、適用した更新ログを更新ログ記憶部15から削除する。この処理は、更新ログ記憶部15に記憶された更新ログの数が閾値以下となるまで繰り返される。排他ロックが取得されていないため、初期同期部31の処理中は、アクセス部100によるオリジナルDBのデータの更新が許可され、更新に応じたアクセス先決定部21による更新ログの生成は継続される。すなわち、最終同期部32が排他ロックを取得するまでは、初期同期部31の処理中を含め、更新ログ記憶部15に新たな更新ログが追記され続ける。最終同期部32は、再編成制御部22により制御され、コピー部23によるコピーDB12の作成が終わり、かつ更新ログ記憶部15に記憶された更新ログの数が閾値以下であると、オリジナルDB11の排他ロックを取得してオリジナルDB11のデータに対する更新および参照を禁止し、更新ログ記憶部15に記憶された更新ログを1つずつコピーDB12に適用するとともに、適用した更新ログを更新ログ記憶部15から削除する。そして、更新ログ記憶部15に記憶された更新ログの数がゼロになると、最終同期部32は、オリジナルDB11の排他ロックを開放する。この結果、オリジナルDB11とコピーDB12とのコピー後の同期が終了する。また、最終同期部32は、再編成部24によるコピーDB12の再編成が終わり、かつ更新ログ記憶部15に記憶された更新ログの数が閾値以下であるときも同様に、オリジナルDB11の排他ロックを取得してオリジナルDB11のデータに対する更新および参照を禁止し、更新ログ記憶部15に記憶された更新ログを1つずつコピーDB12に適用するとともに、適用した更新ログを更新ログ記憶部15から削除する。そして、更新ログ記憶部15に記憶された更新ログの数がゼロになると、最終同期部32は、オリジナルDB11の排他ロックを開放する。この結果、オリジナルDB11とコピーDB12との再編成後の同期が終了する。なお、初期同期部31が用いる閾値は、ゼロであってもよい。この場合、最終同期部32は、更新ログ記憶部15に記憶された更新ログがゼロになるまで初期同期部31が更新ログを適用した後、最終同期部32がオリジナルDB11の排他ロックを取得するまでの間に、新たに更新ログ記憶部15に追記された更新ログのみを適用することになる。次に、本実施形態に係るデータベース装置10の動作の一例について説明する。図3は、第1実施形態に係る再編成処理を進捗に応じて複数の処理フェーズに分類する一例を示す説明図である。また、図4は、第1実施形態に係る再編成処理における処理フェーズ、状態フラグ、アクセス先決定部21の動作および再編成制御部22の動作の関係を示す説明図である。図3および図4に示すように、本実施形態に係る再編成処理は6つのフェーズに分類される。フェーズ0は、再編成処理中ではなく、通常の起動状態である。オリジナルDB11からコピーDB12へページごとのコピーがコピー部23により実行されている期間はフェーズ1に分類される。全ページのコピーが一通り完了した後、同期部25によりコピーDB12に対してフェーズ1開始以降に生成された更新ログが適用されている期間はフェーズ2に分類される。コピーDB12に更新ログが適用された後、再編成部24によりコピーDB12が再編成されている期間はフェーズ3に分類される。コピーDB12が再編成された後、同期部25によりコピーDB12に対してフェーズ3開始以降に生成された更新ログが適用されている期間はフェーズ4に分類される。コピーDB12に更新ログが適用された後、アクセス先決定部21によりアクセス先がコピーDB12へ切り替えられる期間はフェーズ5に分類される。図5は、図1に示すデータベース装置10の主制御部13により、コピーDB12を再編成する場合においてアプリケーションプログラムによるデータベースアクセスに対する妨害を低減しつつ確実にデータベースの再編成処理を行う際の手順を示すフローチャートである。図5において、Sに数字を付した符号は、フローチャートの各ステップを示す。この手順は、再編成処理の開始指示があった時点でスタートとなる。なお、再編成処理の開始指示は、データベースユーザによって図示しない入力部を介して与えられてもよいし、あらかじめ設定された所定の時間や所定の周期で自動的に与えられてもよい。まず、ステップS1において、コピー部23は、コピーDB12を初期化する。次に、ステップS2において、再編成制御部22は、進捗情報記憶部14に記憶された状態フラグを0から1に更新する。すなわち、処理フェーズは0から1に移行する。次に、ステップS3において、コピー部23は、オリジナルDB11からコピーDB12にページごとにデータをコピーする。このコピーの間、オリジナルDB11に対する更新アクセスは禁止されず、更新ログが更新ログ記憶部15に追記されていく。次に、ステップS4において、同期部25は、ステップS3の間にオリジナルDB11に対して行われた更新をコピーDB12に適用してオリジナルDB11とコピーDB12との同期を行う。また、同期部25は、この同期処理の間に行われた更新についてもコピーDB12に適用し、オリジナルDB11とコピーDB12との同期を行う。次に、ステップS5において、再編成部24は、コピーDB12を再編成する。この再編成の間にも、オリジナルDB11に対する更新アクセスは禁止されず、更新ログが更新ログ記憶部15に追記されていく。次に、ステップS6において、同期部25は、ステップS5の間にオリジナルDB11に対して行われた更新をコピーDB12に適用してオリジナルDB11とコピーDB12との同期を行う。また、同期部25は、この同期処理の間に行われた更新についてもコピーDB12に適用し、オリジナルDB11とコピーDB12との同期を行う。そして、アクセス先決定部21は、アクセス部100のアクセス先をオリジナルDB11からコピーDB12に変更する。次に、ステップS7において、再編成制御部22は、コピー部23を介してオリジナルDB11を削除する。この結果、これ以降はコピーDB12がオリジナルのデータベースとして機能する。以上の手順により、コピーDB12を再編成する場合においてアプリケーションプログラムによるデータベースアクセスに対する妨害を低減しつつ確実にデータベースの再編成処理を行うことができる。続いて、オリジナルDB11からコピーDB12にページごとにデータをコピーする際の手順を説明する。図6は、図5のステップS3で主制御部13により実行されるコピーの手順を示すサブルーチンフローチャートである。図6において、Sに数字を付した符号は、フローチャートの各ステップを示す。また、図7は、図6の手順で実行されるコピーの様子を説明するための簡略的なブロック図である。この手順は、図5のステップS2で処理フェーズが0から1に移行した時点でスタートとなる。ステップS31において、コピー部23は、これからコピーしようとしているページが属するテーブルコピー対象テーブルの共有ロックを獲得する。共有ロックは、更新アクセスを禁止する一方、参照アクセスを許可するロックである。次に、コピー部23は、オリジナルDB11から単位ページ量のデータを取得しステップS32、進捗情報記憶部14に対して書込みを行い取得したページのコピー状況をコピー済みに更新してステップS33、コピー対象テーブルの共有ロックを開放するステップS34。次に、コピー部23は、取得したデータをコピーDB12にコピーしステップS35、オリジナルDB11の全てのページがコピーされたか否かを判定するステップS36。全てのページがコピーされた場合、処理フェーズは1から2に移行し、図5のステップS4に進む。なお、このとき状態フラグは1のままである図4参照。一方、未コピーのページがある場合、ステップS31に戻り、引き続き未コピーページのコピーを行う。以上の手順により、オリジナルDB11からコピーDB12にページごとにデータをコピーすることができる。続いて、コピー後にコピーDB12に更新ログを適用してオリジナルDB11とコピーDB12との同期を行う際の手順を説明する。図8は、図5のステップS4で主制御部13により実行されるコピー後の同期の手順を示すサブルーチンフローチャートである。図8において、Sに数字を付した符号は、フローチャートの各ステップを示す。また、図9は、図8の手順で実行されるコピー後の同期の様子を説明するための簡略的なブロック図である。この手順は、図5のステップS3図6のステップS36のYESで処理フェーズが1から2に移行した時点でスタートとなる。ステップS41において、同期部25の初期同期部31は、更新ログ記憶部15を検索し、更新ログ記憶部15に記憶された更新ログの数が閾値以下であるか否かを判定する。たとえば、閾値がゼロである場合は、初期同期部31は、更新ログ記憶部15に記憶された更新ログの数がゼロ以下か、すなわちゼロであるか否かを判定する。閾値より多い場合はステップS41のNO、初期同期部31は、更新ログ記憶部15から更新ログを1つ取得しステップS42、取得した更新ログをコピーDB12に適用してステップS43、ステップS41に戻る。一方、閾値以下である場合はステップS41のYES、最終同期部32は、まず、オリジナルDB11の排他ロックを取得してからステップS44、更新ログ記憶部15を検索し、更新ログ記憶部15に記憶された更新ログの数がゼロであるか否かを判定するステップS45。なお、ステップS41において閾値がゼロである場合でも、ステップS41で更新ログ数がゼロであると判定した後にステップS44で最終同期部32がオリジナルDB11の排他ロックを取得するまでの間に新たな更新ログが追記される場合があることに注意する。更新ログ数がゼロでない場合はステップS45のNO、最終同期部32は、更新ログ記憶部15から更新ログを1つ取得しステップS46、取得した更新ログをコピーDB12に適用してステップS47、ステップS45に戻る。一方、更新ログ数がゼロである場合はステップS45のYES、最終同期部32は、進捗情報記憶部14に記憶された状態フラグを1から2に更新するステップS48。すなわち、処理フェーズは2から3に移行する。そして、最終同期部32は、オリジナルDB11の排他ロックを開放するステップS49。なお、ステップS48とステップS49とは実行順序が逆であってもよい。以上の手順により、アプリケーションプログラムのデータベースアクセスの妨害を低減しつつコピー後にコピーDB12に更新ログを適用してオリジナルDB11とコピーDB12との同期を行うことができる。図10は、図5のステップS5で実行される再編成の様子を説明するための簡略的なブロック図である。図5のステップS5は、図5のステップS4図8のステップS48で状態フラグが1から2に更新される処理フェーズが2から3に移行すると実行される。再編成部24は、再編成制御部22に制御されて、コピー後にオリジナルDB11と同期されたコピーDB12を再編成する。コピーDB12が再編成されると、処理フェーズは3から4に移行する。続いて、再編成後にコピーDB12に更新ログを適用してオリジナルDB11とコピーDB12との同期を行う際の手順を説明する。図11は、図5のステップS6で主制御部13により実行される再編成後の同期の手順を示すサブルーチンフローチャートである。図11において、Sに数字を付した符号は、フローチャートの各ステップを示す。なお、図8と同等のステップには同一符号を付し、重複する説明を省略する。また、図12は、図11の手順で実行される再編成後の同期の様子を説明するための簡略的なブロック図である。この手順は、図5のステップS5で処理フェーズが3から4に移行した時点でスタートとなる。ステップS45で更新ログ数がゼロであると判定すると、最終同期部32は、進捗情報記憶部14に記憶された状態フラグを2から3に更新するステップS51。すなわち、処理フェーズは4から5に移行する。図11に示す手順により、アプリケーションプログラムのデータベースアクセスの妨害を低減しつつ再編成後にコピーDB12に更新ログを適用してオリジナルDB11とコピーDB12との同期を行うことができる。図13は、図5のステップS6で再編成後の同期が行われた後、アクセス部100のアクセス先がオリジナルDB11からコピーDB12に変更される様子を説明するための簡略的なブロック図である。図5のステップS6図11に示す手順を実行することにより、コピーDB12は、オリジナルDB11と同一のデータを格納しつつこれらのデータが再編成された状態となっている。したがって、再編成後の同期後は、コピーDB12をアクセス部100のアクセス先とするとよい。そこで、アクセス先決定部21は、図5のステップS6図11のステップS51で状態フラグが2から3に更新されたことを受け、アクセス部100のアクセス先をコピーDB12に切り替える図4、図10参照。図14は、第1実施形態におけるアクセス部100から更新要求を受けたアクセス先決定部21の処理手順を示すフローチャートである。図14において、Sに数字を付した符号は、フローチャートの各ステップを示す。この手順は、アクセス先決定部21がアクセス部100からデータの更新要求を受けた時点でスタートとなる。なお、この手順はゼロを含む全ての状態フラグ値に対応するものである。まず、アクセス先決定部21は、状態フラグおよびコピー状況を取得しステップS81、状態フラグが3であるか否かを判定するステップS82。状態フラグが3である場合は、アクセス先決定部21は、ステップS83でアクセス部100のアクセス先をコピーDB12に切り替えて図4、図10参照、進捗情報記憶部14に記憶された状態フラグを3から0に更新してステップS84、ステップS85に進む。この結果、処理フェーズは0となり、再編成処理中ではなく、通常の起動状態となる。他方、ステップS81で状態フラグが3でないと判定した場合もステップS85に進み、アクセス先決定部21は、更新先テーブルの排他ロックを獲得しステップS85、アクセス先DBのデータを更新するステップS86。次に、ステップS87において、アクセス先決定部21は、状態フラグが1であるか否かを判定する。状態フラグが1再編成処理のコピー中またはコピー後の同期中である場合は、アクセス先決定部21は、コピー状況にもとづいて更新対象ページがコピー済みであるか否かを判定するステップS88。なお、コピー済みにはコピー中が含まれる。コピー済みページが更新された場合はステップS88のYES、更新ログ記憶部15に更新ログを記憶させてステップS89、更新先テーブルの排他ロックを開放しステップS90、一連の手順は終了となる。未コピーのページが更新された場合はステップS88のNO、更新ログを生成することなく更新先テーブルの排他ロックを開放しステップS90、一連の手順は終了となる。他方、状態フラグが1再編成処理の再編成中または再編成後の同期中でない場合はステップS87のNO、ステップS91において、アクセス先決定部21は、状態フラグが2であるか否かを判定する。状態フラグが2再編成処理のコピー中またはコピー後の同期中である場合は、更新ログを生成すべくステップS89に進む。一方、状態フラグが2でない場合、すなわち状態フラグが0である場合は、更新ログを生成することなく更新先テーブルの排他ロックを開放しステップS90、一連の手順は終了となる。図15は、第1実施形態におけるアクセス部100から参照要求を受けたアクセス先決定部21の処理手順を示すフローチャートである。図15において、Sに数字を付した符号は、フローチャートの各ステップを示す。図14と同等のステップには同一符号を付し、重複する説明を省略する。この手順は、アクセス先決定部21がアクセス部100からデータの参照要求を受けた時点でスタートとなる。なお、この手順はゼロを含む全ての状態フラグ値に対応するものである。ステップS101において、アクセス先決定部21は、参照先テーブルの共有ロックを取得する。そして、アクセス部100に対してアクセス先DBのデータを参照させステップS102、参照先テーブルの共有ロックを開放するステップS103。本実施形態に係るデータベース装置10の同期部25は、コピー部23によるコピーDB12の作成が終わるまで更新ログを適用しない。また、再編成部24による再編成が終わるまで更新ログを適用しない。コピー中および再編成中における更新内容は、コピーDB12に対しては同時には反映されず一旦更新ログとして記憶され、コピーの終了を待って同期部25により適用される。また、コピーの終了後および再編成の終了後、更新ログ適用中同期中に行われる更新についても、一旦更新ログとして記憶され、この更新ログが同期部25により適用されてコピーDB12に更新内容が反映される。このため、コピー処理と同期処理とでコピーDB12のデータの排他ロックWRITEロックを取り合ってしまうことがない。したがって、ロックの粒度によらず、排他ロックWRITEロック取得待ちによる更新処理の速度低下を防ぐことができる。また、コピー中においては、アクセス部100の更新アクセスを禁止しない。また、同期中においては、アクセス部100の更新アクセスは、最終同期部32の動作中を除き許可される。すなわち、同期中は、コピー後および再編成後に更新ログを適用する際に、更新ログ記憶部15に記憶された更新ログの数が閾値以下となるまではオリジナルDB11への変更が禁止されない。このため、オリジナルDB11への変更が禁止される期間を、最終同期部32により最終的な同期が行われる間のみとすることができる。したがって、各種アプリケーションプログラムがデータベースアクセスを妨害される期間を非常に短くすることができる。次に、本発明に係るデータベース装置及びデータベース再編成方法の第2実施形態について説明する。この第2実施形態に示すデータベース装置10Aは、オリジナルDB11が再編成される点で第1実施形態に示すデータベース装置10と異なる。他の構成および作用については図1に示すデータベース装置10と実質的に異ならないため、同じ構成には同一符号を付して説明を省略する。図16は、本発明の第2実施形態に係るデータベース装置10Aにより実行される再編成処理全体における各構成要件間の関係を簡単に示す説明図である。図16に示すように、本実施形態では、再編成部24は、コピーDB12ではなくオリジナルDB11を再編成する。次に、本実施形態に係るデータベース装置10Aの動作の一例について説明する。図17は、第2実施形態に係る再編成処理を進捗に応じて複数の処理フェーズに分類する一例を示す説明図である。また、図18は、第2実施形態に係る再編成処理における処理フェーズ、状態フラグ、アクセス先決定部21の動作および再編成制御部22の動作の関係を示す説明図である。図17および図18に示すように、本実施形態に係る再編成処理は7つのフェーズに分類される。第1実施形態におけるフェーズ2とフェーズ3の間に新たなフェーズおよび状態フラグが設けられた点が第1実施形態に係る再編成処理と異なる。フェーズ0、1および2は第1実施形態に係る再編成処理と同一であるため、説明を省略する。コピーDB12に更新ログが適用された後、アクセス先決定部21によりアクセス先がコピーDB12へ切り替えられる期間はフェーズ3に分類される。コピーDB12にアクセス先が切り替えられた後、再編成部24によりオリジナルDB12が再編成されている期間はフェーズ4に分類される。オリジナルDB12が再編成された後、同期部25によりオリジナルDB12に対してフェーズ4開始以降に生成された更新ログが適用されている期間はフェーズ5に分類される。オリジナルDB12に更新ログが適用された後、アクセス先決定部21によりアクセス先がオリジナルDB12へ切り替えられる期間はフェーズ6に分類される。図19は、第2実施形態に係るデータベース装置10Aの主制御部13により、オリジナルDBを再編成する場合においてアプリケーションプログラムによるデータベースアクセスに対する妨害を低減しつつ確実にデータベースの再編成処理を行う際の手順を示すフローチャートである。図19において、Sに数字を付した符号は、フローチャートの各ステップを示す。図5と同等のステップには同一符号を付し、重複する説明を省略する。この手順は、再編成処理の開始指示があった時点でスタートとなる。なお、再編成処理の開始指示は、データベースユーザによって図示しない入力部を介して与えられてもよいし、あらかじめ設定された所定の時間や所定の周期で自動的に与えられてもよい。コピー部23によるコピーが終了すると、ステップS201において、同期部25は、ステップS3の間にオリジナルDB11に対して行われた更新をコピーDB12に適用してオリジナルDB11とコピーDB12との同期を行う。また、同期部25は、この同期処理の間に行われた更新についてもコピーDB12に適用し、オリジナルDB11とコピーDB12との同期を行う。なお、ステップS201の処理は図5のステップS4とほぼ同一であり、詳細な手順も図8に示す手順とほぼ同一であり、図8のステップS48で移行する状態フラグ2処理フェーズ3が意味するところのみが異なり、アクセス先決定部21は、アクセス部100のアクセス先をオリジナルDB11からコピーDB12に変更する図18参照。なお、状態フラグは、アクセス先の切り替えが終わった時点でアクセス先決定部21により2から3に更新されても処理フェーズが3から4に移行してもよいし、アクセス部100による更新アクセスまたは参照アクセスがあるとアクセス先決定部21により2から3に更新されても処理フェーズが3から4に移行してもよい。次に、ステップS202において、再編成部24は、オリジナルDB12を再編成する。この再編成の間、コピーDB11に対する更新アクセスは禁止されず、更新ログが更新ログ記憶部15に追記されていく。再編成されると、処理フェーズは4から5に移行する。次に、ステップS203において、同期部25は、ステップS202の間にコピーDB12に対して行われた更新をオリジナルDB11に適用してオリジナルDB11とコピーDB12との同期を行う。また、同期部25は、この同期処理の間にコピーDB12に対して行われた更新についてもオリジナルDB11に適用し、オリジナルDB11とコピーDB12との同期を行う。同期されると、最終同期部32により状態フラグが3から4に更新される処理フェーズが5から6に移行する。そして、アクセス先決定部21は、アクセス部100のアクセス先をコピーDB12からオリジナルDB11に変更する。次に、ステップS204において、再編成制御部22は、コピー部23を介してコピーDB12を削除する。以上の手順により、オリジナルDB11を再編成する場合においても、アプリケーションプログラムによるデータベースアクセスに対する妨害を低減しつつ確実にデータベースの再編成処理を行うことができる。続いて、オリジナルDB11の再編成後にオリジナルDB11に更新ログを適用してオリジナルDB11とコピーDB12との同期を行う際の手順を説明する。図20は、図19のステップS203で主制御部13により実行される再編成後の同期の手順を示すサブルーチンフローチャートである。図20において、Sに数字を付した符号は、フローチャートの各ステップを示す。なお、図11と同等のステップには同一符号を付し、重複する説明を省略する。この手順は、図19のステップS202で処理フェーズが4から5に移行した時点でスタートとなる。更新ログ記憶部15に記憶された更新ログの数が閾値以下であるとステップS41のYES、初期同期部31は、更新ログ記憶部15から更新ログを1つ取得しステップS42、取得した更新ログをオリジナルDB11に適用してステップS241、ステップS41に戻る。一方、閾値以下である場合はステップS41のYES、最終同期部32は、コピーDB12の排他ロックを取得するステップS242。そして、更新ログ数がゼロでない場合はステップS45のNO、最終同期部32は、更新ログ記憶部15から更新ログを1つ取得しステップS46、取得した更新ログをオリジナルDB11に適用してステップS243、ステップS45に戻る。一方、更新ログ数がゼロである場合はステップS45のYES、最終同期部32は、進捗情報記憶部14に記憶された状態フラグを3から4に更新するステップS244。すなわち、処理フェーズは5から6に移行する。そして、最終同期部32は、コピーDB12の排他ロックを開放するステップS245。以上の手順により、アプリケーションプログラムのデータベースアクセスの妨害を低減しつつ、オリジナルDB11の再編成後にオリジナルDB11に更新ログを適用してオリジナルDB11とコピーDB12との同期を行うことができる。図21は、第2実施形態におけるアクセス部100から更新要求を受けたアクセス先決定部21の処理手順を示すフローチャートである。図21において、Sに数字を付した符号は、フローチャートの各ステップを示す。なお、図14と同等のステップには同一符号を付し、重複する説明を省略する。この手順は、アクセス先決定部21がアクセス部100からデータの更新要求を受けた時点でスタートとなる。なお、この手順はゼロを含む全ての状態フラグ値に対応するものである。まず、アクセス先決定部21は、状態フラグおよびコピー状況を取得しステップS81、状態フラグが3であるか否かを判定するステップS281。状態フラグが3であればアクセス先決定部21はアクセス先をコピーDB12とするステップS282。一方、状態フラグが3でない場合ステップS281のNOは、アクセス先決定部21は、状態フラグが2であるか否かを判定するステップS283。状態フラグが2である場合は、アクセス先決定部21は、進捗情報記憶部14に記憶された状態フラグを2から3に更新してステップS284アクセス先をコピーDB12とするステップS282。状態フラグが2でも3でもない場合ステップS283のNO、アクセス先決定部21は、アクセス先をオリジナルDB12としステップS285、状態フラグが4であるか否かを判定しステップS286、状態フラグが4である場合は、進捗情報記憶部14に記憶された状態フラグを4から0に更新するステップS287。また、ステップS86でアクセス先のDBが更新され、ステップS87で状態フラグが1ではないと判定されると、アクセス先決定部21は、状態フラグが3であるか否かを判定するステップS288。状態フラグが3である場合は、アクセス先決定部21は、更新ログ記憶部15に更新ログを記憶させてステップS89、更新先テーブルの排他ロックを開放しステップS90、一連の手順は終了となる。一方、状態フラグが3でない場合は、アクセス先決定部21は、更新ログを生成することなく更新先テーブルの排他ロックを開放しステップS90、一連の手順は終了となる。図22は、第2実施形態におけるアクセス部100から参照要求を受けたアクセス先決定部21の処理手順を示すフローチャートである。図22において、Sに数字を付した符号は、フローチャートの各ステップを示す。図22に示す手順は、図15と図21に示したステップと同等のステップにより構成されるため、説明を省略する。本実施形態に係るデータベース装置10Aによっても、第1実施形態に係るデータベース装置10と同様の作用効果を奏する。また、本実施形態に係るデータベース装置10Aによれば、オリジナルDB11を再編成することができるため、一連の再編成処理の前後でオリジナルDB11をアクセス先とすることができる。なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。たとえば、本実施形態では、再編成処理の対象をデータベース単位としたが、テーブル単位など他の単位としてもよい。また、本発明の実施形態では、フローチャートの各ステップは、記載された順序に沿って時系列的に行われる処理の例を示したが、必ずしも時系列的に処理されなくとも、並列的あるいは個別実行される処理をも含むものである。