Festlegen und Aufheben von Systemdiagnoseereignissen - 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.

Festlegen und Aufheben von Systemdiagnoseereignissen

Um Diagnoseereignisse auf Sitzungsebene festzulegen und zu deaktivieren, können Sie die SQL Oracle-Anweisung ALTER SESSION SET EVENTS verwenden. Um Ereignisse auf Systemebene festzulegen, können Sie Oracle SQL jedoch nicht verwenden. Verwenden Sie stattdessen die Systemereignisprozesse im rdsadmin.rdsadmin_util-Paket. Die Systemereignisprozesse sind in den folgenden Engine-Versionen verfügbar:

  • Alle Versionen von Oracle Database 21c

  • 19.0.0.0.ru-2020-10.rur-2020-10.r1 oder höhere Versionen von Oracle Database 19c

    Weitere Informationen finden Sie unter Version 19.0.0.0.ru-2020-10.rur-2020-10.r1 in den Versionshinweisen zu Amazon for Oracle RDS

Wichtig

Intern legt das rdsadmin.rdsadmin_util-Paket Ereignisse mithilfe der ALTER SYSTEM SET EVENTS-Anweisung fest. Diese ALTER SYSTEM-Aussage ist nicht in der Oracle Database-Dokumentation dokumentiert. Einige Systemdiagnoseereignisse können große Mengen an Rückverfolgungsinformationen generieren, Konflikte verursachen oder die Datenbankverfügbarkeit beeinträchtigen. Wir empfehlen, dass Sie bestimmte Diagnoseereignisse in Ihrer Nicht-Produktionsdatenbank testen und Ereignisse in Ihrer Produktionsdatenbank nur unter Anleitung von Oracle Support festlegen.

Auflisten zulässiger Systemdiagnoseereignisse

Verwenden Sie das RDS Amazon-Verfahren, um die Systemereignisse aufzulisten, die Sie festlegen könnenrdsadmin.rdsadmin_util.list_allowed_system_events. Dieses Verfahren akzeptiert keine Parameter.

Im folgenden Beispiel werden alle Systemereignisse aufgeführt, die Sie festlegen können.

SET SERVEROUTPUT ON EXEC rdsadmin.rdsadmin_util.list_allowed_system_events;

Die folgende Beispielausgabe listet Ereignisnummern und ihre Beschreibungen auf. Verwenden Sie die RDS Amazon-Verfahrenset_system_event, um diese Ereignisse festzulegen und unset_system_event zu deaktivieren.

604 - error occurred at recursive SQL level 942 - table or view does not exist 1401 - inserted value too large for column 1403 - no data found 1410 - invalid ROWID 1422 - exact fetch returns more than requested number of rows 1426 - numeric overflow 1427 - single-row subquery returns more than one row 1476 - divisor is equal to zero 1483 - invalid length for DATE or NUMBER bind variable 1489 - result of string concatenation is too long 1652 - unable to extend temp segment by in tablespace 1858 - a non-numeric character was found where a numeric was expected 4031 - unable to allocate bytes of shared memory ("","","","") 6502 - PL/SQL: numeric or value error 10027 - Specify Deadlock Trace Information to be Dumped 10046 - enable SQL statement timing 10053 - CBO Enable optimizer trace 10173 - Dynamic Sampling time-out error 10442 - enable trace of kst for ORA-01555 diagnostics 12008 - error in materialized view refresh path 12012 - error on auto execute of job 12504 - TNS:listener was not given the SERVICE_NAME in CONNECT_DATA 14400 - inserted partition key does not map to any partition 31693 - Table data object failed to load/unload and is being skipped due to error:
Anmerkung

Die Liste der erlaubten Systemereignisse kann sich im Laufe der Zeit ändern. Um sicherzustellen, dass Sie die aktuellste Liste der berechtigten Ereignisse haben, verwenden Sie rdsadmin.rdsadmin_util.list_allowed_system_events.

Festlegen von Systemdiagnoseereignissen

Verwenden Sie das RDS Amazon-Verfahren, um ein Systemereignis festzulegenrdsadmin.rdsadmin_util.set_system_event. Sie können nur Ereignisse festlegen, die in der Ausgabe von aufgeführt sin rdsadmin.rdsadmin_util.list_allowed_system_events. Das set_system_event-Verfahren akzeptiert die folgenden Parameter.

Parametername Datentyp Standard Erforderlich Beschreibung

p_event

Zahl

Ja

Die Systemereignisnummer. Der Wert muss eine der von gemeldeten Ereignisnummern sei list_allowed_system_events.

p_level

Zahl

Ja

Das Event-Level. In der Oracle Database-Dokumentation oder bei Oracle Support finden Sie Beschreibungen von Werten verschiedener Ebenen.

Das Verfahren set_system_event konstruiert und führt die erforderlichen ALTER SYSTEM SET EVENTS-Aussagen nach folgenden Grundsätzen aus:

  • Der Ereignistyp (context oder errorstack) wird automatisch bestimmt.

  • Eine Anweisung im Formular ALTER SYSTEM SET EVENTS 'event LEVEL event_level' legt die Kontextereignisse fest. Diese Notation entspricht ALTER SYSTEM SET EVENTS 'event TRACE NAME CONTEXT FOREVER, LEVEL event_level'.

  • Eine Anweisung im Formular ALTER SYSTEM SET EVENTS 'event ERRORSTACK (event_level)' legt die Fehler-Stack-Ereignisse fest. Diese Notation entspricht ALTER SYSTEM SET EVENTS 'event TRACE NAME ERRORSTACK LEVEL event_level'.

Im folgenden Beispiel werden Ereignis 942 auf Ebene 3 und Ereignis 10 442 auf Ebene 10 festgelegt. Die Beispielausgabe ist enthalten.

SQL> SET SERVEROUTPUT ON SQL> EXEC rdsadmin.rdsadmin_util.set_system_event(942,3); Setting system event 942 with: alter system set events '942 errorstack (3)' PL/SQL procedure successfully completed. SQL> EXEC rdsadmin.rdsadmin_util.set_system_event(10442,10); Setting system event 10442 with: alter system set events '10442 level 10' PL/SQL procedure successfully completed.

Auflisten der festgesetzten Systemdiagnoseereignisse

Verwenden Sie das RDS Amazon-Verfahren, um die aktuell festgelegten Systemereignisse aufzulistenrdsadmin.rdsadmin_util.list_set_system_events. Dieses Verfahren meldet nur Ereignisse, die auf Systemebene von festgelegt wurde set_system_event.

Im folgenden Beispiel werden die aktiven Systemereignisse aufgeführt.

SET SERVEROUTPUT ON EXEC rdsadmin.rdsadmin_util.list_set_system_events;

Die folgende Beispielausgabe zeigt die Liste der Ereignisse, den Ereignistyp, die Ebene, auf der die Ereignisse derzeit festgelegt sind, und den Zeitpunkt, zu dem das Ereignis festgelegt wurde.

942 errorstack (3) - set at 2020-11-03 11:42:27 10442 level 10 - set at 2020-11-03 11:42:41 PL/SQL procedure successfully completed.

Aufheben von Systemdiagnoseereignissen

Verwenden Sie das RDS Amazon-Verfahrenrdsadmin.rdsadmin_util.unset_system_event, um ein Systemereignis rückgängig zu machen. Sie können nur die in der Ausgabe von aufgelisteten Ereignisse aufhebe rdsadmin.rdsadmin_util.list_allowed_system_events. Das unset_system_event-Verfahren akzeptiert den folgenden Parameter.

Parametername Datentyp Standard Erforderlich Beschreibung

p_event

Zahl

Ja

Die Systemereignisnummer. Der Wert muss eine der von gemeldeten Ereignisnummern sei list_allowed_system_events.

Im folgenden Beispiel werden die Ereignisse 942 und 10 442 aufgezeichnet. Die Beispielausgabe ist enthalten.

SQL> SET SERVEROUTPUT ON SQL> EXEC rdsadmin.rdsadmin_util.unset_system_event(942); Unsetting system event 942 with: alter system set events '942 off' PL/SQL procedure successfully completed. SQL> EXEC rdsadmin.rdsadmin_util.unset_system_event(10442); Unsetting system event 10442 with: alter system set events '10442 off' PL/SQL procedure successfully completed.