El blog también explicará cómo el software de reparación de MySQL puede ayudar cuando usted es incapaz de reparar y restaurar la base de datos.
La corrupción de bases de datos en MySQL Server, si no se maneja adecuadamente o no se resuelve a tiempo, puede conducir a importantes tiempos de inactividad y pérdida de datos.
Por desgracia, es posible que ni siquiera se dé cuenta de que su servidor MySQL se ha vuelto corrupto, hasta que el servidor acceda a una tabla corrupta o el servidor se apague.
¿Qué causa la corrupción de la base de datos en el servidor MySQL?
Las siguientes son algunas de las razones comunes detrás de la corrupción de base de datos MySQL Server:
- Fallo del hardware del servidor.
- El proceso MySQL muere en medio de la escritura en el disco.
- El software de terceros para acceder a la base de datos se bloquea inesperadamente.
- Usuarios intentando mover manualmente archivos de bases de datos en el directorio de datos MySQL (o datadir).
- Errores en el software del servidor MySQL.
Además de estas razones, la corrupción de la base de datos también depende de si está utilizando el motor de almacenamiento MyISAM o InnoDB. Esto se debe a que las tablas MyISAM son más susceptibles a la corrupción.
¿Qué hacer cuando la base de datos MySQL se corrompe?
Normalmente, cuando la base de datos MySQL se corrompe, se recomienda restaurarla desde la última copia de seguridad buena conocida. Pero si usted no tiene la copia de seguridad, la realización de operaciones de recuperación puede ayudar a solucionar la corrupción de base de datos MySQL.
Incluso si la copia de seguridad está disponible, intentar la recuperación puede ser una mejor opción, ya que toma menos tiempo en volver a tener la base de datos en línea.
Pasos para solucionar la corrupción de la base de datos MySQL
Intente resolver la corrupción de la base de datos siguiendo los pasos en la secuencia indicada a continuación:
NOTA: Estos pasos sólo funcionarán si el servidor de bases de datos MySQL está en funcionamiento. Pero, si el servicio MySQL deja de funcionar (se ha bloqueado) y no puede iniciar sesión en el cliente de línea de comandos MySQL, la única opción que le queda es restaurar la base de datos a partir de una buena copia de seguridad conocida. Si no hay copia de seguridad, el uso de un software especializado de reparación de MySQL puede ayudar.
Paso 1 – Haga una copia de seguridad de su base de datos
Antes de intentar reparar la base de datos corrupta, asegúrese de hacer primero una copia de seguridad de los archivos de la base de datos.
Aunque la base de datos ya esté corrupta, hacer una copia de seguridad ayudará a minimizar el riesgo de que se produzcan más daños, que pueden ser causados debido a una operación de recuperación.
Para hacer una copia de seguridad de todos los archivos db, sigue estos pasos:
- Detenga el servidor MySQL.
- Crea una copia de seguridad de tu datadir.
Paso 2 – Restablecer la base de datos en modo de recuperación
NOTA: Si MySQL Server utiliza MyISAM como motor de almacenamiento predeterminado, vaya al Paso 3 para conocer el proceso de reparación de la base de datos corrupta.
Si InnoDB es el motor de almacenamiento por defecto de MySQL Server, en algunos casos de corrupción de la base de datos, simplemente volcar, eliminar y volver a crear una o unas pocas tablas corruptas le funcionará. Para ello, utilice la sentencia CHECK TABLE para comprobar las tablas que están corruptas.
Lea esto: Cómo reparar tabla de base de datos MySQL sin tiempo de inactividad?
Si la corrupción de la base de datos es grave, es probable que tenga problemas al iniciar su servidor MySQL. En tal caso, forzar la recuperación de InnoDB puede ayudar a iniciar MySQL.
Para utilizar la opción ‘innodb_force_recovery’, siga estos pasos:
- Abra el archivo de configuración de MySQL y añada la siguiente línea de código a la sección [mysqld] antes de reiniciar el servidor:
NOTA: El valor de innodb_force_recovery es ‘0’ por defecto. Sin embargo, para iniciar InnoDB y volcar tablas MySQL, deberá establecer el valor en ‘1’ e incrementar el valor de forma incremental (de 1 a 6).
Sin embargo, tenga en cuenta que establecer el valor de la opción innodb_force_recovery en 4 o superior aumenta las posibilidades de corrupción de datos.
[mysqld]
innodb_force_recovery=1
- Guarde y cierre el archivo de configuración de MySQL y, a continuación, intente reiniciar de nuevo el servicio MySQL.
- Si puedes iniciar MySQL, vuelca todas tus bases de datos MySQL en un único archivo utilizando el siguiente comando:
mysqldump -u[usuario] -p[contraseña] –all-databases > all_databases.sql
NOTA: El archivo de volcado de este ejemplo se llama all_databases.sql. Pero, puedes cambiarlo por el que quieras.
- A continuación, desactive el modo de recuperación InnoDB. Para hacerlo, comente la siguiente línea en la sección [mysqld]:
#innodb_force_recovery=…
- Guarde los cambios en el archivo de configuración y, a continuación, inicie el servidor MySQL.
- Restaure las bases de datos a partir del volcado (archivo de copia de seguridad) que ha creado en el paso 3:
mysql> source todas_las_bases_de_datos.sql
Lea sobre: Las mejores formas de reparar la corrupción de tablas InnoDB en MySQL.
Paso 3 – Reparación de tablas MyISAM con myisamchk
Ejecute el comando myisamchk para reparar las tablas MyISAM siguiendo estos pasos:
NOTA: El comando myisamchk no funciona para las tablas que utilizan el motor InnoDB.
- Detenga el servidor MySQL.
- Utilice el siguiente comando para comprobar las tablas corruptas:
MESA myisamchk
- Para comprobar todas las tablas de una base de datos corrupta, escriba el siguiente comando:
myisamchk *.MYI
- Intente reparar una tabla corrupta ejecutando el siguiente comando:
myisamchk -recover TABLA
- Inicie el servidor MySQL.
Consulte este enlace para obtener información detallada sobre “Cómo reparar una tabla MyISAM con myisamchk”.
¿Y si nada funciona?
Si los pasos de solución de problemas no logran resolver el problema, utilice el software Stellar Repair for MySQL para reparar la base de datos corrupta y restaurar todos sus objetos. El software puede reparar bases de datos MySQL en sistemas Windows y Linux.
Algunas razones por las que debería utilizar el software Stellar Repair for MySQL
- Repara tablas db MySQL que utilizan motores de base de datos InnoDB (.frm, .ibdata, .idb) y MyISAM (.frm, .myd, .myi).
- Repara por lotes varias bases de datos MySQL en un solo proceso.
- Recupera todos los objetos de la base de datos, como claves, tablas, propiedades de tablas, tipos de datos, vistas y disparadores.
- Previsualiza los objetos recuperables de la base de datos.
- Permite guardar la base de datos reparada en varios formatos de archivo, como MySQL, CSV, HTML y XLS.
- Compatible con MySQL 8.x, 6.x, 5.x, 4.x y 3.x.
Pasos para reparar una base de datos MySQL corrupta con el software Stellar Repair for MySQL
Requisitos previos:
- La ubicación del archivo ‘ibdata’ debe ser exactamente la misma que la de la base de datos MySQL.
- Asegúrese de que la unidad de destino tiene suficiente espacio libre para almacenar todas las bases de datos MySQL recuperadas.
- MySQL debe estar instalado en su sistema.
Paso 1: Descargue, instale y ejecute el software Stellar Repair for MySQL.
Paso 2: En la ventana Seleccionar carpeta de datos, seleccione la versión de MySQL que esté utilizando.
Figura 1- Ventana de selección de la carpeta de datos
Paso 3: Aparece la ventana Seleccionar base de datos. Seleccione la base de datos que desea reparar.
Figura 2- Ventana de selección de base de datos
Paso 4: Haga clic en Reparar para iniciar el proceso de reparación.
Paso 5: Cuando aparezca el cuadro de diálogo Reparación Completa, haga clic en Aceptar.
Paso 6: El software muestra una vista previa de la base de datos reparada y sus componentes recuperables.
Figura 3 – Ventana de vista previa
Paso 7: Haga clic en Guardar en el menú Archivo para guardar la base de datos reparada.
Figura 4 – Menú Archivo
Paso 8: En la ventana Guardar base de datos, elija el formato de archivo MySQL y, a continuación, haga clic en Guardar.
Figura 5 – Ventana Guardar base de datos
Paso 9: Cuando aparezca el mensaje “Proceso de guardado completado”, haga clic en Aceptar.
Figura 6 – Guardar mensaje completo
La base de datos reparada se guardará en la ubicación seleccionada.
Nota final
Cuando se trata de resolver la corrupción de base de datos en el servidor MySQL, la ejecución de los pasos de solución de problemas discutidos en este post puede ayudarle a solucionar el problema.
Pero, si no es un experto en el manejo de la corrupción de bases de datos o tiene una base de datos de gran tamaño (con gigabytes o terabytes de datos), es posible que no pueda restaurar la base de datos corrupta con las opciones de reparación y recuperación. Además, las opciones de recuperación como innodb_force_recovery establecidas en un valor de 4 o superior pueden provocar la corrupción de los datos.
Una alternativa mejor es utilizar un software de reparación de MySQL especialmente diseñado para reparar una base de datos corrupta fácilmente, en el formato original.
Was this article helpful?