Oracle Database - ORATOP

 Ola pessoal, nesse post vou comentar sobre uma ferramenta muito útil no Oracle que muitas vezes é esquecida mas que é muito poderosa quando se trata de análise de performance, saúde do ambiente e identificação de Gap em ambientes Oracle. Ela pode ser usada tanto em ambientes RAC como em Single Instances, se trata de uma interface de texto semelhante ao "top" no Linux. Estamos falando do ORATOP. Essa ferramenta nos possibilita monitorar o banco quase que em Real time.

Dessa forma vou demostrar como acessar o ORATOP, ler os dados e como filtrar os dados de acordo com a necessidade ou problema a qual queira investigar.

Caso você não tenha o ORATOP nem o TFA instalado, abaixo o deixo o link da nota onde você pode encontrar a orientação para download e instalação do TFA que contém o oratop como uma ferramenta da sua suite.

Link Oratop/TFA Download: Knowledge Article


Partindo do pressuposto de que o Oratop standalone ou o TFA já está instalado no ambiente, vamos seguir com o nosso tutorial.


1- Acessando o ORATOP:

Para usar o Oratop pelo TFA use os seguintes comandos:

oracle$ tfactl oratop -help
Usage : /opt/oracle.ahf/tfa/bin/tfactl.pl [run] oratop -database
Options:
-database Database name to run oratop
: default will be / as sysdba. Specify a different user using
{username[/password][@connect_identifier] | / }
[AS {SYSDBA|SYSOPER}]
connect_identifier: host[:port]/[service_name]
:
-d : real-time (RT) wait events, section 3 (default is Cumulative)
-k : FILE#:BLOCK#, section 4 lt is (EVENT/LATCH)
-m : MODULE/ACTION, section 4 (default is USERNAME/PROGRAM)
-s : SQL mode, section 4 (default is process mode)
-c : database service mode (default is connect string)
-f : detailed format, 132 columns (default: standard, 80 columns)
-b : batch mode (default is text-based user interface)
-n : maximum number of iterations (requires number)
-i : interval delay, requires value in seconds (default: 5s)

e.g:
/opt/oracle.ahf/tfa/bin/tfactl.pl oratop -database testdb1
/opt/oracle.ahf/tfa/bin/tfactl.pl oratop -database testdb1 -bn1

/opt/oracle.ahf/tfa/bin/tfactl.pl run oratop -database testdb1
/opt/oracle.ahf/tfa/bin/tfactl.pl run oratop -database testdb1 -bn1


Para acessar o ORATOP standalone devemos acessar o $ORACLE_HOME do ambiente, o mesmo vai estar na pasta "$ORACLE_HOME/suptools/oratop":







Caso tenha algum erro para acessar o ORATOP, exporte corretamente as variáveis de ambiente conforme abaixo:

$ export ORACLE_HOME= 
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
$ export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/suptools/oratop:$PATH


Agora, para acessar o ORATOP podemos fazer de várias maneiras, como Sqlplus, tnsames ou até mesmo com TWO_TASK.

Para mais informações sobre a função TWO_TASK, deixo o link abaixo:

TWO TASK - Oracle FAQ


Conectando via Sqlplus:






Aqui usamos a credencial SYS as SYSDBA semelhante ao login via linux no Sqlplus, sem segredo.

Conectar “ / como sysdba“ é permitido apenas para conexões bequeath. O banco de dados remoto requer a configuração do parâmetro “REMOTE_LOGIN_PASSWORDFILE” juntamente com a disponibilidade de um arquivo de senha do Oracle.



Conectando via TNS_ADMIN:

Minha entrada TNS para conectar no ambiente previamente configurada o arquivo tnsnames.ora:








Podemos passar apenas o Alias do TNS e o comando fica assim:


./oratop ORCL as sysdba


E podemos tambem passar no formado "host:port/service" e o comando fica assim : 


./oratop sys@ol8-vm1.localdomain:1521/orcl as sysdba

Será necessário digitar a senha o sys para realizar o acesso mas essa ferramenta nos ajudar a conectar o oratop em bancos remotos via TNS_NAMES oque facilita o acesso a vários ambientes de maneira mais rápida.


Conectando com TWO_TASK:


O TWO_TASK funciona como uma variável de ambiente usada para especificar o Remote Oracle Service padrão, dessa forma configurando ela, podemos usar o oratop sem passar o a informação que direciona o acesso ao banco.

Vou limpar a variável oraenv e configurar a variável TOW_TASK e realizar o acesso:













2- Lendo e entendendo o ORATOP.

Abaixo temos um resumo das funcionalidades do ORATOP:

















Modo interativo:

No modo interativo podemos navegar pelas opções realizando o login no ORATOP e digitando "h":

















Batch Mode:

No modo Batch as informações são mostradas no texto como um script executado no ambiente.















Pontos importantes quanto as informações mostradas no ORATOP:

  • Valores que aparecem em cor VERMELHA: Valores sinalizados e destacados em cor vermelha são apenas um destaque de aviso.
  • Cabeçalho "archivelog" e "er" (incidentes): Esses dois valores são estáticos, eles são adquiridos apenas uma vez no início da monitoração. Eles não são atualizados automaticamente porque o primeiro acarreta uma consulta recursiva cara e o segundo adiciona esperas ao banco de dados de diagnostico
  • Cabeçalho %DCP: A coluna “%DCP” (na seção 2) é o uso de CPU da instância do banco de dados como %CPU do host
  • Listagem de tablespaces: Uma lista de todos os tablespaces (cdb e pdb) pode ser obtida online pressionando a tecla 't'
  • Eventos de Espera (seção 3): Pressionar a tecla 'r' no teclado alternará a seção de eventos de espera entre Acumulativo e Tempo Real. Para C, as estatísticas mostradas são a acumulação desde a última reinicialização do banco de dados
  • Exiting: Para encerrar o programa de forma adequada, o usuário pode pressionar as teclas do teclado: "q" ou "Q", ou a tecla Esc. Um Ctrl+c para abortar forçosamente. Em todos os casos, o logout adequado do banco de dados é realizado
  • Usuário sem privilégios: Um erro típico encontrado por um usuário não privilegiado ao se conectar ao banco de dados usando a ferramenta é “ORA-00942: tabela ou visão não existe”. Para permitir que o usuário não privilegiado use o oratop, o administrador do sistema com função de DBA pode conceder a seguinte permissão: “GRANT SELECT ANY DICTIONARY TO ;”
  • Instância de banco de dados Standby ou montada: Instância Standby - pressione a tecla “t” para “INFORMAÇÕES DO TABLESPACE” não retornará nenhuma linha. Motivo: BUG 27841703. Instância MONTADA – Seção 2 mostrará inst_id destacado em vermelho. Motivo: As estatísticas necessárias não estão disponíveis até que a instância seja aberta.


Opções relevantes do ORATOP:


Opção "f": Muda o display dos dados entre os modos Standard (compacto) e Detailed Format :

Standard : 



Detailed: 







Opção "x" - Mostra o plano de execução da consulta a qual se deseja analisar, e necessário informar o SQL_ID : 


























Opção "t": Mostra as informações de tablesapces:

















Opção "i": Muda o intervalo de refresh dos dados, em segundos. Ao digitar "i" no teclado, será solicitado o tempo desejado para o refresh, no exemplo abaixo o refresh esta sendo feito a cada 20 segundos.











Voce também pode iniciar o ORATOP já com um valor de intervalo novo usando o comandos de inicializacao com a flag "i":


./oratop -i 10 / as sysdba


Opção "p": Mosta detalhes dos processos no banco de dados:










Opção "m":  Alternar os campos de sessão [USERNAME/PROGRAM] & MODULE/ACTION











Opção "r": Altera os dados do gráfico entre Cumulativo e Tempo Real:


Cumulativo:











Tempo Real:











Esses são os comandos que mais uso no oratop para analisar ambientes diversos mas com a opção "Help" você pode obter a lista completa de comandos conforme evidenciado acima.


Conclusão:

  • Como configurar o ORATOP standalone
  • Como realizar o login no ORATOP standalone
  • Principais comandos do ORATOP 


Material de Apoio:


Por hoje é isso pessoal, espero que esse conteúdo ajude de alguma forma e caso tenham alguma dúvida podem deixar aqui nos comentários ou me mandar via E-mail com Título da postagem, meu E-mail para envio de dúvidas e sugestões de novas postagens: pedrohvido@gmail.com.


Vejo vocês no próximo post!!

Comentários

Postagens mais visitadas deste blog

Instalando Oracle Database 19c em um Oracle Linux 8.8 no Virtual Box - PARTE 2

Temporary Tablespace : Identificando consultas consumindo uma Tablespace Temporária

SQL - Calculando crescimento do Banco de dados Oracle