Para configurar e anular a configuração de eventos de diagnóstico no nível da sessão, você pode usar a instrução Oracle SQL ALTER
SESSION SET EVENTS
. No entanto, para definir eventos no nível do sistema, você não pode usar o Oracle SQL. Em vez disso, use os procedimentos de evento do sistema no pacote rdsadmin.rdsadmin_util
. Os procedimentos de eventos do sistema estão disponíveis nas seguintes versões do mecanismo:
-
Todas as versões do Oracle Database 21c
-
19.0.0.0.ru-2020-10.rur-2020-10.r1 e versões posteriores do Oracle Database 19c
Consulte mais informações em Version 19.0.0.0.ru-2020-10.rur-2020-10.r1 em Notas de lançamento do Amazon RDS para Oracle.
Importante
Internamente, o pacote rdsadmin.rdsadmin_util
define eventos usando a instrução ALTER SYSTEM SET EVENTS
. Essa instrução ALTER
SYSTEM
não está incluída na documentação do Oracle Database. Alguns eventos de diagnóstico do sistema podem gerar grandes quantidades de informações de monitoramento, causar contenção ou afetar a disponibilidade do banco de dados. Recomendamos que você teste eventos de diagnóstico específicos em seu banco de dados de não produção e defina apenas eventos em seu banco de dados de produção sob orientação do Oracle Support.
Listar eventos de diagnóstico do sistema permitidos
Para listar os eventos do sistema que você pode definir, use o procedimento rdsadmin.rdsadmin_util.list_allowed_system_events
do Amazon RDS. Este procedimento não aceita parâmetros.
O exemplo a seguir lista todos os eventos do sistema que você pode definir.
SET SERVEROUTPUT ON
EXEC rdsadmin.rdsadmin_util.list_allowed_system_events;
A saída de exemplo a seguir lista os números de eventos e suas descrições. Use os procedimentos set_system_event
do Amazon RDS para definir esses eventos e unset_system_event
para desconfigurá-los.
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:
nota
A lista dos eventos do sistema permitidos pode mudar ao longo do tempo. Para se certificar de que você tem a lista mais recente de eventos qualificados, use rdsadmin.rdsadmin_util.list_allowed_system_events
.
Definir eventos de diagnóstico do sistema
Para definir um evento do sistema, use o procedimento rdsadmin.rdsadmin_util.set_system_event
do Amazon RDS. Você só pode definir eventos listados na saída do rdsadmin.rdsadmin_util.list_allowed_system_events
. O procedimento set_system_event
tem os parâmetros a seguir.
Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
número |
— |
Sim |
O número do evento do sistema. O valor deve ser um dos números de eventos relatados por |
|
número |
— |
Sim |
O nível do evento. Consulte a documentação do Oracle Database ou o Oracle Support para obter descrições de diferentes valores de nível. |
O procedimento set_system_event
constrói e executa as instruções ALTER SYSTEM SET EVENTS
necessárias de acordo com os seguintes princípios:
-
O tipo de evento (
context
ouerrorstack
) é determinado automaticamente. -
Uma instrução no formulário
ALTER SYSTEM SET EVENTS '
define os eventos de contexto. Esta notação é equivalente aevent
LEVELevent_level
'ALTER SYSTEM SET EVENTS '
.event
TRACE NAME CONTEXT FOREVER, LEVELevent_level
' -
Uma instrução no formulário
ALTER SYSTEM SET EVENTS '
define os eventos de pilha de erros. Esta notação é equivalente aevent
ERRORSTACK (event_level
)'ALTER SYSTEM SET EVENTS '
.event
TRACE NAME ERRORSTACK LEVELevent_level
'
O exemplo a seguir define o evento 942 no nível 3 e o evento 10442 no nível 10. A amostra de saída está incluída.
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.
Listar eventos de diagnóstico do sistema definidos
Para listar os eventos do sistema que estão definidos no momento, use o procedimento rdsadmin.rdsadmin_util.list_set_system_events
do Amazon RDS. Este procedimento relata apenas os eventos definidos no nível do sistema por set_system_event
.
O exemplo a seguir lista os eventos ativos do sistema.
SET SERVEROUTPUT ON
EXEC rdsadmin.rdsadmin_util.list_set_system_events;
A saída de exemplo a seguir mostra a lista de eventos, o tipo de evento, o nível no qual os eventos estão definidos no momento e a hora em que o evento foi definido.
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.
Desconfigurar eventos de diagnóstico do sistema
Para desconfigurar um evento do sistema, use o procedimento rdsadmin.rdsadmin_util.unset_system_event
do Amazon RDS. Você só pode desconfigurar eventos listados na saída do rdsadmin.rdsadmin_util.list_allowed_system_events
. O procedimento unset_system_event
aceita o seguinte parâmetro.
Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
número |
— |
Sim |
O número do evento do sistema. O valor deve ser um dos números de eventos relatados por |
O exemplo a seguir desconfigura os eventos 942 e 10442. A amostra de saída está incluída.
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.