Monitorando Oracle

Objetivo

Descrever os procedimentos necessários para a verificação de diversos parâmetros em um banco de dados Oracle

Público-alvo

Destinado aos administradores do OpMon e as equipes de TI, que necessitam:

  • Saber o que está ocorrendo com a instância Oracle neste momento, ou o que ocorreu em qualquer outro momento;
  • Encontrar as queries responsáveis pelo mais recente pico de atividades nos servidor e degradação do tempo de resposta;
  • Para obter resultados sobre diversas horas ou dias de monitoramento, sem sacrificar uma determinada definição do tempo, podendo identificar exatamente os momentos em que ocorrem/ocorreram picos de utilização, tempo de resposta elevado ou degradações de performance;
  • Para monitorar quais locks estão ocorrendo em uma base de produção, pois como os locks muitas vezes são esporádicos, você não tem como ficar esperando o lock acontecer.

Requisitos

Para monitorar o Oracle é necessário:

  • Criação de usuário e senha na Oracle;
  • Aplicar GRANTS (create session, select any dictionary a select any table);
  • Arquivos tnsnames.ora com as configurações para conexão com as databases;
  • Caso seja utilizado, também é necessário o arquivo sqlnet.ora.

 1) Criando um usuário

Para o monitoramento dos elementos disponíveis  no template Oracle, é necessário criar um usuário e senha na Oracle, e aplicar os GRANTS de acordo com os comandos abaixo:

CREATE user opmon IDENTIFIED BY oradbmon;
GRANT CREATE session TO opmon; 
GRANT SELECT any dictionary TO opmon;

Caso seja necessário o desenvolvimento de consultas específicas no sistema, é necessário o GRANT abaixo:

GRANT SELECT any table TO opmon

2) Ativando o Oracle no OpMon

Agora é necessário criar a seguinte árvore de diretórios e o arquivo sqlnet.ora, lembrando que os comandos devem ser executados com o usuário root, conforme abaixo:

[root@localhost ~] mkdir -p /usr/lib/oracle/11.1/client/network/admin

Acesse o diretório criado:

[root@localhost ~] cd /usr/lib/oracle/11.1/client/network/admin

Verifique se há o seguinte arquivo criado conforme abaixo:

[root@localhost ~]# cat sqlnet.ora 
# SQLNET.ORA Network Configuration File: /fsora01/app/oracle/products/920/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

#NAMES.DEFAULT_DOMAIN = localhost.local

#SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES)

Caso o arquivo sqlnet.ora não exista, é necessário criá-lo conforme acima.

Em seguida, copie o arquivo tnsnames.ora que se encontra no diretório /usr/lib/oracle/tnsnames.ora para o diretório /usr/lib/oracle/11.1/client/network/admin, conforme exemplificado abaixo:

[root@opmon ~]# cp /usr/lib/oracle/tnsnames.ora /usr/lib/oracle/11.1/client/network/admin

3) Configurando o tnsnames.ora

Antes de continuar verifique se a cópia do tnsnames.ora foi efetuada conforme descrita acima. Caso o OpMon não tenha um DNS interno da rede, não utilize nomes (server-ora.com.br) no arquivo de tnsnames.ora.

Neste arquivo você irá definir as instâncias de conexões ao banco de dados Oracle. Para isso, basta editar o arquivo e adicionar a nova conexão, a sua estrutura é semelhante à apresentada abaixo:

= NOME DA INSTANCIA 
(DESCRIPTION = 
(ADDRESS_LIST = 
(ADDRESS = (PROTOCOL = TCP) (HOST = IP DO HOST ) (PORT = 1521)
) 
 ) 
 (CONNECT_DATA = 
  (SERVICE_NAME = ) 
 ) 
)

Para testar se o acesso esta funcional basta utilizar um cliente oracle em modo texto disponível no OpMon, conforme segue:

[root@localhost ~]$ sqlplus USUARIO/SENHA@INSTANCIA

Com isso você terá um retorno semelhante a este:

[root@localhost ~]# sqlplus USUARIO/SENHA@INSTANCIA 
SQL*PLUS: Release 11.1.0.7.0 - Production on Wed Aug 3 15:12:41 2011 
Copyright (c) 1982, 2008, Oracle. All rights reserved. 
Connected to: 
Oracle Database 10g Release 10.2.0.4.0 - 64bit Production 
SQL>

4) Utilizando o plugin check_oracle_health

Segue abaixo um exemplo de checagem com uma query onde retorna um resultado simples numérico:

[root@localhost ~]$ /usr/local/opmon/libexec/check_oracle_health --connect= --user= --password= --mode=sql --name2="Usuarios conectados" --name='SELECT COUNT (*) FROM v$session WHERE type = 'USER' --warning 90 --critical 95
 OK - usuarios connectados:0 | 'usuarios'=0;90;95

Para saber mais como funciona o plugin, basta acessar aqui.

5) Utilizando Template Oracle Health

Para saber como configurar um template no OpMon, basta acessar aqui.

Para saber quais serviços estão disponíveis através do Template, basta acessar aqui.

 

Updated on 31/08/2021

Esse artigo foi útil para você?

Ficou com alguma dúvida?

Perguntas & Respostas

Participe da nossa comunidade e tire dúvidas ou compartilhe respostas e ideias.

Participar

Professional Support

Não encontrou a resposta que procura? Não se preocupe, estamos aqui para ajudar!

Abrir chamado

Treinamento Online

Através da plataforma Udemy, você encontra todos os treinamentos das nossas soluções.

Inscreva-se