Trava: objetos de cache de linha para tratamento de exceção do banco de dados Oracle

Descrição do Problema

Colegas relataram que existe um projeto Oracle que precisa de suporte. De acordo com a descrição, a partir de 13 de novembro, o banco de dados terá sérios problemas de desempenho das 9h00 às 11h00 O relatório de desempenho é o seguinte:
Insira a descrição da imagem aqui
As 5 principais informações são as seguintes:
Insira a descrição da imagem aqui

analise de problemas

Desde o momento em que recebi as informações acima, geralmente me senti o mesmo que o Caso que encontrei antes. Esta versão do banco de dados é a versão 11.2.0.4 e não há patch.

[Nov 25, 2020 12:48:05 PM]   OPatch invoked as follows: 'lsinventory '
[Nov 25, 2020 12:48:05 PM]   OUI-67077:
                             Oracle Home       : D:\APL\oracle\product\11.2.0\dbhome_2
                             Central Inventory : C:\Program Files\Oracle\Inventory
                                from           : n/a
                             OPatch version    : 11.2.0.3.4
                             OUI version       : 11.2.0.4.0
                             OUI location      : D:\APL\oracle\product\11.2.0\dbhome_2\oui
                             Log file location : D:\APL\oracle\product\11.2.0\dbhome_2\cfgtoollogs\opatch\opatch2020-11-25_12-48-04PM_1.log
[Nov 25, 2020 12:48:05 PM]   Patch history file: D:\APL\oracle\product\11.2.0\dbhome_2\cfgtoollogs\opatch\opatch_history.txt
[Nov 25, 2020 12:48:05 PM]   Starting LsInventorySession at Wed Nov 25 12:48:05 CST 2020
[Nov 25, 2020 12:48:06 PM]   Lsinventory Output file location : D:\APL\oracle\product\11.2.0\dbhome_2\cfgtoollogs\opatch\lsinv\lsinventory2020-11-25_12-48-04PM.txt
[Nov 25, 2020 12:48:06 PM]   --------------------------------------------------------------------------------
[Nov 25, 2020 12:48:06 PM]   Installed Top-level Products (1):
[Nov 25, 2020 12:48:06 PM]   Oracle Database 11g                                                  11.2.0.4.0
[Nov 25, 2020 12:48:06 PM]   There are 1 products installed in this Oracle Home.
[Nov 25, 2020 12:48:06 PM]   There are no Interim patches installed in this Oracle Home.
[Nov 25, 2020 12:48:06 PM]   --------------------------------------------------------------------------------
[Nov 25, 2020 12:48:06 PM]   Finishing LsInventorySession at Wed Nov 25 12:48:06 CST 2020

O principal problema pode ser obtido a partir do STATSPACK é [latch: row cache objects] .Ao analisar o log, foi descoberto que tanto dc_users quanto dc_tablespaces estão em um nível relativamente alto.
Insira a descrição da imagem aqui

DC_USERS
- Isso pode ocorrer se uma sessão emitir um GRANT para um usuário e esse usuário estiver em processo de logon no banco de dados.
- Chamadas excessivas para dc_users podem ser um sintoma de “definir função XXXX”
- Você pode verificar a presença de tentativas massivas de login, mesmo as que falharam, analisando listener.log (use OEM 12c-> Todas as Métricas ou verificando o banco de dados AUDIT se disponível ou usando ferramentas próprias).
- Bug 7715339 - Falhas de logon causam esperas de "bloqueio de cache de linha" - Permitir desabilitação de atraso de logon

DC_TABLESPACES
Provavelmente a causa mais provável é a alocação de novas extensões. Se os tamanhos das extensões forem definidos como baixos, o aplicativo pode solicitar constantemente novas extensões e causar contenção. Você tem objetos com tamanhos de extensão pequenos que estão crescendo rapidamente? (Você pode identificá-los procurando por objetos com um grande número de extensões). Verifique o rastreamento para atividade de inserção / atualização, verifique os objetos inseridos para o número de extensões.

Desejava originalmente coletar mais informações para análise

# 查询latch: row cache objects事件相关SQL语句
SELECT A.SQL_ID, COUNT(1)
  FROM V$ACTIVE_SESSION_HISTORY A, V$EVENT_NAME B
 WHERE A.SAMPLE_TIME BETWEEN
       TO_DATE('2020-11-14 09:00:00', 'YYYY-MM-DD HH24:MI:SS') AND
       TO_DATE('2020-11-14 11:00:00', 'YYYY-MM-DD HH24:MI:SS')
   AND A.EVENT_ID = B.EVENT_ID
   AND B.NAME = 'latch: row cache objects'
 GROUP BY A.SQL_ID
 ORDER BY 2 DESC;

# 查询SQL语句的执行计划,查看是否都与hash join有关系
SELECT * FROM TABLE(dbms_xplan.display_cursor('<SQL_ID>', NULL, 'advanced'));

problema resolvido

Casos encontrados no passado podem ser resolvidos da seguinte forma:
Desempenho lento com esperas altas para 'bloqueio de cache de linha' Com possível suspensão do banco de dados (ID do documento 2189126.1)
Bug 13902396-Hash joins causam travamento de "objetos de cache de linha" e travamento de "pool compartilhado" Obtém (correção desativada) (Doc ID 13902396.8)

Na plataforma Linux, você pode aplicar o patch 13902396 primeiro e, em seguida, definir o seguinte evento:

 SELECT
    name,
    decode (bitmapped, 0, least (DFLincr, dflinit), bitmapped) -1 "Level"
FROM
    ts$;

event='45053 trace name context forever, level 127'

Desta vez o ambiente é Windows, parece que não existe tal patch. Pode ser necessário atualizar o ambiente para Oracle 12c ou superior para resolver este problema.

Acho que você gosta

Origin blog.csdn.net/weixin_38623994/article/details/110137588
Recomendado
Clasificación