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.
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:
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 DatenStarten Sie SQL*Plus und verbinden Sie sich mit der Datenbank als Datenbankbenutzer SYS. Dann starten Sie das Skript@$ORACLE_HOME/rdbms/admin/awrextr.sqlSie 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 DatenStarten Sie SQL*Plus und verbinden Sie sich mit der Datenbank als Datenbankbenutzer SYS. Dann starten Sie das Skript@$ORACLE_HOME/rdbms/admin/awrload.sqlSie 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 DatenbankDie 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 Es stehen folgende Reports zur Verfügung:
SchlußbemerkungenDer 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
LizenzhinweisDie Benutzung des Automatic Workload Repository (AWR) ist im Rahmen des Datenbank Diagnostic Packs separat lizenzpflichtig. |