Uno de los problemas que nos podemos encontrar en el mantenimiento de una base de datos, es que las tablas puedan resultar dañadas en algún momento con el desarrollo de la actividad normal de la empresa.
Es necesario tener en cuenta que además de fallos de hardware, interrupciones de corriente, cierre indebido del servidor, y otras circunstancias que ya hemos mencionado; distintas personas van a acceder a los datos y se pueden producir fallos por descuidos o porque estos usuarios tengan distintos niveles de conocimientos con relación al tratamiento de los datos.
Vamos a tratar ahora la detección y resolución de problemas con las tablas, independientemente de cómo surjan esos problemas.
Para verificar y reparar las tablas de nuestra base de datos con MySQL, podemos utilizar distintas herramientas:
- Las utilidades myisamchk y mysqlcheck, para tablas de tipo MyISAM.
- Mediante sentencias SQL que podemos ejecutar directamente o mediante una interfaz denominada <b>mysqlcheck</b>.
La ventaja de utilizar las sentencias directamente es que el trabajo lo hace el servidor y con <b>mysqlcheck</b> tendremos que asegurarnos que el servidor no utiliza las tablas a la vez, provocando interferencias.
Las sentencias para el mantenimiento de tablas en MySQL las clasificamos en función del tipo de tablas a las que se pueden aplicar; ya que nos vamos a encontrar con que en algunos casos sólo pueden utilizarse con tablas de tipo MyISAM y en otros casos con varios tipos de tablas como MyISAM e InnoDB (y BDB), que son las más utilizadas:
Sentencias de mantenimiento para tablas MyISAM.
Para otros tipos de tablas (MyISAM, InnoDB, BDB), etc.
- ANALYZE TABLE
- CHECK TABLE
- OPTIMIZE TABLE
El procedimiento general para detectar los daños de la tabla y corregirlos es el siguiente:
- Verificar la tabla en busca de errores. Si no tiene errores el proceso habrá terminado.
- Hacer copias de los archivos de la tabla antes de empezar a repararla, por si algo sale mal.
- Intentar reparar la tabla.
- Si la reparación falla, restaurar la tabla desde las copias de seguridad y los ficheros log.
Partimos de que hemos realizado copia de seguridad de la base de datos y que está habilitado el uso del log.