Recopilando información de diagnostico mediante Oracle Trace File Analyzer (TFA)
Por Y V Ravi Kumar , Mariami Kupatadze , Rodrigo Mufalani , Julio César Ayapán
Publicado en Octubre 2019
Revisado por Francisco Riccio
Introducción:
Oracle introdujo TFA (Trace File Analyzer) en Oracle Database 11g Release 2 (11.2.0.4). TFA nos ayuda a realizar un monitoreo de salud en tiempo real, detección y diagnostico de fallas a través de una interfaz que consolidara de forma segura todos los datos de diagnostico dentro de un ambiente Oracle.
Como administradores de bases de datos debemos elegir la herramienta correcta en el momento adecuado y TFA es una de ellas. Mediante ella podemos recolectar información de diagnostico para un clúster completo incluso desde un nodo mediante un solo comando. Los archivos generados pueden ser almacenados en un servidor central o local para un análisis mas extenso. La herramienta también permite ajustar la colección de datos enfocándose en ciertos componentes o periodos de tiempo.
TFA gano popularidad rápidamente y ahora es una de las herramientas mas solicitadas por Oracle Support durante el análisis de problemas. Esta disponible para descarga de los usuarios Oracle en “TFA with Database Support Tools Bundle (Doc ID 1513912.1)”
El impacto en el sistema con el uso de la herramienta es significativamente pequeño. Sin embargo puede consumir CPU considerable cuando:
- Se realiza un inventario de Archivos de diagnostico
- Se realizan colecciones de archivos de diagnostico (diags)
Arquitectura de TFA:
Cuando TFA se encuentra corriendo como un deamon, este monitorea archivos de log en busca de problemas importantes. Si se produce un error interno o si se detecta una evicción de nodo, TFA es capaz de:
- Recolectar un paquete de archivos de diagnostico automáticamente.
- Enviar un email de notificación a los DBA’s si se encuentra configurado.
- TFA puede enviar un email cuando son detectados problemas importantes.
- Para enviar una notificación por cualquier problema detectado utilizamos:
tfactl set notificationAddress=ravikumar.yenugula@infolob.com
- Para enviar una notificación para algún ORACLE_HOME especifico incluyendo el usuario de sistema operativo dueño de la instalación utilizamos:
tfactl set notificationAddress=oracle: mariami.kupatadze@flashgrid.com
- Cargar automáticamente archivos de diagnostico (diags) hacia Oracle Support si esta configurado.
Debemos tener en cuenta que, si tenemos una cantidad pequeña de recursos en nuestro sistema operativo y existen muchos errores importantes en nuestro entorno Oracle, podremos notar que el proceso TFA se encontrara en los procesos TOP de consumo de CPU o memoria debido a que durante la detección de estos problemas se ejecutara una recolección automática de archivos de diagnostico. En este caso, antes de incrementar recursos en nuestro sistema operativo, es preferible deshabilitar la característica Automatic Diagnostic Collection dentro de la configuración de TFA. El comando correspondiente será descrito en la sección “Comandos de interfaz”.
Beneficios de TFA:
- Provee una interfaz para todos los diagnósticos necesarios a nivel de clúster.
- Recolecta data a nivel de clúster y la consolida en un solo lugar.
- Recolecta todos los datos de diagnostico relevante al momento en el que el problema/incidente sucedió.
- Reduce el tiempo necesario para obtener datos de diagnostico a nivel de clúster.
Instalar o Actualizar TFA:
La herramienta de instalación instalara o actualizara TFA dependiendo de si ya encuentra dentro de nuestro sistema operativo o no. Los pasos se describen a continuación:
- Descarga TFA desde Doc ID 1513912.1
- Configura autenticación ssh paswordless entre todos los nodos del clúster para el usuario root. Si este paso no se realiza entonces será necesario ejecutar la instalación en cada uno de los nodos manualmente.
- Coloca los archivos descargados sobe el nodo 1 del clúster y descomprímelos:
[root@rac1 ~]# cd /sw [root@rac1 sw]# unzip TFA-LINUX_v19.2.1 Archive: TFA-LINUX_v19.2.1 inflating: README.txt inflating: installTFA-LINUX
- Ejecuta la instalación o actualización de TFA:
[root@rac1 sw]# ./installTFA-LINUX
- Cuando la instalación finalice, verifica el estado de TFA:
[root@rac1 sw]# tfactl status
Comandos de interfaz
Imprimir la configuración actual de todos los nodos del clúster:
[root@rac1 ~]# tfactl print config
Como puedes ver en el resultado obtenido, la característica Automatic Diagnostic Collection tiene un valor TRUE por default. Para cambiar esta configuración, ejecuta el siguiente comando en cada nodo dentro del clúster.
# tfactl set autodiagcollect=OFF
nodo rac2:
Ejecutando una colección de diagnostico bajo demanda
Para recolectar archivos de diagnostico bajo demanda, necesitaremos ejecutar el comando tfactl diagcollect. Por default, TFA recolectara datos de diagnostico de las ultimas 12 horas.
# tfactl diagcollect
Para un listado de nombres de componentes y parámetros del comando diagcollect, ejecuta:
# tfactl diagcollect -help
Usage: /u01/app/12.2.0/grid/bin/tfactl diagcollect [ [component_name1] [component_name2] ... [component_nameN] | [-srdc <srdc_profile>] | [-defips]] [-sr <SR#>] [-node <all|local|n1,n2,..>] [-tag <tagname>] [-z <filename>] [-last <n><h|d>| -from <time> -to <time> | -for <time>] [-nocopy] [-notrim] [-silent] [-nocores][-collectalldirs][-collectdir <dir1,dir2..>][-examples]
components:-ips|-database|-asm|-crsclient|-dbclient|-dbwlm|-tns|-rhp|-procinfo|-afd|-crs| -cha|-wls|-emagent|-oms|-ocm|-emplugins|-em|-acfs|-install|-cfgtools|-os|-ashhtml|-ashtext| -awrhtml|-awrtext
Para una lista completa de opciones de tfactl, ejecuta:
# tfactl -help
Usage: /u01/app/12.2.0/grid/bin/tfactl <command> [options]
commands:diagcollect|collection|analyze|ips|run|start|stop|enable|disable|status|print| access|purge|directory|host|receiver|set|toolstatus|uninstall|diagnosetfa|syncnodes| setupmos|upload|availability|rest|events|search|changes|isa|blackout|rediscover
For detailed help on each command use:
/u01/app/12.2.0/grid/bin/tfactl <command> -help
Directorios clave de TFA
- tfa/bin
Contiene la interfaz de línea de comandos tfactl (tfactl también se encuentra en el directorio GRID_HOME/bin si Oracle Clusterware esta instalado). - tfa/repository
Área donde Oracle TFA almacena las colecciones. - tfa/<node>/tfa_home/database
Contiene la base de datos Berkeley que almacena datos acerca del sistema. - tfa/<node>/tfa_home/diag
Herramientas para troubleshooting propio de TFA. - tfa/<node>/tfa_home/diagnostics_to_collect
Se pueden colocar archivos aquí y serán incluidos en la siguiente colección de diagnostico, después de esto deben ser eliminados. - tfa/<node>/tfa_home/log
Bitácoras sobre las operaciones realizadas por Oracle TFA. - tfa/<node>/tfa_home/resources
Contiene otros recursos importantes para el entorno de TFA. - tfa/<node>/tfa_home/output
Contiene metadato extra sobre todo el ambiente.
Service Request Data Collection (SRDC)
- Para ciertos tipos de problemas Oracle Support nos solicitara ejecutar un Service Request Data Collection (SRDC).
- Anteriormente este procedimiento involucraba:
- Leer y comprender diferentes documentos de soporte.
- Recolectar salidas y bitácoras de diferentes tareas.
- Generar muchos datos de diagnostico diferentes.
- Empaquetar y cargar todo lo anterior a Oracle Support.
- Con Oracle TFA solo hace falta ejecutar el siguiente comando:
tfactl diagcollect -srdc <srdc_type>
Ejemplo-1: colecccion relacionada al error ORA4031:tfactl diagcollect –srdc ora4031
Resultado:
- Paquete IPS
- Listado de parches aplicados
- Reporte AWR
- Información de memoria
- RDA
Ejemplo-2: Desempeño de la base de datostfactl diagcollect –srdc dbperf
Resultado:
- Reporte ADDM
- Reporte AWR para un periodo durante el problema y sin el problema
- Reporte AWR para periodo de comparación
- Reporte ASH para un periodo durante el problema y sin el problema
- Reporte de OS Watcher
- Paquete IPS (si ocurrieron errores durante el periodo del problema)
- ORAchk (chequeos relacionados a rendimiento)
Depurado automático de logs de base de datos
- TFA puede depurar logs de bases de datos automáticamente
- Deshabilitado por default
- Excepto sobre los logs del Domain Service Cluster (DSC), donde esta habilitado por default.
- Para habilitar o deshabilitar la depuración automática de logs:
tfactl set manageLogsAutoPurge=<ON|OFF>
- Para eliminar logs mas viejos de 30 días:
tfactl set manageLogsAutoPurgePolicyAge=<n><d|h>
La depuración automática se ejecuta por default cada 60 minutos, para modificar el periodo podemos usar:
tfactl set manageLogsAutoPurgeInterval=<minutes>
Depurado manual de logs de base de datos
- TFA permite manipular logs de ADR y archivos de trace
- Muestra el espacio total utilizado por cada Diagnostic Dest (ubicación de diagnostico)
- Depura los siguientes tipos de archivo basado en la ubicación de diagnostico o en la fecha de emision:
- "ALERT“, "INCIDENT“, "TRACE“, "CDUMP“, "HM“, "UTSCDMP“, "LOG“
Opciones de depuración manual
tfactl managelogs <options>
♦ tfactl managelogs –show usage
♦ tfactl managelogs –show variation –older <n><m|h|d>
♦ tfactl managelogs –purge –older n<m|h|d> -dryrun
♦ tfactl managelogs –purge –older n<m|h|d>
Otras opciones de configuración
- TFA monitoreara el uso de disco y generará copias (snapshots) en:
tfa/repository/suptools/<node>/managelogs/usage_snapshot/ - Las copias (snapshots) ocurrirán cada 60 minutos:
tfactl set diskUsageMonInterval=<minutes> - El monitoreo de utilización de disco esta habilitado por default:
tfactl set diskUsageMon=<ON|OFF> - Para desplegar detalles sobre incidentes registrados en ADR:
tfactl ips show incidents - Para desplegar detalles de problemas registrados en ADR:
tfactl ips show problems - Para desplegar detalle de paquetes almacenados en ADR:
tfactl ips show package
Ciclo de vida de TFA
- Iniciar el proceso (deamon): tfactl start
- Detener el proceso (deamon): tfactl stop
- Habilitar el inicio automático del proceso (deamon): tfactl enable
- Deshabilitar el inicio automático del proceso (deamon): tfactl disable
TFA – Administración del repositorio y recolecciones
- El repositorio se cerrara y las colecciones se detendrán si cualquiera de los siguientes ocurren:
- El espacio libre en el TFA_HOME es menos de 100 MB
- También se detendrá el indexado
- El espacio libre en el ORACLE_BASE es menos de 100 MB
- También se detendrá el indexado
- El espacio libre en el repositorio es menos de 1 GB
- El tamaño actual del repositorio es mayor que el tamaño máximo del repositorio
- El deamon de TFA depurara el repositorio cuando ocurra alguna de las siguientes:
- El espacio libre cae por debajo de 1 GB
- Antes de cerrar el repositorio
TFA – Comandos de repositorio
- Muestra el estatus del repositorio de TFA tfactl print repository
- Muestra estadísticas acerca de colecciones tfactl print collections
- Establece el tamaño máximo del repositorio tfactl set reposizeMB=<value>
- Cambia la ubicación del repositorio tfactl set repositorydir=<dir>
- Establece la edad mínima de las colecciones tfactl set minagetopurge=<number of hours>
- Activa o desactiva la depuración automática tfactl set autopurge=<ON|OFF>
- Depura todas las colecciones por condiciones tfactl purge -older x[h|d] [-force]
Modificando las opciones de seguridad SSL
- TFA utiliza SSL/TLS sobre los puertos 5000 a 5005
- Para cambiar estos puertos debemos:
- Detener TFA en todos los nodos:
tfactl print hosts
- Editar el archivo tfa_home/usableports.txt y reemplazamos los puertos que queremos utilizar.
- Replicamos el mismo cambio sobre todos los archivos usableports.txt de todos los nodos del clúster.
- Removemos el archivo tfa_home/internal/port.txt de todos los nodos del clúster.
- Iniciamos TFA en todos los nodos:
tfactl start
- Detener TFA en todos los nodos:
Cambiar que directorios son recolectados
- Mostrar los directorios actual de colecciones tfactl print directories <options>
- Agregar un nuevo directorio tfactl directory add <dir> <options>
- Cambiar la manera en que se recopila un directorio tfactl directory modify <dir> <options>
- Detener recopilaciones de un directorio tfactl directory remove <dir> <options>
Reduciendo el tamaño de las colecciones
- Mostrar la configuración actual:
tfactl print config
- Modificar un parámetro de configuración:
tfactl set <parameter>=<value>
- trimfiles - ON
- maxcorefilesize – 20 MB
- maxcorecollectionsize – 200 MB
TFA – Agregando o eliminando un host
- Mostrar lo hosts conocidos por TFA tfactl print hosts
- Agregar un nuevo host a la configuración por primera vez tfactl syncnodes
- Agregar un nuevo host donde los certificados ya ha sido sincronizados tfactl host add <host>
- Eliminar un host tfactl host remove <host>
TFA – Plataformas soportadas y versiones
- Todos los sistemas operativos principales son soportados
- Linux (OEL, RedHat, SUSE, Itanium & zLinux)
- Oracle Solaris (SPARC & x86-64)
- IBM AIX
- HPUX (Itanium & PA-RISC)
- Windows (64bit)
- Todas las bases de datos Oracle y Grid Infrastructure posteriores a 10.2.0 son soportados
TFA – Instalación sobre Linux
- Descarga TFA desde 1513912.1
- Copia el archivo descargado sobre la maquina requerida y descomprímelo
- Ejecuta el siguiente comando:
- ./installTFA<platform>
- Se debe instalar sobre todos los nodos
- El software auto descubre software Oracle y Servidores Oracle Exadata
- Inicia el monitoreo de problemas y colecciones automáticas.
TFA – Instalación sobre Windows
- Descarga TFA desde 1513912.1
- Copia el archivo descargado sobre la maquina requerida y descomprímelo
- Abre una ventana de comandos como Administrador y ejecuta el siguiente comando:
- install.bat –perlhome <perl_home>
- Confirma si la instalación es para un nodo local o instalación remota hacia otro nodo
- El software auto descubre software Oracle
- Inicia el monitoreo de problemas y colecciones automáticas.
Conclusión: Considere siempre activar las colecciones de datos de TFA manualmente o durante horas que no sean pico en su ambiente de trabajo. TFA mostrara información de estado en tiempo real a nivel de clúster.
No hay comentarios:
Publicar un comentario