Artigo Diretório
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:
As 5 principais informações são as seguintes:
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.
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 logonDC_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.