ORA-01654 – unable to extend index %s.%s by %s in tablespace %s

1.) Texte aus oerr unter Linux

01654, 00000, „unable to extend index %s.%s by %s in tablespace %s“

// *Cause: Failed to allocate an extent of the required number of blocks for

//         an index segment in the tablespace indicated.

// *Action: Use ALTER TABLESPACE ADD DATAFILE statement to add one or more

//         files to the tablespace indicated.

2.) Erklärung

Es ist nicht genügend Plattenplatz vorhanden, um einen Index (index %s.%s ) um n Blöcke (by %s) in dem Tablespace (tablespace %s) zu erweitern.

Hinweis: Werden Sätze aus einem Index gelöscht, bleibt der Platz dieser Sätze frei.

3.) Lösungsvorschläge

1. Freiplätze zusammenschieben mit shrink

alter index <xowner.xindex> shrink space;

Statistik neu erstellen mit der Prozedur

exec DBMS_STATS.GATHER_INDEX_STATS (ownname => ‚<xowner>‘           , indname =>    ‚<xindex>‘, estimate_percent => 100);

2. Dem Tablespace weiteren Plattenplatz geben

Sollte die Aktion mit shrink nicht ausreichend sein, so muss eine Datenfile des Tabelspaces vergrößert werden oder der Tablespace um eine weitere Datenfile erweitert werden. Falls ein Filesysystem voll ist, muss auf jeden Fall eine weitere Datenfile auf einem anderen Filesystem angelegt werden.