DBAtlas · Atlas d'exploitation des bases de données

Déplacer une table ou une partition en ligne (ALTER TABLE MOVE ONLINE)

OracleOpérations en ligne

Commande

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

Ce que fait la commande

Réécrit le segment de la table : réduit la fragmentation et le high water mark, change de tablespace, applique une compression. Avec ONLINE, les DML ne sont pas bloqués pendant l'opération et les index sont maintenus automatiquement et restent VALID.

Quand l'utiliser

Pour récupérer de l'espace après des suppressions massives, déplacer une table vers un nouveau tablespace/stockage, et compresser d'anciennes partitions dans un tablespace d'archive.

Attention

Exige Enterprise Edition ; ROW STORE COMPRESS ADVANCED exige l'option Advanced Compression (payante). L'opération nécessite un espace supplémentaire égal à la taille de la table et génère beaucoup de redo. De brefs verrous sont pris au début et à la fin ; les longues transactions ouvertes la font attendre. Un MOVE sans ONLINE ni UPDATE INDEXES laisse tous les index UNUSABLE.

Ouvrir dans DBAtlas →

Voir aussi