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.