monitoreo en bd

42
El monitoreo de bases de datos es una necesidad prioritaria en un entorno que las usa. Debe tomarse en cuenta que las bases de datos tienen una relación profunda con el rendimiento general de aplicaciones y servidores, por lo que la recolección y análisis de datos estadísticos del funcionamiento de las bases de datos y su relación con los recursos disponibles (CPU, memoria, etc.) deben ser claros y fáciles a los ojos del administrador del entorno. Desafortunadamente, es muy común que estos datos sean muy difíciles de manejar con las herramientas estándar de las bases de datos. Es decir, sería complicado configurar todas las herramientas disponibles para monitorear una base de datos de tal manera que se pueda ver fácilmente el uso de recursos por parte de la misma, aislando las demás funciones de un servidor. Otro problema puede presentarse al utilizar máquinas virtuales (lo cual es cada vez más común hoy en día), y monitorear éstas máquinas con sus matices específicos. Para solucionar estos problemas y otros, el mercado ofrece una cantidad considerable de herramientas, cada una con sus características particulares. En esta ocasión revisaré una aplicación que se destaca por su flexibilidad, facilidad de uso y un enfoque en máquinas virtuales novedoso. Estoy hablando de IgniteFree. Mantenimiento de la base de datos Una tarea muy importante en la administración de proyectos, es realizar un afinamiento periódico a la base de datos que sirve de repositorio de procesos de Bizagi. Tenga en cuenta que cada motor de base de datos (SQL Server u Oracle) ofrece las herramientas necesarias para realizar monitoreo preventivo, diagnósticos (herramientas de perfilamiento), o acciones de afinamiento sobre la base de datos. Ante esto, recomendamos al DBA lo siguiente: 1. Monitorear los logs de la base de datos. 2. Utilizar las herramientas especializadas de las bases de datos para realizar perfilamiento y grabar trazas. Con ello se puede monitorear ciertos comportamientos de las transacciones en la base de datos y también llevar a cabo diagnósticos sobre los aspectos más relevantes (p.e, el rendimiento). De esta manera, el monitoreo de la instancia puede anticipar una situación no deseable (bloqueos, demoras, etc), y también conllevar a

Upload: bipe-xolot-pio

Post on 10-Nov-2015

23 views

Category:

Documents


2 download

DESCRIPTION

que es el monitoreo

TRANSCRIPT

El monitoreo de bases de datos es una necesidad prioritaria en un entorno que las usa. Debe tomarse en cuenta que las bases de datos tienen una relacin profunda con el rendimiento general de aplicaciones y servidores, por lo que la recoleccin y anlisis de datos estadsticos del funcionamiento de las bases de datos y su relacin con los recursos disponibles (CPU, memoria, etc.) deben ser claros y fciles a los ojos del administrador del entorno.

Desafortunadamente, es muy comn que estos datos sean muy difciles de manejar con las herramientas estndar de las bases de datos. Es decir, sera complicado configurar todas las herramientas disponibles para monitorear una base de datos de tal manera que se pueda ver fcilmente el uso de recursos por parte de la misma, aislando las dems funciones de un servidor. Otro problema puede presentarse al utilizar mquinas virtuales (lo cual es cada vez ms comn hoy en da), y monitorear stas mquinas con sus matices especficos.

Para solucionar estos problemas y otros, el mercado ofrece una cantidad considerable de herramientas, cada una con sus caractersticas particulares. En esta ocasin revisar una aplicacin que se destaca por su flexibilidad, facilidad de uso y un enfoque en mquinas virtuales novedoso. Estoy hablando de IgniteFree.

Mantenimiento de la base de datosUna tarea muy importante en la administracin de proyectos, es realizar un afinamiento peridico a la base de datos que sirve de repositorio de procesos de Bizagi.Tenga en cuenta que cada motor de base de datos (SQL Server u Oracle) ofrece las herramientas necesarias para realizar monitoreo preventivo, diagnsticos (herramientas de perfilamiento), o acciones de afinamiento sobre la base de datos.Ante esto, recomendamos al DBA lo siguiente:1. Monitorear los logs de la base de datos.2. Utilizar las herramientas especializadas de las bases de datos para realizar perfilamiento y grabar trazas. Con ello se puede monitorear ciertos comportamientos de las transacciones en la base de datos y tambin llevar a cabo diagnsticos sobre los aspectos ms relevantes (p.e, el rendimiento).De esta manera, el monitoreo de la instancia puede anticipar una situacin no deseable (bloqueos, demoras, etc), y tambin conllevar auna indicacin sobre las tareas de afinamiento.3. Llevar a cabo un afinamiento de base de datos peridico.

Los siguientes lineamientos proveen un punto de partida as como tambin recomendaciones tiles para las tareas de monitoreo, diagnstico y afinamiento de base de datos.Sin embargo, estos lineamientos no abarcan extensivamente todas las tareas que un DBA debe realizar para un mantenimiento de la base de datos (la informacin siguiente es enunciativa y no exhaustiva o taxativa).

Lineamientos para el monitoreo y diagnstico1. No ejecutar el perfilamiento (profiler) desde el mismo servidor de base de datos.2. Ejecute un perfilamiento que deje la traza cuando el servidor no se encuentre en horas muy ocupadas (horario crtico de operaciones).Podr ser til generar una traza sobre el horario crtico si el escenario lo amerita, sin embargo, considere un muestreo para evitar afectar el rendimiento del servidor.3. Incluya filtros en el perfilamiento (por ejemplo, inicialmente slo registre la actividad de su base de datos).4. Capture solamente la informacin relevante y necesaria en las trazas en cuanto a los eventos de informacin que se graban.Por ejemplo, en SQL Server, podr considerar los procedimientos almacenados: RPC:Completed y TSQL--SQL:BatchCompleted.5. Capture solamente la informacin relevante y necesaria en las trazas en cuanto a las columnas de informacin.Analice qu aspectos son clave para indicar el estatus del rendimiento de su base de datos.Por ejemplo, en SQL Server, podr considerar: el consumo de CPU, la cantidad de escrituras writes-, lecturas, y el tiempo de inicio y de fin.6. De acuerdo a lo anterior, tambin podr usar filtros para alertar las transacciones potencialmente problemticas.Por ejemplo, puede iniciar por obtener slo aquellas cuya duracin es mayor a 3 segundos o cuyo nmero de registros afectados es muy alto.

No se recomienda que los software Antivirus realicen un escaneo sobre los archivos fsicos de la base de datos.Lo anterior puede conllevar a bloqueos y demoras de la aplicacin al intentar persistir la informacin a la base de datos.

Lineamientos de afinamientoLas tareas de afinamiento se deben realizar en horarios no laborales, y considere que tambin pueden tomar un tiempo significativo.1. Verifique la integridad de la base de datos.2. Reorganice y mantenga los ndices actualizados.Dentro de esta tarea, asegrese de recrear indices los cuales estn altamente fragmentados, o reordenar su definicin de acuerdo al orden las columnas consultadas (especialmente cuando hablamos de ndices compuestos).3. Actualice las estadsticas de la base de datos.4. Realice de manera peridica tareas para reducir la base de datos (shrink) .5. Monitoree el crecimiento y comportamiento de las siguientes tablas de Bizagi:WorkitemWorkitemclWfcaseWfcaseclDe acuerdo a lo observado, podr revisar cmo est fragmentada la informacin (p.e, los filegroups en SQL Server o los tablespaces en Oracle).6. Lleve a cabo tareas adicionales de afinamiento como las recomienda el motor de base de datos y sus herramientas especficas (o de lo observado a partir de las trazas y logs).

Tipos de evaluacin: monitoreo, resultado e impactoMonitoreo (proceso, formativo, evaluacin de mitad de perodo)El monitoreo es una forma de evaluacin o apreciacin, aunque a diferencia de la evaluacin de resultado o impacto, tiene lugar poco despus que comenz una intervencin (evaluacin formativa), en el curso de la intervencin (evaluacin del proceso) o a mitad de camino en la intervencin (evaluacin de mitad de perodo).El monitoreo no es un fin en s mismo. El monitoreo permite que los programas determinen qu est funcionando y qu no, as se pueden hacer ajustes a lo largo del camino. Permite que los programas evalen qu est pasando realmente, versus lo que se planific.El monitoreo permite a los programas hacer lo siguiente: Implementar medidas correctivas para poner a los programas nuevamente en curso y que sean responsables de los resultados que se espera que el programa logre. Determinar cmo deberan ser distribuidos los fondos en todas las actividades programticas. Recolectar informacin que puede usarse en el proceso de evaluacin.Cuando las actividades de monitoreo no las llevan a cabo directamente los tomadores de decisiones del programa, es crucial que los hallazgos de las actividades monitoreadas se coordinen y se los retroalimente.Tambin se puede difundir Informacin de la actividades de monitoreo a diferentes grupos fuera de la organizacin. Esto promueve la transparencia y da la oportunidad de conocer la opinin de los interesados.No existen herramientas y mtodos de monitoreo estndar. Varan de acuerdo con el tipo de intervencin y los objetivos que se plantean en el programa. Algunos ejemplos de monitoreo son: Informes de monitoreo de actividades Revisin de registros de prestacin de servicios (por ejemplo. informes policiales, registros de caso, formularios y registros de uso de servicios de salud, otros) Entrevista de salida con clientes (sobrevivientes) Tcnicas cualitativaspara medir actitudes, conocimiento, habilidades, comportamiento y las experiencias de sobrevivientes, prestadores de servicios, agresores y otros a quienes puede dirigirse la intervencin. Revisiones estadsticas de bases de datos administrativas (es decir, en los sectores salud, justicia e interior, albergues, oficinas de bienestar social y otros) Otrastcnicas cuantitativas.Evaluacin de resultadosLa evaluacin de resultados mide tanto los resultados a corto plazo como lo resultados a a largo plazo de los programas. Por ejemplo, en un programa para fortalecer la respuesta del sector salud en casos de violencia contra las mujeres, un resultado de corto plazo puede ser el uso de protocolos y procedimientos estandarizados por parte de los profesionales en un centro de salud. Un resultado a largo plazo puede ser la integracin de esas polticas en todo el sector y el sistema de salud. Es importante establecer claramente desde el principio de un proyecto o intervencin, cules son los objetivos y resultados esperados, e identificar qu cambios especficos se espera para qu poblacin en particular.Evaluacin del impactoLa evaluacin del impacto mide la diferencia entre lo que pas habiendo implementado el programa y lo que hubiera pasado sin l .Responde a la pregunta, Cunto del cambio observado en la poblacin meta (si lo hubo) ocurri debido al programa o la intervencin?Para este nivel de evaluacin se necesitan diseos de investigacin rigurosos. Es el tipo de evaluacin ms compleja e intensiva; incorpora mtodos como la seleccin aleatoria,grupos de control y de comparacin. Estos mtodos sirven para: Establecer vnculos causales, o relaciones, entre las actividades que se llevan a cabo y los resultados deseados. Identificar y aislar todo factor externo que pueda influir en el resultado deseado.Por ejemplo, una evaluacin del impacto de una iniciativa dirigida a la prevencin de agresiones sexuales a mujeres y nias en el puebloxmediante mejoras de infraestructura (iluminacin, pasajes ms visibles, etc.) tambin puede comparar datos de otra comunidad (puebloy) para evaluar si las reducciones en el nmero de agresiones al finalizar el programa pueden atribuirse a esas mejoras. El propsito es aislar otros factores que puedan haber influido en la reduccin del nmero de agresiones, tales como la capacitacin de la polica o nueva legislacin.Mientras el impacto de las evaluaciones puede considerarse el estndar dorado para el monitoreo y la evaluacin, su medicin puede representar un desafo y puede no ser viable por muchas razones, entre ellas: Requieren un importante volumen de recursos y tiempo, que muchas organizaciones pueden no tener. Para hacerlo adecuadamente, tambin necesitan que la recoleccin de datos siga una metodologa estadstica especfica, a lo largo de un perodo de tiempo, desde una variedad de grupos de control y de intervencin, que puede ser difcil para algunos grupos.Puede que las evaluaciones de impacto no sean siempre necesarias o, incluso apropiadas, para las necesidades de la mayora de los programas e intervenciones que buscan monitorear y evaluar sus actividades. Para medir el impacto del programa, generalmente se hace una evaluacin al principio (llamada lnea de base o evaluacin ex-ante) y luego otra vez al final (llamada evaluacin ex-post) de un programa. Tambin se recaban mediciones de un grupo de control con caractersticas similares a las de la poblacin meta, pero no se trata de recibir la intervencin para poder comparar a ambas. Para atribuir los cambios de resultados a una intervencin en particular, es necesario descartar todas las otras explicaciones posibles y controlar todos los factores externos o factores que confunden y que pueden dar cuenta de esos resultados. Una evaluacin delimpacto de una campaapara concienciar sobre las disposiciones de una ley, recientemente aprobada, sobre violencia contra la mujer, por ejemplo, debera incorporar: Datos de base sobre el conocimiento de las disposiciones de la ley antes de la campaa en el grupo de la intervencin. Datos finales sobre el conocimiento de las provisiones despus de la campaa en el grupo de intervencin. Datos de base o conocimiento de las disposiciones de la ley antes de la campaa en un grupo de control que no fue expuesto a la campaa en especial para observar si hubo factores externos/adicionales que puedan haber influido en su nivel de conocimiento. Si el diseo del estudio no incluye un grupo de control designado aleatoriamente, no es posible llegar a una conclusin en cuanto a las diferencias en los resultados entre reas con el programa y reas sin el programa. Sin embargo, si no se pueden realizar estudios de base estadsticamente rigurosos con grupos de control designados aleatoriamente, an se puede recabar informacin de base muy til y valida as como informacin final.La evaluacin requiere experiencia y entrenamiento tcnico. Si el programa no tiene capacitacin internamente, se deben contar con asistencia de valuadores externos.

Los problemas con los cuales nos encontramos al trabajar con bases de datos grandes son distintos a los problemas que tienen las bases de datos pequeas.Como las empresas constantemente estn almacenando ms y ms datos las tablas van creciendo de tamao diariamente, quizs minuto a minuto. Llega un momento en que la Base de Datosya puede considerarse grande.Cundo una Base de Datos es grande?Como muchas otras cosas en Informtica, sta tambin depende del punto de vista. Para alguien podra ser grande y para otros pequea, aunque en general se considera grande a las bases de datos que alcanzan o superan un tamao de 10 Gigabytes. En este blog se considera que: Pequea. Es una Base de Datos con tamao menor a 1 Gb Mediana. Es una Base de Datos cuyo tamao est entre 1 Gb y 10 Gb Grande. Es una Base de Datos cuyo tamao es mayor que 10 GbNormalmente, si no se almacena multimedia (archivos grficos, de sonido, de vdeo, etc.) las bases de datos van creciendo a un ritmo bastante parejo y predecible, por ejemplo podramos tener una que crece alrededor de 1 Megabyte por da. Desde luego que algunos das crece ms y algunos das crece menos, pero siempre est por ah cerca.Problemas tpicos con las bases de datos pequeas Consultas lentas Stored proceduresotriggerslentosSoluciones tpicas a esos problemas Optimizar las instrucciones SQL. Realizar un ciclo backup/restore con el programa GBAKEl optimizar las instrucciones SQL (principalmente lascuatro principales: INSERT, UPDATE, DELETE, SELECT) conduce a una notoria mejora en la velocidad. Muy relacionado con esto se encuentra el correcto manejo de las transacciones. Ante alguna corrupcin restaurar el backup realizado con GBAK suele ser suficiente.Problemas tpicos con las bases de datos grandes No se sabe donde est el problema No se sabe por qu sucede Realizar un ciclo backup/restore puede ser una gran prdida de tiempo, porque la restauracin puede demorarse un da o ms, y no asegura que se haya solucionado el problemaTareas administrativas diarias en las bases de datos grandesSi ocurre un problema,puede demorarse mucho la solucin as que lo ms inteligente es evitar que ocurra. Para ello:1. Debe realizarse un backup con GBAK todos los das2. Debe verificarse el rendimiento de todas las transacciones3. Debe verificarse que todas las instrucciones SQL estn optimizadas4. Debe verificarse cada ndice y la estadstica de cada ndice5. Debe verificarse que la estructura de la Base de Datos sea la ms conveniente6. Debe verificarse el archivoFIREBIRD.LOGvarias veces por daAunque realizar un ciclo backup/restore no nos asegura que solucionaremos todos los problemas, tener una Base de Datos grande sin backups actualizados es un suicidio. En las transacciones lo ms importante es que ninguna demore mucho en completarse (mucho es relativo, pero en general si tarda ms de un minuto entonces est tardando una eternidad). Las instrucciones SQL no optimizadas hacen perder tiempo, algo que no se puede permitir en estas circunstancias. Y no debemos olvidar que una instruccin SQL que hoy est optimizada y funciona perfectamente podra dejar de estarlo dentro de unos meses cuando la Base de Datos haya aumentado mucho de tamao. Por eso la verificacin debe hacerse diariamente.El archivoFIREBIRD.LOGes el mejor lugar para verificar que todo est correcto, si hay algn problema casi siempreaparecer en ese archivo.Cmo realizar el ciclo backup/restore?Es bastante frecuente, aunque errneo, hacerlo de esta manera:Base de Datos > Backupcon el mismo nombre anteriorPor ejemplo, la Base de Datos se llamaCONTA.FDBy el archivo de backup siempre se llamaCONTA.FBK, cul es el problema potencial? Que si la Base de Datos est corrupta entonces el nuevo backup no servir y el anterior no podr ser utilizado porque fue sobre-escrito.Lo correcto, por lo tanto, es hacer el backup de esta manera:Base de Datos > Backup con un nombre distinto al anteriorEsto evidentemente implica que tendremos varios archivos de backup, pero es preferible que sobren y no que falten.El archivo deltaCuando se ejecuta el programa GBAK para realizar un backup, ste hace el backup de todo el contenido que tieneen ese momento la Base de Datos. Es como si le tomara una fotografa.Nada que se realice con posterioridad se guardar en el backup ni en la Base de Datos, slo lo que exista en el momento de iniciarse GBAK. Pero y qu pasa con los datos que los usuarios continan insertando, actualizando o borrando? Que no se guardan en la Base de Datos original sino en un archivo temporario llamadodelta. Cuando GBAK finaliza, entonces todo el contenido del archivodeltase copia dentro de la Base de Datos.Cuando hacemos backup de bases de datos pequeas novale la pena preocuparse por ese archivodeltapero cuando es una Base de Datos grande s, porque no podemos permitirnos que est corrupto. Un motivo podra ser que no haya suficiente espacio en el disco duro para el archivodelta.La restauracinAqu, es obligatorio que al finalizar un backup se realice un restore (en otro disco duro y preferiblemente en otra computadora) para asegurarnos de que se encuentre en perfectas condiciones y pueda ser utilizado en caso de necesidad.Nada hay peor que creer que se tiene un backup actualizado pero eso no es cierto porque el backup se encuentra inservible. No ocurre frecuentemente, pero a veces ocurre, y no se puede tomar ese riesgo.Los ndicesLos ndices en Firebird se utilizanen las bsquedas y en los filtros (clusula WHERE) y cuando deseamos que los resultados aparezcan en un cierto orden (clusula ORDER BY)Para saber si un ndice es el adecuado, es necesario, y se encuentra en buena salud, debemos verificar sus estadsticas. En Firebird los ndices pueden degradarse y no debemos permitir que tal cosa ocurra.Acciones a tomar si se descubre un problemaEstas son recomendaciones que a veces podran no aplicarse, dependen de cada caso, pero servirn de gua:1. Una transaccin est demorando mucho. Detectar cual es la transaccin, cual es el programa culpable, y desconectar al usuario2. Una consulta est demorando mucho. Verificar cual es la consulta, mirar su PLAN y si es necesario crear un nuevo ndiceProgramas que se pueden utilizar cuando se trabaja con grandes bases de datosAunque detectar los problemas ysolucionarlos podra hacerse manualmente, eso requerir que la persona encargada conozca mucho del tema y que tenga suficiente tiempo y ganas para dedicarle a esa tarea. Para estos casos se justifica adquirir software que ayude en la deteccin y correccin. Los recomendados son: FBDataGuard. Se ejecuta enla misma computadora donde se encuentra la Base de Datos. Su principal tarea es prevenirque se corrompa. Monitorea el rendimiento, realiza el backup en la forma correcta, obtiene estadsticas, y si descubre algn problemaentonces enva un e-mail describindolo FBScanner. Verifica cada instruccin SQL que el Cliente le enva al Servidor, puede realizar un anlisis detallado de cada consulta, PLAN, transaccin y conexin, de esta manera sirve para detectar los cuellos de botella, las transacciones que se demoran mucho, los usuarios que se desconectan de mala manera, y monitorea lo que un usuario o una aplicacin estn realizando. IBTM. Monitorea y analiza transacciones dinmicas. Obtiene los valores de OIT, OAT, OST, NT y visualiza como se van moviendo. Detecta transacciones que se demoran mucho, los momentos en que muchas transacciones se estn ejecutando, los momentos en que ocurre el sweep, la basura dejada por los ROLLBACKs. IBAnalyst. Analiza las estadsticas de la Base de Datos e identifica posibles problemas que causan un bajo rendimiento: transacciones que demoran mucho, cantidad de versiones de los registros, registros que han sido borrados pero an permanecen en la Base de Datos y por lo tanto demoran la lectura, promedio de transacciones por da, conexiones perdidas, ndices no usados, ndices con muchos valores repetidos, etc. FBMonLogger. Detecta consultas lentas, transaccionesque tienen un aislamiento incorrecto, basura que debe ser recolectada, uso de la memoria, etc. Sintica. Monitorea a la Base de Datos en tiempo real, ayudando a detectar los procesos que consumen muchos recursos o que producen cuellos de botella, adems de las transacciones que demoran mucho en finalizar.Conclusin:Aunque realizar las tareas administrativas de backup, verificacin de las estadsticas de los ndices, revisar el archivoFIREBIRD.LOG, etc. deberan hacerse regularmente con cualquier Base de Datos, cuando stas son de gran tamao esas tareas ya son una obligacin imprescindible porque no se puede correr el riesgo de que se corrompa o de que funcione muy lentamente, muchas veces tales bases de datos deben funcionar 365/24/7 (o sea, los 365 das del ao, durante las 24 horas, de cada uno de los 7 das de la semana) y cualquier demora o detencin puede ser muy grave.En estos casos, suele ser recomendable contratar a una persona cuya funcin sea la de Administrador de la Base de Datos y proveerle de las herramientas informticas adecuadas para que pueda realizar efectivamente su labor.Artculos relacionados:El ndice del blog FirebirdEl foro del blog Firebird21Artculos

Usando Trace Manager17 diciembre 2013wrov PROGRAMAS manager,monitoreo,trace,trace manager,transaccin,transacciones 2 comentariosCon la versin 2.5 de Firebird se agreg algo que puede ser muy til: Trace Manager.Qu hace Trace Manager?Nos permite conocer todas las conexiones realizadas a una Base de Datos y todas las transacciones, en tiempo real, o sea apenas ocurren.El programa que realiza esta tarea se llamaFBTRACEMGR.EXEy lo encontrars en la carpeta \BIN\ de tu instalacin del Firebird.Tarea a realizar:Queremos monitorear todas las actividades que realiza el Servidor del Firebird, para ello necesitaremos hacer lo siguiente:1. Crear un archivo de configuracin donde podremos determinar, entre otras cosas: Monitorear todo lo que ocurre en una conexin Monitorear todas las actividades de un usuario Monitorear todas las transacciones en una o varias bases de datos2. Ejecutar el programaFBTRACEMGR.EXEcon el archivo de configuracin anterior3. Opcionalmente (y preferiblemente) en lugar de enviar los resultados a la pantalla del monitor podemos enviarlos a un archivo de texto y de esa manera ser muy fcil posteriormente revisar ese archivo de texto y conocer exactamente lo que ocurri en la Base de DatosEnconces, empezaremos creando con el bloc de notas del Windows un archivo de texto donde guardaremos la configuracin a utilizar:

Captura 1. Si haces clic en la imagen la vers ms grandeLas de arriba no son las nicas opciones posibles, hay ms, en laCaptura 2las encontrars a todas:

Captura 2. Si haces clic en la imagen la vers ms grandeAhora que ya hemos creado un archivo de configuracin podemos ejecutar el programaFBTRACEMGR.EXEy empezar a monitorear todo lo que acontece dentro de la Base de Datos.

Captura 3. Si haces clic en la imagen la vers ms grandeEn lugar delocalhost:puedes necesitar escribir la direccin IP de tu Servidor, opcionalmente seguido por una barra y el nmero del puerto de conexin, algo como:192.168.0.1/3051:Abrimos ahora otra ventana Smbolo del sistema y ejecutamos en ella el programaISQL.EXEy nos conectamos a una Base de Datos para ver lo que sucede con nuestro monitoreo:

Captura 4. Si haces clic en la imagen la vers ms grandeY en la otra ventana del sistema (en la cual habamos ejecutado el programaFBTRACEMGR.EXE) vemos esto:

Captura 5. Si haces clic en la imagen la vers ms grandeTrace session ID 3 started nos indica que esta es la tercera sesin del TraceManager que hemos iniciado hoy.TRACE_INIT nos indica que se inici el Trace.COMMIT_TRANSACTION nos indica que una transaccin termin con un COMMIT.ATT_4979 nos indica que esta es la conexin nmero 4.979 a la Base de Datos desde que fue creada.SYSDBA nos indica quien fue el usuario que se conect a la Base de Datos. El :NONE despus de su nombre nos indica que no us un rol para conectarse. Si un usuario utiliza un rol, el nombre de ese rol aparecer aqu.XNET:WALTER-PC nos indica la forma de conexin (a travs de XNET en este caso, tambin podra haber sido a travs de una direccin IP) y el nombre de la computadora (o la direccin IP si aplica).C:\Archivos de programa\ es el nombre del programa que se us para conectarse a la Base de Datos. En este caso el nombre de ese programa fueISQL.EXEpero lo normal es que se trate del nombre de tu aplicacin (Contabilidad, Facturacin, Ventas, Sueldos, etc.)TRA_90742 es el nmero de la transaccin. En este caso fue la transaccin nmero 90.742.CONCURRENCY | WAIT | READ_WRITE indican los parmetros de la transaccin. En este caso la transaccin fue SNAPSHOT, WAIT, READ WRITE, en otros casos podra ser: READ COMMITTED, NO WAIT, READ ONLY, REC_VERSION, NO_REC_VERSION, etc.START_TRANSACTION nos indica que se inici una transaccin.EXECUTE_TRIGGER_FINISH nos indica que finaliz la ejecucin de un trigger cuyos datos vemos un poco ms abajo.Y bueno, puede mostrarte ms informacin relacionada pero ya la puedes descubrir por t mismo, para eso eres lo suficientemente inteligente como para entender lo que ocurre.Si quieres que el programaFBTRACEMGR.EXEno enve la informacin a la pantalla sino que la enve a un archivo de texto le puedes redireccionar la salida con el smbolo mayor que, como se muestra a continuacin:

Captura 6. Si haces clic en la imagen la vers ms grandeEntonces, ms tarde podrs revisar el contenido del archivo MONITOREO1.TXT (desde luego que ese nombre es un ejemplo, t puedes elegir cualquier otro nombre).

Captura 7. Si haces clic en la imagen la vers ms grandeConclusin:Poder trazar las operaciones que ocurren dentro de una Base de Datos puede resultarnos muy pero muy til cuando vemos que hay problemas con ella, por ejemplo si hay transacciones que no terminan eso nos indica un problema con una aplicacin (Contabilidad, Facturacin, Ventas, etc.) y debemos encontrar cual es el mdulo que abri una transaccin pero nunca la cerr porque las transacciones que se abren y nunca se cierran solamente pueden causar problemas y nunca nos otorgarn algn beneficio. Tambin podemos saber si un usuario se conect hoy, a que hora se conect, que operaciones realiz, etc.Artculo relacionado:

5.3 Monitoreo y Auditora de la Base de DatosLa auditora y la proteccin de bases de datos (DAP) representa un avance evolutivo importante con respecto a anteriores herramientas de monitoreo de actividad en bases de datos (DAM). Los gerentes de seguridad, los administradores de bases de datos (DBAs) y otros interesados, que estn preocupados con proteger datos sensibles en las bases de datos, deben evaluar estas herramientas.5.3.1 MonitoreoEl trmino Monitoreo es un trmino no incluido en el diccionario de la Real Academia Espaola (RAE). Su origen se encuentra en monitor, que es un aparato que toma imgenes de instalaciones filmadoras o sensores y que permite visualizar algo en una pantalla. El monitor, por lo tanto, ayuda a controlar o supervisar una situacin.Esto nos permite inferir que monitoreo es la accin y efecto de monitorear, el verbo que se utiliza para nombrar a la supervisin o el control a travs de un monitor. Por extensin, el monitoreo es cualquier accin de este tipo, ms all de la utilizacin de un monitor.5.3.1.1 Monitoreo general de un DBMSDAP un trmino que Gartner desarroll para remplazar el anterior concepto de DAM se refiere a las suites de herramientas que se utilizan para apoyar la identificacin y reportar comportamiento inapropiado, ilegal o de otra forma indeseable en las RDBMSs, con mnimo impacto en las operaciones y la productividad del usuario. Estas suites han evolucionado de herramientas DAM que ofrecan anlisis de la actividad del usuario en las RDBMSs y alrededor de ellas para abarcar un conjunto ms integral de capacidades, que incluyen: Descubrimiento y clasificacin. Gestin de vulnerabilidades. Anlisis al nivel de aplicacin. Prevencin de intrusin. Soporte de seguridad de datos no estructurados. Integracin de gestin de identidad y acceso. Soporte de gestin de riesgos.

5.3.1.2 Monitoreo de espacio en discoEl espacio en disco.El abaratamiento de los discos ha reducido considerablemente la incidencia del espacio ocupado por los usuarios. No obstante, los discos requieren administracin: hay que instalarlos, darles formato, montarlos en otras mquinas, respaldarlos, monitorearlos. Aunque el espacio en disco sea suficiente, es preciso insistir ante los usuarios para hacer un uso racional del recurso.Comandos para el monitoreo del espacio en discoquotduEl comandoduda un resumen del uso de disco en una rama de directorios.du -s /export/home/*Muestra el total para cada rama de subdirectorio bajo /export/home;Esto no es efectivo para ver el consumo total de cada usuario si los usuarios tienen archivos en otras partes del sistema.dfEl comandodfda un resumen del uso del espacio a nivel de todo el sistema:dfMuestra el espacio utilizado en cada sistema de archivos, incluso a veces en los que estn montados va NFS. Si se indica uno en particular, da el espacio utilizado en ese sistema de archivos: df /dev/hda2.El comandoquotinforma sobre el espacio en disco consumido por los usuarios en cada sistema de archivos: quot -f /dev/hda2Proporciona una lista de la cantidad de bloques y archivos a nombre de cada usuario.

5.3.1.3 Monitoreo de logsMonitorear el log de transacciones es una de las actividades ms importantes para los administradores de bases de datos, ya que en caso de que este llegara a llenarse, no podran llevarse a cabo ms transacciones sobre esta base de datos quedando fuera de servicio.Monitoreando el log de transacciones(SQL SERVER)Monitorear el log regularmente puede ayudarnos a resolver varios problemas dentro de nuestros sistemas, ya que este puede indicarnos si existen demasiadas transacciones realizadas por una sola aplicacin, que podra resultar en un mal diseo o simplemente la necesidad de planear mejor los recursos de log en nuestro servidor de base de datos.Monitoreo de LogsUna de ellas es mediante un comando desde el analizador de consultas:Desde el analizador de consultas ejecutar el comando DBCC SQLPERF(LOGSPACE).Monitoreo de LogsLa otra utilizando los contadores de SQL Server desde el sistema operativo.Monitoreo de Log transacciones

5.3.1.4 Monitoreo de Memoria compartidaSGA de Oracle (Sistema de rea Global)Es un conjunto de reas de memoria compartida "instancia" (un ejemplo es los programas de bases de datos y la memoria RAM).Sirve para facilitar la transferencia de informacin entre usuarios y tambin almacena la informacin estructural de la BD ms frecuentemente requerida.La SGA se divide en varias partes:Buffers de BD, Database Buffer CacheEs el cach que almacena los bloques de datos ledos de los segmentos de datos de la BD, tales como tablas, ndices y clusters. Los bloques modificados se llamas bloques sucios. El tamao de buffer cach se fija por el parmetro DB_BLOCK_BUFFERS del fichero init.ora.Buffer Redo LogLos registros Redo describen los cambios realizados en la BD y son escritos en los ficheros redo log para que puedan ser utilizados en las operaciones de recuperacin hacia adelante, roll-forward, durante las recuperaciones de la BD. Pero antes de guardar cambios en los ficheros redo log, son escritos en un cach de la SGA llamado redo log buffer.rea de SQL Compartido, Shared SQL PoolEn esta zona se encuentran las sentencias SQL que han sido analizadas. El anlisis sintctico de las sentencias SQL lleva su tiempo y Oracle mantiene las estructuras asociadas a cada sentencia SQL analizada durante el tiempo que pueda para ver si puede reutilizarlas. Antes de analizar una sentencia SQL, Oracle mira a ver si encuentra otra sentencia exactamente igual en la zona de SQL compartido. Si es as, no la analiza y pasa directamente a ejecutar la que mantiene en memoria. De esta manera se premia la uniformidad en la programacin de las aplicaciones.

5.3.1.5 Monitoreo de Base de DatosProcedimiento Monitoreo de la Basede Datos Oracle10gSe establece que se debe realizar una revisin peridica mensual de la base de datos institucional (Oracle10g), con la finalidad de identificar oportunamente cualquier anomala que pueda afectar el rendimiento de la misma. El encargado de realizar este proceso es el Administrador de la Base de Datos, en la Unidad de Informtica del CATIE.Revisin de las Tablas del Esquema APLICA. Verificar que el tablespace este asignado correctamente a uno vlido para el Esquema.B. Que no se encuentre particionada.D. Que el nmero de registros no exceda el tamao segn la funcionalidad de cada tabla.Revisin de los ndices del Esquema APLICA. Verificar que el tablespace este asignado correctamente a uno vlido para el EsquemaB. Que no se encuentre particionadoC. Que el estado sea vlido.Revisin de los Procedimientos del Esquema APLICA. Verificar que el estado sea vlidoRevisin de los Tablespaces en AlmacenamientoA. Verificar el estado sea ONLINEB. Que el espacio usado no sobre pase el 85%, si no debe asignrsele ms espacio en disco.Revisin de los Archivos de Datos en AlmacenamientoA. Verificar el estado sea ONLINEB. Si el espacio usado no sobre pase el 85%, debe asignrsele ms espacio en disco, creando un nuevo archivo de datos.Revisin de los Segmentos de RollBack en AlmacenamientoA. Verificar el estado sea ONLINE

5.3.1.6 Monitoreo de modos de operacinMONITOREO DE BASE DE DATOSRevisin del espacio fsico desde el S.O. del servidor ADMIN. (root)A. Ejecutar el comando:$ df -k | grep dsk5.3.1.6 MONITOREO DE MODOS DE OPERACIONVarios Consejos tcnicos y libros se han escrito en los ltimos aos sobre la modalidad de operaciones continua para garantizar copias de seguridad adecuadas en la Base de Datos.Sin embargo, poco se ha dicho acerca de la supervisin en este modo de operacion,por ello se ha escrito este consejo tecnico para saber como hacer copias de seguridad mas fluidas.CUAL ES EL MODO DE FUNCIONAMIENTO CONTINUO?*Es un modo especial en las bases de datos especializadas.*Permite realizar copias de seguridad instantanea en su entorno.*Se puede realizar en cualquier momento del dia.*Escribe un archivo fisico independiente llamado"archivo delta"*Se obtiene una copia de seguridad que incluye el estado de la base de datosen un solo momnto en el tiempo.5.3.1.7 Monitoreo de espacios espejeadosUna de las tareas de un DBA es monitorear el espacio de la base de datos, debido a que esto consume mucho tiempo cuando se tienen varias DBs es bueno automatizar tareas repetitivas y tediosas. Una manera de realizar la automatizacin del monitoreo de DBs en UNIX es por medio del crontab, el siguiente es un ejemplo de como usar el crontab para monitorear los tablespaces. Los siguientes scripts permiten obtener el espacio utilizado y libre de los tablespaces, uno lo obtiene en base el porcentaje libre de espacio y el otro obtiene el espacio en base a los MB libres. Estos scripts reciben dos parametros: &1 .- es el directorio y archivo donde se va a crear el reporte(spool) y &2 que es el limite ya sea porcentaje (99) o Mb(99999).tablespace_size_pct.sqlSET line 132SET pages 50SET pause OFFSET feedback OFFSET echo OFFSET verify OFFCOLUMN c1 heading "Tablespace|Name"COLUMN c2 heading "File|Count"COLUMN c3 heading "Allocated|in MB"COLUMN c4 heading "Used|in MB"COLUMN c5 heading "%|free" format 99.99COLUMN c6 heading "Free|in MB"COLUMN c7 heading "%|used" format 99.99spool &1;SELECT c1,ROUND(c3,2) c3,ROUND(c4,2) c4,ROUND(c6,2) c6,ROUND(c7,2) c7,ROUND(c5,2) c5,c2FROM(SELECT NVL (b.tablespace_name, NVL (a.tablespace_name, 'UNKOWN')) c1, mbytes_alloc c3, mbytes_alloc - NVL (mbytes_free, 0) c4, NVL (mbytes_free, 0) c6, ((mbytes_alloc - NVL (mbytes_free, 0)) / mbytes_alloc) * 100 c7, 100 - (((mbytes_alloc - NVL (mbytes_free, 0)) / mbytes_alloc) * 100) c5, b.files c2 FROM (SELECT SUM (BYTES) / 1024 / 1024 mbytes_free, tablespace_name FROM SYS.dba_free_space GROUP BY tablespace_name) a, (SELECT SUM (BYTES) / 1024 / 1024 mbytes_alloc, tablespace_name, COUNT (file_name) files FROM SYS.dba_data_files GROUP BY tablespace_name) b WHERE a.tablespace_name(+) = b.tablespace_nameUNION ALLSELECT f.tablespace_name, SUM (ROUND ((f.bytes_free + f.bytes_used) / 1024 / 1024, 2) ) "total MB", SUM (ROUND (NVL (p.bytes_used, 0) / 1024 / 1024, 2)) "Used MB", SUM (ROUND ( ((f.bytes_free + f.bytes_used) - NVL (p.bytes_used, 0) ) / 1024 / 1024, 2 ) ) "Free MB", (SUM (ROUND (NVL (p.bytes_used, 0) / 1024 / 1024, 2)) * 100) / (SUM (ROUND ((f.bytes_free + f.bytes_used) / 1024 / 1024, 2))), 100 - (SUM (ROUND (NVL (p.bytes_used, 0) / 1024 / 1024, 2)) * 100) / (SUM (ROUND ((f.bytes_free + f.bytes_used) / 1024 / 1024, 2))), COUNT (d.file_name) FROM SYS.v_$temp_space_header f, dba_temp_files d, SYS.v_$temp_extent_pool p WHERE f.tablespace_name(+) = d.tablespace_name AND f.file_id(+) = d.file_id AND p.file_id(+) = d.file_idGROUP BY f.tablespace_name)WHERE C1 NOT IN('USERS') AND C7 >= &2ORDER BY c6 ASC;spool off;exit;tablespace_size_spc.sqlSET line 132SET pages 50SET pause OFFSET feedback OFFSET echo OFFSET verify OFFCOLUMN c1 heading "Tablespace|Name"COLUMN c2 heading "File|Count"COLUMN c3 heading "Allocated|in MB"COLUMN c4 heading "Used|in MB"COLUMN c5 heading "%|free" format 99.99COLUMN c6 heading "Free|in MB"COLUMN c7 heading "%|used" format 99.99spool &1;SELECT c1,ROUND(c3,2) c3,ROUND(c4,2) c4,ROUND(c6,2) c6,ROUND(c7,2) c7,ROUND(c5,2) c5,c2FROM(SELECT NVL (b.tablespace_name, NVL (a.tablespace_name, 'UNKOWN')) c1, mbytes_alloc c3, mbytes_alloc - NVL (mbytes_free, 0) c4, NVL (mbytes_free, 0) c6, ((mbytes_alloc - NVL (mbytes_free, 0)) / mbytes_alloc) * 100 c7, 100 - (((mbytes_alloc - NVL (mbytes_free, 0)) / mbytes_alloc) * 100) c5, b.files c2 FROM (SELECT SUM (BYTES) / 1024 / 1024 mbytes_free, tablespace_name FROM SYS.dba_free_space GROUP BY tablespace_name) a, (SELECT SUM (BYTES) / 1024 / 1024 mbytes_alloc, tablespace_name, COUNT (file_name) files FROM SYS.dba_data_files GROUP BY tablespace_name) b WHERE a.tablespace_name(+) = b.tablespace_nameUNION ALLSELECT f.tablespace_name, SUM (ROUND ((f.bytes_free + f.bytes_used) / 1024 / 1024, 2) ) "total MB", SUM (ROUND (NVL (p.bytes_used, 0) / 1024 / 1024, 2)) "Used MB", SUM (ROUND ( ((f.bytes_free + f.bytes_used) - NVL (p.bytes_used, 0) ) / 1024 / 1024, 2 ) ) "Free MB", (SUM (ROUND (NVL (p.bytes_used, 0) / 1024 / 1024, 2)) * 100) / (SUM (ROUND ((f.bytes_free + f.bytes_used) / 1024 / 1024, 2))), 100 - (SUM (ROUND (NVL (p.bytes_used, 0) / 1024 / 1024, 2)) * 100) / (SUM (ROUND ((f.bytes_free + f.bytes_used) / 1024 / 1024, 2))), COUNT (d.file_name) FROM SYS.v_$temp_space_header f, dba_temp_files d, SYS.v_$temp_extent_pool p WHERE f.tablespace_name(+) = d.tablespace_name AND f.file_id(+) = d.file_id AND p.file_id(+) = d.file_idGROUP BY f.tablespace_name)WHERE C1 NOT IN('USERS') AND C6 = 80%.o o Tablespace Allocated Used Free % % Fileo Name in MB in MB in MB used free Counto ------------------------------ ---------- ---------- ---------- ------ ------ ----------o IDX1 11741 11363 378 96.78 3.22 3o IDX2 3201 2696 505 84.22 15.78 2o IDX5 18385 17394 991 94.61 5.39 3o DATA02 13312 11520.13 1791.88 86.54 13.46 2o DATA03 33797 31709.13 2087.88 93.82 6.18 4o DATA01 56629 46606.38 10022.63 82.30 17.70 7tbs_monitor.ksh#!/bin/ksh######################################################################## # SCRIPT : tbs_monitor.ksh## DESCRIPTION : This script will monitor usage in tablespaces of a database.# If the usage is >= 90% it will send an email to the DBA group.## INPUT FILES : [oracle_sid] only one database is processed# # OUTPUT FILES : NONE## CALLED OBJECT: $SCRIPTS/switchdb.ksh# ASSUMPTIONS : NONE## SETUP INSTRUCTIONS : NONE## COMMAND LINE EXECUTION: tbs_monitor.ksh -d [oracle_sid] [-s sizeinMB] [-p pct]## EXAMPLE: tbs_monitor.ksh -d DEV -s 300# EXAMPLE: tbs_monitor.ksh -d DEV -p 85## RESTART INSTRUCTIONS: rerun script# SPECIAL CONSIDERATIONS: NONE ######################################################################## Modification Log:# Version Date Name Description######################################################################## 1.0 04-Jul-2006 Delfino Nunez Initial Creation################################################################################################################################################ FUNCTION : showHelp# DESCRIPTION: Print the help for using the script########################################################################function showHelp { echo " Argument Description" echo " ------------ ----------------------------------------------" echo " -d [sid] Oracle sid to check." echo " -p xx Report on percentage usage(pct > xx)." echo " -s xxxxxx Report on MB size usage(sizeMB < xxxxxx)." echo " -h This help." echo " \n\n EXAMPLE: " echo " Report tablespaces that have more than 95% space used" echo " tbs_monitor.ksh -s EDS2TSDE -p 95" echo " Report tablespaces that have less than 300Mb space" echo " tbs_monitor.ksh -s EDS2TSDE -s 300"}######################################################################### Main Program start here######################################################################### Verify input paramtter and set environment variables#parm_list=$@. $DBA_BASE/init#set -- $parm_list#check parametersif [ "$1" != "" ]thenwhile [ "$#" != "0" ]do case $1 in -s) shift if [ "$1" != "" ]; then export RPTTYPE="SIZE" export PSIZE=$1 shift fi ;; -d) shift if [ "$1" != "" ]; then export ORACLE_SID=$1 shift fi ;; -p) shift if [ "$1" != "" ]; then export RPTTYPE="PCT" export PSIZE=$1 shift fi ;; -h) showHelp exit 0; ;; *) echo "Bad argument: $1" showHelp exit 1; ;; esacdoneelse showHelp exit 1fi. $SCRIPTS/switchdb.ksh $ORACLE_SIDBOXNAME=`uname -n`MAILIDS=`cat $DBA_BASE/.forward`# point to where the rpt file will goexport RPTFILE=$TMP/${ORACLE_SID}_tablespace_rpt.txtexport EMAILMSG=$TMP/tbs_email.txtexport dbpass=`cat $PWDFILE`# should not need to be changedexport DATE=$(date +%y-%m-%d.%H:%M:%S)#remove any previous fileif [ -a $RPTFILE ]then rm $RPTFILEfiif [ -a $EMAILMSG ]then rm $EMAILMSGfi#Run the status report.case "$RPTTYPE" in "PCT") MESSAGE="Tablespaces with usage >= $PSIZE%." sqlplus -s /nolog = $PSIZE%.@$SQL/tablespace_size_pct.sql $RPTFILE $PSIZEEOF ;; "SIZE") MESSAGE="Tablespaces with usage