Configurar e anular configuração de eventos de diagnóstico do sistema
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.