Logo Oracle Deutschland   DBA Community  -  Juni 2011
Automatic Workload Repository: Zentrale Analyse alter Performance Daten
von Ralf Durben, ORACLE Deutschland B.V. & Co. KG

Das Automatic Workload Repository (AWR) wurde in Oracle Datenbank 10g eingeführt. Dabei sammelt die Datenbank permanent Performancedaten mittels äußerst schnellen und effizienten Zugriffen auf Hauptspeicherinhalte, die dann in Datenbanktabellen im Tablespace SYSAUX gespeichert werden. Die Analyse dieser Performance Daten findet dann je nach Bedarf mit normalen Datenbankzugriffen auf diese Tabellen des AWR statt.

Die Speicherdauer der Daten im AWR ist standardmäßig auf 8 Tage gesetzt und kann selbstverständlich vergrößert werden. Dieses kann entweder in Oracle Enterprise Manager geschehen

                          

oder über das Kommando

BEGIN
  DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention => 43200);
END;
/
Die Speicherungszeit wird dabei in Minuten angegeben.

Da das AWR im Tablespace SYSAUX einer jeden Datenbank (ab Version 10g) liegt kann von einer dezentralen Speicherung der Performancedaten gesprochen werden. Das hat prinzipiell den großen Vorteil, dass diese Daten nicht permanent über das Netzwerk an eine zentrale Stelle geschickt werden müssen.

Es gibt aber auch Nachteile:
  • Wenn für besonders wichtige Datenbanken die Performancedaten für einen sehr langen Zeitraum gespeichert werden sollen, ist natürlich auch entsprechend großer Bedarf an Storage in der Datenbank zu verzeichnen. Das aber wiederum ist oft für kritische Datenbanken nicht gewollt.
  • Wenn in einer Datenbank Performancetests stattfinden und die Testdatenbank mittels Flashback Database wieder auf einen definierten Anfangsstand zurückgesetzt wird, werden auch die Performancedaten aus dem AWR gelöscht und stehen für spätere Vergleiche nicht mehr zur Verfügung.
In beiden Fällen gibt es das Interesse, die AWR Daten aus der Zieldatenbank in eine zentrale "AWR-Datenbank" zu kopieren. Das ist seit Oracle Database 10g Release 2 möglich und wird hier kurz vorgestellt.

Das Verfahren ist letztlich recht einfach: Es ist möglich AWR-Daten aus einer Datenbank zu exportieren und in eine andere Datenbank zu importieren. Dazu werden Skripte aufgerufen, die ihrerseits die Utility Data Pump verwenden. Desweiteren ist es möglich die AWR-Daten mehrerer Datenbanken in einer Datenbank zu speichern und auszuwerten. Die Auswertung ist dabei nur mit Skripten möglich, eine graphische Auswertung, z.B. mit Oracle Enterprise Manager steht nicht zur Verfügung.

Folgende Aktionen werden in diesem Tipp beschrieben:

Exportieren von AWR Daten

Starten Sie SQL*Plus und verbinden Sie sich mit der Datenbank als Datenbankbenutzer SYS. Dann starten Sie das Skript
 @$ORACLE_HOME/rdbms/admin/awrextr.sql
Sie bekommen die Datenbank ID der aktuellen Datenbank angezeigt. Eigentlich erwartet das Skript nun die Eingabe der Datenbank ID der Datenbank, aus der Sie die AWR Daten exportieren möchten. In den meisten Fällen ist die aktuelle Datenbank ID aber der Default, und dann brauchen Sie nur die RETURN-Taste drücken. Im weiteren Verlauf des Skripts geben Sie noch an, für welche Snapshots, also welchen Zeitraum, Sie die Daten exportieren möchten. Exportiert wird letztlich mit Data Pump, und Sie können Name der Datei und Zielverzeichnis angeben. Alle Aufforderungen zu Eingaben sind gut beschrieben und selbsterklärend.

Diese Datei transportieren Sie zum Rechner mit der Datenbank, in die die Daten importiert werden sollen.

Importieren von AWR Daten

Starten Sie SQL*Plus und verbinden Sie sich mit der Datenbank als Datenbankbenutzer SYS. Dann starten Sie das Skript
 @$ORACLE_HOME/rdbms/admin/awrload.sql
Sie geben dann den Namen und das Verzeichnis der zu ladenden Datei an. Desweiteren geben Sie den Namen eines Hilfsschemas an, welches noch nicht existieren darf. Das Skript schlägt den Namen "AWR_STAGE" vor, und wenn Sie ein solches Schema noch nicht in dieser Datenbank angelegt haben, können Sie diesen Default einfach übernehmen. Das Hilfsschema wird nach dem Laden der Daten wieder gelöscht.

Es wird auch nach Tablespaces gefragt, wobei meistens der Default passen sollte. Alle Aufforderungen zu Eingaben sind gut beschrieben und selbsterklärend.

Auswerten von AWR Daten, gespeichert in einer zentralen Datenbank

Die Auswertung der Performancedaten erfolgt mit den üblichen AWR-Auswertungsskripten, die es in jeweils in zwei Varianten gibt: Einmal mit automatischer Nutzung der aktuellen Datenbank ID (Skriptname endet mit einem "t") und einmal mit der Möglichkeit der Eingabe von Datenbank ID und Instanznummer (Skriptname endet mit einem "i"). Letztere Variante kommt hier zum Einsatz.

Ein Beispiel:
SQL> @?/rdbms/admin/awrrpti.sql

Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
Would you like an HTML report, or a plain text report?
Enter 'html' for an HTML report, or 'text' for plain text
Defaults to 'html'
Enter value for report_type: text

Type Specified:  text


Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   DB Id     Inst Num DB Name      Instance     Host
------------ -------- ------------ ------------ ------------
* 1278747359        1 ORCL         orcl         sccloud008.d
                                                e.oracle.com
  1252810581        1 ORCL         orcl         sccloud004.d
                                                e.oracle.com
  2356034715        1 RADU1        radu1        radu1.de.ora
                                                cle.com

Enter value for dbid: 2356034715
Using 2356034715 for database Id
Enter value for inst_num: 1
Using 1 for instance number


Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed.  Pressing  without
specifying a number lists all completed snapshots.


Enter value for num_days: 1

Listing the last day's Completed Snapshots

                                                        Snap
Instance     DB Name        Snap Id    Snap Started    Level
------------ ------------ --------- ------------------ -----
radu1        RADU1             8880 12 May 2011 00:00      1
                               8881 12 May 2011 01:00      1
                               8882 12 May 2011 02:00      1
                               8883 12 May 2011 03:00      1
                               8884 12 May 2011 04:00      1
                               8885 12 May 2011 05:00      1
                               8886 12 May 2011 06:00      1
                               8887 12 May 2011 07:00      1
                               8888 12 May 2011 08:00      1
                               8889 12 May 2011 09:00      1
                               8890 12 May 2011 10:00      1
                               8891 12 May 2011 11:00      1
                               8892 12 May 2011 12:00      1
                               8893 12 May 2011 13:00      1
                               8894 12 May 2011 14:00      1



Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 8888
Begin Snapshot Id specified: 8888

Enter value for end_snap: 8890
End   Snapshot Id specified: 8890



Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is awrrpt_1_8888_8890.txt.  To use this name,
press  to continue, otherwise enter an alternative.

Enter value for report_name: awrrpt_1_8888_8890_1.txt

Using the report name awrrpt_1_8888_8890_1.txt

---Es erfolgt die Anzeige des Reports

End of Report


Es stehen folgende Reports zur Verfügung:
  • awrrpti.sql
  • Der AWR Report, der alle wichtigen Kennwerte für einen gegebenen Zeitraum anzeigt.

  • awrsqrpi.sql
  • Eine Analyse für ein gegebenes SQL Statement, welches per SQL ID angegeben wird. Alle Kennwerte und der Ausführungsplan für dieses SQL Statement werden angezeigt.

  • awrddrpi.sql
  • Ein Vergleich von Einstellungen, Attributen und Konfigurationseinstellungen zum Anfangs- und Endzeitpunkt.


Schlußbemerkungen

Der Transport der AWR-Daten funktioniert auch über Datenbank-Versionen hinweg. Export- und Import-Datenbank können also verschiedene Versionen haben. Es empfiehlt sich aber, daß die Auswertungsdatenbank, also die Datenbank in die die AWR Daten importiert werden, nicht von einer älteren Version sein sollte, als eine der Datenbanken aus denen die AWR-Daten exportiert werden. Der Grund ist ganz einfach: Die Auswertungsskripte sind ja Teil der Installation dieser Auswertungsdatenbank und diese Skripte sollten alle Features der geladenen AWR-Daten berücksichtigen können.

Dieser Tipp möchte einen schnellen Zugang zu dieser Methode geben. Weitere Details finden Sie im Handbuch "Performance Tuning", z.B. im Kapitel

Lizenzhinweis

Die Benutzung des Automatic Workload Repository (AWR) ist im Rahmen des Datenbank Diagnostic Packs separat lizenzpflichtig.

Zurück zur Community-Seite