Cargando



Detectar y reparar tablas de base de datos Mysql dañada

Se os va a mostrar cómo reparar y detectar errores en una base de datos MySQL. El uso de aplicaciones para repararlas entre otras técnicas posibles.


may 21 2015 17:48
Avanzado
Cuando tenemos una base de datos o tabla MySQL que se corrompe, podemos utilizar la herramienta mysqlcheck para repararlo desde una ventana de terminal, sino podemos acceder de otra manera al servidor. Supondremos un servidor con Linux instalado.

La herramienta Mysqlcheck se encarga de comprobar, reparar, optimizara y analizar una o varias tablas del servidor mysql para detectar si existe algún problema.

Veamos algunos ejemplos sobre como utilizar la herramienta Mysqlcheck. Si una tabla se encuentra dañada o con algún problema, mostrará un mensaje de error.

Para utilizar la herramienta deberemos posicionarnos en el directorio bin donde tengamos instalado mysql, si no sabemos donde esta podemos buscarlo desde la terminal con el comando:
whereis mysql

Comprobar todas las tablas de una base de datos


El comando para ello es:
./mysqlcheck -c basededatos -u usuario -p, la opcion -c indica chequear
Aquí comprobamos todas las tablas de phpmyadmin utilizando el siguiente comando:
./mysqlcheck -c phpmyadmin -u root -p

mysqlcheck.jpg


Comprobar una tabla de una base de datos determinada


Para comprobar todas las tablas de una base de datos particular, especificamos la base de datos y el nombre de tabla.

Comprobamos una tabla wp_post de una base de datos unlinkwp de un sitio web realizado en Wordpress:
./mysqlcheck -c unlinkwp wp_posts -u root -p

mysqlcheck2.jpg


Comprobar todas las tablas de todas las bases de datos


Para comprobar todas las tablas y todas las bases de datos debemos utilizar el parametro -all-databases, junto con la opción -c, como se muestra a continuación:
./mysqlcheck -c  -u root -p –all-databases

mysqlcheck3.jpg


Combinar las opciones de comprobación, optimización y reparación de tablas. Después de la comprobación, podemos reparar las tablas dañadas con el comando --auto-repair

Por ejemplo comprobar y reparar todas las tablas de todas las bases de datos
./mysqlcheck -u root -p --auto-repair -c -o –all-databases
Tambien es posible combinar otras funcionalidades como optimizar y la funcionalidad de reparación juntos usando la opción -o (optimizar).

Si queremos información de la ejecución y tiempo de uso de CPU de las comprobaciones podemos añadir el parámetro –debug-info que irá recolectando información mientras se está comprobando, añadir el debug-info, como se muestra a continuación. Esto es muy útil si tenemos muchas tablas y bases de datos.
mysqlcheck --debug-info -u root -p –all-databases
Si quisiéramos utilizar la herramienta para hacer mantenimiento y optimización automática de las bases de datos que tenemos en el servidor, podemos programar una tarea con cron para que ejecute el comando.
Por ejemplo ejecutar el comando de comprobación y optimización todos los dias a las 5 AM.

Para ello desde la terminal ejecutamos el comando crontab -e y añadimos la siguiente linea de código:
0		 5	  *	   *	   *	   mysqlcheck -c -o -u usuario -pClave > /dev/null 2>&1
También podemos crear una serie de comandos para el mantenimiento de la base de datos que incluya:
  • Comprobar
  • Optimizar
  • Analizar
  • Reparar
  • Backup de la base de datos.
./mysqlcheck -u root -p --check --databases basededatos_a_chequear

./mysqlcheck -u root -p --optimize --databases basededatos_a_optimizar

./mysqlcheck -u root -p --analyze --databases baededatos_a_analizar

./mysqldump -u root -p --create-options --routines --triggers basededatos > ./backup.sql
Otra opción es hacer todo en una sola línea de código como mostramos anteriormente:
./mysqlcheck -u root -p --auto-repair -c -o -a –all-databases

./mysqldump -u root -p --create-options --routines --triggers basededatos > ./backup.sql
Es importante tener en cuenta que si ponemos estos comandos en un evento cron, la ejecución automática puede consumir muchos recursos tanto de procesador como de memoria RAM y provocar que el servidor quede fuera de servicio.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X