Eu tenho um banco de dados Oracle instalado no sistema Unix. Nesse banco de dados de instância única, tenho muitas sessões abertas de um pool de aplicativos (o aplicativo é instalado em outro servidor). Todas as sessões são abertas com o mesmo nome de usuário. Como as sessões podem ser fechadas pelo pool (realmente, pode ser), não consigo capturar o ID da sessão e - para cada - habilitar a funcionalidade de rastreamento de consulta. O aplicativo é um código-fonte fechado (e proprietário), então não posso (e não quero) fazer engenharia reversa dele.
Agora, preciso capturar todas as consultas que esse usuário executa. Idealmente, quero obter um arquivo por sessão de usuário (mas será perfeito se eu obtiver um arquivo com todas as consultas). Meu objetivo real é obter consultas, mas session_id e/ou timestamp da consulta podem ser bem-vindos.
Nota importante: como meu banco de dados é uma Standard Edition não tenho acesso a nenhum pacote avançado Oracle como "Oracle Tuning Pack", "Oracle Diagnostic Pack" ou assim por diante... objetos de dicionário de banco de dados (como um sysdba poderia ser).
Informações da plataforma:
- Unix Red Hat 6.x
- Edição Oracle Database 11g Standard
- apenas uma instância de banco de dados
- número de sessões abertas entre 150 e 250
Obrigado por suas ideias
Thomas
De acordo com meu conhecimento, não há uma maneira direta de atingir esse objetivo. No entanto, tentei compor os seguintes passos para cumprir os requisitos.
Você pode habilitar o rastreamento para todas as sessões usando a instrução a seguir.
Para desabilitar esse rastreamento, use a instrução a seguir.
Passos:
USER_DUMP_DEST
para encontrar arquivos de rastreamento.Agora, você tem vários arquivos de rastreamento espalhados em seu destino de despejo de usuário. Para combinar e criar um único arquivo de rastreamento, você pode usar
trcsess
o utilitário, que permite que informações de rastreamento de vários arquivos de rastreamento sejam identificadas e consolidadas em um único arquivo de rastreamento. Você pode consolidar esses arquivos de rastreamento com base nos critérios a seguir. Escolha o que é comum para todas essas sessões.Nesse caso, vou usar o nome do serviço.
Vamos usar o
trcsess
utilitário.Criamos um único arquivo de rastreamento e podemos usar
tkprof
o utilitário para criar uma saída formatada desse arquivo de rastreamento.Observação: se você estiver usando o Enterprise Edition, poderá usar a auditoria refinada, que não está disponível no Standard Edition
Referências: