DBAtlas · データベース運用アトラス

表またはパーティションをオンラインで移動(ALTER TABLE MOVE ONLINE)

Oracleオンライン操作

コマンド

-- Move the table to another tablespace / reorganize it (DML continues):
ALTER TABLE customer_app.orders MOVE ONLINE TABLESPACE customer_data;

-- Compress while moving (BASIC; for OLTP compression use ROW STORE COMPRESS ADVANCED):
ALTER TABLE customer_app.orders MOVE ONLINE COMPRESS;

-- A single partition:
ALTER TABLE customer_app.sale_part
  MOVE PARTITION p2026_h1 ONLINE TABLESPACE customer_archive UPDATE INDEXES;

-- Verify: indexes must stay VALID
SELECT index_name, status FROM dba_indexes
WHERE  owner = 'CUSTOMER_APP' AND table_name = 'ORDERS';
SELECT table_name, tablespace_name, compression, compress_for
FROM   dba_tables
WHERE  owner = 'CUSTOMER_APP' AND table_name = 'ORDERS';

概要

表セグメントを書き直す: 断片化と最高水位標(HWM)を削減し、表領域を変更し、圧縮を適用する。ONLINEを指定すると操作中もDMLはブロックされず、インデックスは自動的にメンテナンスされVALIDのまま保たれる。

使用する場面

大量削除後の領域の回収、新しい表領域/ストレージへの表の移動、古いパーティションを圧縮してアーカイブ表領域へ移すために。

注意

Enterprise Editionが必要。ROW STORE COMPRESS ADVANCEDにはAdvanced Compressionオプション(有償)が必要。操作には表サイズと同じ追加領域が必要で、大量のREDOが生成される。開始時と終了時に短いロックが取得され、長時間オープンのトランザクションがあると待機する。ONLINEまたはUPDATE INDEXESなしのMOVEはすべてのインデックスをUNUSABLEにする。

DBAtlas で開く →

関連項目