Bienvenidos sean a este post, hoy hablaremos sobre los logs.
Pero que es un archivo log? En general es un archivo que usamos para almacenar todo de informacion relacionada al sistema, transaccion, ejecuciones, etc, son solamente de texto pero la informacion puede variar dependiendo de la necesidad, ya sea desde que momento se ejecuto tal o cual accion hasta un fiel reflejo de todo lo que ejecuto y obtuvo una conexion, por ello mariadb tiene los siguientes logs de seguimiento:
- Log de Error, aqui se almacenaran todos los errores que se produzcan durante la ejecucion del servidor, no solamente incluye los errores del servidor sino tambien los errores de SQL
- SQL_ERROR_LOG, este es un plugin que es mas especifico que el anterior dado que solo almacena en un archivo todos los errores de SQL, se implemento a partir de la version 5.5
- Log general de Query, en este archivo se almacenaran todas las ejecuciones de SQL que realicemos, es decir los queries
- Los de query lentos, este es utilizado para almacenar en un archivo todos los queries que tardan mas de una determinada cantidad de tiempo o no usan ningun indice, ideal para descubrir el porque de las demoras de las bases de datos
- binlog (Log binario), dependiendo del formato que elijamos este puede contener informacion que es cambiada a un formato binario o las ejecuciones SQL que hicieron el cambio, este es necesario para la implementacion de backups incrementales, replicaciones o cluster de base de datos
- Log de relevo (relay log), este archivo solo existe en los servidores esclavos de replicacion y solo contiene la informacion recibida por el amo
Cuando hablamos de los motores de almancenamiento en el post anterior mencionamos que algunos poseian logs para distintas tareas, en el caso InnoDB posee dos tipos de log uno llamado undo y el otro redo, el primero es usado para llevar un seguimiento de todas las modificaciones que vamos realizando y poder volver para atras en caso de ser necesario, en el caso del segundo log lleva el seguimiento de los datos utilizados y en caso de una falla (crash) se utiliza para restaurar a todas las tablas involucradas.
Aria tiene un log tambien, este contiene los datos no aplicados a los archivos de datos y es usado al inicio para recuperar tablas que no fueron cerradas apropiadamente, para MyISAM los cambios en sus tablas son almacenados en el log de MyISAM.
Cada log consiste en un conjunto de archivos que son almacenados en el directorio de instalacion y de los datos, o si el usuario lo prefiere en una ubicacion distinta, pero algunos logs pueden ser escritos en tablas, estas tablas estan ubicadas en la base mysql, si bien el proceso sera mas lento nos permitira recuperar dicha informacion por medio de ejecuciones SQL o queries, un formato que podemos usar es CSV (Comma Separated Values) lo cual nos lo permitira exportarlos a este tipo de archivo y ser utilizados por otros programas (p.e. Excel), como los logs se escriben muy a menudo usualmente tienen un buffer para mejorar la performance, si bien escribir la informacion en trozos (chunks) puede crear una sobrecarga esta se puede reducir escribiendo todo junto, sin embargo esto puede ser ajustado por el DBA dependiendo de la necesidad, ya sea tener una informacion mas fidedigna o una mejor performance, por ultimo los logs deben ser rotados despues un tiempo, es decir que las nuevas entradas sean almacenadas en nuevos archivos y a su vez remuevan los archivos viejos con las entradas anteriores que ya no sean necesarias, tambien podemos hacer esto manualmente mediante el comando FLUSH LOGS, con esto tenemos un vistazo general de como son los logs para mariadb.
En resumen, hoy hemos visto que es un log, cuales son los utilizados por el servidor, que informacion guardan, los que utilizan los motores principales, tambien vimos algunas otras posibilidades, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
