lunes, marzo 31, 2014

Controlar el registro de consultas de MySQL (I)

MySQL tiene un registro general que almacena todas las operaciones que van realizando los diferentes clientes en el servidor de base de datos. Este registro de operaciones puede ser un fichero o una tabla de base de datos y se configura a través de los parámetros de arranque del servidor mysqld o en tiempo de ejecución, modificando una serie de variables globales del mismo.

Las variables el comportamiento del registro de consultas son las siguientes:

  • general_log, que puede tomar el valor de 0 (desactivado) o 1 (activado). Controla si se debe o no generar registros de las operaciones de los clientes contra el servidor de base de datos.
  • general_log_file, que es el path hacía el fichero que se quiere usar para almacenar el registro de consultas.
  • log_output , que indica el lugar donde se almacenarán los registros, cuyo valor puede ser a su vez:
    • FILE, en este caso el registro se almacenará en el fichero especificado en la variable general_log_file
    • TABLE, en este caso, las tablas que se usan para almacenar son mysql.general_log y mysql.slow_log. Se puede ver la estructura de dichas tablas con un SHOW CREATE TABLE nombre_tabla.
    • NONE, que indica que no se va a almacenar ningún registro.

Además existe la posibilidad de registrar las llamadas llamas slow_queries que son todas aquellas consultas que tardan más tiempo en ejecutarse que el valor especificado en la variable long_query_time. En este caso, existen las variables slow_query_log u slow_query_log_file donde se almacenará cualquier consulta desde un cliente que sea considerara slow_query

Decir que un cliente, si tiene privilegios adecuados, puede desactivar el registro de sus consultas en el registro, para lo cual basta con establecer la variable de sesión sql_log_off a 1.

No hay comentarios: