DBAtlas · Atlas de operações de banco de dados

Mover uma tabela ou partição online (ALTER TABLE MOVE ONLINE)

OracleOperações online

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

O que faz

Reescreve o segmento da tabela: reduz a fragmentação e a high water mark, muda o tablespace e aplica compressão. Com ONLINE, o DML não é bloqueado durante a operação e os índices são mantidos automaticamente e continuam VALID.

Quando usar

Para recuperar espaço após exclusões em massa, mover uma tabela para um novo tablespace/storage e comprimir partições antigas em um tablespace de arquivo.

Atenção

Exige Enterprise Edition; ROW STORE COMPRESS ADVANCED exige a opção Advanced Compression (custo extra). A operação precisa de espaço adicional igual ao tamanho da tabela e gera redo pesado. Bloqueios curtos são feitos no início e no fim; transações abertas longas a fazem esperar. Um MOVE sem ONLINE ou UPDATE INDEXES deixa todos os índices UNUSABLE.

Abrir no DBAtlas →

Relacionados