sql >> Base de Datos >  >> RDS >> Mysql

Verifique y optimice la base de datos MySQL automáticamente con Crontab/Cron

MySQL es un sistema de base de datos gratuito pero potente muy popular. Pero incluso en grandes bases de datos, las tablas pueden fragmentarse con sobrecarga debido a la actualización continua, o eliminar e insertar operaciones en los datos almacenados en la base de datos. Además, también existe la posibilidad de que las bases de datos se corrompan. Por lo tanto, realizar un control de salud en la base de datos y optimizar el servidor MySQL regularmente es una tarea importante.

Es un poco problemático si los administradores de la base de datos tienen que iniciar sesión en el servidor o iniciar phpMyAdmin para optimizar las bases de datos una por una o tabla por tabla manualmente. A veces, el administrador de la base de datos puede simplemente olvidarse de hacer el trabajo o establecer la frecuencia de optimización en tiempos menores. Se recomienda comprobar todas las tablas de las bases de datos MySQL al menos una vez al día en un servidor ocupado.

Es posible automatizar la optimización del proceso MySQL usando la función crontab en Linux/Unix/CentOS/FreeBSD. El trabajo cron para verificar y optimizar las bases de datos MySQL se puede crear utilizando la utilidad de cliente mysqlcheck junto con la instalación de MySQL. El cliente mysqlcheck puede verificar, reparar, optimizar y analizar tablas en la base de datos MySQL.

Para crear un nuevo trabajo cron, inicie sesión en el servidor como root o cualquier otro usuario y luego edite el archivo crontab (en la mayoría de los sistemas operativos, crontab -e abrirá el archivo crontab en el editor de texto predeterminado) para agregar la siguiente línea de texto. Para los usuarios que usan cPanel, haga clic en "Cron job", donde puede configurar crontab a intervalos diarios, por hora y otros. Los webmasters experimentados también pueden configurar un archivo crontab en rc.hourly o rc.daily u otro directorio cron. Tenga en cuenta que si inicia sesión como MySQL o usuario normal sin privilegios de acceso a todas las bases de datos, no es posible optimizar todas las bases de datos, a menos que se especifique el ID de usuario y la contraseña para root como en el ejemplo a continuación.

0 1 * * * mysqlcheck -Aao --auto-repair -u root -p[password] > /dev/null

La declaración anterior tiene una sintaxis similar a “mysqlcheck [opciones] –todas las bases de datos”, donde el parámetro –todas las bases de datos es la acción predeterminada si no se especifica ninguna base de datos, por lo que se puede omitir. El comando ejecutará el cliente mysqlcheck para analizar y optimizar automáticamente todas las bases de datos a la 1 am todos los días. Tenga en cuenta que no hay espacio entre -p y su contraseña para root. Puede cambiar el tiempo de ejecución según sus preferencias y también cambiar las opciones para el comando mysqlcheck. Si solo desea verificar y optimizar ciertas bases de datos o ciertas tablas sin la base de datos, use la siguiente sintaxis:

mysqlcheck [options] db_name [tables]
mysqlcheck [options] --databases DB1 [DB2 DB3...]

Es posible que desee eliminar el interruptor de reparación automática del comando anterior, ya que una operación de reparación de tablas puede causar la pérdida de datos en algunas circunstancias, las causas de la operación incluyen, entre otros, errores del sistema de archivos. Para aquellos que han cambiado el conjunto de caracteres y la intercalación de las bases de datos MySQL, es posible que también deban usar la opción –default-character-set. Puede encontrar más información sobre todos los interruptores disponibles y las opciones disponibles aquí.