Ab Oracle 12c sind in der Enterprise Edition folgende Operationen bei DDL-Anweisungen auf Tabellen ONLINE (also im laufenden Betrieb) möglich.
Ein Index kann ONLINE gedropt werden:
DROP INDEX scott.pk_emp ONLINE;
Index kann ONLINE auf UNUSABLE gesetzt werden:
ALTER INDEX scott.pk_emp UNUSABLE ONLINE;
Spalten können ONLINE auf UNUSED gesetzt werden:
ALTER TABLE scott.emp SET UNUSED (mgr) ONLINE;
Constraints können ONLINE gedropt werden:
ALTER TABLE scott.emp DROP CONSTRAINT ck ONLINE;
Zur Wiederholung: Folgende Operationen gehen schon längere Zeit Online.
Index Online neu aufbauen:
CREATE INDEX scott.pk_emp REBUILD ONLINE;
Index Online prüfen:
ANALYZE INDEX scott.pk_emp VALIDATE STRUCTURE ONLINE;
Index erstellen und Tabellenveränderungen während des Aufbaus zulassen:
CREATE INDEX scott.emp_sal_ix ON scott.emp(sal) ONLINE;
Tabelle Online prüfen:
ANALYZE TABLE scott.emp VALIDATE STRUCTURE CASCADE ONLINE;
Und für alle DBAs der Knüller (!):
Ab 12c kann eine Datendatei im laufenden Betrieb verschoben/umbenannt werden.
Syntax:
ALTER DATABASE MOVE DATAFILE ( 'filename' | 'ASM_filename' | file_number ) [ TO ( 'filename' | 'ASM_filename' ) ]
[ REUSE ] /* vorhandene Datei überschreiben */
[ KEEP ]; /* alte Version behalten */
Beispiel für UNIX:
ALTER DATABASE MOVE DATAFILE 4
TO '/u01/app/oracle/oradata/user02.dbf'
KEEP;
Beispiel für Windows (derzeit noch nicht freigegeben - Stand 07/2013):
ALTER DATABASE MOVE DATAFILE 4
TO 'D:\oracle\oradata\user02.dbf';
Für TEMP-Dateien ist ein Onlineverschieben nicht möglich. Legen Sie hierzu einen neuen temporären Tablespace an und löschen Sie dann den alten.
In unserer Know-How Datenbank finden Sie mehr als 300 ausführliche Beiträge zu den
Oracle-Themen wie DBA, SQL, PL/SQL, APEX und vielem mehr.
Hier erhalten Sie Antworten auf Ihre Fragen.