Los Ficheros de REGISTRO en Mysql

14
LOS FICHEROS DE REGISTRO EN MYSQL ADMINISTRACION DE BASE DE DATOS PROFESORA: MARIA PILAR PAREDES COLMENAR

Transcript of Los Ficheros de REGISTRO en Mysql

Page 1: Los Ficheros de REGISTRO en Mysql

LOS FICHEROS DE REGISTRO EN MYSQL

ADMINISTRACION DE BASE DE DATOS

PROFESORA: MARIA PILAR PAREDES COLMENAR

Page 2: Los Ficheros de REGISTRO en Mysql

MYSQLD mysqld, es el programa principal que realiza la mayoría del trabajo en

una instalación MySQL. El servidor está acompañado por varios scripts que realizan operaciones de inicialización cuando se instala MySql Server

Todos los programas MySQL aceptan diferentes opciones. Sin embargo, cada programa MySQL proporciona una opción --help que puede usar para obtener una descripción de las opciones del programa. Por ejemplo: mysqld --help.

De forma breve algunos de los programas relacionados con MySQL server son::

mysqld El demonio SQL (esto es, el servidor MySQL). Para usar programas clientes, este

programa debe estar en ejecución, ya que los programas ganan el acceso a la base de datos conectándose al servidor.

 mysqld-max Una versión del servidor que incluye características adicionales:

 mysql_install_db Este script crea las tablas de permisos de MySQL con privilegios por defecto.

Normalmente se ejecuta sólo una vez, cuando se instala por primera vez MySQL en el sistema

 mysql_fix_privilege_tables Este script se usa tras una actualización, para actualizar las tablas de permisos

con cualquier cambio que se hayan hecho en nuevas versiones de MySQL.

Page 3: Los Ficheros de REGISTRO en Mysql

OPCIONES DEL COMANDO MYSQLD

Al arrancar el servidor mysqld , puede especificar opciones de programa de tres formas: Al ejecutar programas MySQL se les pueden indicar

opciones en varias formas: En la línea de comandos, a continuación del nombre del

programa. Este es el modo más común para opciones que se aplican a una ejecución específica del programa.

En un fichero de opciones, que el programa lee al iniciarse. Esto es lo acostumbrado para opciones que se desea que el programa use cada vez que se ejecuta.

En variables de entorno. Esto es útil para opciones que se desean aplicar cada vez que el programa se ejecuta

Para ver las opciones que mysqld acepta en línea de comandos podemos utilizar: mysqld --verbose --help.

Page 4: Los Ficheros de REGISTRO en Mysql

OPCIONES DE MYSQLD EN LINEA DE COMANDO

Las opciones de programa indicadas en la línea de comandos están sujetas a estas reglas: Las opciones se colocan después del nombre del comando. Una opción comienza con uno o dos guiones, dependiendo de si

se ha utilizado la forma corta o larga de su nombre. Muchas opciones permiten ambas formas. Por ejemplo, -? y --help son, respectivamente, las formas corta y larga de la opción que solicita a un programa MySQL que muestre un mensaje de ayuda.

Los nombres de opciones son case sensitive. Tanto -v como -V son correctos pero tienen distinto significado. (Corresponden a la forma corta de las opciones --verbose y --version.)

Algunas opciones aceptan que se indique un valor a continuación del nombre. Por ejemplo, -h localhost o --host=localhost indican a un programa cliente MySQL el servidor de bases de datos MySQL a utilizar. El valor de la opción le dice al programa el nombre del ordenador host donde el servidor de bases de datos MySQL se está ejecutando.

Page 5: Los Ficheros de REGISTRO en Mysql

OPCIONES DE MYSQLD EN LINEA DE COMANDO

Los nombres de opción largos se separan del valor asignado (si se les asigna uno) con un signo '='. Para un nombre de opción corto, el valor puede escribirse inmediatamente a continuación de la letra de la opción, o puede haber un espacio entre ambos. (-hlocalhost y -h localhost son equivalentes.)

Algunas opciones controlan comportamientos que deben habilitarse o deshabilitarse. Por ejemplo, el cliente mysql soporta una opción --column-names que determina si se mostrará o no una fila con los nombres de cada columna al principio de los resultados de una consulta. Por defecto, esta opción se encuentra habilitada. Sin embargo, en algunos casos se podria desear que permanezca inhabilitada, por ejemplo cuando la salida producida por mysql debe ser enviada a otro programa que espera sólo datos y no una linea inicial de encabezados.

Otra opción que puede ser ocasionalmente útil con mysql es -e o --execute, la cual se utiliza para enviar sentencias SQL al servidor. Las sentencias deben estar colocadas entre comillas (dobles o simples). Se pueden ejecutar varias sentencias separándolas por ;. Cuidado: si se desea incluir dentro de la consulta valores colocados entre comillas, habría que emplear comillas dobles para delimitar la consulta y simples para los valores en su interior. Cuando se utiliza esta opción, mysql retorna al prompt del intérprete de comandos inmediatamente después de ejecutar la sentencia.

Page 6: Los Ficheros de REGISTRO en Mysql

EJEMPLOS:

Podemos obtener una lista de las cuentas de usuario del servidor de estas dos formas: mysql -u root -p -e "SELECT User, Host FROM

user" mysql ( en este caso el nombre de la base de datos se pasa como argumento)

mysql -u root -p -e "SELECT User, Host FROM mysql.user“

Page 7: Los Ficheros de REGISTRO en Mysql

EJEMPLOS Si lanzamos ahora la sentencia: mysql -u root -p -e "SELECT User, Host FROM

mysql.user“ “select idmascota, nombre from zoologico.mascota”

Page 8: Los Ficheros de REGISTRO en Mysql

LOS FICHEROS DE REGISTRO EN MYSQL

Los archivos de REGISTRO O log son ficheros de texto plano escritos por mysqld para dejar información sobre lo que ocurre en el servidor.

MySQL tiene varios archivos de registro diferentes que pueden ayudarle a encontrar lo que está ocurriendo en mysqld: Registro de errores: host_name.err Registro general de consultas: host_name.log Registro de actualización binario: mysql-

bin.001,mysql-bin.002 Registro de consultas lentas: host-slow.log

Por defecto todos estos ficheros de registro se crean en el directorio de datos de mysqld

Page 9: Los Ficheros de REGISTRO en Mysql

EL REGISTRO DE ERRORES (ERROR LOG)

Contiene información sobre: Problemas de inicio, ejecución y detención de

MySQL así como de posibles errores críticos mientras el servidor se está ejecutando

En my.cnf log-error=path

Por defecto host_name.err y escribe el archivo en el directorio de datos.

Si ejecuta FLUSH LOGS, el registro de errores se renombra con el sufijo -old y mysqld crea un nuevo archivo de registro.

Page 10: Los Ficheros de REGISTRO en Mysql

EL REGISTRO GENERAL DE CONSULTAS Registro de consultas:

Guarda las conexiones y los querys ejecutados En my.cnf log=path Por defecto host_name.log El registro de consultas contiene todas las sentencias Para saber que pasa en mysqld, se debe iniciar con la

opción --log[=file_name] o -l [file_name]. Si no se da un valor para file_name, el nombre por defecto es host_name.log. Esto registra todas las conexiones y sentencias a un archivo. Este registro puede ser muy útil cuando sospeche que hay un error en un cliente y quiera saber exactamente qué envió el cliente a mysqld. Las sentencias se escriben en el registro de consultas en el mismo orden que el servidor las recibe no necesariamente a como se ejecutan

Page 11: Los Ficheros de REGISTRO en Mysql

EL REGISTRO BINARIO (BINARY LOG) Registro de actualización binario:

Por defecto: host_name-bin.001, host_name-bin.002,… Contiene:

Todas las sentencias que han actualizado datos o podrían haberlo hecho: (por ejemplo, un DELETE que no encontró filas concordantes).

Cuánto ha tardado cada sentencia que actualizó la base de datos .

No contiene sentencias que no hayan modificado datos

(utilizar el registro de consultas general ) El propósito principal del registro binario es el de

actualizar la base de datos durante una operación de recuperación tan completamente como sea posible, porque el registro binario contiene todas las actualizaciones hechas tras la copia de seguridad.

Page 12: Los Ficheros de REGISTRO en Mysql

EL REGISTRO BINARIO Añade una extensión numérica al nombre del

registro binario Se incrementa cada vez que se inicia el servidor o se vuelcan

los logs Se crea un registro nuevo cuando se llega a max_binlog_size

Cuando se inicia mysql con la opción –log-bin=file-name se va escribiendo en el archivo todos los comandos SQL que actualizan datos. Si no se da ningún valor al nombre del archivo el valor por defecto es el nombre del host seguido de .bin. No hay que poner extensión al nombre del fichero

Ponerlo en my.cnf: log-bin=file-name Se pueden borrar los archivos de registro binario con

RESET MASTER y se pueden examinar con la utilidad mysqlbinlog (desde la shell) Mysqlbinlog nombreficherolog

Page 13: Los Ficheros de REGISTRO en Mysql

EL REGISTRO DE CONSULTAS LENTAS (SLOW QUERY LOG)

Cuando se inicia mysql con la opción --log-slow-queries[=file_name],  mysqld escribe un archivo de registro que contiene todos las sentencias SQL que llevaron más de long_query_time segundos para ejecutarse completamente o que no utilizaron índices. Si no indicamos nombre por defecto es host-slow.log

En my.cnf log-slow-queries=path long-query-time =1 log-queries-not-using-indexes

El registro de consultas lentas nos permite encontrar consultas que tomen excesivo tiempo y sean por tanto candidatos a optimización

El registro de consultas lentas se puede utilizar para encontrar consultas que tomen excesivo tiempo y sean por tanto candidatos a optimización.

Para hacer más sencilla la tarea de examinar un registro de consultas lentas se puede procesar el registro de consultas lentas utilizando el comando mysqldumpslow que ofrecerá un resumen de las sentencias que aparecen en el registro.

Page 14: Los Ficheros de REGISTRO en Mysql

MANTENIMIENTO DE FICHEROS DE REGISTRO (LOG) Los ficheros logs ocupan mucho espacio en el disco por lo que

deben ser eliminados con periodicidad. En algunas distribuciones linux existe un script denominado

mysql-log-rotate para esto, si no ha sido instalado automáticamente es el administrador el que debe realizar el script y programar la tarea a través de cron o similar

Se puede forzar a MySQL para que comience a utilizar archivos de registro nuevos usando mysqladmin flush-logso con la sentencia SQL FLUSH LOGS.

Una operación de volcado de registros hace lo siguiente: Si se está utilizando registro (--log) o registro de consultas lentas (--log-

slow-queries), cierra y reabre el archivo de registro (mysql.log y `hostname`-slow.log por defecto).

Si se está utilizando registro de actualizaciones (--log-update) o registro binario (--log-bin) cierra el registro, y abre un nuevo archivo de registro con un número de secuencia superior.

Si está utilizando tan solo el registro de actualizaciones, tan solo tiene que renombrar el archivo de registro y posteriormente volcar los registros antes de hacer una copia de seguridad.