JP2002525755A - アクティブdbmsテーブルを再編成するための方法及び装置 - Google Patents

アクティブdbmsテーブルを再編成するための方法及び装置

Info

Publication number
JP2002525755A
JP2002525755A JP2000571377A JP2000571377A JP2002525755A JP 2002525755 A JP2002525755 A JP 2002525755A JP 2000571377 A JP2000571377 A JP 2000571377A JP 2000571377 A JP2000571377 A JP 2000571377A JP 2002525755 A JP2002525755 A JP 2002525755A
Authority
JP
Japan
Prior art keywords
source
transaction
source table
block
data
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.)
Pending
Application number
JP2000571377A
Other languages
English (en)
Inventor
ヒルトン エム ペレイラ
Original Assignee
コンピュータ アソシエイツ シンク,インコーポレイテッド
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 コンピュータ アソシエイツ シンク,インコーポレイテッド filed Critical コンピュータ アソシエイツ シンク,インコーポレイテッド
Publication of JP2002525755A publication Critical patent/JP2002525755A/ja
Pending legal-status Critical Current

Links

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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Inorganic Compounds Of Heavy Metals (AREA)
  • Physical Or Chemical Processes And Apparatus (AREA)

Abstract

(57)【要約】 データベース表の再編成が行われ、再編成された表が正常のOLTPアクティビティに利用可能である。トリガーが設定され、再編成されたソース表(110)のOLTPアクティビティを記憶する。ソース表は一瞬ロックされ、SCNチェックポイントを確率すると共にソース表(115)のために割当てられたデータブロックの位置を決定する。タイムスタンプはソース表からアンロードされると共に新しい表(120)に挿入されるので、表のコピーは(新しい表)及び触れられていない/変更されたブロックを作り出される。タイムスタンプが新しい表で行われてからトランザクションが起こり、タイムスタンプがトリガーレコードの状態となってからトランザクションがもう起こらないようになっている。新しい表が(ソース表として改名された)ソース表により切換えられ、元のソース表はドロップされる。

Description

【発明の詳細な説明】
【0001】 (発明の技術的分野) 本発明は、データベース・マネジメント・システム(DBMS)テーブルの再
編成に関する。より厳密には、本発明は、DBMSテーブルをユーザーが利用可
能な状態に保ちながらDBMSテーブルを再編成することに関する。本発明は更
に、DBMSによるデータ検索のために設けられたSQLインタフェースをバイ
パスしながら、DBMSデータファイルから直接DBMSテーブルをアンロード
する再編成プロセスに関する。
【0002】 (発明の背景) 最近のデータベース・マネジメント・システムには、益々、より大きなデータ
記憶装置の保持が要求されてきている。データベースのサイズの増大に加えて、
最近のデータベース内の構造は益々複雑になってきている。
【0003】 通常、データベースはデータをテーブルの形で保持しており、各テーブルは、
関連するデータの1つ又はそれ以上の行を保持している。例を挙げると、ある基
本的なデータベース・テーブルは、例えば、組織に所属する個人の、名前、社会
保証番号、住所、電話番号を有する複数の行を保持している。
【0004】 データベースは、組織に新しいメンバーが追加されるにつれてサイズが大きく
なり、メンバーに関する情報が追加されるにつれ、大きく且つ複雑になる。例え
ば、より大きくより複雑なデータベースであれば、上記情報に加えて、クラブメ
ンバーの住所を示すマップを、おそらくはグラフィカルなフォーマットで保持す
ることができるようになる。データベースは、勤務先住所、及び勤務先の場所を
示す追加のグラフィカルなマップを追加すれば、更にサイズが大きく且つ複雑に
なる。
【0005】 データベース・テーブルは、データベースの他のテーブル又は行へのポインタ
を含むようになれば、更に複雑になる。例えば、もう1つのテーブルに保持され
ている同僚のセットに対するポインタ、近隣組織のメンバーに対するポインタ、
或いは、追加のメンバー・データが保持されているかもしれないあらゆる項目の
番号に対するポインタなどである。
【0006】 従来のデータベース・マネジメント・システム(DBMS)は、ブロックを割
り当てることにより、データベース・テーブルを構築するためのスペースを提供
する。テーブルが一旦定義されると、DBMSは、関係するデータの行を記憶す
るのに必要なブロックを割り当てる。例えば、テーブルが100,000行を含
むように構築され、テーブルの行が1ブロック当たり100行入ると定義される
場合、DBMSはテーブルを構築するのに1,000ブロックを割り当てる。
【0007】 通常、DBMSシステムは、ブロックを連続したブロックのセットとして割り
当てる。割り当てられるブロックの連続したセットは、普通、エクステントと呼
ばれる。一般的規則として、エクステントはそれぞれサイズが異なる。上記例を
使えば、DBMSは、1,000ブロックのエクステント1つでも、500ブロ
ックのエクステント2つでも、要求される1,000ブロックを割り当てること
ができるのであれば、どんなサイズのエクステントでも組み合わせてテーブルを
構築するのに使うことができる。必要なブロックが割り当てられると、次に、割
り当てられたブロックを使って、テーブル内の行にデータが記憶される。
【0008】 何時でも、テーブルに追加データを付け加えることができ、DBMSは要求に
応じて追加のブロックを割り当てることになる。例えば、ユーザーが表に250
行追加する場合、上記パラメータを使えば、3ブロックを追加して割り当てる必
要があることになる。
【0009】 又、何時でも、データベース内の情報を削除することができる。その場合、行
の削除はSQLの使用を通して行われ、テーブルから行が削除される。例えば、
ユーザーは、ブロック1から50行、ブロック20から40行、ブロック60か
ら30行削除することができる。そうなると、テーブル内には、テーブル内に存
在するデータを保持するに必要なよりも多くのブロックがあることになる。
【0010】 更に、データベース内のデータは更新される。例えば、上記データベース・テ
ーブルで、まだ戦力に入っていない組織のメンバーが、その人の名前、住所、社
会保証及び電話番号を保持する、割り当てられたテーブル内の行を持っていると
する。戦力になると同時に行は更新され、職場住所と関連情報が入れられること
になる。しかし、更新の結果として大量の情報が追加される場合、最初の行は、
更新されたデータを保持するのには、割り当てられたデータのブロックでは十分
でないかもしれない。
【0011】 行が更新され、最初の行には更新された情報全てを保持するスペースが十分に
ない場合、行の移送が行われる。移送が行われると、行はより大きなスペースを
備えた位置に動かされ、最初の行があったブロックには、移動(移送)された行
の位置を指すポインタが置かれる。テーブルに対し大幅な更新があると、大量の
行の移送が行われ、不適切な量のスペースが最初の行に割り当てられることにな
る。
【0012】 しばしば、ブロック内に、更新されたデータを保持するのに十分なスペースの
不足することがある。その場合には、行が、最初にあったブロックとは全く違う
ブロックに移送され、最初の行の位置には、異なるブロックの更新された行を指
すポインタが置かれる。
【0013】 行が移送されるときには常に、断片化と呼ばれる問題が起こる。断片化が起こ
ると、ブロックを読み取るのに加えてポインタを読んで翻訳しなければならなく
なるので、データベース情報の検索時間が大幅に増加する。行が他のブロックに
移送されると、行特有の情報を検索する際には、少なくとも2つのブロック(ポ
インタを含むブロックと、移送され/断片化された行を含むブロック)を読まな
ければならなくなる。データベース・テーブル内の構造的変更も、断片化及び関
連する効率上の問題(例えば、行連鎖)を引き起こす。
【0014】 時には、データベース・アドミニストレータ(DBA)が、テーブルの状態に
関する情報を提供する、DBMSテーブルの分析を行う。例えばデータベース・
アドミニストレータは、削除された行の数に関する情報を調べて、どれだけのブ
ロックが削除された行を保有しているかに関する効率情報を確認する。或いは、
データベース・アドミニストレータは、テーブルのどれだけの行が、他のプロセ
スによって移送され、又は断片化されてしまっているかを調べる。
【0015】 断片化が沢山発生していれば、ブロックのサイズ及び行のスペースをもっと効
率的に割り当てることができ、現在、テーブルのデータは効率的に検索されてい
ないということになる。そのような場合、データベース・アドミニストレータは
データベースを再構築する決定を下すことが多い。
【0016】 又別の例では、表を作る場合、DBAは自由ブロック比率(PCTFREE)
又は使用ブロック比率(PCTUSED)を設定して、データベース・テーブル
の構造に関する決定を行う。DBMSは、各ブロックに行及びテーブル情報を書
き込むので、自由ブロック比率を少なくともPCTFREEに等しくは保つこと
になる。
【0017】 DBAは、PCTFREE変数を、データベース・テーブルがどのように使わ
れることになるかによって設定する。例えば、テーブルが頻繁に更新されること
になる場合、十分なスペースを利用できるようにして同じブロック内で必要な行
の移送が全て行えるように、追加のPCTFREEを設定する。先に論じたよう
に、同一ブロック内での行の移送は、テーブルを断片化することにはならない。
移送されてはいるが断片化されてはいない行は、1つのブロックを読むだけで検
索でき、移送された行が断片化されているときのように、あるブロックを読み、
ポインタを翻訳し、第2(又はもっと多くの)のブロックを読む、というような
面倒なプロセスで検索する必要はない。従って、PCTFREEが適切に設定し
てあれば、データベース・テーブルが修正されても、DBMSの性能は維持でき
る。
【0018】 PCTUSEDは、DBAがDBMSテーブルの構造を制御できるようにする
もう1つのパラメータである。DBMSは、ブロックのパーセンテージがPCT
USEDを下回らない限り、そのブロックに追加の行が配置されるのを妨げる。
PCTUSEDは、更新がある場合にあるブロックが使われても、そのブロック
内で使われているパーセンテージがPCTUSEDを下回らない限り、新しい行
を挿入するのには使われない、という意味でPCTFREEとは異なる。
【0019】 随時、激しいOLTPアクティビティ(挿入、更新、削除)に巻き込まれてい
るDBMSテーブルは、行移送、断片化、行連鎖などに見舞われることになる。
更に、各種データベース・テーブルは、最初に構築されたときには、必ずしも適
切な設定(PCTFREE、PCTUSED)になっているわけではなく、或い
はデータベースの要件が変わったりして、テーブルに追加の移送、削除、断片化
が生じることになる。そうすると、データ検索及びスペース利用の性能に低下を
来すことになる。
【0020】 DBAは、テーブルが効率的にデータを記憶しているか否かを判定するために
分析を行う。その結果、DBMSテーブルの1つ又はそれ以上が、データの記憶
及び検索に効率的でないと判定されることになるかもしれない。テーブルの再編
成(再構築)が、この問題に対する解である。最高の性能を発揮するには、テー
ブルを再構築(即ち、データを2次スペースにアンロードし、新しいテーブルを
構築)する必要がある。このプロセスでは、断片化した行がアンロードされ、再
構築されたテーブルに断片化無く記憶されることになるので、上記の望ましくな
い状況の多くが取り除かれる。
【0021】 最近では、DBMSテーブルを再編成する製品は、DBAが自己の環境内でデ
ータベースをシャットダウンする必要なく、データベースをオンライン状態に保
ったままで、オンラインで行うように要求されている。しかしながら、再編成さ
れているテーブル又はテーブルのリストは、再編成プロセスは対象となる単一又
は複数のテーブルをロックするので、実際には、ユーザーには立入禁止となる。
1週間に7日、1日に24時間アクセスの必要なショップでは、これをやると許
容できないダウン時間が発生することになりかねない。大きなオブジェクトをロ
ックして再編成するのに必要な時間は、そのようなプロセスを現実的でないもの
とし、従って、DBAには再編成を行うのが不可能となる。
【0022】 (発明の概要) 本発明の発明人は、再編成プロセスの間を通して、全ての意図された目的に対
しデータベース・テーブルを利用可能な状態に保ったまま、データベース・テー
ブルをオンラインで再編成するという要件を理解している。
【0023】 従って、本発明の目的は、再編成プロセスの間、単一又は複数のテーブルの行
を完全に利用可能な状態に保ったままで、データベース・テーブルの再編成がで
きるようにすることである。
【0024】 本発明の別の目的は、データベース・テーブルのオンライン再編成が行われる
速度を上げる方法を提供することである。
【0025】 上記並びにその他の目的は、SCNチェックポイントをソーステーブル上に確
立する段階と、SCNチェックポイントの直前の状態にあるソーステーブルの再
編成されたコピーを作る段階と、チェックポイント後に生じたトランザクション
を再編成されたテーブルに適用する段階と、ソーステーブルを再編成されたテー
ブルに切り替える段階とから成る、データベース・ソーステーブルを再編成する
ための方法によって達成される。本方法は更に、トランザクションのエントリを
トランザクション・テーブル内のソーステーブルに記録するためのトリガをソー
ステーブル上に作る段階と、トランザクションがソーステーブルで起こらないよ
うにするためにソーステーブル上にロックを獲得する段階と、ソーステーブル上
にロックを獲得する前にトリガによって記録されたエントリを削除する段階と、
ソーステーブルをアンロックする段階とを含んでいる。
【0026】 トリガを作る段階と、ロックを獲得する段階とは、チェックポイントを確立す
る段階の前に実行される。ソーステーブルを再編成されたテーブルに切り替えた
後、最初のソーステーブルはドロップして、新しい又はその他のテーブルがスペ
ースを利用できるようにする。
【0027】 本発明は、再編成プロセスの間、テーブルの行を完全に利用できる状態に保ち
ながら、DBMSテーブルを再編成できるようにする方法及び装置を提供する。
再編成プロセスは、1)トランザクションをトランザクション記録テーブルに記
録するためのソーステーブル上のトリガ、2)SQLインタフェースをバイパス
してDBMSデータファイルから行を直接アンロードするための能力、という2
つの主要な構成要素を有している。
【0028】 再編成プロセスは、2つのフェーズで実行される。第1は、バルク・アンロー
ド/ロード・フェーズであり、データの行がオラクルブロックからアンロードさ
れる。対象のブロックには、時間内のある点までは触れてはならない。確立すべ
き時間内のある点とは、ソーステーブル上にトリガが作られる(即ち、トリガが
確立された後に生じる全てのトランザクション及びブロック修正は、トランザク
ション記録に記録される)時点である。
【0029】 再編成プロセスの第2のフェーズは、トランザクション記録テーブルを処理し
て、新しいテーブルをソースと同期させる段階である。新しいテーブルとソース
テーブルが同期すると、再編成プロセスは、ソーステーブルをドロップし、新し
いテーブルの名前をソーステーブルの最初の名前に変える段階を含む切替をプロ
セスに適用する。
【0030】 (実施の形態) データベーステーブルのオンライン再編成の概念理論は、テーブルをアンロッ
クに維持してテーブルのユーザが利用できるようにしながら、テーブルの再編成
を提供する。
【0031】 再編成は、テーブルに対するOLTPアクティビティ(挿入、更新、及び削除
)の結果である行連鎖、移行、及び一般的なデータ断片化を排除するプロセスと
して定義されている。一般的には、再編成は、テーブルを物理的に再構築するこ
とによって遂行される。
【0032】 本発明は、以下のことを想定している。 a)再編成プロセスは、DBA特権である。 b)再編成プロセスは、ソーステーブル+再編成中に予測されるテーブルの成 長を保持するのに十分に大きい使用可能な自由テーブル空間(ブロック) を有している。 c)再編成中のソーステーブルは、再編成プロセス中にデータ定義言語(DD L)を受けることはない。 d)ソーステーブルは、通常のOTPLアクティビティのために使用可能であ る。 e)再編成プロセスは、通常の応用がOTPL環境においてそのようにする必 要があるのと全く同じように、テーブルのロックに関して時間から時間へ 競合する。
【0033】 この点において、本発明が一般的な用語で、且つオラクルデータベースシステ
ムの構造と矛盾しない特定例を使用して説明されることに注目することが重要で
ある。しかしながら、完全に異なる構造を使用する他のデータベースシステムも
本発明の範囲内にある。
【0034】 例えば、データベーステーブルを再編成するためには、データベーステーブル
の構造を知らなければならない。オラクルテーブルの構造内のキー要素は、“r
owid”としても知られているオラクル行アドレスである。
【0035】 rowidは、ファイル番号、ブロック番号、及びスロット番号からなる。こ
れは、オラクル行を独自に定義し、探知するために使用することができる。ファ
イルはブロックを含み、ブロックはスロットを含み、スロットはブロック内のオ
ラクル行を指し示す。しかしながら、ページまたは他の編成技術をベースとする
データベース構造も適用する。この場合、特定の行情報は、他のデータベース構
造と矛盾しない関連ページ及び行識別子を識別することによって入手する。
【0036】 別の例として、DBMSは一般的に、データベース内に発生する変化(OLT
Pアクティビティ)をレコードする、またはログする能力を提供する。オラクル
DBMSでは、データベースの状態の全てのトランザクションまたは変化がシス
テム変化数(SCN)に対してレコードされる。オラクルDBMSは、SCNの
独自性及びプロパティの不断の向上を保証する。従って、データベースの変化を
識別した時にはSCNが使用され、また本発明を別のDBMSに適用する時には
別の同じようなプロパティが使用される。
【0037】 さて図面を参照する。幾つかの図面においては、同一の、または対応する部品
に対しては同一の参照番号を付してある。図1Aは、本発明によるオンライン再
編成プロセスの高レベルプロセスを示す流れ図である。再編成はステップ100
から開始され、再編成プロセスは再編成入力パラメタを受ける。再編成入力パラ
メタは、再編成されるテーブルの名前のようなアイテム、及び再編成されるテー
ブルをどのように統合すべきかに関する特定の情報を与える他のパラメタを含ん
でいる。表1は、本発明により使用される入力パラメタのリストである。例えば
、限定するものではないが、PCTFREE及びPCTUSEDを含む他のパラメタも入力であ
ることができる。
【0038】表 1 ユーザが定義できる再編成パラメタの定義。入力は再編成プロセスに使用可能 にされる。 Login ユーザのログイン名 Passwird ユーザのパスワード Sid オラクルSid Home オラクルホーム DoFailurePrediction ドゥ故障予測フラグ FirstLock.Wait 初期ロック待機(秒) FirstLoc.Retry 再試行の初期ロック数 Table.Name テーブル名 Table.Owner テーブル所有者 Table.ChangeDDL 適用するために新テーブル変更 WorkSpace 一時的に格納するためのテーブル空間名 ExportDirectory ファイル格納のために使用されるファイルシステ ムディレクトリ名 Tablespaces 新テーブル格納情報 TransactionLock.Wait トランザクション適用中のロックパラメタ TransactionLock.Retry WindowTimeOut テーブルをロックし続けることを許容される時間 Switch スイッチ戦略情報 Threshold.Tries 新テーブルへのスイッチング試行時間なし Threshold.Exceed もしThreshold.Triesが超過すれば、アクション のインディケータ
【0039】 ステップ100に含まれているのは初期化プロセス(図2参照)であって、デ
ータベースへの接続(オラクル、この例ではステップ200において)、予備セ
ットアップの遂行(ステップ210)、データベースが再編成される状態にある
ことを確認する事前編成チェックを遂行する故障予測プロセス250の呼出しを
含む。 ステップ105において、要求に応じていろいろな初期化が遂行される。例え
ば、トランザクションを格納するためのログファイル(以下、トランザクション
テーブルという)が作成される。表2は、トランザクションテーブルの定義例で
あって、詳細に関しては後述する。
【0040】表 2 CREATE TABLE <c.owner>. TSREORG$LOG(\ ROW$$ rowid\ dmltype char(1). \ updtime date) <storage parameters> ステップ110において、ソーステーブル上で遂行される何等かのアクティビ
ティ(OLTP情報を含む)をログするソーステーブル上にトリガが作成される
。トリガは、例えばrowid、トランザクションの型、及び現タイムスタンプ
のようなログ情報を入力する。トランザクションテーブルは、“I”即ち挿入、
更新のための“U”、及び削除のための“D”のような参照を含むトランザクシ
ョンの型のための識別子を含む。ソーステーブルに対して発生するトランザクシ
ョンを識別するための他の方法(例えば、トランザクションを識別するナンバー
コード)も使用することができる。表3は、トランザクションテーブルと共に動
作するように設計されたトリガを実現するためのプログラミング構造の例を示し
ている。
【0041】表 3 CREATE OR REPLACE TRIGGER <c.owner>. TSREORG$TRIG after insert or update or delete on <c.owner.c.table>\ referencing old as old\ for each row declare dmltype char; \ begin if inserting then dmltype:='I'; \ elsif updating then dmltype:='U'; \ elsif deleting then dmltype:='D'; \ end if; \ insert into <c.owner>. TSREORG$LOG (row$$, dmltype) 図3は、トランザクションテーブルの作成及びトリガがステップ110に示さ
れているように組合わされる本発明の一実施の形態を示している。図3において
、トランザクションテーブルが作成され(ステップ300)、ユーザ定義一時テ
ーブル空間320内に格納される。ユーザ定義一時テーブル空間320は、ソー
ステーブルへの何等かの予測される追加及び更新を保持するのに十分な格納空間
を提供する。
【0042】 トリガ及びトランザクションテーブルがセットアップされると、ソーステーブ
ルはロックされ、チェックポイントが作成される(ステップ115)。ソーステ
ーブルに対するロックは、テーブルに対して更新が遂行されるのを防ぐ何等かの
プロセスを介して取得することができる。一般的に言えば、ロックを取得するた
めの最初の試みに成功しなければ、排他的なロックを取得するための待機時間の
長さ及び試行数が適用される。
【0043】 図4は、排他的ロックを取得し、チェックポイントを取得するためのプロセス
の詳細を示している。ステップ410において、排他的ロックが要求される。も
しロックが入手されなければ、再試行プロセス420が呼出される。ソーステー
ブルがロックされると、チェックポイントのためのSCN数が入手される(ステ
ップ430及び440)。
【0044】 チェックポイントは、時間内の、またはデータベースの状態内のある点を独自
に識別する何等かの識別子、または他の方法(例えば、タイムスタンプ、チェッ
クポイントと別の参照との組合わせ、または外部参照のような)である。例えば
、オラクルデータベースシステムでは、データベース内で発生する各トランザク
ションに対してSCNが適用される。オラクルシステムはSCNの独自性及び不
断の品質向上を保証するから、それはチェックポイントとして使用するのに十分
に適している。従ってステップ115において、ソーステーブルがロックされ、
SCNまたは他の類似識別子(CHECKPOINT SCNまたはReorgScnとも呼ばれる)が
チェックポイントとして入手される。表4は、ReorgScnを含む再編成プロセスを
プログラミングするのに使用される変数のリスト及び説明である。
【0045】表 4 再編成プロセス中に使用される応用変数の説明 ReorgScn 再編成の定義されたシステム変化回数 redoFiles 応用定義されたレドゥー情報ファイル undoFiles 応用定義されたアンドゥー情報ファイル ddlFiles 応用定義されたDDL情報ファイル insertSimt テーブルロードのための挿入ステートメントDDL ステップ120において、ソーステーブルがロックされている間に、ソーステ
ーブルのセグメントヘッダーが読出され、ブロックのリスト(エクステントリス
トとも呼ばれる)が作成される。ソーステーブルのセグメントヘッダーは、ソー
ステーブルによって使用するために割当てられたデータブロックを識別する識別
子を格納するファイルである。エクステントリストは、ソーステーブルデータが
アンロードされるブロックを識別する。
【0046】 オラクルデータベース管理システムでは、セグメントヘッダーは、テーブルが
作成された時に、またはそのテーブルのために既に割当て済みの空間の他に付加
的な空間を必要としたテーブルの更新中に割当てられるエクステント(隣接する
データのブロック)を識別する。従って、オラクルシステムでは、ステップ12
0において作成されるエクステントリストは、基本的には、ソーステーブルのた
めに割当てられた各エクステントを含み、これらの各エクステントはテーブルデ
ータを格納する隣接するデータのブロックのセットを識別する。
【0047】 本発明に関して言えば、ソーステーブルのセグメントヘッダーは、ソーステー
ブル内に格納されているデータが何処に位置しているかのリストを維持している
何等かのファイルまたは記憶デバイスとして広義に定義されている。例えば、デ
ータベース管理システムは、ページに基づいてデータ空間を割当てることができ
る。この場合、ステップ120において作成されるエクステントリストは、ペー
ジ情報、及びデータがソーステーブルの何処に格納されているかを識別するため
に必要な他のデータを含む。従って、どのような数のデータベース管理システム
及びそれらの個々の構造も、本発明の教示を使用すれば受入れ可能である。
【0048】 ステップ125において、ソーステーブルがアンロックされる。ソーステーブ
ルのアンロックに先立って、ステップ115においてチェックポイントを確立す
る前にトランザクションテーブル内において生成された行が削除される(例えば
、図4のステップ450)。トリガを作成し、テーブルをロックし、チェックポ
イントを確立し、そしてチェックポイントの確立の前にトランザクションテーブ
ル内にログされたトランザクションを削除するプロセス(チェックポイントを確
立する前にテーブルがロックされているから、このプロセスはソーステーブルが
ロックされている間にトランザクション内の全てのエントリを削除することによ
って遂行される)は、テーブルがロックされ且つチェックポイントが確立された
後に発生したエントリだけを維持することを保証する。
【0049】 図1Bを参照する。ステップ130において、ソーステーブルのコピーが作成
される(以下、新テーブルという)。新テーブルは、初めに作成されたソーステ
ーブルに基づいており、テーブルに対する全ての適用可能なユーザが要求したD
DL変更を含んでいる。
【0050】 図5は、ソーステーブルの生成を示すフローチャートである。ステップ500
において、ソーステーブルを定義するデータ定義言語(DDL)計画が検索され
る。DDLの変更を要求されたユーザはDDL(510)に適用され、索引を含
む新しいテーブルオブジェクトが生成される(520)。これらのプロセスは初
期設定で生成された再生及び取消ファイルに記録される(ステップ105、図1
A参照)。新しいテーブルをロードするための挿入命令文は後のレファレンス(
540)のために記憶される新しいテーブルのDDL(530)に基づいて生成
される。
【0051】 結局、行データはソーステーブルからアンロードされ、新しいテーブルにロー
ドされるであろう。ステップ135において、マッピングテーブルが作られ、ソ
ーステーブルのrowidを新しいテーブルに挿入された行のrowidにマッ
プする。DBMSが利用可能なrowidを作るかどうかに拘らず、マッピング
テーブルは、行がソーステーブルからアンロードされると共にそれらが新しいテ
ーブルに記憶されることに関する完全な情報を含むように設定される。
【0052】 ステップ140において、データ記憶装置(アンロードされたブロック範囲)
は、ソーステーブルからアンロードされたブロックのファイル番号及びブロック
番号の範囲を記憶するために作られている。本発明はデータ記憶装置にアンロー
ドされたファイル/ブロック番号のレコードを作る。オラクルは隣接範囲にブロ
ックを配置するので、アンロードプロセスは隣接範囲、したがって、オラクルシ
ステムにおいて、ブロックをアンロードしそうであり、ファイル/ブロック番号
の組合せの範囲を記憶するのに十分であろう。これは、アンロードされた全ての
ファイル/ブロック番号を記憶するのとは対照的に、記憶装置の要求を最小にす
る利点を有している。しかし、別のDBMSにおいて、それぞれの個々のファイ
ル/ブロック番号の組合せの記憶装置又はアンロードされたブロックをトラッキ
ングする他の方法はより有効なことがある。
【0053】 ステップ145において、データブロックはソーステーブルからアンロードさ
れ、そこに含まれたデータは新しいテーブルのブロックにロードされる。アンロ
ードプロセスは、ステップ120で作られたエクステントリストからデータブロ
ックを読むことを含んでいる。その後、行はアンロードブロックから抽出され、
新しいテーブルにロードされる。
【0054】 速度を改善するため、再編成プロセスはDBMSのSQLインターフェースを
バイパスし、データブロックを読み込み、DBMSデータファイルから直接行の
データを抽出する。DBMSのSQLインターフェースをバイパスすることは、
DBMSファイルの構造に関する情報を要求する。DBMSファイルに記憶され
たデータブロックからのデータの行を検索することはブロックの構造の知識を要
求する。DBMSブロック及びファイルの構造は、構造を説明する仕様書、又は
既に作られたブロックの調査のいずれかにより得られてもよい。
【0055】 例えば、図6は、オラクルデータブロックの構造を示している。オラクルテー
ブルの各データブロックは、ブロックヘッダー600、ブロックトランザクショ
ン情報領域610、及び行データ630へのポインターを含むテーブル及び行の
ディレクトリ620からできている。オラクルでは、行データそれ自体はボトム
アップで満たされている。
【0056】 上述した構造情報を利用して、オラクルDBMSファイルは開かれてもよく、
データブロックが読まれ、行情報がそこから抽出される。抽出された行情報は新
しいテーブルにロードされる。上述したように、同様の操作がオラクル以外のD
BMSシステムで行われてもよく、例としてここに示されている。
【0057】 アンロードプロセスは、ステップ115で確立されたSCN番号(CHECK
POIT_SCN)を使用する。CHECKPOIT_SCN以下のSCNを有
するブロックだけがアンロードされるだろう。CHECKPOIT_SCN以上
のSCNを有するブロックはスキップされるだろう。スキップされたブロックリ
ストもまた、アンロード/ロードプロセスでスキップされるブロックを認識する
ために維持される。
【0058】 ステップ145のアンロード/ロードブロックは図7により詳細に示されてい
る。ステップ700において、エクステントリストが読まれ、リストの各ブロッ
クのSCNが決定される(720)。
【0059】 ブロックSCNがCHECKPOIT_SCN以下の場合(ReorgScn
)には、チェックポイントが確立されるから、そのブロックが変更されないこと
を示している。この場合、そのブロックはソーステーブルからアンロードされて
新テーブル内へロードされるように指令され(ステップ750)、そのブロック
はアンロードされたブロック範囲へ追加される(760)。もしブロックSCN
がCHECKPOINT SCNより大きければ、そのブロックはスキップされたブロックのリ
ストに追加される(ステップ740)。エクステントリスト内の各ブロックは、
同一プロセスに適用される。
【0060】 各行がアンロードされて新テーブル内へ挿入されると、ソーステーブルのro
widが新テーブル内のその新rowidへマップされ、マッピングテーブル内
に格納される。マッピングテーブルは、もし必要ならば、再編成プロセスの後半
において特定の行の削除に使用される。マッピングは、DBMS内のテーブルの
形状で、メモリ内に、ファイルシステム上に、またはマッピングテーブルを維持
して後刻再編成プロセスが使用できるようにする他の何等かの方法で格納するこ
とができる。表5は、本発明の一実施の形態において使用されるリストを説明し
ている。
【0061】 テーブル 5 再編成処理の間に使用される記述リスト 前記リストにおけるエクステント・リスト・ノードが含むもの FileNo オラクル・データ・ファイル番号 BlockNo 開始オラクル・データ・ブロック Length このエクステントにおけるブロックの数 前記リストにおけるトランザクション・ブロック・リスト・ノードが含むもの
FileNo オラクル・データ・ファイル番号 BlockNo オラクル・ブロック番号 Count このブロックに関するトランザクションの数 前記リストにおけるトランザクション・リスト・ノードが含むもの rowid オラクル列アドレス type I=挿入、U=更新、D=削除のいずれかであるトランザク
ションの種類 前記リストにおける削除及び挿入リスト・ノードが含むもの SlotNo 列がオラクル・ブロックに記憶されるスロット
【0062】 テーブル5に記載のとおり、前記エクステント・リストは、ソース・テーブル
をアンロードする処理の間、ブロック情報を識別するために利用される。トラン
ザクション・ブロック・リストは、発生したトランザクションのブロック及び種
類を識別する。トランザクション・リストは、トランザクション・ブロック・リ
ストにおいて識別された各トランザクションに関して、rowid及びトランザ
クションの種類を供給する。そして最後に、削除及び挿入リストは、トランザク
ション・リストにおいて識別された各rowidに関してスロット番号を識別す
る。上記リストは、トランザクション・テーブルから情報を検索することによっ
てコンパイルされ、及びアプライ・トランザクション処理(例えば、図9参照、
ブロック910、及び920)において利用される。
【0063】 図8は、本発明によって利用される別個のアンロード及びロード処理(スレッ
ド)を示す。ロード・スレッドは、アンロードすべき特定のブロックを示すメッ
セージ805によって開始する(例えば、図7参照、ステップ750)。
【0064】 各列が抽出されると(ステップ820)、それは共有列転送領域840へと転
送され、アンロードされた列が、転送の準備ができていることを示すメッセージ
が、ロード・スレッドに送信される(ステップ850)。
【0065】 以前に初期化された(ステップ855)ロード・スレッドは、転送の準備がで
きている列を示すメッセージを受信する。転送領域における列が検索され、及び
前記列からのデータは、新しいテーブルへとロードされる(870)。列のアン
ロード、転送、及び新しいテーブルへのデータのロードは、ブロックにおける各
列に関して、アンロード・スレッド及びロード・スレッドによって反復される(
ステップ890及び895)。
【0066】 アンロード及びロード処理の持続期間に関して、ソース・テーブルは、通常の
OLTP活動に関してユーザが利用可能である。列上で作られたトランザクショ
ンは、トリガを経由して、トランザクション・テーブルに記録される。再編成処
理の第二段階は、記録されたトランザクションを処理することである(アプライ
・トランザクション処理、ステップ150)。
【0067】 後述のアプライ・トランザクション処理は、再編成が発生した/発生している
間に、ソース・テーブルに生じたトランザクションに従って、新しいテーブルを
更新し、及び図9A及び9Bにより詳細に記載されている。第一のステップは、
ソース・テーブルをロック(lock)し(図9A、ステップ900)、及びファイ
ル/ブロック番号によって編成されたトランザクションを識別するトランザクシ
ョン・ブロック・リスト920を作成する(ステップ910)ことである。これ
をすることの効果は、前記処理が、個別のトランザクションを処理するよりむし
ろ、一度に一つのブロックで生じたトランザクションを適用することができるこ
とである。
【0068】 トランザクション・ブロック・リストが空である場合、スキップされた(skip
ped)ブロック・リストに配置されたブロックは、アンロード/ロードされる(
ステップ930)。テーブルがロックされたのでトランザクションが未完のまま
である場合、ソース・テーブルは、トランザクションを発生させるためにアンロ
ックされ(940)、及びアプライ・トランザクション処理が開始する。
【0069】 図9Bへと続いて、トランザクション・テーブルにおいて見られる一定のファ
イル/ブロックに関して、このファイル/ブロック結合がアンロード処理に関与
したか、決定がなされなければならない(ステップ950)。このチェックは、
アンロード/ロード・ブロック処理750の間に、以前に記憶されたファイル/
ブロック範囲(760参照)に対してなされる。ファイル/ブロック結合が見つ
からなかった場合、このブロックの列は、新しいテーブルへとアンロード及びロ
ードされるだけでよい(960)。これは効果的に、このブロックに関して生じ
たすべてのトランザクションを処理する。さらに、ファイル/ブロック結合エン
トリは、スキップされたブロック・リストから取り除かれ、アンロードされたブ
ロックのファイル/ブロック範囲へと追加される。
【0070】 ブロックが見つかった場合とは、このファイル/ブロック結合における列が、
すでに新しいテーブルに存在することを意味する。一つの実施形態において、本
発明は、以前にアンロード/ロードされたブロック上でトランザクションを実行
するために、ブロック処理ごとに処理トランザクションを利用する(970、図
9B)。
【0071】 ブロック処理ごとの処理トランザクションは、図10Aに記載されている。第
一に、トランザクション・テーブルは、特定されたブロックに関するトランザク
ションを有する列を決定するために利用される(ファイル番号、ブロック番号結
合、ステップ1010)。それから、存在するのであれば、削除及び挿入に関す
るスロット番号で、リストが作成される(ステップ1020/1030)。更新
は、削除及び挿入として扱われるであろう。
【0072】 リストは、意味のあるトランザクションのみが実行される必要がある方法で、
作成される。例えば、一定のスロットに関して、挿入/削除/挿入が識別される
場合、挿入のみが必要とされるであろう。削除に関しては、削除されたソース・
テーブル列のrowidに基づいて、新しいテーブルから削除されるべき列を決
定するために、マッピング・テーブルが使用されるであろう。挿入に関しては、
ブロックは以下の制約条件を伴ってアンロード及びロードされる:挿入リストに
存在する列のみが、アンロードされる必要がある。挿入リストは、一定のファイ
ル/ブロック番号に関する、スロット番号のリストである。
【0073】 ここで図10Bを参照すると、前記リストが作成された後、削除リストに項目
が存在する場合、それらは(例えば、rowid又はスロット番号を増加するこ
とによって)編成され(ステップ1050)、それから新しいテーブルから削除
される(ステップ1055)。同様の方法で、項目が挿入リストに存在する場合
、それらは編成される(ステップ1060)が、新しいテーブルに挿入される(
ステップ1065)。前記挿入処理は、上述のアンロード/ロード処理750を
含む。
【0074】 他の実施形態において、前記トランザクションは、このファイル/ブロック結
合に関して挿入されたすべての列を、新しいテーブルから削除することによって
処理され、それから前記ブロックは、ソース・テーブルからリロードされる(9
80)。
【0075】 トランザクションが処理された後、トランザクション・テーブルにおいて対応
する列は、トランザクションが二回処理されるのを防止するために、削除される
。ブロック処理ごとの処理トランザクションは、処理すべきトランザクションが
なくなるまで続く。
【0076】 ソース・テーブルはオンラインなので、トランザクション・ログ・テーブルは
、トランザクションが処理されるよりも迅速に、満たされることが可能である。
追加の制御パラメータが、この状態を制御するために利用されてもよい。例えば
一定のしきい値(前記処理が実行された回数)の後、前記アクションが、前記テ
ーブルをロックし及び残りのトランザクションを消費するか、又は再編成を含む
ものであってもよい。
【0077】 他のパラメータが、トランザクションを処理するために利用可能性のあるウィ
ンドウを制御するために利用されてもよい。これは、ソース・テーブルにアクセ
スするすべての他のユーザと、再編成処理にアクセスするすべての他のユーザと
の間での時間の共有を可能にするであろう。
【0078】 データ・ブロックを更新し又は変更する処理の間、データベース管理システム
は、必ずしも前記更新又は変更のすべてを、即座にディスクに書き込まず、結果
としてダーティな(dirty)ブロック(更新されたが、まだディスクに記憶され
ていないブロック)を生む。効率のため、ブロックは時々メモリにキャッシュさ
れ、それから、個別の書き込みが各更新又は変更に関して処理するよりも、いく
つかのブロックが、単一のディスク書き込み処理において、ディスクに書き込ま
れてもよい。
【0079】 オラクル(Oracle)において、システム・チェックポイント(system checkpo
int)は、すべてのダーティなブロックが、持続性記憶装置(ディスク)に書き
込まれることを確実にする。このシステム・チェックポイントは、DBMSによ
って自発的に呼び出されるか、又はプログラミング(例えば、本発明のオンライ
ン再編成処理)あるいはDBAによって明確に要求されてもよい。
【0080】 (ディスクに書き込まれ又は書き込まれなかった)トランザクションのリスト
を処理するためのデフォルトの方法は、第一にシステム・チェックポイントを適
用し又は呼び出すことで開始する。しかしながら、システム・チェックポイント
は、時間がかかり、最終のトランザクション及び最終のシステム・チェックポイ
ントの発生回数のチェックは、前記ステップが必要であるかを明らかにする。最
終のトランザクション時が、最近のシステムのチェックポイント時の前に発生し
た場合、システム・チェックポイントは必要とされないであろう。
【0081】 例えば、最終のトランザクションが11時に発生した場合、最終のシステム・
チェックポイントは11時10分に発生し、及び未完のトランザクションのリス
トが処理される時間は11時20分であり、追加のシステム・チェックポイント
は、必ずしもこの時点ではない。反対に、最終のトランザクションが11時15
分だった場合、又は最終システム・チェックポイントにおけるいつか又はその後
に、追加のシステム・チェックポイントは、すべてのトランザクションがディス
クに書き込まれたことを確実にするために必要とされるであろう。
【0082】 さらなるエントリがトランザクション・テーブルに残らなくなると、初期アン
ロード中のスキッピング・ブロックの間、維持されていた、スキップされたブロ
ック・リストがチェックされる。アプライ・トランザクション処理の間に処理さ
れたブロックは、スキップされたブロック・リストから取り除かれる/取り除か
れた。図9Aにおいて、スキップされたブロック・リストに残っているファイル
/ブロック・エントリは、対応するファイル/ブロックから新しいテーブルへ、
列をアンロード/ロードすることによって処理される(ステップ930)。
【0083】 すべてのトランザクションが処理されると、新しいテーブルは、ソース・テー
ブルを取り替え(スイッチ・ソース・テーブル処理、ステップ155)、及びク
リーンアップ(cleanup)処理が呼び出され(ステップ160)、再編成処理を
完了させる。これは、トランザクション・ログ・テーブルに残っているエントリ
がなく、及びスキップされたブロック・リストが空である時に、さらなるトラン
ザクションが発生するのを防止するために、ソース・テーブル上で最終ロックを
得ることによって、実行される。再編成処理は、ソース・テーブルがドロップ(
dropped)されうるか、及び(最新の変更で更新されている)新しいテーブルが
、前記ソースへと再命名されうるかを決定しなければならない。再編成処理は、
(1)現在、ソース・テーブルへと読み取り専用アクセス(read only access)
のみを有するユーザと;及び(2)テーブルがアンロックされるのを待っている
未完のトランザクションの待ち行列に加わったユーザとの両方を考慮する。
【0084】 第一のケースにおいて、以下のアクションが取られうる(制御パラメータ NICEに基づく、ステップ1100、図11):(1)テーブルがドロップさ
れるように、読み取りアクセスに関与するユーザ・セッションをキル(kill)す
る(ステップ1110);又は(2)すべてのユーザ・トランザクションが終了
するまで、ある時間間隔でループする(1150)。この時点で、テーブルは交
換される(ステップ1120)。ステップ1120は、依存したオブジェクトの
作成(インデックス、外部キー、ビュー、等)、新しいテーブルのリリース(名
前は、ソース・テーブル名に変更される)を含み、前記ソース・テーブルはドロ
ップされるか、又は再命名され(バックアップの目的のために保管する)、再編
成処理を完了させる。新しいテーブルはロックされていないので、再命名される
とすぐに、DBMSのユーザはそれを利用することができる。
【0085】 第二のケースにおいて、トランザクションが未完である時、再編成処理は、前
記ロックを解放し、上述のアプライ・トランザクション処理を繰り返す。
【0086】 テーブル6は、ここで検討されている再編成処理の予備的な原型である。前記
予備原型は、コンパイル可能なもしくは実行可能なプログラムもしくはプログラ
ム設計言語でもなく、ここで検討されているすべての特性を含むものでもないが
、上述の発明の原理と一致した、オンライン再編成において実行される様々な機
能及び処理を示すものである。
【0087】
【0088】
【0089】
【0090】
【0091】
【0092】
【0093】
【0094】 本発明は、データベースの管理システム(DBMS)、特にDBMSのテーブ
ルの再編成について説明される。しかし、ここで説明される技術は、DBMS、
例えばスプレッドシートファイル、ワーク処理ファイル、及び他のデータ記憶装
置に直接リンクされない、多くのテーブルまたはデータ記憶収納場所へ適用され
る。
【0095】 本発明は、コンピュータ分野の当業者に明らかなように、本開示の技術によっ
てプログラムされた従来の、汎用または特定のディジタルコンピュータまたはマ
イクロプロセッサを用いて便利に具現化することができる。
【0096】 適切なソフトウェアコーディングは、ソフトウェア分野の当業者に明らかなよ
うに、本開示の技術に基づいて熟練したプログラマによって容易に準備すること
ができる。本発明は、この分野の当業者に容易に明らかなように、アプリケーシ
ョンの特定の集積回路の準備、または従来の要素回路の適切なネットワークを相
互接続することによって、実現可能である。
【0097】 本発明は、本発明のあらゆる処理を達成するために、コンピュータをプログラ
ムするために使用することができる記憶媒体にストアされた命令を有する記憶媒
体であるコンピュータプログラム製品を含む。この記憶媒体は、フロッピー(登 録商標)ディスク、光学ディスク、DVD、CD-ROMs、及び磁気光学ディ スクを含むあらゆる形式のディスク、ROMs、RAMs、EPROMs、磁気 または光学カード、または電子的命令を記憶するのに適したあらゆる形式のメデ ィアを含むが、これに限定されない。
【0098】 コンピュータ読取り可能な媒体の何れか1つに記憶される場合、本発明は、汎
用の/専用のコンピュータまたはマイクロプロセッサのハードウェアを制御する
ための、及びコンピュータまたはマイクロプロセッサが本発明の結果を利用する
ユーザまたはたのメカニズムと相互作用をすることができるためのソフトウェア
を含む。このようなソフトウェアは、デバイスの駆動装置、オペレーティングシ
ステム、およびユーザアプリケーションを含むが、それらに限定されない。最後
に、このようなコンピュータ読取り可能な媒体は、さらに、上述のように、少な
くとも1つの選択されたデータベースのテーブル上の再編成処理を行うためのソ
フトウェアを含む。
【0099】 データベーステーブル構造の識別及び検索、データベーステーブルのコピー、
データブロックのアンローディングとローディング、行情報の引出、トランズア
クションのロギング、ロギングされたトランズアクションの適用、及びディスプ
レイ、記憶、または本発明のプロセスによる結果の通信を含むが、これらの限定
されない本発明の教示を実現するためのソフトウェアモジュールは、汎用の/専
用のコンピュータまたはマイクロプロセッサのプログラミング(ソフトウェア)
に含まれる。
【0100】 明らかに、本発明の多くの変更及び変形が上記の教示によって可能である。し
たがって、請求の範囲内で、本発明は、ここに特に記載されたもの以外にも実現
されることを理解すべきである。
【図面の簡単な説明】 本発明、並びにそれに伴う数多くの利点は、添付図面を参照しながら以下の詳
細な説明をお読みいただけば、よく理解頂けるであろう。
【図1A】 本発明によるオンライン再編成のハイレベルプロセスを示すフローチャートで
ある。
【図1B】 同じくオンライン再編成のハイレベルプロセスを示す、図1Aに続くフローチ
ャートである。
【図2】 データベース・テーブルの再編成に先だって実行される初期化を示すフローチ
ャートである。
【図3】 プロセスオブジェクトの作成を示すフローチャートである。
【図4】 テーブルのロッキングと、チェックポイントの適用とを示すフローチャートで
ある。
【図5】 ソーステーブルのコピーの作成を示すフローチャートである。
【図6】 データブロックの構造を示す。
【図7】 ソーステーブルからソーステーブルのコピーへのデータブロックのアンロード
/ロードを示すフローチャートである。
【図8】 別々のアンロード及びロード・ブロックプロセスの機能と相互作用を示すフロ
ーチャートである。
【図9A】 アプライ・トランザクションプロセスを示すフローチャートである。
【図9B】 同じくアプライ・トランザクションプロセスを示す、図9Aに続くフローチャ
ートである。
【図10A】 データベース・テーブルのブロック毎のトランザクションの処理を示すフロー
チャートである。
【図10B】 同じくブロック毎のトランザクションの処理を示す、図10Aに続くフローチ
ャートである。
【図11】 ソーステーブルを再編成されたテーブルに切り替えるプロセスを示すフローチャ
ートである。

Claims (35)

    【特許請求の範囲】
  1. 【請求項1】 ソーステーブルのオンライン認識方法であって、 ポイントインタイム(時間内のポイント)と該ポイントインタイムでの前記ソ
    ーステーブルのステートを識別するタイムスタンプを確立するステップと、 前記タイムスタンプでの前記ソーステーブルの再編成コピーを生成するステッ
    プと、 前記タイムスタンプ後に生じるトランザクションを前記再編成テーブルに適用
    するステップと、 前記ソーステーブルを前記再編成テーブルにスイッチするステップと から成ることを特徴とする方法。
  2. 【請求項2】 請求項1に記載の方法において、更に、 前記ソーステーブルのトランザクションのエントリをトランザクションテーブ
    ルにログするために、前記ソーステーブルのトリガを利用するステップと、 前記ソーステーブルにトランザクションが生じるのを阻止するために前記ソー
    ステーブルにロックを獲得するステップと、 前記ソーステーブルの前記ロックを獲得する前に前記トリガによってログされ
    たエントリを削除するステップと、 前記ソーステーブルのロックを解除するステップとを備え、 前記トリガの利用ステップと前記ロックの獲得ステップとは、前記タイムスタ
    ンプの確立ステップよりも前に行われる ことを特徴とする方法。
  3. 【請求項3】 請求項2に記載の方法において、前記ソーステーブルの再編
    成コピーを生成するステップが、 前記再編成コピーを維持するために新オブジェクトを生成するステップと、 前記タイムスタンプ以後には修正されない前記ソーステーブルのブロックから
    データをアンロードするステップと、 前記データを前記新オブジェクトにロードするステップと を包含することを特徴とする方法。
  4. 【請求項4】 請求項3に記載の方法において、前記トランザクションを適
    用するステップが、 前記ソーステーブルに排他的ロックを獲得するステップと、 以前にアンロードされた、前記ソーステーブルのブロックに対応する、前記ト
    ランザクションテーブルからのトランザクションを、前記新オブジェクトにロー
    ドされた前記データに適用するステップと、 前記タイムスタンプ以後のトランザクションに含まれる前記ソーステーブルの
    ブロックであって以前にはアンロードされていないブロックからデータをアンロ
    ードし、そのデータを前記新オブジェクトにロードするステップと、 前記ソーステーブルの前記排他的ロックを解放するステップと から成ることを特徴とする方法。
  5. 【請求項5】 請求項3に記載の方法において、前記トランザクションを適
    用するステップが、 前記ソーステーブルに排他的ロックを獲得するステップと、 前記新オブジェクトに以前にロードされ且つ前記トランザクションテーブルに
    おいて識別されたブロックに対応するデータを削除するステップと、 前記ソーステーブルの修正データを、前記トランザクションテーブルにおいて
    以前にアンロードされて識別されたブロックからアンロードし、前記修正データ
    を前記新オブジェクトにロードするステップと、 前記タイムスタンプ以後のトランザクションに含まれる前記ソーステーブルの
    ブロックであって以前にはアンロードされていないブロックからデータをアンロ
    ードし、そのデータを前記新オブジェクトにロードするステップと、 前記ソーステーブルの前記排他的ロックを解放するステップと から成ることを特徴とする方法。
  6. 【請求項6】 請求項2に記載の方法において、前記トランザクションを適
    用するステップが、 前記ソーステーブルに排他的ロックを獲得するステップと、 前記トランザクションログの残りのエントリを、前記再編成テーブルに適用す
    るステップと、 前記排他的ロックの結果として、いずれかの追加のトランザクションがペンデ
    ィング中であるかどうかを判定し、追加のトランザクションがペンディングであ
    る場合、 前記ソーステーブルの前記排他的ロックを解放するステップと、 追加のトランザクションがペンディングでなくなるまで、前記排他的ロックの
    獲得ステップと前記残りのエントリの適用ステップと前記判定ステップとを繰り
    返すステップとを行うステップと から成ることを特徴とする方法。
  7. 【請求項7】 請求項6に記載の方法において、前記タイムスタンプの確立
    ステップが、 前記タイムスタンプとして使用するためのシステム変更番号(System Change Number)を決定するステップを含み、該システム変更番号は、前記ソーステーブ
    ル及び該ソーステーブルに関連して維持されたテーブル又はオブジェクトのいず
    れか1つに生じるトランザクションについてのユニークな識別子を提供する ことを特徴とする方法。
  8. 【請求項8】 請求項1に記載の方法において、前記ソーステーブルはデー
    タベーステーブルであることを特徴とする方法。
  9. 【請求項9】 請求項8に記載の方法において、前記再編成コピーを生成す
    るステップが、 前記再編成コピーを維持するため新データベーステーブルオブジェクトを生成
    するステップと、 前記タイムスタンプ以後にタッチされていない前記ソースデータベーステーブ
    ルからのテーブル情報のブロックを読取るステップと、 前記読取ったブロックから行情報を抽出するステップと、 前記行情報を前記新データベーステーブルオブジェクトにストアするステップ
    と から成ることを特徴とする方法。
  10. 【請求項10】 前記新しいデータベーステーブルオブジェクトを作るステ
    ップは、 ソースデータベーステーブルのために、データベースデータ定義言語(DDL
    )スキームを検索し、 前記DDLを利用して、前記新しいデータベーステーブルオブジェクトを作る
    ステップを含み、 前記再編成したコピーを作るステップは、参照位置への索引付けシステムを確
    立するステップを含み、前記行情報は、前記ソースデータベーステーブルから検
    索され、前記新しいデータベーステーブルオブジェクトに記憶される請求項9に
    記載の方法。
  11. 【請求項11】 コンピュータ命令を記憶していて、コンピュータにロード
    されるとき、コンピュータに、 時間のポイントからなるタイムスタンプを設立し、前記時間のポイントにおけ
    る前記ソーステーブルの状態を識別し、 前記ソーステーブルの再編成されたコピーを作り、 前記タイムスタンプ後に起こるトランザクションを前記再編成されたテーブル
    に適用し、 前記ソーステーブルを前記再編成されたテーブルと共に切換えるステップを実
    行させることを特徴とするコンピュータ可読媒体。
  12. 【請求項12】 前記記憶された命令は、コンピュータに、 トランザクションテーブル内で前記ソーステーブル上のトランザクションのエ
    ントリをログするため、前記ソーステーブル上のトリガーを用い、 前記ソーステーブル上のロックを得て、前記ソーステーブルにトランザクショ
    ンが起こるのを防止し、 前記ソーステーブル上の前記ロックを得る前に、前記トリガーによりログされ
    たエントリを削除し、 前記ソーステーブルをアンロックするステップを実行させ、 前記トリガーを用いまたロックを得るステップは、前記タイムスタンプを確立
    するステップより前に行われる請求項11に記載のコンピュータ可読媒体。
  13. 【請求項13】 前記ソーステーブルの再編成されたコピーを作る前記ステ
    ップは、 前記再編成されたコピーを保持するため、新しいオブジェクトを作り、 前記ソーステーブルのブロックから、前記タイムスタンプから修正されていな
    いデータをアンロードし、 前記データを前記新しいオブジェクトにロードするステップを含む請求項12
    に記載のコンピュータ可読媒体。
  14. 【請求項14】 前記トランザクションを適用するステップは、 前記ソーステーブル上に排他的ロックを得て、 以前にアンロードされた前記ソーステーブルのブロックに対応する前記トラン
    ザクションテーブルから、前記新しいオブジェクトにロードされた前記データに
    、トランザクションを適用し、 前記チェックポイントからトランザクションに含まれているが以前にはアンロ
    ードされていないデータを、前記ソーステーブルのブロックからアンロードし、
    それを前記新しいオブジェクトにロードし、 前記ソーステーブル上の排他的ロックを解放するステップを含む請求項13に
    記載のコンピュータ可読媒体。
  15. 【請求項15】 前記トランザクションを適用するステップは、 前記ソーステーブル上に排他的ロックを得て、 以前に前記新しいオブジェクトにロードされ、前記トランザクションテーブル
    内に識別されたブロックに対応するデータを削除し、 以前にアンロードされ前記トランザクションテーブル内に識別されたブロック
    から、前記ソーステーブルの修正されたデータをアンロードし、前記修正された
    データを前記新しいオブジェクトにロードし、 前記タイムスタンプからトランザクションに含まれているが以前にはアンロー
    ドされていないデータを、前記ソーステーブルのブロックからアンロードし、そ
    れを前記新しいオブジェクトにロードし、 前記ソーステーブル上の排他的ロックを解放するステップを含む請求項13に
    記載のコンピュータ可読媒体。
  16. 【請求項16】 前記トランザクションを適用するステップは、 前記ソーステーブル上に排他的ロックを得て、 前記トランザクションログの残りのエントリを前記認識されたテーブルに適用
    し、 前記排他的ロックの結果として、任意の別のトランザクションがペンディング
    になっているか求め、もし別のトランザクションがペンディングになっていれば
    、 前記ソーステーブル上の排他的ロックを解放し、 前記排他的ロックを得て、残りのエントリを適用し、求めるステップを繰り返
    し、ペンディングになっている別のトランザクションがなくなるまで行うステッ
    プを含む請求項12に記載のコンピュータ可読媒体。
  17. 【請求項17】 前記タイムスタンプを確立するステップは、前記ソーステ
    ーブルおよび他のテーブルまたは前記ソーステーブルに関連して維持されるオブ
    ジェクトのうちの任意の1つに対して起こるトランザクションに対する独特な識
    別子を与えるシステム変更番号を、前記タイムスタンプとして使用するのに決定
    するステップを含む請求項16に記載のコンピュータ読み取り可能な媒体。
  18. 【請求項18】 前記ソーステーブルは、データベーステーブルであり、前
    記再組識コピーを生成するステップは、前記再組識コピーを維持するため新しい
    データベースオブジェクトを生成するステップと、前記タイムスタンプ以後触れ
    られていないソースデータベーステーブルからのテーブル情報のブロックを読み
    取るステップと、前記読み取られたブロックから行情報を抽出するステップと、
    前記行情報を前記新しいデータベーステーブルオブジェクトに記憶させるステッ
    プとを含む請求項1に記載のコンピュータ読み取り可能な媒体。
  19. 【請求項19】 前記新しいテーブルオブジェクトを生成するステップは、
    前記データベーステーブルのためのデータベースデータ定義言語(DDL)スキ
    ーマを検索するステップと、前記DDLを使用して前記新しいテーブルオブジェ
    クトを生成するステップとを含み、前記再組識コピーを生成するステップは、更
    に、前記行情報が前記データベーステーブルから検索され前記新しいテーブルオ
    ブジェクトに記憶される基準場所に対するインデキシングシステムを確立するス
    テップを含む請求項18に記載のコンピュータ読み取り可能な媒体。
  20. 【請求項20】 前記SCNチェックポイントを確立するステップは、トラ
    ンザクションテーブルにおける前記ソーステーブルに関するトランザクションの
    エントリーをロギングするため前記ソーステーブルに関しトリガを使用し、トラ
    ンザクションが前記ソーステーブルに対して起きないようにするため前記ソース
    テーブルに関しロックを得て、前記ソーステーブルに関し前記ロックを得る前に
    、前記トリガによってロギングされたエントリーを削除し、前記ソーステーブル
    をアンロックすることを含み、前記トリガを使用しロックを得るステップは、前
    記タイムスタンプを確立するステップの前に行われる請求項18に記載のコンピ
    ュータ読み取り可能な媒体。
  21. 【請求項21】 ソースファイルのオンライン再組識装置において、ある時
    間点からなり該時間点での前記ソースファイルの状態を識別するSCNチェック
    ポイントを確立するように構成されたチェックポイントデバイスと、前記ソース
    ファイルの再組織コピーを生成するように構成されたコピー機構とを備えており
    、前記タイムスタンプの後に起こるトランザクションを前記再組識ファイルに適
    用し、前記ソースファイルを前記再組識ファイルと交換することを特徴とするソ
    ースファイルのオンライン再組識装置。
  22. 【請求項22】 更に、トランザクションテーブルにおける前記ソースファ
    イルに関するトランザクションのエントリーをロギングするように構成されたト
    リガーと、トランザクションが前記ソースファイルに対して起きないようにする
    ため前記ソースファイルに関しロックを得るように構成されたロッキング機構と
    、前記ソースファイルに関し前記ロックを得る前に前記トリガーによってロギン
    グされたエントリーを削除するように構成された除去デバイスと、前記ソースフ
    ァイルをアンロックするように構成されたアンロッキング機構とを備える請求項
    21に記載の装置。
  23. 【請求項23】 前記コピー機構は、前記再組識コピーを維持するため新し
    いオブジェクトを生成するように構成された生成デバイスと、前記タイムスタン
    プ以後変更されていない前記ソースファイルのブロックからデータをアンロード
    するように構成されたアンローディング機構と、前記データを前記新しいオブジ
    ェクトへロードするように構成されたローディング機構とを備える請求項22に
    記載の装置。
  24. 【請求項24】 前記トランザクションデバイスは、前記新しいオブジェク
    トへロードされたデータへ適用されるべく、前にアンロードされた前記ソースフ
    ァイルのブロックに対応するトランザクションを選択するように構成された選択
    機構と、前記タイムスタンプ以後トランザクションに含まれていて前にアンロー
    ドされていない前記ソースファイルのブロックからのデータをアンロードし該デ
    ータを前記新しいオブジェクトへロードするように構成されたアンローディング
    /ローディングデバイスとを備える請求項23に記載の装置。
  25. 【請求項25】前記の処理装置は、削除機構とアンロード/ロード装置とを
    備え、 前記の削除機構は、前記の新しい対象の中に以前に入れられ、そして前記の処
    理表内で特定されたブロックに対応するデータを削除するように構成されており
    、そして 前記のアンロード/ロード装置は、以前にアンロードされ、そして前記の処理
    表内で特定されたブロックから前記のソース・ファイルの変更されたデータをア
    ンロードし、そしてその変更したデータを前記の新しい対象の中へロードするよ
    う構成され、そして前記のタイムスタンプ以来処理に含まれ、そして以前にアン
    ロードされていない前記のソース・ファイルのブロックからデータをアンロード
    し、そしてそれを前記の新しい対象の中へロードするよう構成されている 請求項23に記載の装置。
  26. 【請求項26】 前記の処理装置は、 前記の処理ログ内の残っているエントリーを再編成したファイルへ加えるよう
    構成されたアプリケータ; 前記のソース表がロックされた結果として追加の処理が継続中かどうかを決め
    るよう構成された判定機構; ソースファイル上の前記のイクスクルーシブ・ロックを繰り返しレリーズし、
    前記のソースファイル上にイクスクルーシブ・ロックを得、そして前記のロッキ
    ング機構、アンロッキング機構、アプリケータそして判定機構を介して付加的な
    処理が継続していることがなくなるまで前記の処理ログに残りのエントリーを加
    えるよう構成されたコントローラ を備えている請求項22に記載の装置。
  27. 【請求項27】 前記のタイムスタンプは、前記のソースファイルの一つに
    、そして前記のソースファイルと関連した他のファイルもしくは対象に生じてい
    る処理を特定するアイデンティファイアを与えるシステム・チェンジ・ナンバー
    である請求項26に記載の装置。
  28. 【請求項28】 前記のソースファイルはデータベース表であり、そして前
    記のコピー機構は、 前記の再編成されたコピーを保持するための新しい表である対象をつくるよう
    構成された対象装置; 前記のデータベースファイルから表情報のブロックを読むように構成された読
    取機構; 読まれたブロックから行情報を抽出するよう構成された抽出装置;そして 新しい表対象に前記の行情報を蓄えるよう構成された蓄積装置 を備えた請求項21に記載の装置。
  29. 【請求項29】 前記の対象装置は、前記のデーターベース表のためのデー
    ターベースデーター定義語スキーマ(DDL)を検索し、そしてこのDDLを使
    って前記の新しい表対象をつくるよう構成されたDDL反復子を備え、 前記の装置は更に、前記の行情報が前記のデーターベース表から検索され、そ
    して前記の新しい表対象に蓄えられている場所を参照するよう構成されたインデ
    ックサを備えている請求項28に記載の装置。
  30. 【請求項30】 前記のチェックポイント装置は更に、 前記のデーターベース表上の処理のエントリーを処理表にログするよう構成さ
    れたトリガー; 処理が前記のソース表に生じないように前記のデーターベース表上でロックす
    るよう構成されたロッキング機構; 前記のデーターベース表上でロックする前に前記のトリガーによりログされた
    エントリーを削除するよう構成された除去装置;そして 前記のデーターベース表をアンロックするよう構成されたアンロッキング機構
    を備えた請求項29に記載の装置。
  31. 【請求項31】 ポイント・イン・タイムを備えるタイムスタンプを確立し
    、そして前記のポイント・イン・タイムにおけるソース表の状態を特定する手段; 前記のタイムスタンプの直前の状態において前記のソース表の再編成されたコ
    ピーをつくる手段; 前記のチェックポイントの後生じる処理を再編成された表へ加える手段;そし
    て 前記のソース表を再編成された表と切り替える手段 を備えたソース表のオン・ライン再編成装置。
  32. 【請求項32】 前記のソース表上にトリガーを使用し、ソース表上の処理
    のエントリーを処理表にログ・インする手段; 前記のソース表上にロックを得て処理が前記のソース表へ生じないようにする
    手段; 前記のソース表上に前記のロックを得る前に前記のトリガーによりログされた
    エントリーを削除すす手段;そして 前記のソース表をアンロックする手段 を更に備える請求項31に記載の装置。
  33. 【請求項33】 前記の再編成された表を前記のソース表と切り替えた後前
    記のソース表を落とす手段を更に備えている請求項31に記載の装置。
  34. 【請求項34】 前記のソース表がデーターベース表であり、そして前記の
    再編成されたコピーをつくる手段が、 前記の再編成されたコピーを保持するため新しい表対象をつくる手段、 前記のデーターベース表から表情報のブロックを読み取る手段; 読み取られたブロックから行情報を抽出する手段;そして 新しい表対象に前記の行情報を蓄える手段 を備えている請求項31に記載の装置。
  35. 【請求項35】 前記のブロックを読み取る手段は、前記のデーターベース
    表を含んでいるファイルを直接開く手段;そしてその開いたファイルから前記の
    表情報のブロックを直接読み取る手段を備え、 前記のブロックを読み取る手段は、前記のデーターベース表と組み合わされた
    管理システムから得られるSQLインターフェースをバイ・パスする請求項34
    に記載の装置。
JP2000571377A 1998-09-22 1999-09-22 アクティブdbmsテーブルを再編成するための方法及び装置 Pending JP2002525755A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/159,073 1998-09-22
US09/159,073 US6122640A (en) 1998-09-22 1998-09-22 Method and apparatus for reorganizing an active DBMS table
PCT/US1999/022044 WO2000017787A1 (en) 1998-09-22 1999-09-22 Method and apparatus for reorganizing an active dbms table

Publications (1)

Publication Number Publication Date
JP2002525755A true JP2002525755A (ja) 2002-08-13

Family

ID=22570973

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000571377A Pending JP2002525755A (ja) 1998-09-22 1999-09-22 アクティブdbmsテーブルを再編成するための方法及び装置

Country Status (6)

Country Link
US (1) US6122640A (ja)
EP (1) EP1116139B1 (ja)
JP (1) JP2002525755A (ja)
AT (1) ATE450009T1 (ja)
DE (1) DE69941714D1 (ja)
WO (1) WO2000017787A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004532480A (ja) * 2001-05-24 2004-10-21 オラクル・インターナショナル・コーポレイション リレーショナルデータベース内での同期式変更データキャプチャ
WO2005029332A1 (ja) * 2003-09-24 2005-03-31 Sony Corporation データベーススキーマ更新方法
JP2005108186A (ja) * 2003-09-26 2005-04-21 Microsoft Corp 自己維持型リアルタイム・データ集約
JP2012511773A (ja) * 2008-12-10 2012-05-24 アリババ・グループ・ホールディング・リミテッド 効率的なデータ同期化のための方法及びシステム
WO2024071870A1 (ko) * 2022-09-26 2024-04-04 주식회사 엘지에너지솔루션 배터리 데이터 처리 장치 및 그것의 동작 방법

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE506853C2 (sv) 1996-06-20 1998-02-16 Anonymity Prot In Sweden Ab Metod för databearbetning
US20020107837A1 (en) * 1998-03-31 2002-08-08 Brian Osborne Method and apparatus for logically reconstructing incomplete records in a database using a transaction log
US6108653A (en) * 1998-08-31 2000-08-22 Platinum Technology Ip, Inc. Method and apparatus for fast and comprehensive DBMS analysis
US6418437B1 (en) * 1998-10-30 2002-07-09 Bmc Software, Inc. Method and apparatus for obtaining storage information from a transaction log
US6477535B1 (en) * 1998-11-25 2002-11-05 Computer Associates Think Inc. Method and apparatus for concurrent DBMS table operations
US6237003B1 (en) * 1998-11-30 2001-05-22 Platinum Technology Ip, Inc. Method and apparatus for supporting dynamic run-time object definition in a relational database management system
US6460048B1 (en) * 1999-05-13 2002-10-01 International Business Machines Corporation Method, system, and program for managing file names during the reorganization of a database object
US7756818B1 (en) * 1999-07-07 2010-07-13 Computer Associates Think, Inc. Database table recovery system
CA2279028C (en) * 1999-07-29 2002-09-10 Ibm Canada Limited-Ibm Canada Limitee Dropped database table recovery
US7099898B1 (en) * 1999-08-12 2006-08-29 International Business Machines Corporation Data access system
US6343296B1 (en) * 1999-09-03 2002-01-29 Lucent Technologies Inc. On-line reorganization in object-oriented databases
US7805423B1 (en) * 1999-11-15 2010-09-28 Quest Software, Inc. System and method for quiescing select data modification operations against an object of a database during one or more structural operations
US6834290B1 (en) 1999-11-15 2004-12-21 Quest Software, Inc. System and method for developing a cost-effective reorganization plan for data reorganization
US7065538B2 (en) * 2000-02-11 2006-06-20 Quest Software, Inc. System and method for reconciling transactions between a replication system and a recovered database
US6535893B1 (en) * 2000-02-24 2003-03-18 International Business Machines Corporation Method for estimating the elapsed time required for a log apply process
CN100565327C (zh) * 2000-05-31 2009-12-02 精工爱普生株式会社 投影机及其控制方法
US6606631B1 (en) * 2000-07-13 2003-08-12 Bmc Software, Inc. IMS on-line reorganization utility
SE0004188L (sv) * 2000-11-16 2002-01-15 Protegrity Res & Dev Metod för förändring av krypteringsstatus i en relationsdatabas i kontinuerlig process
US6959301B2 (en) * 2001-01-04 2005-10-25 Reuters Limited Maintaining and reconstructing the history of database content modified by a series of events
US20040162836A1 (en) * 2001-02-06 2004-08-19 Eyal Aronoff System and method for altering database requests and database responses
US7231391B2 (en) * 2001-02-06 2007-06-12 Quest Software, Inc. Loosely coupled database clusters with client connection fail-over
US20020129146A1 (en) 2001-02-06 2002-09-12 Eyal Aronoff Highly available database clusters that move client connections between hosts
US6829616B2 (en) * 2001-03-26 2004-12-07 International Business Machines Corporation Method, system, and program for implementing a database trigger
US6633884B2 (en) * 2001-04-03 2003-10-14 Bmc Software, Inc. System and method for analyzing a database for on-line reorganization
US7225206B2 (en) * 2001-04-09 2007-05-29 Computer Associates Think, Inc. System and method for reorganizing stored data
US7177885B2 (en) * 2001-07-19 2007-02-13 Computer Associates Think, Inc. Method and system for reorganizing a tablespace in a database
US7149962B1 (en) * 2002-03-01 2006-12-12 General Electric Railcar Services Corporation System and method for providing a gauge table
US20030220935A1 (en) * 2002-05-21 2003-11-27 Vivian Stephen J. Method of logical database snapshot for log-based replication
US7703097B2 (en) * 2002-11-15 2010-04-20 International Business Machines Corporation Auto-commit processing in an IMS batch application
US7117221B2 (en) * 2003-01-09 2006-10-03 International Business Machines Corporation Replication of changed information in a multi-master environment
DE10308851A1 (de) * 2003-02-27 2004-09-30 Software Engineering Gmbh Echtzeitwartung einer relationalen Datenbank
US7340741B2 (en) * 2003-02-28 2008-03-04 International Business Machines Corporation Auto-restart processing in an IMS batch application
US7269595B1 (en) * 2003-03-19 2007-09-11 Unisys Corporation Reducing database reorganization time
US7890466B2 (en) * 2003-04-16 2011-02-15 Oracle International Corporation Techniques for increasing the usefulness of transaction logs
EP1482417A1 (en) * 2003-05-28 2004-12-01 Sap Ag Data processing method and system for combining database tables
US20050038786A1 (en) * 2003-08-11 2005-02-17 International Business Machines Corporation (Ibm) Self-configuration of database tables
US7805411B2 (en) * 2003-09-06 2010-09-28 Oracle International Corporation Auto-tuning SQL statements
US7536376B2 (en) * 2003-10-03 2009-05-19 International Business Machines Corporation Task oriented log retrieval utilizing a self-learning search tool
US7181481B2 (en) * 2003-10-20 2007-02-20 International Business Machines Corporation System and method for concurrently reorganizing logically related LOB table spaces
US7757226B2 (en) * 2004-03-17 2010-07-13 Oracle International Corporation Method and mechanism for performing a rolling upgrade of distributed computer software
US20050251523A1 (en) * 2004-05-07 2005-11-10 Oracle International Corporation Minimizing downtime for application changes in database systems
US7788285B2 (en) 2004-05-14 2010-08-31 Oracle International Corporation Finer grain dependency tracking for database objects
JP2006004031A (ja) * 2004-06-16 2006-01-05 Hitachi Ltd データ処理方法およびシステム並びにストレージ装置方法およびその処理プログラム
US20050289186A1 (en) * 2004-06-29 2005-12-29 Microsoft Corporation DDL replication without user intervention
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
US7015839B1 (en) * 2005-01-06 2006-03-21 Realtek Semiconductor Corp. Mapping method utilizing look-up table and related apparatus
JP4854973B2 (ja) * 2005-03-09 2012-01-18 富士通株式会社 記憶制御プログラム、記憶制御方法、記憶制御装置および記憶制御システム
JP4731975B2 (ja) * 2005-04-20 2011-07-27 株式会社日立製作所 データベース管理方法、およびストレージシステム
US7584204B2 (en) * 2005-06-10 2009-09-01 Microsoft Corporation Fuzzy lookup table maintenance
US8935294B2 (en) * 2005-08-10 2015-01-13 Oracle International Corporation Minimizing computer resource usage when converting data types of a table column
US7681133B2 (en) * 2005-10-14 2010-03-16 Oracle International Corporation Declarative task-based user interfaces
US8296727B2 (en) * 2005-10-14 2012-10-23 Oracle Corporation Sub-task mechanism for development of task-based user interfaces
US8112394B2 (en) * 2005-10-14 2012-02-07 Oracle International Corporation Long-lived data transactions
US20070118574A1 (en) * 2005-11-22 2007-05-24 Franklin William J Reorganizing data with update activity
US7454449B2 (en) * 2005-12-20 2008-11-18 International Business Machines Corporation Method for reorganizing a set of database partitions
US7904492B2 (en) * 2006-03-23 2011-03-08 Network Appliance, Inc. Method and apparatus for concurrent read-only access to filesystem
JP2007264814A (ja) * 2006-03-27 2007-10-11 Fujitsu Ltd レプリケーションデータ作成プログラム、レプリケーションデータ反映プログラムおよびデータベース装置
US7991798B2 (en) * 2006-05-31 2011-08-02 Oracle International Corporation In place migration when changing datatype of column
US8521706B2 (en) * 2006-10-20 2013-08-27 Oracle International Corporation Low-downtime and zero-downtime upgrades of database-centric applications
US9569482B2 (en) * 2007-05-09 2017-02-14 Oracle International Corporation Transforming default values dynamically
US8768978B2 (en) * 2007-07-30 2014-07-01 Hewlett-Packard Development Company, L.P. Single-operation on-line schema evolution
US7908257B2 (en) * 2008-01-15 2011-03-15 Microsoft Corporation Read mostly database tables
US7801872B2 (en) * 2008-04-08 2010-09-21 Microsoft Corporation Providing a publishing mechanism for managed objects
US9582558B2 (en) * 2008-06-02 2017-02-28 Sybase, Inc. Method and system for data definition language (DDL) replication
US20090319581A1 (en) * 2008-06-19 2009-12-24 International Business Machines Corporation Online Table Move
US8046550B2 (en) 2008-07-14 2011-10-25 Quest Software, Inc. Systems and methods for performing backup operations of virtual machine files
US8135930B1 (en) 2008-07-14 2012-03-13 Vizioncore, Inc. Replication systems and methods for a virtual computing environment
US8060476B1 (en) 2008-07-14 2011-11-15 Quest Software, Inc. Backup systems and methods for a virtual computing environment
US8429649B1 (en) 2008-09-25 2013-04-23 Quest Software, Inc. Systems and methods for data management in a virtual computing environment
US8996468B1 (en) 2009-04-17 2015-03-31 Dell Software Inc. Block status mapping system for reducing virtual machine backup storage
US9778946B2 (en) 2009-08-07 2017-10-03 Dell Software Inc. Optimized copy of virtual machine storage files
US8352429B1 (en) * 2009-08-31 2013-01-08 Symantec Corporation Systems and methods for managing portions of files in multi-tier storage systems
US8453145B1 (en) 2010-05-06 2013-05-28 Quest Software, Inc. Systems and methods for instant provisioning of virtual machine files
US9569446B1 (en) 2010-06-08 2017-02-14 Dell Software Inc. Cataloging system for image-based backup
US9547562B1 (en) 2010-08-11 2017-01-17 Dell Software Inc. Boot restore system for rapidly restoring virtual machine backups
US8898114B1 (en) 2010-08-27 2014-11-25 Dell Software Inc. Multitier deduplication systems and methods
US8689219B2 (en) * 2011-05-06 2014-04-01 International Business Machines Corporation Systems and method for dynamically throttling transactional workloads
US8732140B2 (en) 2011-05-24 2014-05-20 Red Lambda, Inc. Methods for storing files in a distributed environment
US9460136B1 (en) * 2011-06-30 2016-10-04 Emc Corporation Managing databases in data storage systems
US9239871B2 (en) * 2011-07-06 2016-01-19 Ca, Inc. System and method for analyzing sequential data access efficiency
US9390147B2 (en) * 2011-09-23 2016-07-12 Red Lambda, Inc. System and method for storing stream data in distributed relational tables with data provenance
US9311375B1 (en) 2012-02-07 2016-04-12 Dell Software Inc. Systems and methods for compacting a virtual machine file
US9230008B2 (en) 2012-04-12 2016-01-05 Ca, Inc. System and method for automated online reorganization of sequential access databases
US9582524B1 (en) * 2012-06-19 2017-02-28 Amazon Technologies, Inc. Transformative migration of static data
US9262511B2 (en) * 2012-07-30 2016-02-16 Red Lambda, Inc. System and method for indexing streams containing unstructured text data
US9203866B2 (en) * 2012-09-07 2015-12-01 Oracle International Corporation Overage framework for cloud services
US9667470B2 (en) 2012-09-07 2017-05-30 Oracle International Corporation Failure handling in the execution flow of provisioning operations in a cloud environment
US10521746B2 (en) 2012-09-07 2019-12-31 Oracle International Corporation Recovery workflow for processing subscription orders in a computing infrastructure system
US9253113B2 (en) 2012-09-07 2016-02-02 Oracle International Corporation Customizable model for throttling and prioritizing orders in a cloud environment
US10148530B2 (en) 2012-09-07 2018-12-04 Oracle International Corporation Rule based subscription cloning
US9621435B2 (en) 2012-09-07 2017-04-11 Oracle International Corporation Declarative and extensible model for provisioning of cloud based services
US9311305B2 (en) 2012-09-28 2016-04-12 Oracle International Corporation Online upgrading of a database environment using transparently-patched seed data tables
US9164793B2 (en) 2012-12-21 2015-10-20 Microsoft Technology Licensing, Llc Prioritized lock requests to reduce blocking
US10055440B2 (en) * 2014-02-24 2018-08-21 Sap Se Database table re-partitioning using trigger-based capture and replay
US10164901B2 (en) 2014-08-22 2018-12-25 Oracle International Corporation Intelligent data center selection
US10078570B2 (en) * 2016-05-26 2018-09-18 International Business Machines Corporation Determining dynamic statistics based on key value patterns
US10523425B2 (en) * 2017-06-22 2019-12-31 Salesforce.Com, Inc. Database password changes
US11151111B2 (en) * 2017-11-30 2021-10-19 Futurewei Technologies, Inc. Redistributing table data in a database cluster
US11294935B2 (en) 2018-05-15 2022-04-05 Mongodb, Inc. Conflict resolution in distributed computing
CN114443654B (zh) * 2022-01-14 2024-01-26 苏州浪潮智能科技有限公司 一种在线修改数据库表空间数据块长度的方法及系统
CN114840497B (zh) * 2022-05-31 2024-01-12 苏州浪潮智能科技有限公司 一种数据库的行迁移预处理方法、系统、装置及存储介质
US12093254B1 (en) * 2023-04-28 2024-09-17 Ocient Holdings LLC Query execution during storage formatting updates

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479654A (en) * 1990-04-26 1995-12-26 Squibb Data Systems, Inc. Apparatus and method for reconstructing a file from a difference signature and an original file
US5517641A (en) * 1992-05-27 1996-05-14 Cdb Software, Inc. Restartable method to reorganize DB2 tablespace records by determining new physical positions for the records prior to moving using a non sorting technic
US5553279A (en) * 1993-10-08 1996-09-03 International Business Machines Corporation Lossless distribution of time series data in a relational data base network
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
US5745753A (en) * 1995-01-24 1998-04-28 Tandem Computers, Inc. Remote duplicate database facility with database replication support for online DDL operations
US5790848A (en) * 1995-02-03 1998-08-04 Dex Information Systems, Inc. Method and apparatus for data access and update in a shared file environment
US5881379A (en) * 1996-05-20 1999-03-09 International Business Machines Corporation System, method, and program for using duplicated direct pointer sets in keyed database records to enhance data recoverability without logging
US5781903A (en) * 1996-12-31 1998-07-14 Cadence Design Systems, Inc. System and method for reordering lookup table entries when table address bits are inverted
US5890154A (en) * 1997-06-06 1999-03-30 International Business Machines Corp. Merging database log files through log transformations
US5983239A (en) * 1997-10-29 1999-11-09 International Business Machines Corporation Storage management system with file aggregation supporting multiple aggregated file counterparts
US5991772A (en) * 1997-10-31 1999-11-23 Oracle Corporation Method and apparatus for restoring a portion of a database
US5963961A (en) * 1997-11-25 1999-10-05 International Business Machines Corporation Database reconstruction using embedded database backup codes

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004532480A (ja) * 2001-05-24 2004-10-21 オラクル・インターナショナル・コーポレイション リレーショナルデータベース内での同期式変更データキャプチャ
WO2005029332A1 (ja) * 2003-09-24 2005-03-31 Sony Corporation データベーススキーマ更新方法
JP2005108186A (ja) * 2003-09-26 2005-04-21 Microsoft Corp 自己維持型リアルタイム・データ集約
JP2012511773A (ja) * 2008-12-10 2012-05-24 アリババ・グループ・ホールディング・リミテッド 効率的なデータ同期化のための方法及びシステム
WO2024071870A1 (ko) * 2022-09-26 2024-04-04 주식회사 엘지에너지솔루션 배터리 데이터 처리 장치 및 그것의 동작 방법

Also Published As

Publication number Publication date
DE69941714D1 (de) 2010-01-07
ATE450009T1 (de) 2009-12-15
EP1116139A1 (en) 2001-07-18
US6122640A (en) 2000-09-19
EP1116139B1 (en) 2009-11-25
EP1116139A4 (en) 2003-08-27
WO2000017787A1 (en) 2000-03-30

Similar Documents

Publication Publication Date Title
JP2002525755A (ja) アクティブdbmsテーブルを再編成するための方法及び装置
US6243718B1 (en) Building indexes on columns containing large objects
US6738790B1 (en) Approach for accessing large objects
US5999943A (en) Lob locators
CA2302981C (en) Online database table reorganization
US9922046B2 (en) Scalable distributed metadata file-system using key-value stores
US5790848A (en) Method and apparatus for data access and update in a shared file environment
US5850522A (en) System for physical storage architecture providing simultaneous access to common file by storing update data in update partitions and merging desired updates into common partition
US7467163B1 (en) System and method to manipulate large objects on enterprise server data management system
US7818346B2 (en) Database heap management system with variable page size and fixed instruction set address resolution
US20060129618A1 (en) Method and a computer system for synchronising backups of objects and of meta data about the objects
EP2746971A2 (en) Replication mechanisms for database environments
US20130013890A1 (en) Database system
US11372571B2 (en) System and methods for providing a memory slice data structure for use with diverse memory and storage media
WO2002082276A1 (en) System and method for reorganizing stored data
US8452730B2 (en) Archiving method and system
Wiener et al. OODB bulk loading revisited: The partitioned-list approach
US6768985B1 (en) Method and apparatus for administration of database partitions
US8818953B2 (en) Method and apparatus for loading data into multi-table tablespace
EP0100821B1 (en) Method and apparatus for managing a database
KR100243113B1 (ko) 데이터베이스 관리 시스템에서 에스큐엘 수준의갱신 연산의 원자성 보장 방법
US7209919B2 (en) Library server locks DB2 resources in short time for CM implicit transaction
Zabback et al. Office documents on a database kernel—filing, retrieval, and archiving
Sikeler Buffer Management in a Non-Standard Database System
Kumar et al. An integrated data structure with multiple access paths for database systems and its performance