ORACLEMASTER 備忘録6(9/11)
続き
セグメントの縮小
セグメントの縮小プロセスでは、「最高水位表(HWM:High Water Mark/どのブロックデータを入れたことがあるかを示す値)」の下の断片化されたデータを統合して、セグメントを縮小する。縮小するとHWMが移動し、その結果、HWMの上に新しい空き領域ができる。
そのあと、このHWMよりも上のエクステントは割当てを解除できる。オンラインでセグメントの縮小を実行している場合、ユーザーはこれらの縮小処理をしているセグメントに対して、この操作の開始から終了までの大半で、問合せ及びDML操作を実行できる。mた、特別なディスク領域の割当ては不要。
オンラインでのセグメント縮小を行うには、「セグメントアドバイザ」を使用する方法が便利である。
セグメントアドバイザとは
セグメントアドバイザとは、オブジェクトのデータを分析して、再利用できる未使用領域が存在するデータベースオブジェクトを特定することができる機能。この機能は“自動セグメント領域管理(ASSM)を備えたローカル管理領域のセグメント”に対してのみ使用できる。
・セグメントアドバイザによるセグメントの縮小
Oracleデータベースでは、“セグメントアドバイザ”が定期的に実行されて、セグメントの分析が行われている。必要な場合は、手動で実行することもできる。自動的に行われるセグメントアドバイザの分析を「自動セグメントアドバイザ」という。
自動セグメントアドバイザの分析結果や、手動でセグメントアドバイザを実行した際の分析結果は、Enterprise Manager Cloud ControlまたはPL/SQLパッケージプロシージャで確認できる。
セグメントアドバイザの分析の結果、「セグメントアドバイザ推奨」と表示されると、手動で縮小操作を実行して、セグメントを縮小できる。縮小操作を実行すると、断片化されたデータが統合されて、セグメント前方部分に集められる。
空き領域、他のセグメントが使用できるように表領域に戻すか、同一セグメントの今後のデータの挿入に備えてそのまま残すことができる。
データの整合性保持のための構造管理
ここでは、Oracleデータベースでトランザクションを実行する際の特徴的な機能である「UNDO」について説明する。Oracle Database 12cでは、デフォルトでUNDOデータが自動管理されている。