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

Las mejores formas de reparar la tabla InnoDB corrupta en MySQL

Resumen:  En esta publicación, analizaremos algunas de las mejores formas de reparar una tabla InnoDB corrupta en MySQL, que puede corromperse debido a una falla de hardware, un bloqueo del servidor MySQL y otras razones. Estas formas comprenden un procedimiento paso a paso para reparar la tabla InnoDB corrupta manualmente o mediante el uso del software de reparación MySQL.

A partir de la versión 5.5 de MySQL, InnoDB se utiliza como motor de almacenamiento predeterminado para todas las tablas nuevas en una base de datos MySQL. Lo mejor de InnoDB es que admite la recuperación de fallas. Por lo tanto, no puede corromperse fácilmente, pero cuando lo hace, puede ocurrir debido a un bloqueo del servidor MySQL después de un reinicio, falla del hardware o errores en la plataforma subyacente, etc.

Cuando una tabla de InnoDB se corrompe, los datos que contiene se vuelven ilegibles e inaccesibles. Y, un intento de leer de una tabla corrupta puede hacer que el servidor MySQL se bloquee.

¿Cómo reparar una tabla InnoDB corrupta en MySQL?

Nota: Antes de intentar reparar la tabla InnoDB dañada, primero asegúrese de hacer una copia de seguridad de sus archivos de base de datos MySQL.

Las siguientes son las formas en que puede reparar la tabla de base de datos corrupta de InnoDB

1. Reparar tabla InnoDB corrupta manualmente

Rara vez necesitará reparar las tablas de InnoDB, ya que el motor de almacenamiento ayuda a realizar la recuperación de fallas que puede solucionar la mayoría de los problemas una vez que se reinicia el servidor. Sin embargo, puede surgir una situación en la que necesite reconstruir o reparar manualmente una tabla corrupta. Así es como puedes hacerlo:

Paso 1:reiniciar el servicio MySQL

Reinicie el Servicio MySQL, para verificar si puede acceder al servidor, realizando lo siguiente:

  1. Abra la ventana Ejecutar haciendo clic en "Windows+R" llaves juntas.
  2. Escriba msc y pulsa Intro .
  3. De los Servicios ventana, busque Servicio MySQL y haga clic derecho sobre él, y luego haga clic en reiniciar .

Si se puede acceder al servidor, salte al Paso 3. Pero si no se inicia o continúa fallando, use la opción innodb_force_recovery que se explica en el siguiente paso.

Paso 2:Forzar la recuperación de InnoDB

Habilite la innodb_force_recovery opción en el archivo de configuración MySQL my.cnf para recuperar el acceso a la base de datos MySQL y su tabla corrupta. Para hacerlo, sigue estos pasos:

  • Abra el archivo my.cnf y agregue la siguiente línea de código en la sección [mysqld]:
[mysqld]
Innodb_force_recovery=1

  • Guarde y cierre el archivo de configuración.
  • Intente reiniciar el servicio MySQL nuevamente.

Paso 3:Elimina la tabla corrupta

Una vez que pueda acceder a la tabla corrupta, descargue los datos de la tabla en un nuevo archivo usando el siguiente comando mysqldump:

mysqldump –u user –p db_name table_name > single_dbtable_dump.sql

Nota: Agregue el nombre de la tabla separado por espacios en blanco en el comando anterior para volcar varias tablas.

Ahora, suelte la tabla corrupta de la base de datos:

mysql –u user –p –execute=”DROP TABLE db_name.table_name”


Paso 4:restaurar la tabla

Utilice el archivo de volcado recién creado para restaurar la tabla desde el archivo de volcado (es decir, single_dbtable_dump):

mysql –u user –p < single_dbtable_dump.sql

Paso 5:reiniciar MySQL en modo normal

Cuando se repare la tabla dañada, detenga el servicio MySQL y deshabilite el modo de recuperación de InnoDB ingresando la siguiente línea en la sección [mysqld]:

#innodb_force_recovery=...

Ahora reinicie el servicio MySQL en modo normal.

Nota: Si no ha utilizado la opción innodb_force_recovery, simplemente detenga y reinicie el servidor en modo normal.

2. Corrija la tabla InnoDB dañada mediante el uso del software de reparación MySQL

El uso de un valor de 'innodb_force_recovery' superior a 4 para recuperar el acceso a la base de datos puede provocar daños en los datos. Además, en casos de corrupción grave, es posible que no reinicie su servidor MySQL. Puede superar estas limitaciones de reparar manualmente la tabla corrupta de la base de datos MySQL utilizando un software de reparación de MySQL especializado. como Stellar Repair para MySQL.

El software puede reparar y restaurar tablas InnoDB de la base de datos MySQL mientras mantiene sus datos intactos. Además, ayuda a recuperar propiedades de tablas, claves, restricciones de relaciones, etc.

Esta utilidad de reparación de bases de datos MySQL ayuda a reparar tablas InnoDB y MyISAM creadas en sistemas basados ​​en SO Windows y Linux.

Los pasos para reparar la tabla InnoDB corrupta usando el software son los siguientes:

  1. Descargar, instalar y ejecutar Stellar Repair for MySQL de forma gratuita
  2. Desde Seleccionar carpeta de datos cuadro de diálogo, seleccione la versión de MySQL que está utilizando y luego haga clic en Aceptar .
  3. Desde la Seleccionar base de datos seleccione la base de datos que desea reparar y luego haga clic en Reparar .
  4. Se muestra una vista previa de la base de datos reparada, la tabla y otros componentes recuperables en la ventana de vista previa del software.
  5. Seleccione las tablas que desea restaurar y luego haga clic en Guardar en el menú Archivo.
  6. Desde Guardar base de datos cuadro, seleccione MySQL en Guardar como e ingrese las credenciales requeridas para conectarse al servidor. Haz clic en Guardar .

Puede encontrar el archivo de base de datos reparado en una nueva carpeta en la misma ubicación donde se almacena su base de datos original.

Puede encontrar el archivo de base de datos reparado en una nueva carpeta en la misma ubicación donde se almacena su base de datos original.

Conclusión

La corrupción en la tabla InnoDB puede hacer que los datos que contiene sean ilegibles y, si no se trata a tiempo, puede incluso provocar un bloqueo del servidor y un tiempo de inactividad no planificado. Puede reparar la tabla corrupta de InnoDB siguiendo el procedimiento paso a paso manual. Sin embargo, el proceso manual para reparar las tablas de InnoDB puede provocar la pérdida de datos y es posible que no brinde el resultado esperado.

Sin embargo, al usar una herramienta de reparación de bases de datos MySQL como Stellar Repair for MySQL, puede reparar tablas en el motor de almacenamiento InnoDB y restaurarlas a su estado funcional original. Esta utilidad de reparación de archivos ayuda a reparar la base de datos MySQL creada en los sistemas operativos Windows y Linux. No solo puede reparar tablas InnoDB, sino que también puede reparar la corrupción en las tablas MyISAM de la base de datos MySQL.