Oracle Statspack - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Oracle Statspack

Mit der Oracle Statspack-Option wird die Funktion der Oracle Statspack-Leistungsstatistik installiert und aktiviert. Oracle Statspack ist eine Sammlung von SQL-, PL/SQL- und SQL*Plus-Skripts, die Leistungsdaten sammeln, speichern und anzeigen. Weitere Informationen über die Verwendung von Oracle Statspack finden Sie unter Oracle Statspack in der Oracle-Dokumentation.

Anmerkung

Oracle Statspack wird nicht mehr von Oracle unterstützt und wurde durch das fortschrittlichere Automatic Workload Repository (AWR) ersetzt. AWR ist nur für Orale Enterprise Edition-Kunden verfügbar, die das Diagnostics Pack erworben haben. Sie können Oracle Statspack mit jeder Oracle DB-Engine auf Amazon RDS verwenden. Sie können Oracle Statspack nicht auf Amazon RDS-Read Replicas ausführen.

Einrichten von Oracle Statspack

Um Statspack-Skripts auszuführen, müssen Sie die Statspack-Option hinzufügen.

So richten Sie Oracle Statspack ein:
  1. Melden Sie sich in einem SQL-Client mit einem Administratorkonto bei der Oracle-DB an.

  2. Führen Sie je nachdem, ob Statspack installiert ist, eine der folgenden Aktionen aus:

    • Wenn Statspack installiert ist und das PERFSTAT-Konto Statspack zugeordnet ist, fahren Sie mit Schritt 4 fort.

    • Wenn Statspack nicht installiert ist und das PERFSTAT-Konto vorhanden ist, löschen Sie das Konto wie folgt:

      DROP USER PERFSTAT CASCADE;

      Andernfalls erzeugt der Versuch, die Statspack-Option hinzuzufügen, einen Fehler und RDS-Event-0058.

  3. Fügen Sie die Statspack-Option zu einer Optionsgruppe hinzu. Siehe Hinzufügen einer Option zu einer Optionsgruppe.

    Amazon RDS installiert automatisch die Statspack-Skripts auf der DB-Instance und richtet dann das PERFSTAT-Konto ein.

  4. Setzen Sie das Passwort mit der folgenden SQL-Anweisung zurück, und ersetzen Sie pwd durch Ihr neues Passwort:

    ALTER USER PERFSTAT IDENTIFIED BY pwd ACCOUNT UNLOCK;

    Sie können sich mit dem PERFSTAT-Benutzerkonto anmelden und die Statspack-Skripts ausführen.

  5. Führen Sie je nach DB-Engine-Version eine der folgenden Aktionen aus:

    • Überspringen Sie diesen Schritt, wenn Sie Oracle Database 12c Release 2 (12.2) oder niedriger verwenden.

    • Wenn Sie Oracle Database 19c oder höher verwenden, erteilen Sie dem CREATE JOB-Konto die PERFSTAT-Berechtigung mit der folgenden Aussage:

      GRANT CREATE JOB TO PERFSTAT;
  6. Stellen Sie sicher, dass Leerlaufwarteereignisse in der PERFSTAT.STATS$IDLE_EVENT-Tabelle eingegeben werden.

    Aufgrund von Oracle-Fehler 28523746 werden die Leerlaufwarteereignisse in PERFSTAT.STATS$IDLE_EVENT möglicherweise nicht eingegeben. Um sicherzustellen, dass alle Leerlaufereignisse verfügbar sind, führen Sie die folgende Anweisung aus:

    INSERT INTO PERFSTAT.STATS$IDLE_EVENT (EVENT) SELECT NAME FROM V$EVENT_NAME WHERE WAIT_CLASS='Idle' MINUS SELECT EVENT FROM PERFSTAT.STATS$IDLE_EVENT; COMMIT;

Generieren von Statspack-Berichten

Ein Statspack-Bericht vergleicht zwei Snapshots.

So generieren Sie Statspack-Berichte:
  1. Melden Sie sich bei einem SQL-Client mit dem PERFSTAT- Konto bei der Oracle-DB an.

  2. Erstellen Sie einen Snapshot mit einer der folgenden Techniken:

    • Erstellen Sie einen Statspack-Snapshot manuell.

    • Erstellen Sie eine Aufgabe, die nach einem bestimmten Zeitintervall einen Statspack-Snapshot erstellt. Der folgende Job erstellt beispielsweise jede Stunde einen Statspack-Snapshot:

      VARIABLE jn NUMBER; exec dbms_job.submit(:jn, 'statspack.snap;',SYSDATE,'TRUNC(SYSDATE+1/24,''HH24'')'); COMMIT;
  3. Zeigen Sie die Snapshots mithilfe der folgenden Abfrage an:

    SELECT SNAP_ID, SNAP_TIME FROM STATS$SNAPSHOT ORDER BY 1;
  4. Führen Sie die Amazon RDS-Prozedur rdsadmin.rds_run_spreport aus, indem Sie begin_snap und end_snap durch die Snapshot-IDs ersetzen:

    exec rdsadmin.rds_run_spreport(begin_snap,end_snap);

    Beispielsweise wird mit dem folgenden Befehl ein Bericht erstellt, der auf dem Intervall zwischen den Statspack-Snapshots 1 und 2 basiert:

    exec rdsadmin.rds_run_spreport(1,2);

    Der Dateiname des Statspack-Berichts enthält die Nummer der beiden Snapshots. So würde beispielsweise eine Berichtsdatei, in der die Statspack-Snapshots 1 und 2 verwendet werden, den Namen erhalte ORCL_spreport_1_2.lst.

  5. Überwachen Sie die Ausgabe auf Fehler.

    Oracle Statspack führt Prüfungen durch, bevor der Bericht ausgeführt wird. Daher können Sie möglicherweise auch Fehlermeldungen in der Befehlsausgabe sehen. Sie können beispielsweise versuchen, einen Bericht basierend auf einem ungültigen Bereich zu generieren, wobei der anfängliche Statspack-Snapshot-Wert größer als der Endwert ist. In diesem Fall zeigt die Ausgabe die Fehlermeldung an, aber die DB-Engine generiert keine Fehlerdatei.

    exec rdsadmin.rds_run_spreport(2,1); * ERROR at line 1: ORA-20000: Invalid snapshot IDs. Find valid ones in perfstat.stats$snapshot.

    Wenn Sie eine ungültige Nummer für einen Statspack-Snapshot verwenden, zeigt die Ausgabe einen Fehler an. Wenn Sie beispielsweise versuchen, einen Bericht für Snapshots 1 und 50 zu erstellen, aber Snapshot 50 nicht vorhanden ist, zeigt die Ausgabe einen Fehler an.

    exec rdsadmin.rds_run_spreport(1,50); * ERROR at line 1: ORA-20000: Could not find both snapshot IDs
  6. (Optional)

    Um den Bericht abzurufen, rufen Sie die Ablaufverfolgungsdatei-Prozeduren auf, wie unter erläuter Arbeiten mit Oracle-Trace-Dateien.

    Alternativ können Sie den Statspack-Bericht von der RDS-Konsole herunterladen. Wechseln Sie zum Abschnitt Log (Protokoll) der Details der DB-Instance und wählen Sie Download (Herunterladen) aus:

    Wenn beim Generieren eines Berichts ein Fehler auftritt, verwendet die DB-Engine dieselben Benennungskonventionen wie für einen Bericht, jedoch mit der Erweiterung .err. Wenn beispielsweise ein Fehler beim Erstellen eines Berichts mit den Statspack-Snapshots 1 und 7 aufgetreten ist, hat die Berichtsdatei den Namen ORCL_spreport_1_7.err. Sie können den Fehlerbericht mit den gleichen Methoden herunterladen wie für einen standardmäßigen Snapshot-Bericht.

Entfernen von Statspack-Snapshots

Verwenden Sie den folgenden Befehl zum Entfernen eines Bereichs von Oracle-Statspack-Snapshots:

exec statspack.purge(begin snap, end snap);