Logo Oracle Deutschland   DBA Community  -   Juni 2012
Hilfreiche Linemode Skripte
von Ulrike Schwinn, ORACLE Deutschland B.V. & Co KG

Die mitgelieferten Skripte im Verzeichnis $ORACLE_HOME/rdbms/admin bieten schon seit jeher DBAs und Entwickler eine zusätzliche Unterstützung bei ihrer Arbeit. Sie stehen automatisch nach jeder Installation im Verzeichnis rdbms/admin zur weiteren Verwendung zur Verfügung. Nur wie findet man genau das Skript, das einem die richtige Unterstützung bietet?

Eine Dokumentation aller Skripte existiert nicht. Man kann sich an den Namen der Skripte orientieren, da sie mit sprechenden Namen aufgelistet sind und kann die Kurzeinleitung im Skript nachlesen. Das ist mühselig und kostet Zeit. Sucht man beispielsweise ein Skript, um einen AWR Difference Report für alle Instanzen zu generieren, listet man am besten zuerst alle Skripte mit Präfix "awr"auf und arbeitet sich langsam über die Kurzeinleitungen vor. Manchmal weiß man auch gar nicht, dass ein einfaches Skript existiert, um bestimmte Aufgaben schnell und einfach zu erledigen. Ein Beispiel wäre das Skript utlrp.sql, das alle invaliden Packages re-kompiliert.

Daher bietet dieser Tipp einen Überblick über wichtige Skripte einschließlich einer Kurzbeschreibung. Dieser Überblick kann in der ersten Veröffentlichung nicht vollständig sein. Daher wird er sicherlich von Zeit zu Zeit erweitert werden.

Bevor mit der Auflistung der einzelnen Skripte gestartet wird, soll eine globale Einführung in die Namensgebung gegeben werden. Wie oben schon angesprochen, beinhalten die Namen eine Abkürzung der Funktionalität. Alle Skripte, die zum Beispiel das Präfix "dbms" bzw. "prvt" haben, stellen das Package Interface zur Verfügung - prvt steht dabei für die private interne (wrapped) Darstellung des Package Bodys. Sie müssen in der Regel nicht mehr vom DBA ausgeführt werden, da die Packages nach der Installation zur Verfügung stehen. Die Skripte mit Präfix "cat" sind Skripte für den Oracle Katalog und können zusätzliche Tabellen und Views anlegen bzw. auch löschen. Skripte, die mit "utl" für utility beginnen, helfen zusätzliche Funktionen zu implementieren bzw. zusätzliche Analysen durchzuführen.

Utility Skripte

Hier finden Sie eine kurze Auflistung aller Skripte mit Präfix "utl".
[oracle@sccloud003 admin]$ ls utl*
utlbstat.sql  utlestat.sql  utljavrm.sql  utlpwdmg.sql  utlstddw.sql  utlusts.sql
utlchain.sql  utlexcpt.sql  utllms.sql    utlraw.sql    utlsxszd.sql  utlvalid.sql
utlchn1.sql   utlexpt1.sql  utllmup.sql   utlrcmp.sql   utlsyxsz.sql  utlxaa.sql
utlcoll.plb   utlfile.sql   utllockt.sql  utlrdt.sql    utltcp.sql    utlxmv.sql
utlcomp.sql   utlgdk.sql    utlmail.sql   utlrefld.sql  utltkprf.sql  utlxplan.sql
utlconst.sql  utlhttp.sql   utlmatch.sql  utlref.plb    utltzu92.sql  utlxplp.sql
utlcxml.sql   utli18n.sql   utlmmig.sql   utlrp.sql     utltzuv2.sql  utlxpls.sql
utldim.sql    utlident.sql  utlnchar.sql  utlrvw.sql    utlu112i.sql  utlxrw.sql
utldtchk.sql  utlinad.sql   utlnla.sql    utlsampl.sql  utlu112s.sql
utldtree.sql  utlincmp.sql  utlpg.sql     utlscln.sql   utlu112x.sql
utledtol.sql  utlip.sql     utlpitl.sql   utlsmtp.sql   utluiobj.sql
utlenc.sql    utlirp.sql    utlprp.sql    utlspadv.sql  utlurl.sql
Was bedeuten die einzelnen Skripte? In der folgende Aufzählung wird eine Auswahl interessanter Skripte beschrieben.
  1. utlchain.sql
    • Erzeugt Hilfstabelle CHAINED_ROWS zur Speicherung von Chained Rows
    • CREATE TABLE Recht erforderlich
    • Voraussetzung zur Verwendung von ANALYZE TABLE LIST CHAINED ROWS
  2. utlxplan.sql
    • Erzeugt Hilfstabelle PLAN_TABLE um die Ausgabe des EXPLAIN PLAN Kommandos zu speichern
    • CREATE TABLE Recht erforderlich
    • Hilfreiche Formatierungen über utlxpls.sql bzw. utlxplp.sql sind möglich
  3. utlxplp.sql
    • Gibt die gespeicherten EXPLAIN PLAN Informationen aus
    • Zusätzliche parallel query Informationen werden dabei berücksichtigt
  4. utlxpls.sql
    • Gibt die gespeicherten EXPLAIN PLAN Informationen aus
    • Es werden KEINE parallel query Informationen ausgegeben
  5. utlsyxsz.sql
    • Speicherplatz-Berechung des SYSAUX Tablespace
    • Fordert Werte für Retention Zeit, Anzahl der DB Tabellen usw. an
    • Kann auch mit aktuellen Werte-Einstellungen der Datenbank arbeiten
  6. utlrcmp.sql
    • Erzeugt das zusätzliche Package UTL_RECOMP um invalide PL/SQL Module, Java Klassen usw. zu rekompilieren
    • UTL_RECOMP.RECOMP_SERIAL steht zur seriellen Rekompilierung zur Verfügung
    • UTL_RECOMP.RECOMP_PARALLEL steht zur parallelen Rekompilierung zur Verfügung
    • Angabe von Schema oder Parallelitätsgrad ist möglich
  7. utlrp.sql
    • Rekompiliert automatisch invalide PL/SQL Module, Java Klassen usw. im parallelen Modus
    • Gibt einen Report über mögliche Fehler aus
    • Empfohlen nach Upgrade oder nach Patchanwendungen
  8. utllockt.sql
    • Gibt die Sessions (Session ID) in einer Baumstruktur aus, die auf einen Lock warten
    • Gibt die Locks an, auf die gewartet wird
    • Es wird temporär eine Tabelle für die Anzeige erzeugt
  9. utlsampl.sql
    • Erzeugt User SCOTT mit den wohlbekannten Tabellen EMP, DEPT, BONUS und SALGRADE
    • Existierender User SCOTT und die Tabellen werden vorher gelöscht
  10. utlmail.sql und prvtmail.sql
    • Erzeugt PL/SQL Package UTL_MAIL um das Senden von Emails zu ermöglichen
    • EXECUTE Rechte zur Nutzung müssen noch nachträglich vergeben werden

Skripte für Tuning Reports (ASH, AWR etc.)

Auch hier soll zuerst ein Überblick über einige Skripte gegeben werden.
[oracle@sccloud003 admin]$ ls a*
a0902000.sql  addmtmig.sql     awrddinp.sql  awrginp.sql   awrrpti.sql
a1001000.sql  agtept.lst       awrddrpi.sql  awrgrpti.sql  awrrpt.sql
a1002000.sql  ashrptinoop.sql  awrddrpt.sql  awrgrpt.sql   awrsqrpi.sql
a1101000.sql  ashrpti.sql      awrextr.sql   awrinfo.sql   awrsqrpt.sql
a1102000.sql  ashrptistd.sql   awrgdinp.sql  awrinpnm.sql
addmrpti.sql  ashrpt.sql       awrgdrpi.sql  awrinput.sql
addmrpt.sql   awrblmig.sql     awrgdrpt.sql  awrload.sql
Die Skripte, die das Kürzel "awr" beinhalten, können zum Generieren eines AWR Reports im Text oder HTML Format verwendet werden. Das Kürzel "addm" steht für ADDM Reports, "ash" für die entsprechenden ASH Reports.
  1. awrrpt.sql
    • Erzeugt eine AWR Ausgabe für die Single Instance Nutzung
    • Es ist die Zeitangabe (Anzahl Tage) für die Anzeige der Snapshots und die Auswahl der Snapshots erforderlich
    • Vergleichbares Skript ist awrrpti.sql - i steht hierbei für input (Eingabemodus), das allerdings eine Eingabe von DBID und Instance ID erfordert
  2. awrddrpt.sql
    • Erzeugt einen AWR Difference Report - auch Workload Repository Compare Periods Report - unter Angabe von 2 Paaren von Snpshots
    • Es ist die Zeitangabe (Anzahl Tage) für die Anzeige der Snapshots und die Auswahl der Snapshots für jedes Snapshot-Paar erforderlich
    • Der Buchstabe d steht für difference
    • Vergleichbar mit awrddrpti.sql, das eine Eingabe von DBID und Instance ID erfordert
  3. awrgrpt.sql
    • Erzeugt einen Workload Repository RAC (Global) Report
    • Es ist die Zeitangabe (Anzahl Tage) für die Anzeige der Snapshots und die Auswahl der Snapshots erforderlich
    • Der Buchstabe g steht für global
    • Vergleichbar mit awrgrpti.sql, das eine Eingabe von DBID und Instance ID erfordert
  4. addmrpt.sql
    • Erzeugt einen ADDM Analysis Report für jedes Paar von AWR Snapshots
    • Vergleichbar mit addmrpti.sql, das eine Eingabe von DBID und Instance ID erfordert
    • Der Report steht im Unterschied zu den AWR Reports nur in Textform zur Verfügung
  5. ashrpt.sql
    • Erzeugt einen ASH Report
    • Es ist eine Zeitangabe (absolut oder relativ) und die Zeitdauer erforderlich
Hinweis: Für die Nutzung dieser Skripte ist die Lizenzierung des Diagnostics Packs notwendig.

Eine lizenzfreie Alternative zu den AWR Reports bietet die Nutzung von STATSPACK Reports. Bei der manuellen Installation wird ein User PERFSTAT mit zusätzlichen Tabellen und Packages angelegt. Die Nutzung ist ähnlich wie bei AWR Reports: Es werden Snapshots erzeugt und danach können Reports generiert werden. Folgende Liste gibt einen Überblick über wichtige Statspack Skripte:
  • spdoc.txt: Dokumentation der Statspack Technologie
  • spcreate.sql: Installation
  • spreport.sql: Instance Health Report
  • sprepsql.sql: High Load SQL Analyse unter Angabe des Hash Values

Catalog Skripte

  1. catxdbdbca.sql
    • Ändert die Ports für FTP und HTTP im laufenden Betrieb
    • Kann als SYS oder XDB user verwendet werden
  2. catqm.sql
    • Erzeugt Tabellen und Views, die für XDB Nutzung nötig sind
    • Muss als SYS verwendet werden
    • Erfordert mindestens die Eingabe von XDB Passwort, Default Tablespace und TEMP Tablespace
  3. catnoqm.sql
    • Löscht Tabellen und Views, die für XDB Nutzung nötig sind
    • Muss als SYS verwendet werden

Skripte für die Nutzung von DBFS

Das Oracle Database Filesystem (auch DBFS) ist eine Technologie ab 11g Release 2, die eine Datenbank basierte Standardfilesystem-Schnittstelle für Dateien und Directories zur Verfügung stellt. Die Inhalte werden dabei in Datenbanktabellen gespeichert. Eine fertige Implementierung, den Oracle Securefile Store, bringt die Datenbank bereits mit. Die PL/SQL-Implementierung ist bereits vorhanden; mit einem SQL-Skript werden die nötigen Tabellen in einem frei wählbaren Datenbankschema erstellt. Auf die Dokumente kann anschließend beliebig entweder über die Dateisystem-Sicht oder über die SQL-Sicht zugegriffen werden. Folgende Skripte werden dazu verwendet.
  1. dbfs_create_filesystem.sql
    • Legt ein Database Filesystem mit Standardparametern in einem Datenbankschema an
    • Erfordert die Rolle DBFS_ROLE
  2. dbfs_create_filesystem_advanced.sql
    • Legt ein Database Filesystem mit individuellen Parametern in einem Datenbankschema an
    • Ermöglicht die Eingabe von Parametern zur Partitionierung, Komprimierung und Verschlüsselung
    • Erfordert die Rolle DBFS_ROLE
  3. dbfs_drop_filesystem.sql
    • Löscht ein Database Filesystem
Mehr zu diesem Thema bzw. zu weiteren Themen rund um die Datenbank lesen Sie in den nächsten Ausgaben ...



Zurück zur Community-Seite