Tabelle oder Partition online verschieben (ALTER TABLE MOVE ONLINE)
OracleOnline-OperationenBefehl
-- 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';Was es tut
Schreibt das Tabellensegment neu: reduziert Fragmentierung und High Water Mark, wechselt den Tablespace, wendet Kompression an. Mit ONLINE wird DML während des Vorgangs nicht blockiert, und Indizes werden automatisch gepflegt und bleiben VALID.
Wann einsetzen
Um nach Massenlöschungen Platz zurückzugewinnen, eine Tabelle in einen neuen Tablespace/Storage zu verschieben und alte Partitionen komprimiert in einen Archiv-Tablespace zu legen.
Vorsicht
Erfordert die Enterprise Edition; ROW STORE COMPRESS ADVANCED erfordert die Advanced-Compression-Option (kostenpflichtig). Der Vorgang braucht zusätzlichen Platz in Höhe der Tabellengröße und erzeugt viel Redo. Am Anfang und Ende werden kurze Sperren genommen; lange offene Transaktionen lassen es warten. Ein MOVE ohne ONLINE oder UPDATE INDEXES macht alle Indizes UNUSABLE.