第1のボリュームに格納された元データベースのデータをページごとにコピーして第2のボリュームにコピーデータベースを作成し、前記元データベースおよび前記コピーデータベースのいずれかを再編成するデータベース装置であって、アプリケーションプログラムにより前記元データベースのデータが更新されるごとに、更新されたデータが含まれるページの番号を順次記憶するページ番号記憶部と、前記元データベースをページごとにコピーするとともにコピーしたページの番号が前記ページ番号記憶部に記憶されているとこの番号を前記ページ番号記憶部から削除する処理を繰り返すことにより、前記元データベースを構成する全てのページをそれぞれ一度ずつコピーして前記コピーデータベースを作成する仮コピー部と、前記仮コピー部による前記コピーデータベースの作成が終わり、かつ前記ページ番号記憶部に記憶されたページの番号の数が閾値より多いと、前記元データベースの排他ロックを取得せず、前記アプリケーションによる前記コピーデータベースのデータの更新が許可され更新に応じた前記アクセス先決定部による前記ページの番号の追記が継続されたまま、前記ページ番号記憶部に記憶されたページの番号を1つずつ取得しこの取得した番号のページを前記元データベースから前記コピーデータベースへ再度コピーするとともに再度コピーしたページの番号を前記ページ番号記憶部から削除する処理を前記ページ番号記憶部に記憶されたページの番号の数が閾値以下となるまで繰り返す初期再コピー部と、前記仮コピー部による前記コピーデータベースの作成が終わり、かつ前記ページ番号記憶部に記憶されたページの番号の数が閾値以下であると、前記元データベースの排他ロックを取得して前記元データベースのデータに対する更新および参照を禁止し、前記ページ番号記憶部に記憶されたページの番号を1つずつ取得しこの取得した番号のページを前記元データベースから前記コピーデータベースへ再度コピーするとともに再度コピーしたページの番号を前記ページ番号記憶部から削除し、前記ページ番号記憶部に記憶されたページの番号の数がゼロになると、前記元データベースの前記排他ロックを開放することにより、前記元データベースと前記仮コピー部により作成された前記コピーデータベースとを同期する最終再コピー部と、前記最終再コピー部による同期が終わると、前記元データベースおよび前記コピーデータベースのいずれかを再編成する再編成部と、を備えたデータベース装置。前記再編成部は、前記最終再コピー部による同期が終わると、前記コピーデータベースを再編成し、さらに、前記最終再コピー部による同期が終わった後に前記アプリケーションプログラムにより前記元データベースのデータが更新されるごとに、更新後の値の情報および更新されたデータを識別するための情報を含む更新ログを順次記憶する更新ログ記憶部と、前記再編成部による前記コピーデータベースの再編成が終わり、かつ前記更新ログ記憶部に記憶された前記更新ログの数が閾値より多いと、前記元データベースの排他ロックを取得せずに前記更新ログ記憶部に記憶された前記更新ログを1つずつ前記コピーデータベースに適用するとともに適用後の前記更新ログを前記更新ログ記憶部から削除する処理を前記更新ログ記憶部に記憶された前記更新ログの数が閾値以下となるまで繰り返す初期同期部と、前記再編成部による前記コピーデータベースの再編成が終わり、かつ前記更新ログ記憶部に記憶された前記更新ログの数が閾値以下であると、前記元データベースの排他ロックを取得して前記更新ログ記憶部に記憶された前記更新ログを1つずつ前記コピーデータベースに適用するとともに適用後の前記更新ログを前記更新ログ記憶部から削除し、前記更新ログ記憶部に記憶された前記更新ログの数がゼロになると、前記元データベースの前記排他ロックを開放することにより、前記元データベースと前記再編成部により再編成された前記コピーデータベースとを同期する最終同期部と、前記元データベースと前記再編成部により再編成された前記コピーデータベースとが前記最終同期部により同期される前は前記元データベースをアプリケーションプログラムのアクセス先とする一方、前記元データベースと前記再編成部により再編成された前記コピーデータベースとが前記最終同期部により同期された後は、前記コピーデータベースをアプリケーションプログラムのアクセス先とするアクセス先決定部と、備えた請求項1記載のデータベース装置。前記再編成部は、前記最終再コピー部による同期が終わると、前記元データベースを再編成し、さらに、前記最終再コピー部による同期が終わった後に前記アプリケーションプログラムにより前記コピーデータベースのデータが更新されるごとに、更新後の値の情報および更新されたデータを識別するための情報を含む更新ログを順次記憶する更新ログ記憶部と、前記再編成部による前記元データベースの再編成が終わり、かつ前記更新ログ記憶部に記憶された前記更新ログの数が閾値より多いと、前記コピーデータベースの排他ロックを取得せず前記更新ログ記憶部に記憶された前記更新ログを1つずつ前記元データベースに適用するとともに適用後の前記更新ログを前記更新ログ記憶部から削除する処理を前記更新ログ記憶部に記憶された前記更新ログの数が閾値以下となるまで繰り返す初期同期部と、前記再編成部による前記元データベースの再編成が終わり、かつ前記更新ログ記憶部に記憶された前記更新ログの数が閾値以下であると、前記コピーデータベースの排他ロックを取得して前記更新ログ記憶部に記憶された前記更新ログを1つずつ前記元データベースに適用するとともに適用後の前記更新ログを前記更新ログ記憶部から削除し、前記更新ログ記憶部に記憶された前記更新ログの数がゼロになると、前記コピーデータベースの前記排他ロックを開放することにより、前記コピーデータベースと前記再編成部により再編成された前記元データベースとを同期する最終同期部と、前記最終再コピー部による同期が終わる前は前記元データベースをアプリケーションプログラムのアクセス先とし、前記最終再コピー部による同期が終わった後は前記コピーデータベースをアプリケーションプログラムのアクセス先とし、前記コピーデータベースと前記再編成部により再編成された前記元データベースとが前記最終同期部により同期された後は再度前記元データベースをアプリケーションプログラムのアクセス先とするアクセス先決定部と、を備えた請求項1記載のデータベース装置。前記閾値はゼロである、請求項1ないし3のいずれか1項に記載のデータベース装置。前記ページ番号記憶部は、前記アプリケーションプログラムにより前記元データベースのデータが更新されるごとに、更新されたデータが含まれるページの番号を記憶する一方、この更新されたデータが含まれるページの番号をすでに記憶している場合にはこの番号を再度記憶することはしない、請求項1ないし4のいずれか1項に記載のデータベース装置。前記初期再コピー部は、前記ページ番号記憶部に記憶されたページの番号を1つずつ取得する際に、更新される頻度が高いページほど後に取得することにより、前記ページ番号記憶部に記憶された番号のページの再度のコピー全体にかかる時間を短縮する、請求項1ないし5のいずれか1項に記載のデータベース装置。第1のボリュームに格納された元データベースのデータをページごとにコピーして第2のボリュームにコピーデータベースを作成し、前記元データベースおよび前記コピーデータベースのいずれかを再編成するデータベース再編成方法であって、アプリケーションプログラムにより前記元データベースのデータが更新されるごとに、更新されたデータが含まれるページの番号をページ番号記憶部に記憶させるステップと、前記元データベースをページごとにコピーするとともにコピーしたページの番号が前記再コピーページ番号記憶部に記憶されているとこの番号をページ番号記憶部から削除する処理を繰り返すことにより、前記元データベースを構成する全てのページをそれぞれ一度ずつコピーして前記コピーデータベースを作成するステップと、前記コピーデータベースの作成が終わり、かつ前記ページ番号記憶部に記憶されたページの番号の数が閾値より多いと、前記元データベースの排他ロックを取得せず、前記アプリケーションによる前記元データベースのデータの更新が許可され更新に応じた前記ページの番号の追記が継続されたまま、前記ページ番号記憶部に記憶されたページの番号を1つずつ取得しこの取得した番号のページを前記元データベースから前記コピーデータベースへ再度コピーするとともに再度コピーしたページの番号を前記ページ番号記憶部から削除する処理を、前記再コピーページ番号記憶部に記憶されたページの番号の数が閾値以下となるまで繰り返すステップと、前記コピーデータベースの作成が終わり、かつ前記ページ番号記憶部に記憶されたページの番号の数が閾値以下であると、前記元データベースの排他ロックを取得して前記元データベースのデータに対する更新および参照を禁止し、前記ページ番号記憶部に記憶されたページの番号を1つずつ取得しこの取得した番号のページを前記元データベースから前記コピーデータベースへ再度コピーするとともに再度コピーしたページの番号を前記ページ番号記憶部から削除する処理を前記ページ番号記憶部に記憶されたページの番号の数がゼロになるまで繰り返すステップと、前記再コピーページ番号記憶部に記憶されたページの番号の数がゼロになると、前記元データベースの前記排他ロックを開放するステップと、前記元データベースおよび前記コピーデータベースのいずれかを再編成するステップと、を有するデータベース再編成方法。しかし、オリジナルDBとコピー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のデータが更新されるごとに、更新されたデータが含まれるページの番号以下、再コピーページ番号というを進捗情報記憶部14に記憶させる。このとき、アクセス先決定部21は、再コピーページ番号がすでに進捗情報記憶部14に記憶されている場合には、この番号を再度進捗情報記憶部14に記憶させることはしない。再コピーページ番号は、コピー部23の仮コピー部31がコピーを行ったページが、その後更新されたか否かを示す情報にすぎない。このため、同一の番号が進捗情報記憶部14に重複して記憶されている必要はない。また、アクセス先決定部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は、仮コピー部31、初期再コピー部32および最終再コピー部33を有する。仮コピー部31は、再編成制御部22により制御され、オリジナルDB11をページごとにコピーし、オリジナルDBを構成する全てのページをそれぞれ一度ずつコピーしてコピーDB12を作成する。また、仮コピー部31は、各ページをコピーする際に、コピー対象ページの番号が進捗情報記憶部14に再コピーページ番号として記憶されていると、この番号を進捗情報記憶部14から削除する。初期再コピー部32は、再編成制御部22により制御され、仮コピー部31によるコピーDB12の作成が終わり、かつ進捗情報記憶部14に記憶された再コピーページ番号の数が閾値より多いと、オリジナルDB11の排他ロックを取得せず、進捗情報記憶部14に記憶されたページの番号を1つずつ取得しこの取得した番号のページをオリジナルDB11からコピーDB12へ再度コピーするとともに、再度コピーしたページの番号を進捗情報記憶部14から削除する。この処理は、進捗情報記憶部14に記憶された再コピーページ番号の数が閾値以下となるまで繰り返される。ここで、排他ロックとは、更新アクセスおよび参照アクセスを禁止するロックである。最終再コピー部33は、再編成制御部22により制御され、仮コピー部31によるコピーDB12の作成が終わり、かつ進捗情報記憶部14に記憶された再コピーページ番号の数が閾値以下であると、オリジナルDB11の排他ロックを取得してオリジナルDB11のデータに対する更新および参照を禁止し、進捗情報記憶部14に記憶された再コピーページ番号を1つずつ取得しこの取得した番号のページをオリジナルDB11からコピーDB12へ再度コピーするとともに、再度コピーした再コピーページ番号を進捗情報記憶部14から削除する。そして、進捗情報記憶部14に記憶された再コピーページ番号の数がゼロになると、最終再コピー部33は、オリジナルDB11の排他ロックを開放する。この結果、オリジナルDB11と仮コピー部により作成されたコピーDB12との同期が終了する。なお、初期再コピー部32が用いる閾値は、ゼロであってもよい。この場合、最終再コピー部33は、進捗情報記憶部14に記憶された再コピーページ番号の数がゼロになるまで初期再コピー部32が再コピーページ番号による再コピーを実行した後、最終再コピー部33がオリジナルDB11の排他ロックを取得するまでの間に、新たに進捗情報記憶部14に追記された再コピーページ番号のみを用いることになる。なお、以下の説明では、再コピーとは、仮コピー部31によりコピーDB12へ一度コピーされたページを、初期再コピー部32または最終再コピー部33が再コピーページ番号にもとづいてコピーDB12へ再度コピーすることをいうものとする。再編成部24は、再編成制御部22により制御され、オリジナルDB11とコピーDB12とがコピー部23の最終再コピー部33により同期されると、オリジナルDB11とコピーDB12とのいずれかを再編成する。本実施形態では、再編成部24がコピーDB12を再編成する場合の例について説明する。同期部25は、初期同期部34および最終同期部35を有する。初期同期部34は、再編成制御部22により制御され、再編成部24によるコピーDB12の再編成が終わり、かつ更新ログ記憶部15に記憶された更新ログの数が閾値より多いと、オリジナルDB11の排他ロックを取得せず、更新ログ記憶部15に記憶された更新ログを1つずつコピーDB12に適用するとともに、適用した更新ログを更新ログ記憶部15から削除する。この処理は、更新ログ記憶部15に記憶された更新ログの数が閾値以下となるまで繰り返される。排他ロックが取得されていないため、初期同期部34の処理中は、アクセス部100によるオリジナルDBのデータの更新が許可され、更新に応じたアクセス先決定部21による更新ログの生成は継続される。すなわち、最終同期部35が排他ロックを取得するまでは、初期同期部34の処理中を含め、更新ログ記憶部15に新たな更新ログが追記され続ける。最終同期部35は、再編成制御部22により制御され、再編成部24によるコピーDB12の再編成が終わり、かつ更新ログ記憶部15に記憶された更新ログの数が閾値以下であると、オリジナルDB11の排他ロックを取得してオリジナルDB11のデータに対する更新および参照を禁止し、更新ログ記憶部15に記憶された更新ログを1つずつコピーDB12に適用するとともに、適用した更新ログを更新ログ記憶部15から削除する。そして、更新ログ記憶部15に記憶された更新ログの数がゼロになると、最終同期部35は、オリジナルDB11の排他ロックを開放する。この結果、オリジナルDB11とコピーDB12との再編成後の同期が終了する。なお、初期同期部34が用いる閾値は、ゼロであってもよい。この場合、最終同期部35は、更新ログ記憶部15に記憶された更新ログがゼロになるまで初期同期部34が更新ログを適用した後、最終同期部35がオリジナルDB11の排他ロックを取得するまでの間に、新たに更新ログ記憶部15に追記された更新ログのみを適用することになる。次に、本実施形態に係るデータベース装置10の動作の一例について説明する。図3は、第1実施形態に係る再編成処理を進捗に応じて複数の処理フェーズに分類する一例を示す説明図である。また、図4は、第1実施形態に係る再編成処理における処理フェーズ、状態フラグ、アクセス先決定部21の動作および再編成制御部22の動作の関係を示す説明図である。図3および図4に示すように、本実施形態に係る再編成処理は6つのフェーズに分類される。フェーズ0は、再編成処理中ではなく、通常の起動状態である。オリジナルDB11からコピーDB12へページごとのコピーがコピー部23により実行されている期間はフェーズ1に分類される。全ページのコピーが一通り完了した後、コピー部23によりコピーDB12に対して進捗情報記憶部14に記憶された再コピーページ番号のページが再コピーされている期間はフェーズ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にページごとにデータをコピーした後、進捗情報記憶部14に記憶された再コピーページ番号のページを再コピーして、オリジナルDB11とコピーDB12との同期を行う。また、コピー部23は、再コピーの間に更新が行われたページについても再コピーを行い、オリジナルDB11とコピーDB12との同期を行う。最終再コピー部33の処理の間を除き、コピー中および再コピー中においてオリジナルDB11に対する更新アクセスは禁止されず、再コピーページ番号が進捗情報記憶部14に追記されていく。次に、ステップS4において、再編成部24は、コピーDB12を再編成する。この再編成の間にも、オリジナルDB11に対する更新アクセスは禁止されない。この間に更新が行われると、更新ログが更新ログ記憶部15に追記されていく図4参照。次に、ステップS5において、同期部25は、ステップS4の間にオリジナルDB11に対して行われた更新をコピーDB12に適用してオリジナルDB11とコピーDB12との同期を行う。また、同期部25は、この同期処理の間に行われた更新についてもコピーDB12に適用し、オリジナルDB11とコピーDB12との同期を行う。そして、アクセス先決定部21は、アクセス部100のアクセス先をオリジナルDB11からコピーDB12に変更する。次に、ステップS6において、再編成制御部22は、コピー部23を介してオリジナルDB11を削除する。この結果、これ以降はコピーDB12がオリジナルのデータベースとして機能する。以上の手順により、コピーDB12を再編成する場合においてアプリケーションプログラムによるデータベースアクセスに対する妨害を低減しつつ確実にデータベースの再編成処理を行うことができる。図6は、図5のステップS3で主制御部13により実行されるコピーの手順を示すサブルーチンフローチャートである。図6において、Sに数字を付した符号は、フローチャートの各ステップを示す。また、図7は、図6のステップS31~S36で仮コピー部31により実行されるコピーの様子を説明するための簡略的なブロック図である。また、図8は、図6のステップS37~S47で初期再コピー部32および最終再コピー部33により実行される再コピーの様子を説明するための簡略的なブロック図である。この手順は、図5のステップS2で処理フェーズが0から1に移行した時点でスタートとなる。まず、ステップS31において、仮コピー部31は、これからコピーしようとしているページが属するテーブルコピー対象テーブルの共有ロックを獲得する。共有ロックは、更新アクセスを禁止する一方、参照アクセスを許可するロックである。次に、仮コピー部31は、オリジナルDB11から単位ページ量のデータを取得しステップS32、取得したデータをコピーDB12にコピーしステップS33、進捗情報記憶部14の再コピーページ番号からコピーしたページの番号を削除しステップS34、コピー対象テーブルの共有ロックを開放するステップS35。次に、仮コピー部31は、オリジナルDB11の全てのページがコピーされたか否かを判定するステップS36。全てのページがコピーされた場合、処理フェーズは1から2に移行し、ステップS37に進む。なお、このとき状態フラグは1のままである図4参照。一方、未コピーのページがある場合、ステップS31に戻り、引き続き未コピーページのコピーを行う。以上のステップS31~S36の手順により、仮コピー部31によってオリジナルDBを構成する全てのページをそれぞれ一度ずつコピーしたコピーDB12を作成することができる。次に、ステップS37において、初期再コピー部32は、進捗情報記憶部14に記憶された再コピーページ番号の数が閾値以下であるか否かを判定する。たとえば、閾値がゼロである場合は、初期再コピー部32は、進捗情報記憶部14に記憶された再コピーページ番号の数がゼロ以下か、すなわちゼロであるか否かを判定する。閾値より多い場合、ステップS38に進む。一方、閾値以下である場合、ステップS44に進む。次に、ステップS38において、初期再コピー部32は、進捗情報記憶部14から再コピーページ番号を1つ取得し、この番号のページが含まれるテーブルの共有ロックを取得してからステップS39、この番号のページのデータをオリジナルDB11から取得しステップS40、取得したデータをコピーDB12にコピーするステップS41。そして、初期再コピー部32は、この番号を進捗情報記憶部14の再コピーページ番号から削除しステップS42、テーブルの共有ロックを開放してステップS43、ステップS37に戻る。以上のステップS38~S43の手順により、初期再コピー部32によって進捗情報記憶部14の再コピーページ番号の数が閾値以下となるまで、再コピーが実行される。一方、ステップS37で進捗情報記憶部14に記憶された再コピーページ番号の数が閾値以下であると判定されると、最終再コピー部33は、オリジナルDB11の排他ロックを獲得しステップS44、進捗情報記憶部14に記憶された再コピーページ番号の数がゼロであるか否かを判定するステップS45。なお、ステップS37において閾値がゼロである場合でも、ステップS37で再コピーページ番号数がゼロであると判定された後にステップS44で最終再コピー33がオリジナルDB11の排他ロックを取得するまでの間に新たな再コピーページ番号が追記される場合があることに注意する。再コピーページ番号の数がゼロでない場合はステップS45のNO、最終再コピー部33は、ステップS38~ステップS43で初期再コピー部32が行ったのと同様の手順により、進捗情報記憶部14に記憶された再コピーページ番号の1つを再コピーしてステップS38-2~S42-2、ステップS45に戻る。なお、ステップS44以降の処理において、コピー対象テーブルの共有ロックに係る処理ステップS39およびS42に相当するステップを実行する必要は無い。ステップS44ですでにオリジナルDB11の排他ロックを取得しているためである。一方、再コピーページ番号の数がゼロである場合はステップS45のYES、最終再コピー部33は、進捗情報記憶部14に記憶された状態フラグを1から2に更新するステップS46。このとき、処理フェーズは2から3に移行する。そして、最終再コピー部33は、オリジナルDB11の排他ロックを開放するステップS47。以上のステップS44~S47およびS38-2~S42-2の手順により、最終再コピー部33によって進捗情報記憶部14の再コピーページ番号の数がゼロになるまで、再コピーが実行される。なお、初期再コピー部32は、ステップS38において、再コピー全体の処理時間が短くなるような順番で再コピーページ番号を1つずつ取得してもよい。データベースに記憶されている複数のページには、一般に、データが記録されているページのほか、複数のページを管理するためのページ以下、管理ページというが含まれていることが多い。管理ページが管理しているページが更新されると、更新されたページのみならず、この管理ページも更新される場合がある。したがって、この種の更新される頻度が高いページは、できるだけ最後に再コピーすることが好ましい。このため、たとえば各ページに対して更新される頻度を示す情報たとえば直近の所定期間に更新された回数や、管理ページであるか否かの情報などが関連付けられた更新頻度情報をあらかじめ記憶媒体に記憶させておくとよい。この場合、初期再コピー部32は、進捗情報記憶部14に記憶されたページの番号を1つずつ取得する際に、この更新頻度情報にもとづいて、更新される頻度が高いページほど後に取得することにより、進捗情報記憶部14に記憶された再コピーページ番号の再コピー全体にかかる時間を短縮することができる。図9は、図5のステップS4で実行される再編成の様子を説明するための簡略的なブロック図である。図5のステップS4は、図5のステップS3図6のステップS46で状態フラグが1から2に更新される処理フェーズが2から3に移行すると実行される。再編成部24は、再編成制御部22に制御されて、再コピーによりオリジナルDB11と同期されたコピーDB12を再編成する。コピーDB12が再編成されると、処理フェーズは3から4に移行する。続いて、再編成後にコピーDB12に更新ログを適用してオリジナルDB11とコピーDB12との同期を行う際の手順を説明する。図10は、図5のステップS5で主制御部13により実行される再編成後の同期の手順を示すサブルーチンフローチャートである。図10において、Sに数字を付した符号は、フローチャートの各ステップを示す。また、図11は、図10の手順で実行される再編成後の同期の様子を説明するための簡略的なブロック図である。この手順は、図5のステップS4で処理フェーズが3から4に移行した時点でスタートとなる。ステップS51において、同期部25の初期同期部34は、更新ログ記憶部15を検索し、更新ログ記憶部15に記憶された更新ログの数が閾値以下であるか否かを判定する。たとえば、閾値がゼロである場合は、初期同期部34は、更新ログ記憶部15に記憶された更新ログの数がゼロ以下か、すなわちゼロであるか否かを判定する。閾値より多いである場合はステップS51のNO、初期同期部34は、更新ログ記憶部15から更新ログを1つ取得しステップS52、取得した更新ログをコピーDB12に適用してステップS53、ステップS51に戻る。一方、閾値以下である場合はステップS51のYES、最終同期部35は、まず、オリジナルDB11の排他ロックを取得してからステップS54、更新ログ記憶部15を検索し、更新ログ記憶部15に記憶された更新ログの数がゼロであるか否かを判定するステップS55。なお、ステップS51において閾値がゼロである場合でも、ステップS51で更新ログ数がゼロであると判定した後にステップS54で最終同期部35がオリジナルDB11の排他ロックを取得するまでの間に新たな更新ログが追記される場合があることに注意する。更新ログ数がゼロでない場合はステップS55のNO、最終同期部35は、更新ログ記憶部15から更新ログを1つ取得しステップS56、取得した更新ログをコピーDB12に適用してステップS57、ステップS55に戻る。一方、更新ログ数がゼロである場合はステップS55のYES、最終同期部35は、進捗情報記憶部14に記憶された状態フラグを2から3に更新するステップS58。すなわち、処理フェーズは4から5に移行する。そして、最終同期部35は、オリジナルDB11の排他ロックを開放するステップS59。以上の手順により、アプリケーションプログラムのデータベースアクセスの妨害を低減しつつ再編成後にコピーDB12に更新ログを適用してオリジナルDB11とコピーDB12との同期を行うことができる。図12は、図5のステップS5で再編成後の同期が行われた後、アクセス部100のアクセス先がオリジナルDB11からコピーDB12に変更される様子を説明するための簡略的なブロック図である。図5のステップS5図10に示す手順を実行することにより、コピーDB12は、オリジナルDB11と同一のデータを格納しつつこれらのデータが再編成された状態となっている。したがって、再編成後の同期後は、コピーDB12をアクセス部100のアクセス先とするとよい。そこで、アクセス先決定部21は、図5のステップS5図10のステップS58で状態フラグが2から3に更新されたことを受け、アクセス部100のアクセス先をコピーDB12に切り替える図4、図12参照。図13は、第1実施形態におけるアクセス部100から更新要求を受けたアクセス先決定部21の処理手順を示すフローチャートである。図13において、Sに数字を付した符号は、フローチャートの各ステップを示す。この手順は、アクセス先決定部21がアクセス部100からデータの更新要求を受けた時点でスタートとなる。なお、この手順はゼロを含む全ての状態フラグ値に対応するものである。まず、アクセス先決定部21は、状態フラグを取得しステップS81、状態フラグが3であるか否かを判定するステップS82。状態フラグが3である場合は、アクセス先決定部21は、ステップS83でアクセス部100のアクセス先をコピーDB12に切り替えて図4、図10参照、進捗情報記憶部14に記憶された状態フラグを3から0に更新してステップS84、ステップS85に進む。この結果、処理フェーズは0となり、再編成処理中ではなく、通常の起動状態となる。他方、ステップS81で状態フラグが3でないと判定した場合もステップS85に進み、アクセス先決定部21は、更新先テーブルの排他ロックを獲得しステップS86、アクセス先DBのデータを更新するステップS86。次に、ステップS87において、アクセス先決定部21は、状態フラグが1であるか否かを判定する。状態フラグが1再編成処理のコピー中または再コピー中である場合は、アクセス先決定部21は、更新対象ページの番号が進捗情報記憶部14に再コピーページ番号として記憶されていないか否かを判定するステップS88。再コピーページ番号として記憶されていない場合はステップS88のYES、更新対象ページの番号を進捗情報記憶部14に再コピーページ番号として記憶させてステップS89、更新先テーブルの排他ロックを開放しステップS90、一連の手順は終了となる。一方、更新対象ページの番号が進捗情報記憶部14に再コピーページ番号としてすでに記憶されている場合はステップS88のNO、更新対象ページの番号を記憶させることなく更新先テーブルの排他ロックを開放しステップS90、一連の手順は終了となる。他方、状態フラグが1再編成処理のコピー中または再コピー中でない場合はステップS87のNO、ステップS91において、アクセス先決定部21は、状態フラグが2であるか否かを判定する。状態フラグが2再編成処理の再編成中または再編成後の同期中である場合は、更新ログ記憶部15に更新ログを記憶させてステップS92、更新先テーブルの排他ロックを開放しステップS90、一連の手順は終了となる。一方、状態フラグが2でない場合、すなわち状態フラグが0である場合は、更新ログを生成することなく更新先テーブルの排他ロックを開放しステップS90、一連の手順は終了となる。図14は、第1実施形態におけるアクセス部100から参照要求を受けたアクセス先決定部21の処理手順を示すフローチャートである。図14において、Sに数字を付した符号は、フローチャートの各ステップを示す。図13と同等のステップには同一符号を付し、重複する説明を省略する。この手順は、アクセス先決定部21がアクセス部100からデータの参照要求を受けた時点でスタートとなる。なお、この手順はゼロを含む全ての状態フラグ値に対応するものである。ステップS101において、アクセス先決定部21は、参照先テーブルの共有ロックを取得する。そして、アクセス部100に対してアクセス先DBのデータを参照させステップS102、参照先テーブルの共有ロックを開放するステップS103。本実施形態に係るデータベース装置10のコピー部は、仮コピー部31によるコピーDB12の作成が終わるまで、再コピーを行わない。コピー中における更新内容は、コピーDB12に対しては同時には反映されず更新ページの番号が再コピーページ番号として一旦記憶され、仮コピー部31のコピーを待って初期再コピー部32および最終再コピー部33によって利用される。このため、コピー処理と同期処理とでコピーDB12のデータの排他ロックWRITEロックを取り合ってしまうことがない。したがって、ロックの粒度によらず、排他ロックWRITEロック取得待ちによる更新処理の速度低下を防ぐことができる。また、仮コピー部31のコピー中においては、アクセス部100の更新アクセスを禁止しない。また、再コピー中および再編成後の同期中においては、アクセス部100の更新アクセスは、最終再コピー部33の動作中および最終同期部35の動作中を除き許可される。したがって、各種アプリケーションプログラムがデータベースアクセスを妨害される期間を非常に短くすることができる。また、本実施形態に係るデータベース装置10は、コピー部23のコピー中にアクセス部100がデータの更新を行った場合、更新されたデータを含むページ番号を再コピーページ番号として記憶しておき、更新ログは利用しない。この再コピーページ番号は、同一の番号が2重に記憶されることが無い図13のステップS88~S90参照。このため、たとえばコピー部23のコピー中にアクセス部100が同一のページに対する更新を複数回行った場合、本実施形態に係るデータベース装置10によれば再コピーページ番号が1つ記憶されるにすぎないが、更新ログを利用する場合には更新回数分の更新ログが記憶されてしまう。このため、コピー部23のコピー中に行われた更新をコピーDB12に反映する場合、再コピーページ番号を利用するほうが更新ログを利用する場合に比べ処理回数を少なくすることができ、再編成処理全体にかかる時間を短縮することができる。第2の実施形態次に、本発明に係るデータベース装置及びデータベース再編成方法の第2実施形態について説明する。この第2実施形態に示すデータベース装置10Aは、オリジナルDB11が再編成される点で第1実施形態に示すデータベース装置10と異なる。他の構成および作用については図1に示すデータベース装置10と実質的に異ならないため、同じ構成には同一符号を付して説明を省略する。図15は、本発明の第2実施形態に係るデータベース装置10Aにより実行される再編成処理全体における各構成要件間の関係を簡単に示す説明図である。図15に示すように、本実施形態では、再編成部24は、コピーDB12ではなくオリジナルDB11を再編成する。次に、本実施形態に係るデータベース装置10Aの動作の一例について説明する。図16は、第2実施形態に係る再編成処理を進捗に応じて複数の処理フェーズに分類する一例を示す説明図である。また、図17は、第2実施形態に係る再編成処理における処理フェーズ、状態フラグ、アクセス先決定部21の動作および再編成制御部22の動作の関係を示す説明図である。図16および図17に示すように、本実施形態に係る再編成処理は7つのフェーズに分類される。第1実施形態におけるフェーズ2とフェーズ3の間に新たなフェーズおよび状態フラグが設けられた点が第1実施形態に係る再編成処理と異なる。フェーズ0、1および2は第1実施形態に係る再編成処理と同一であるため、説明を省略する。コピーDB12に再コピーページ番号のページが再コピーされた後、アクセス先決定部21によりアクセス先がコピーDB12へ切り替えられる期間はフェーズ3に分類される。コピーDB12にアクセス先が切り替えられた後、再編成部24によりオリジナルDB11が再編成されている期間はフェーズ4に分類される。オリジナルDB11が再編成された後、同期部25によりオリジナルDB11に対してフェーズ4開始以降に生成された更新ログが適用されている期間はフェーズ5に分類される。オリジナルDB11に更新ログが適用された後、アクセス先決定部21によりアクセス先がオリジナルDB11へ切り替えられる期間はフェーズ6に分類される。図18は、第2実施形態に係るデータベース装置10Aの主制御部13により、オリジナルDBを再編成する場合においてアプリケーションプログラムによるデータベースアクセスに対する妨害を低減しつつ確実にデータベースの再編成処理を行う際の手順を示すフローチャートである。図18において、Sに数字を付した符号は、フローチャートの各ステップを示す。図5と同等のステップには同一符号を付し、重複する説明を省略する。この手順は、再編成処理の開始指示があった時点でスタートとなる。なお、再編成処理の開始指示は、データベースユーザによって図示しない入力部を介して与えられてもよいし、あらかじめ設定された所定の時間や所定の周期で自動的に与えられてもよい。ステップS201において、コピー部23は、オリジナルDB11からコピーDB12にページごとにデータをコピーした後、進捗情報記憶部14に記憶された再コピーページ番号のページを再コピーして、オリジナルDB11とコピーDB12との同期を行う。なお、ステップS201の処理は図5のステップS3とほぼ同一であり、詳細な手順も図6に示す手順とほぼ同一であるが、図6のステップS46で移行する状態フラグ2処理フェーズ3が意味するところのみが異なる。ステップS201が実行されると、アクセス先決定部21は、アクセス部100のアクセス先をオリジナルDB11からコピーDB12に変更する図17参照。なお、状態フラグは、アクセス先の切り替えが終わった時点でアクセス先決定部21により2から3に更新されても処理フェーズが3から4に移行してもよいし、アクセス部100による更新アクセスまたは参照アクセスがあるとアクセス先決定部21により2から3に更新されても処理フェーズが3から4に移行してもよい。次に、ステップS202において、再編成部24は、オリジナルDB11を再編成する。この再編成の間、コピーDB12に対する更新アクセスは禁止されず、更新ログが更新ログ記憶部15に追記されていく。再編成されると、処理フェーズは4から5に移行する。次に、ステップS203において、同期部25は、ステップS202の間にコピーDB12に対して行われた更新をオリジナルDB11に適用してオリジナルDB11とコピーDB12との同期を行う。また、同期部25は、この同期処理の間にコピーDB12に対して行われた更新についてもオリジナルDB11に適用し、オリジナルDB11とコピーDB12との同期を行う。同期されると、最終同期部35により状態フラグが3から4に更新される処理フェーズが5から6に移行する。そして、アクセス先決定部21は、アクセス部100のアクセス先をコピーDB12からオリジナルDB11に変更する。次に、ステップS204において、再編成制御部22は、コピー部23を介してコピーDB12を削除する。以上の手順により、オリジナルDB11を再編成する場合においても、アプリケーションプログラムによるデータベースアクセスに対する妨害を低減しつつ確実にデータベースの再編成処理を行うことができる。続いて、オリジナルDB11の再編成後にオリジナルDB11に更新ログを適用してオリジナルDB11とコピーDB12との同期を行う際の手順を説明する。図19は、図18のステップS203で主制御部13により実行される再編成後の同期の手順を示すサブルーチンフローチャートである。図19において、Sに数字を付した符号は、フローチャートの各ステップを示す。なお、図10と同等のステップには同一符号を付し、重複する説明を省略する。この手順は、図18のステップS202で処理フェーズが4から5に移行した時点でスタートとなる。更新ログ記憶部15に記憶された更新ログの数が閾値以下であるとステップS51のYES、初期同期部34は、更新ログ記憶部15から更新ログを1つ取得しステップS52、取得した更新ログをオリジナルDB11に適用してステップS221、ステップS41に戻る。一方、閾値以下である場合はステップS51のYES、最終同期部35は、コピーDB12の排他ロックを取得するステップS222。そして、更新ログ数がゼロでない場合はステップS55のNO、最終同期部35は、更新ログ記憶部15から更新ログを1つ取得しステップS56、取得した更新ログをオリジナルDB11に適用してステップS223、ステップS55に戻る。一方、更新ログ数がゼロである場合はステップS55のYES、最終同期部35は、進捗情報記憶部14に記憶された状態フラグを3から4に更新するステップS224。すなわち、処理フェーズは5から6に移行する。そして、最終同期部35は、コピーDB12の排他ロックを開放するステップS225。以上の手順により、アプリケーションプログラムのデータベースアクセスの妨害を低減しつつ、オリジナルDB11の再編成後にオリジナルDB11に更新ログを適用してオリジナルDB11とコピーDB12との同期を行うことができる。図20は、第2実施形態におけるアクセス部100から更新要求を受けたアクセス先決定部21の処理手順を示すフローチャートである。図20において、Sに数字を付した符号は、フローチャートの各ステップを示す。なお、図13と同等のステップには同一符号を付し、重複する説明を省略する。この手順は、アクセス先決定部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は、アクセス先をオリジナルDB11としステップS285、状態フラグが4であるか否かを判定しステップS286、状態フラグが4である場合は、進捗情報記憶部14に記憶された状態フラグを4から0に更新するステップS287。また、ステップS86でアクセス先のDBが更新され、ステップS87で状態フラグが1ではないと判定されると、アクセス先決定部21は、状態フラグが3であるか否かを判定するステップS91。状態フラグが3である場合は、アクセス先決定部21は、更新ログ記憶部15に更新ログを記憶させてステップS92、更新先テーブルの排他ロックを開放しステップS90、一連の手順は終了となる。一方、状態フラグが3でない場合は、アクセス先決定部21は、更新ログを生成することなく更新先テーブルの排他ロックを開放しステップS90、一連の手順は終了となる。図21は、第2実施形態におけるアクセス部100から参照要求を受けたアクセス先決定部21の処理手順を示すフローチャートである。図21において、Sに数字を付した符号は、フローチャートの各ステップを示す。図21に示す手順は、図14と図20に示したステップと同等のステップにより構成されるため、説明を省略する。本実施形態に係るデータベース装置10Aによっても、第1実施形態に係るデータベース装置10と同様の作用効果を奏する。また、本実施形態に係るデータベース装置10Aによれば、オリジナルDB11を再編成することができるため、一連の再編成処理の前後でオリジナルDB11をアクセス先とすることができる。なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。たとえば、本実施形態では、再編成処理の対象をデータベース単位としたが、テーブル単位など他の単位としてもよい。また、本発明の実施形態では、フローチャートの各ステップは、記載された順序に沿って時系列的に行われる処理の例を示したが、必ずしも時系列的に処理されなくとも、並列的あるいは個別実行される処理をも含むものである。