オンライン・データの再編成と再定義



ビジネスがWebおよびE-Commerceに対応するにつれ、アプリケーション停止によるコストが非常に高くなったことで、高可用性コンピューティング・ソリューションがますます重要になっています。最近のGartner Group社の調査によると、E-Commerceに含まれる企業の停止コストは、1時間当たり数百万ドルに上ると言われています。このため、データベースの可用性と管理性は、今日の多くのミッション・クリティカルな環境で、ますます重要なものとなってきています。可用性と管理性を高める方法の1つは、データの再編成操作中に、ユーザーに対してデータベースへの完全なアクセスを許可することです。

Oracle Database 12cのオンライン再編成および再定義機能によって、管理者は、前例のない柔軟性を活用し、ユーザーにデータベースへの完全なアクセスを許可しながら、表の物理属性を変更して、データと表の両方の構造を変更できます。この機能によって、ミッション・クリティカルな環境において重要なデータの可用性、問合せパフォーマンス、応答時間およびディスク領域の使用率が向上し、アプリケーションのアップグレードがより簡単、安全かつ迅速になります。

表をオンラインで再定義する場合、再定義プロセス中にすべての読取りおよび書込み操作によるアクセスが可能です。アプリケーションのアップグレード中、管理者は再定義プロセスを開始し、仮表に元の表の最新の変更が含まれるように定期的に仮表を同期できます。これによって、最終的な再定義手順を実行する時間が短縮されます。再定義プロセスを完了する前に、管理者は仮表のデータを検証および使用できます。

アップグレード・プロセスを円滑に行う必要がある管理者にとって、この機能は非常に便利です。
その後、管理者は、どの時点で元の表から新しく再定義した表に切り替えるかを指定できます。切替えは非常に短いプロセスで、表のサイズや再定義の複雑さとは関係ありません。再定義プロセスは、新しい表を効果的に作成し、データ・ブロック・レイアウトの効率を向上します。

Oracle Enterprise ManagerまたはSQL*Plusコマンドライン・インタフェースを使用して、オラクルのオンライン・データの再編成を実行できます。次の表に示すとおり、必要なオンライン再編成のタイプに応じて、DBMS_REDEFINITIONパッケージまたはSQL CREATE/ALTER TABLEとCREATE/ALTER INDEXコマンドを使用して、再編成を実行できます。


データの再編成機能の比較

 

 

アクション


 
  Oracle Database 10g Release 2

 

Oracle Database 11g


 

 

Oracle Database 12c


 
DBMS_REDEFINITIONパッケージを使用したオンライン再編成
  • 単一パーティションの再編成
  • アドバンスト・キューおよびクラスタ表
  • ADTを含む表
  • 統計の保持およびクローニング
  • チェック制約およびNOT NULL制約のクローニング
  • ネストした表の依存オブジェクトのコピー

 

  • マテリアライズド・ビュー・ログを使用した表またはマテリアライズド・ビュー
  • 再定義がオブジェクトに論理的に影響を与えない場合、依存オブジェクトの再コンパイルは必要なし

  

  • 単一セッション内の複数パーティションの再定義
  • Virtual Private Database(VPD)ポリシーを使用して定義した表の再定義
  • REDEF_TABLEを使用した1つのコマンドによる簡単な再定義

 

オンラインでの索引作成  
  • DMLのロックのないオンライン索引作成(ワークロードの依存性がない透過的な作成が可能)
   
オンラインでの索引再構築  
  • DMLのロックのないオンライン索引再構築(ワークロードの依存性がない透過的な再構築が可能)
   
オンラインでのパーティション/サブパーティションの移行    
  • 複数の表間でのパーティション/サブパーティションの移行、実行中のDMLへの影響はなし
デフォルト値を使用した高速な列の追加  
  • デフォルト値を既存のレコードに書き込み、表に含まれる各行にアクセスする代わりに、レコードをデータ・ディクショナリに保持します。これにより'列の追加'が1秒未満で完了します。注:これはNULLでない列に対してのみサポートされます。
  • デフォルト値を使用した高速な列の追加は、NULL列に対してサポートされます。
非表示の索引  
  • 非表示の索引は、索引を使用不能にするまたは削除する代わりの手段です。非表示の索引はDML操作に対して維持されますが、ヒントを使用して明示的に索引を指定しない限り、オプティマイザによって使用されることはありません。これらの索引を使用すると、アプリケーション全体に影響を与えることなく、特定の操作に対して新しい索引を簡単にテストできます。
 
DDL拡張機能  
  • 基礎となるリソースがビジー状態である場合、ユーザー設定可能な期間(DDL_LOCK_TIMEOUT)、DDL操作を待機できます。そして、この操作はシステムおよびセッション・レベルでサポートされています。
  • 制約の追加/変更、列の追加、索引の作成/再構築で必要になるのは共有ロックのみであり、DMLロックは必要ありません。
次のDDL操作は実行中のDMLに影響を与えません。
  • DROP INDEX ONLINE
  • DROP CONSTRAINT ONLINE
  • SET UNUSED COLUMN ONLINE
  • ALTER INDEX UNUSABLE ONLINE
  • ALTER INDEX [VISIBLE | INVISIBLE]


補足情報 (US)


ドキュメント

ホワイト・ペーパー

記事