Tablespace Map (wie in DBA Studio), auch in Oracle Enterprise Manager 12c

Die aus dem älteren DBA Studio bekannte, recht nützliche Tablespace Map ist im Enterprise Manager recht schwer zu finden.

So sah sie aus:

Tablespace Map DBA Studio
Tablespace Map DBA Studio

Hier kurz der Wegweiser zum Ziel, um sie auch im Enterprise Manager zu nutzen:

Wir navigieren unter Administration – Storage zu Tablespaces:

Was man selektieren muss (Click to View, then ESC to go back)

In der Auswahlbox über die Funktionen, die defaultmäßig auf „Add Datafile“ steht, selektieren wir „Show Tablespace Contents„. Ich muss zugeben, darunter hatte ich etwas Anderes erwartet.

Es geht dann eine Ansicht auf, auf der wir ganz unten unter dem „Contents“ einen unscheinbaren Link finden, „Extent Map„.

die Tablespacemap
Die Tablespacemap

Nutzen wir diesen Link, klappt tatsächlich die aus dem DBA Studio bekannte Ansicht auf! Welch Überraschung.

Für diejenigen, die noch nicht wissen, was man damit Nützliches anfangen kann, folgt eine kurze Erklärung.  Es werden genutze und freie Blöcke farblich gekennzeichnet. Man erkennt damit die Nutzung (und Fragmentierung) des Tablespaces.

Tablespacemap mit Legende
Tablespacemap mit Legende

 

Wofür ist das gut?

Manchmal ist ein Tablespace zu groß, und man bekommt ihn mit ALTER .. RESIZE nicht kleiner, da am Ende des Tablespace noch ein Objekt ist.

ORA-03297: file contains used data beyond requested RESIZE value

Welches Objekt da stört, erfährt man hier dynamisch mit einem einfachen Mouseover (Tooltip). Dann kann man dieses Objekt reorganisieren und hat die Chance, dass der Tablespace verkleinert werden kann. Dies ist nützlich bei Objekten, die üblicherweise nicht automatisiert reorganisert werden können wie SYSAUX.

Hier ist rechts unten die hellblaue Fläche das Objekt welches eine Reorganisation verhindert. Als Tabelle ein Move, als Index ein REBUILD löst das Problem.

Natürlich kann man die den Shrink störenden „höchsten“ Objekte auch mittels der Console ermitteln:

1
2
3
4
5
6
7
8
9
10
11
SELECT * FROM
( SELECT file_id, block_id, block_id + blocks - 1 end_block, owner,
segment_name, partition_name, segment_type
FROM dba_extents
WHERE tablespace_name = 'SYSAUX'
UNION ALL
SELECT file_id, block_id, block_id + blocks - 1 end_block,'free' owner, 'free' segment_name,
NULL partition_name, NULL SEGMENT_TYPE FROM DBA_FREE_SPACE
WHERE TABLESPACE_NAME = 'SYSAUX'
ORDER BY 1 DESC, 2 DESC)
WHERE ROWNUM < 10;

Ein beispielhafter Output sieht dann z.B. so aus:

FILE_ID BLOCK_ID END_BLOCK OWNER SEGMENT_NAME PARTITION_NAME SEGMENT_TYPE
———- ———- ———- —— ——————————- —————————— ——————
10 25792 25855 SYS I_WRI$_OPTSTAT_H_ST INDEX
10 25280 25791 SYS AUD$ TABLE
10 24192 24255 SYS I_WRI$_OPTSTAT_H_OBJ#_ICOL#_ST INDEX
10 24128 24191 SYS WRH$_LATCH WRH$_LATCH_489711439_34766 TABLE PARTITION

 

Dies wären dann die Kandidaten für einen MOVE/REBUILD, um den Platz am Ende der Datei freizuschaufeln.

Eine Antwort auf „Tablespace Map (wie in DBA Studio), auch in Oracle Enterprise Manager 12c“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert