martes, 31 de enero de 2017

Oracle TFA y support tools

Frecuentemente tengo que hacer health checks de bases de datos Oracle, y para esto es de gran utilidad ORAchk y TFA, herramientas gratuitas provistas por Oracle.
Un detalle menor que encontré recientemente es una buena excusa para presentarles ambos en este post.

Si no conocen ORAchk, vean la nota de soporte 1268927.2 "ORAchk - Health Checks for the Oracle Stack".
Tiene su tiempo en la vuelta y en cada actualización se validan más cosas. Y no solo la base de datos - OEM y ZFS también. Es parte del Database Support Tools Bundle y recientemente se incluye en la distribución del utilitario Trace File Analyzer (TFA).

TFA originalmente se usaba para simplificar la recolección de logs, pero también se mejora en cada nueva versión y tiene cosas muy buenas - prueben 'show parameter ' en un cluster grande para ir tomándole el gusto.
Vean la nota 1513912.1 "TFA with Database Support Tools Bundle" para saber todo lo que tiene.

Hay muchos post en internet explicando como usar e instalar TFA.
Pueden ver esta guía muy completa por Deiby Gómez.

La documentación es buena y pueden encontrarse algunos casos interesantes.
Por ejemplo, en una instalación de TFA con root el usuario oracle viene configurado por defecto para usar las tools y TFA. Pero eso no incluye todos los comandos, algunos van a dar error a pesar de tener permiso:


[oracle@bigdatalite ~]$ /u01/app/oracle/product/tfa/bin/tfactl access lsusers

Access Denied: Only TFA Admin can run this command

Lo que no implica que oracle no pueda usar TFA y las tools:
[oracle@bigdatalite ~]$ /u01/app/oracle/product/tfa/bin/tfactl
tfactl> toolstatus
.------------------------------------------.
|          External Support Tools          |
+-------------+--------------+-------------+
| Host        | Tool         | Status      |
+-------------+--------------+-------------+
| bigdatalite | alertsummary | DEPLOYED    |
| bigdatalite | exachk       | DEPLOYED    |
| bigdatalite | ls           | DEPLOYED    |
| bigdatalite | pstack       | DEPLOYED    |
| bigdatalite | orachk       | DEPLOYED    |
| bigdatalite | sqlt         | DEPLOYED    |
| bigdatalite | grep         | DEPLOYED    |
| bigdatalite | summary      | DEPLOYED    |
| bigdatalite | prw          | NOT RUNNING |
| bigdatalite | vi           | DEPLOYED    |
| bigdatalite | tail         | DEPLOYED    |
| bigdatalite | param        | DEPLOYED    |
| bigdatalite | dbglevel     | DEPLOYED    |
| bigdatalite | darda        | DEPLOYED    |
| bigdatalite | history      | DEPLOYED    |
| bigdatalite | oratop       | DEPLOYED    |
| bigdatalite | oswbb        | NOT RUNNING |
| bigdatalite | dbperf       | DEPLOYED    |
| bigdatalite | changes      | DEPLOYED    |
| bigdatalite | events       | DEPLOYED    |
| bigdatalite | ps           | DEPLOYED    |
| bigdatalite | srdc         | DEPLOYED    |
'-------------+--------------+-------------'
tfactl> orachk
This computer is for [S]ingle instance database or part of a [C]luster to run RAC database [S|C] [C]:^C

Para poder usar todos los comandos de TFA con el usuario Oracle, no queda otra que configurar sudo:
[oracle@bigdatalite ~]$ sudo /u01/app/oracle/product/tfa/bin/tfactl access lsusers
ncalero's password on bigdatalite:
.---------------------------------.
|   TFA Users in bigdatalite   |
+-----------+-----------+---------+
| User Name | User Type | Status  |
+-----------+-----------+---------+
| oracle    | USER      | Allowed |
'-----------+-----------+---------'
Un saludo.