DBAtlas · Atlas de operaciones de bases de datos

Mover una tabla o partición en línea (ALTER TABLE MOVE ONLINE)

OracleOperaciones en línea

Comando

-- 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';

Qué hace

Reescribe el segmento de la tabla: reduce la fragmentación y el high water mark, cambia el tablespace y aplica compresión. Con ONLINE, el DML no se bloquea durante la operación y los índices se mantienen automáticamente y siguen VALID.

Cuándo usarlo

Para recuperar espacio tras borrados masivos, mover una tabla a un nuevo tablespace/almacenamiento y comprimir particiones antiguas en un tablespace de archivo.

Precaución

Requiere Enterprise Edition; ROW STORE COMPRESS ADVANCED requiere la opción Advanced Compression (costo adicional). La operación necesita un espacio adicional igual al tamaño de la tabla y genera mucho redo. Se toman bloqueos breves al inicio y al final; las transacciones largas abiertas la hacen esperar. Un MOVE sin ONLINE ni UPDATE INDEXES deja todos los índices UNUSABLE.

Abrir en DBAtlas →

Relacionado