%3A%20faltan%20archivos%20.frm%20pero%20ibdata%20intacto.png)
Un fiasco reciente en el servidor me dejó con un archivo ibdata aparentemente intacto, pero solo la mitad de mis directorios que contienen .frm. Copié todo esto en una nueva instalación de MySQL y recuperé con éxito las bases de datos para las que todavía tenía archivos .frm. Mi pregunta es: ¿es posible regenerar los archivos .frm desde el archivo ibdata de alguna manera? ¿O modificar de alguna manera los archivos .frm de la versión de desarrollo de la misma base de datos para que puedan usarse para la recuperación?
Lamentablemente, restaurar desde una copia de seguridad no es una opción viable.
Editado para aclarar: intenté recuperar las bases de datos utilizando archivos .frm generados localmente que contienen el mismo esquema, sin dados, incluso en innodb_force_recovery = 1.
Respuesta1
En realidad, nunca he hecho esto, pero tu pregunta se relaciona con las herramientas que uso, ¡así que tenía curiosidad! Parece que esto es realmente posible, aquí hay un ejemplo:
http://www.chriscalender.com/?p=28
Es posible que en algún momento necesites recuperar una tabla cuando todo lo que tienes es el archivo .ibd. En este caso, si intenta cargarlo en una nueva instancia, es probable que encuentre algunos errores acerca de que la identificación de la tabla no coincide. Y realmente no hay manera de evitar esto.
Sin embargo, encontré dos soluciones para esto:
Nota: Necesitará el archivo .ibd y la instrucción CREATE TABLE para cada tabla que desee recuperar utilizando estos métodos.
- Simule el contador interno de la tabla InnoDB. Es decir, cree tablas de trabajo (con innodb_file_per_table habilitado) hasta que tenga el puntero interno de la identificación de la tabla igual a (1 – id_of_ibd_table_you_need_to_restore). (Ver Método #1)
- Edite manualmente en hexadecimal el archivo .ibd, cambiando la identificación de la tabla. (Ver Método #2)
Los pasos en sí tienen varias páginas, por lo que no los he pegado aquí.
Otro post relacionado:http://www.mysqlrendimientoblog.com/2011/05/13/connecting-orphaned-ibd-files/
Tendré curiosidad por saber si funciona, parece que varias personas lo han utilizado con éxito.