システム診断イベントの設定と設定の解除 - Amazon Relational Database Service

システム診断イベントの設定と設定の解除

セッションレベルで診断イベントを設定および設定解除するには、Oracle SQL ステートメントを使用できます ALTER SESSION SET EVENTS。ただし、システムレベルでイベントを設定するには、Oracle SQL を使用できません。代わりに、rdsadmin.rdsadmin_util パッケージ内のシステムイベント手順を使用します。システムイベント手順は、次のエンジンバージョンで使用できます。

  • すべての Oracle Database 21c バージョン

  • 19.0.0.0.ru-2020-10.rur-2020-10.r1 以降の Oracle Database 19c バージョン

    詳細については、「Amazon RDS for Oracle リリースノート」の「バージョン 19.0.0.0.ru-2020-10.rur-2020-10.r1」を参照してください。

重要

内部的には、rdsadmin.rdsadmin_util パッケージは ALTER SYSTEM SET EVENTS ステートメントを使用してイベントを設定します。ALTER SYSTEM ステートメントは、Oracle データベースのドキュメントには記載されていません。システム診断イベントによっては、大量のトレース情報を生成したり、競合を引き起こしたり、データベースの可用性に影響を与えることがあります。非稼動のデータベースで特定の診断イベントをテストし、Oracleサポートのガイダンスに従って、本番稼動用のデータベースにのみイベントを設定することをお勧めしています。

許可されたシステム診断イベントのリスト化

設定できるシステムイベントをリスト化するには、Amazon RDS の手順 rdsadmin.rdsadmin_util.list_allowed_system_eventsを使用します。この手順はパラメータを受け付けません。

次の例では、設定可能なすべてのシステムイベントをリスト化します。

SET SERVEROUTPUT ON EXEC rdsadmin.rdsadmin_util.list_allowed_system_events;

次の出力サンプルは、イベント番号とその説明をリスト化しています。set_system_eventこれらのイベントを設定し、unset_system_event設定解除するには、Amazon RDS の手順を使用します。

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:
注記

許可されるシステムイベントのリストは、時間の経過とともに変化する可能性があります。対象イベントの最新のリストがあることを確認するには、rdsadmin.rdsadmin_util.list_allowed_system_events を使用します。

システム診断イベントの設定

システムイベントを設定するには、Amazon RDS プロシージャ rdsadmin.rdsadmin_util.set_system_event を使用します。rdsadmin.rdsadmin_util.list_allowed_system_events の出力にリストされているイベントだけを設定できます。set_system_event 手順は、次のパラメータを受け付けます。

パラメータ名 データ型 デフォルト 必須 説明

p_event

number

はい

システムイベント番号。値は、list_allowed_system_events によって報告されるイベント番号の 1 つである必要があります。

p_level

number

はい

イベントレベル。異なるレベル値の説明については、Oracle データベースのドキュメントまたは Oracle サポートを参照してください。

手順 set_system_eventは、次の原則に従って必要なALTER SYSTEM SET EVENTS ステートメントを構築および実行します。

  • イベントタイプ (context または errorstack) は自動的に決定されます。

  • フォーム内のステートメントは、ALTER SYSTEM SET EVENTS 'event LEVEL event_level'コンテキストイベントを設定します。この表記は ALTER SYSTEM SET EVENTS 'event TRACE NAME CONTEXT FOREVER, LEVEL event_level' と同等です。

  • フォーム内のステートメントは、ALTER SYSTEM SET EVENTS 'event ERRORSTACK (event_level)'エラースタックイベントを設定します。この表記は ALTER SYSTEM SET EVENTS 'event TRACE NAME ERRORSTACK LEVEL event_level' と同等です。

次の例では、イベント 942 をレベル 3 に設定し、イベント 10442 をレベル 10 に設定します。サンプル出力が含まれています。

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.

設定されているシステム診断イベントのリスト化

現在設定されているシステムイベントをリスト化するには、Amazon RDS の手順を使用します rdsadmin.rdsadmin_util.list_set_system_events。この手順では、set_system_event によってシステムレベルで設定されたイベントだけが報告されます。

次の例は、アクティブなシステムイベントをリスト化します。

SET SERVEROUTPUT ON EXEC rdsadmin.rdsadmin_util.list_set_system_events;

次のサンプル出力は、イベントのリスト、イベントタイプ、イベントが現在設定されているレベル、およびイベントが設定された時刻を示しています。

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.

システム診断イベントの設定解除

システムイベントの設定を解除するには、Amazon RDS の手順を使用します rdsadmin.rdsadmin_util.unset_system_event。設定を解除できるのは、rdsadmin.rdsadmin_util.list_allowed_system_events の出力にリスト化されたイベントだけです 。unset_system_event 手順は、次のパラメータを受け付けます。

パラメータ名 データ型 デフォルト 必須 説明

p_event

number

はい

システムイベント番号。値は、list_allowed_system_events によって報告されるイベント番号の 1 つである必要があります。

次の例では、イベント 942 と 10442 の設定を解除します。サンプル出力が含まれています。

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.