IT Consulting Steffes

Informationen zu SYS_LOBxxx$$ segmenten

Ausgangssituation:
Ein LOB segment, hier als Beispiel: SYS_LOB0000099847C00045$$  belegt das Ende eines Daten files, wodurch der tablespace nicht verkleinert werden kann.
In diesem Beitrag soll geklärt werden, zu welchem Objekt das LOB segment gehört und wie es bereinigt/gelöscht werden kann.
Ziel ist die Verkleinerung des tablespace.

Info:
SYS_LOB*identifier*$$ => der identifier wird system generated

 
Vorgehen:
Im ersten Schritt finden wir heraus, zu welchen Datenbank Objekt das segment gehört, dazu kann folgende Query benutzt werden:

set linesize 120
col owner for a15
col table_name for a30
col index_name for a30
col column_name for a25
SELECT owner, table_name, index_name, column_name FROM dba_lobs WHERE segment_name = 'SYS_LOB0000099847C00045$$';

 

OWNER     TABLE_NAME            INDEX_NAME                   COLUMN_NAME
--------- --------------------- ---------------------------- -----------
SYSTEM    SYS_EXPORT_FULL_14    SYS_IL0000099847C00045$$     XML_CLOB

 
Aha, es handelt sich also um eine Tabelle, die durch den export datapump erzeugt wurde.
Nach Informationen von my oracle support entstehen diese Tabellen, wenn der export abgebrochen wird, oder absichtlich mit STOP_JOB unterbrochen wurde.
In beiden Fällen kann, wenn kein export Job mehr läuft oder kurzzeitig unterbrochen ist, diese Tabelle(n) gelöscht weden.
Ein Verschieben oder die Reorganisation ist nicht nötig.

Query zur Abfrage auf laufende export Prozesse:

col OWNER_NAME for a15
col JOB_NAME for a22
col OPERATION for a10
col JOB_MODE for a15
col STATE for a13
col ATTACHED_SESSIONS for 999
SELECT owner_name, job_name, operation, job_mode, state, attached_sessions as ATT_SESS FROM dba_datapump_jobs WHERE job_name NOT LIKE 'BIN$%';


 Hier im Beispiel laufen keine export datapump Jobs:

OWNER_NAME  JOB_NAME             OPERATION  JOB_MODE  STATE         ATT_SESS
----------- -------------------- ---------- --------- ------------- --------
SYSTEM      SYS_EXPORT_FULL_09   EXPORT     FULL      NOT RUNNING     0
SYSTEM      SYS_EXPORT_FULL_10   EXPORT     FULL      NOT RUNNING     0
SYSTEM      SYS_EXPORT_FULL_16   EXPORT     FULL      NOT RUNNING     0
SYSTEM      SYS_EXPORT_FULL_13   EXPORT     FULL      NOT RUNNING     0
SYSTEM      SYS_EXPORT_FULL_07   EXPORT     FULL      NOT RUNNING     0
SYSTEM      SYS_EXPORT_FULL_01   EXPORT     FULL      NOT RUNNING     0
SYSTEM      SYS_EXPORT_FULL_15   EXPORT     FULL      NOT RUNNING     0
SYSTEM      SYS_EXPORT_FULL_12   EXPORT     FULL      NOT RUNNING     0
SYSTEM      SYS_EXPORT_FULL_14   EXPORT     FULL      NOT RUNNING     0
SYSTEM      SYS_EXPORT_FULL_02   EXPORT     FULL      NOT RUNNING     0
SYSTEM      SYS_EXPORT_FULL_06   EXPORT     FULL      NOT RUNNING     0
SYSTEM      SYS_EXPORT_FULL_04   EXPORT     FULL      NOT RUNNING     0
SYSTEM      SYS_EXPORT_FULL_05   EXPORT     FULL      NOT RUNNING     0
SYSTEM      SYS_EXPORT_FULL_11   EXPORT     FULL      NOT RUNNING     0
SYSTEM      SYS_EXPORT_FULL_17   EXPORT     FULL      NOT RUNNING     0
SYSTEM      SYS_EXPORT_FULL_08   EXPORT     FULL      NOT RUNNING     0
SYSTEM      SYS_EXPORT_FULL_03   EXPORT     FULL      NOT RUNNING     0

17 rows selected.

 
Zur Identifizierung der Master Tabelle kann folgende Query benutzt werden:
col status for a10
col OBJECT_TYPE for a12
col OWNER.OBJECT for a30
SELECT o.status, o.object_id, o.object_type, o.owner||'.'||object_name "OWNER.OBJECT" FROM dba_objects o, dba_datapump_jobs j WHERE o.owner=j.owner_name AND o.object_name=j.job_name AND j.job_name NOT LIKE 'BIN$%' ORDER BY 4,2;


STATUS      OBJECT_ID OBJECT_TYPE  OWNER.OBJECT
---------- ---------- ------------ ------------------------------
VALID           84117 TABLE        SYSTEM.SYS_EXPORT_FULL_01
VALID           87704 TABLE        SYSTEM.SYS_EXPORT_FULL_02
VALID           88243 TABLE        SYSTEM.SYS_EXPORT_FULL_03
VALID           90168 TABLE        SYSTEM.SYS_EXPORT_FULL_04
VALID           90625 TABLE        SYSTEM.SYS_EXPORT_FULL_05
VALID           91342 TABLE        SYSTEM.SYS_EXPORT_FULL_06
VALID           91803 TABLE        SYSTEM.SYS_EXPORT_FULL_07
VALID           93290 TABLE        SYSTEM.SYS_EXPORT_FULL_08
VALID           94643 TABLE        SYSTEM.SYS_EXPORT_FULL_09
VALID           95481 TABLE        SYSTEM.SYS_EXPORT_FULL_10
VALID           96641 TABLE        SYSTEM.SYS_EXPORT_FULL_11
VALID           97021 TABLE        SYSTEM.SYS_EXPORT_FULL_12
VALID           99157 TABLE        SYSTEM.SYS_EXPORT_FULL_13
VALID           99847 TABLE        SYSTEM.SYS_EXPORT_FULL_14
VALID          100989 TABLE        SYSTEM.SYS_EXPORT_FULL_15
VALID          102159 TABLE        SYSTEM.SYS_EXPORT_FULL_16
VALID          115807 TABLE        SYSTEM.SYS_EXPORT_FULL_17

17 rows selected.

 

Diese Master Tabellen können in der Datenbank gelöscht werden. Wer wissen möchte, zu welchem Zeitpunkt diese Tabellen erstellt wurden, kann folgende Query ausführen:

col OWNER for a15
col OBJECT_NAME for a30
select OWNER, OBJECT_NAME, CREATED from dba_objects where OBJECT_NAME like 'SYS_EXPORT_FULL_%' order by 3;

OWNER           OBJECT_NAME                    CREATED
--------------- ------------------------------ ---------------
SYSTEM          SYS_EXPORT_FULL_01             30-NOV-11
SYSTEM          SYS_EXPORT_FULL_02             22-DEC-11
SYSTEM          SYS_EXPORT_FULL_03             25-DEC-11
SYSTEM          SYS_EXPORT_FULL_04             06-JAN-12
SYSTEM          SYS_EXPORT_FULL_05             09-JAN-12
SYSTEM          SYS_EXPORT_FULL_06             13-JAN-12
SYSTEM          SYS_EXPORT_FULL_07             16-JAN-12
SYSTEM          SYS_EXPORT_FULL_08             25-JAN-12
SYSTEM          SYS_EXPORT_FULL_09             02-FEB-12
SYSTEM          SYS_EXPORT_FULL_10             07-FEB-12
SYSTEM          SYS_EXPORT_FULL_11             14-FEB-12
SYSTEM          SYS_EXPORT_FULL_12             16-FEB-12
SYSTEM          SYS_EXPORT_FULL_13             29-FEB-12
SYSTEM          SYS_EXPORT_FULL_14             04-MAR-12
SYSTEM          SYS_EXPORT_FULL_15             11-MAR-12
SYSTEM          SYS_EXPORT_FULL_16             18-MAR-12
SYSTEM          SYS_EXPORT_FULL_17             13-JUN-12
17 rows selected.

 

Die Master Tabellen werden nun mit folgenden Statements gelöscht:

DROP TABLE SYSTEM.SYS_EXPORT_FULL_01;
DROP TABLE SYSTEM.SYS_EXPORT_FULL_02;
DROP TABLE SYSTEM.SYS_EXPORT_FULL_03;
DROP TABLE SYSTEM.SYS_EXPORT_FULL_04;
DROP TABLE SYSTEM.SYS_EXPORT_FULL_05;
DROP TABLE SYSTEM.SYS_EXPORT_FULL_06;
DROP TABLE SYSTEM.SYS_EXPORT_FULL_07;
DROP TABLE SYSTEM.SYS_EXPORT_FULL_08;
DROP TABLE SYSTEM.SYS_EXPORT_FULL_09;
DROP TABLE SYSTEM.SYS_EXPORT_FULL_10;
DROP TABLE SYSTEM.SYS_EXPORT_FULL_11;
DROP TABLE SYSTEM.SYS_EXPORT_FULL_12;
DROP TABLE SYSTEM.SYS_EXPORT_FULL_13;
DROP TABLE SYSTEM.SYS_EXPORT_FULL_14;
DROP TABLE SYSTEM.SYS_EXPORT_FULL_15;
DROP TABLE SYSTEM.SYS_EXPORT_FULL_16;
DROP TABLE SYSTEM.SYS_EXPORT_FULL_17;

 

In Datenbanken, die recycle bin Funktionalität verwenden, können die Sicherheitskopien noch gelöscht werden:

purge dba_recyclebin;


zurück zur Übersicht: Oracle Database Infos