Contenido
- Por qué se necesita InnoDB Force Recovery
- Ejecutando InnoDB Force Recovery
- La mejor alternativa de InnoDB Force Recovery
El sistema de gestión de bases de datos MySQL contiene un motor de almacenamiento llamado InnoDB. A partir de la versión 5.5, InnoDB reemplazó a MyISAM en MySQL. Ambos son motores de almacenamiento confiables para DBMS, que se diferencian en su implementación de bloqueo: InnoDB bloquea una fila en particular en la tabla y MyISAM bloquea toda la tabla MySQL. El motor de almacenamiento que se supone que debe usar una tabla se puede especificar al crear la tabla.
Por qué se necesita InnoDB Force Recovery
Si su servidor MySQL sufre un bloqueo, todo lo que necesita hacer para recuperarlo es reiniciar el servidor MySQL. En tal situación, InnoDB verificará automáticamente los registros y realizará una puesta al día de la base de datos hasta el presente. En el caso de una corrupción menor, esta estrategia puede ser suficiente y puede optar por ejecutar una instrucción SELECT para volcar las tablas de la base de datos, pero una corrupción grave puede provocar el bloqueo de la instrucción SELECT que está utilizando para intentar recuperar todos los datos que pueda. . Incluso puede causar que las operaciones en segundo plano de InnoDB se bloqueen o que la recuperación de avance de InnoDB se bloquee.
En caso de corrupción grave, por lo tanto, es recomendable utilizar la opción innodb_force_recovery. Esta opción obliga al motor de almacenamiento InnoDB a comenzar a ejecutarse mientras detiene la ejecución de las operaciones en segundo plano, para permitirle volcar las tablas de su base de datos.
Ejecutando InnoDB Force Recovery
Para ejecutar InnoDB force recovery, debe ejecutar el siguiente comando en el [mysqld] sección de su archivo de opciones antes de reiniciar el servidor:
[mysqld]
innodb_force_recovery = 1
Nota: Mientras ejecuta innodb_force-recovery, debe ocuparse de lo siguiente:
- El valor de innodb_force_recovery debe establecerse en un número mayor que 0 solo en situaciones de emergencia para permitir que InnoDB se inicie y los usuarios descarguen sus tablas.
- Antes de establecer el valor en un valor superior a 0, asegúrese de tener una copia de seguridad de su base de datos.
- Si establece innodb_force_recovery en un valor de 4 o más, puede dañar permanentemente los archivos de la base de datos.
- El valor de innodb_force_recovery es 0 de forma predeterminada, lo que permite el inicio normal de la base de datos sin recuperación forzada.
- Distinto de cero permisible para el rango de comando de 1 a 6 y un valor mayor incluye la funcionalidad de valores menores.
Después de ejecutar innodb_force_recovery con un valor de 3 o menos, si puede volcar las tablas de la base de datos, sus tablas seguirán estando seguras, ya que solo se perderán algunos de los datos de las páginas corruptas. Sin embargo, si se le presiona para ejecutar el comando con un valor de 4 o superior, corre un alto riesgo de pérdida de datos, ya que los archivos de datos pueden corromperse permanentemente. Por lo tanto, es recomendable que use una configuración de 4 o superior en una instancia de servidor de producción solo si la probó con éxito en una copia física separada de su base de datos. Además, casi nunca se debe usar una configuración de 6 ya que después de su ejecución se considera que las páginas de la base de datos están en un estado obsoleto.
Debido a esto, MySQL como medida de seguridad hace que su motor InnoDB impida las operaciones INSERTAR, ELIMINAR o ACTUALIZAR en caso de que innodb_force_recovery se esté ejecutando con una configuración mayor que 0.
De las descripciones anteriores, está claro que ejecutar innodb_force_recovery a menudo está lleno de riesgos. Y si no se ejecuta, en situaciones de corrupción grave de la base de datos MySQL, la recuperación puede volverse muy difícil. Este escenario presenta la necesidad de un mecanismo alternativo para la recuperación de bases de datos MySQL dañadas, que no es tan riesgoso ni tan exigente desde el punto de vista técnico como innodb_force_recovery.
La mejor alternativa de InnoDB Force Recovery
En la actualidad, la alternativa más viable y eficiente a InnoDB Force Recovery es Reparación estelar para MySQL . Este software avanzado repara la base de datos MySQL corrupta y permite la recuperación segura de todos los objetos de la base de datos inaccesibles en su formato original. Una de las capacidades principales del producto incluye la reparación de tablas InnoDB y MyISAM de la base de datos MySQL.
Impulsada por algoritmos avanzados y una GUI interactiva, esta herramienta hace que sea extremadamente simple restaurar claves, tablas, propiedades de tablas, tipos de datos, vistas y disparadores de archivos de base de datos corruptos de MySQL.
Así es como puede usar este software para reparar la base de datos MySQL:
- Descargue, instale y ejecute Stellar Repair para MySQL

- Desde la pantalla principal del software, seleccione la base de datos a reparar

- Haga clic en Aceptar para iniciar el proceso de reparación.
- Una vez que se complete el escaneo, todos los objetos recuperables se enumerarán en el panel izquierdo del software. Puede seleccionar cualquier objeto para obtener una vista previa desde aquí

- Para guardar la base de datos reparada, haga clic en el botón Guardar del menú principal
- Elija un formato de salida de MySQL, CSV, HTML y XLS

- Cuando se le solicite, proporcione la información de inicio de sesión del usuario y haga clic en Guardar para continuar

En resumen
Ahí lo tiene, la forma más sencilla de reparar y restaurar una base de datos MySQL corrupta. Aunque InnoDB suele ser una técnica eficaz para realizar la tarea, está llena de riesgos. Por lo tanto, optar por una opción probada y sin riesgos como una herramienta de recuperación de MySQL automatizada es la mejor solución.