Automatic Workload Repository (AWR) in Oracle 10g

 Diese Seite drucken

Oracle Datenbanken wurden in den letzten Jahren zunehmend mit Tools ausgestattet, die Performance-Daten erheben und entsprechende Reports generieren. Ursprünglich waren die Skripts UTLBSTAT/UTLESTAT dazu da, um die Performance zu überwachen. Oracle 8i hat dann die Statspack Funktionen mitgebracht, die in Oracle 9i ausgebaut wurden. In Oracle 10g hat sich Statspack entwickelt zum
Automatic Workload Repository (AWR).

Was macht das AWR?

AWR sammelt Performance-Daten. Dazu gehören: Die Repository-Daten, die das AWR sammelt, dienen auch anderen neuen Oracle 10 g Features als Datenquelle:

Snapshots

Bei unveränderten Standardeinstellungen nach der Installation werden relevante Daten jede volle Stund erhoben und für 7 Tage aufbewahrt. Diese Default-Werte kann man folgendermaßen ändern:

    -- Datei: less_snapshots.sql

    BEGIN
    DBMS_WORKLOAD_REPOSITORY.modify_snapshot_settings(
    retention => 43200, -- Minuten (= 30 Days). Current value retained if NULL. interval => 120); -- Minutes. Current value retained if NULL.
    END;
    /

Die Änderungen kann amn in der View DBA_HIST_WR_CONTROL kontrollieren:

    SQL> select * from dba_hist_wr_control;

    DBID
    ----------
    SNAP_INTERVAL
    ---------------------------------------------------------------------------
    RETENTION
    ---------------------------------------------------------------------------
    191709560
    +00000 06:00:00.0
    +00030 00:00:00.0
     

Man kann in der Oberfläche des EM im Reiter Administration Gruppe Ergebnissammluing unter Automatisches Workload Repository leider nur Werte zwischen 10 min und 2 Stunden für dei Snapshot-Intervalle einstellen. Angezeigt bekommt man aber Änderungen, die man an der Konsole durchgeführt hat:

Nochmals zu den Werten im Skript: Ein Interval von "0" schaltet die Snapshot-Funktionalität ab, was wiederum die meisten Features der Self-Tuning-Funktionen stoppt und aher nicht empfohlen werden kann. Automatische sammlöung der Snapshots ist nur möglich, wenn der Parameter STATISTICS_LEVEL auf TYPICAL oder ALL gesetzt ist. Wenn der Wert auf BASIC gesetzt ist, können manuell Snapshots aufgenommen werden, es fehlen aber einige Statistiken.

Extra-Snapshots könnem immer zusätzlich zwischendurch aufgenommen werden, bzw. können existierende Snapshots gelöscht werden, wie im folgenden Skript:

    EXEC DBMS_WORKLOAD_REPOSITORY.create_snapshot;
    BEGIN
       DBMS_WORKLOAD_REPOSITORY.drop_snapshot_range (
       low_snap_id => 22,
       high_snap_id => 32);
    END;
    /

Informationen über die Snapshots kann man über Abfrage der View DBA_HIST_SNAPSHOT erhalten.

Baselines

Als Baseline bezeichnet man ein Paar von Snapshots, die eine spezifische Nutzungsperiode der Datenbank begrenzen, z.B. Lastspitzen o.ä. Sind Baselines definiert, kann man mit ihrer Hilfe die aktuelle Performance mit ähnlichen Perioden in der Vergangenheit vergleichen.
Und so können Sie ein Paar Baselines erstellen, die beispielsweise eine bestimmte Periode markieren, in der ihre Datenbank exzessives Batch Processing abarbeiten musste:

    BEGIN
        DBMS_WORKLOAD_REPOSITORY.create_baseline (
        start_snap_id => 210,
        end_snap_id => 220,
        baseline_name => 'batch baseline');
    END;
    /


    Das Snapshot-Paar, das mit einer Baseline assoziiert ist, wird übrigens aufgehoben, bis die Basline explizit gelöscht wird:

    BEGIN
       DBMS_WORKLOAD_REPOSITORY.drop_baseline (
       baseline_name => 'batch baseline',
       cascade => FALSE); -- Deletes associated snapshots if TRUE.
    END;
    /

Information über die Baselines kann man aus der View DBA_HIST_BASELINE abfragen.

Workload Repository Views

Die folgenden Workload Repository Views gibt es:

Workload Repository Reports

Oracle kommt mit zwei Skripten, die Workload Repository Reports generieren. (awrrpt.sql und awrrpti.sql). Die Reports sind den alten Statspack Reports sehr ähnlich und können als HTML oder Text ausgegeben werden. Die Reports sind bei beiden Skripten prinzipiell identisch, awrrpti.sql lässt sich auf eine einzelne Instanz beschränken. Man erzeugt die Reports folgendermaßen:

    @$ORACLE_HOME/rdbms/admin/awrrpt.sql
    @$ORACLE_HOME/rdbms/admin/awrrpti.sql

Die Skripts fragen nach dem Ausgabeformat ab (HTML oder Text), der Start-Snapshot-ID, der End-Snapshot-ID und dem Dateinamen für den Report..

Enterprise Manager

Die meisten Administrationsaufgaben für das Automatic Workload Repository (AWR) sind auch in den Enterprise Manager integriert. Die Seite "Automatic Workload Repository" ist über den Reiter "Administration" zugänglich, dann klickt man auf  " Automatisches Workload Repository " unter "Ergebnissammlung". Die Seite erlaubt - mit Einschränkungen -, die AWR Einstellungen zu ändern und die Snapshots auch ohne PL/SDQL Skripts zu managen.

Für detailliertere Informationen muss man sich das folgenden Kapitel der Oracle 10g Doku reinziehen: