2010-04-08 17 views
19

Supongamos que los siguientes archivos de MySQL se han restaurado desde una cinta de copia de seguridad:¿Cómo puedo volver a crear una tabla MySQL InnoDB desde un archivo .ibd?

  • tablename.frm
  • tablename.ibd

Por otra parte, supongamos que la instalación de MySQL se ejecuta con innodb_file_per_table y que la base de datos estaba limpia cierre con mysqladmin shutdown.

Dada una nueva instalación de la misma versión de MySQL de la que se tomaron los archivos MySQL restaurados, ¿cómo importo los datos from tablename.ibd/tablename.frm a esta nueva instalación?

+0

No estoy seguro de que sea posible, ya que incluso cuando innodb está usando un archivo por tabla, todavía hay algo de basura en el archivo idbdata central que está vinculado a las tablas existentes. –

+0

Omry: Técnicamente debería ser posible AFAIK. Por favor, siéntase libre de probar que estoy equivocado :-) – knorv

+3

Esto no pertenece aquí, no está relacionado con la programación. Ir al intercambio de DBA. Ya hay varias preguntas similares ... http://dba.stackexchange.com/questions/16875/mysql-how-to-restore-table-stored-in-a-frm-and-a-ibd-file – Cylindric

Respuesta

-1

Si simplemente reemplaza los archivos existentes desde la cinta, ejecute CHECK TABLE (http://dev.mysql.com/doc/refman/5.6/en/check-table.html) y vea si funciona.

Si la tabla no existe, intente con las siguientes opciones.

  • crear la tabla en línea de MySQL
  • recaída del .idb archivo y el archivo .frm
  • Run CHECK TABLE
-1

Esto no puede funcionar en todos los casos. Pero sí, está funcionando en algún caso ...

Primero pare todos los servicios relacionados con wamp o xampp que utilice.

a continuación, copiar y pegar el tablename.frm, tablename.ibd

archivos bajo mysql/data/BASE DE DATOS Nombre de carpeta. luego reinicie todos los servicios. la tableta creada bajo esa base de datos.

+0

Solo puede hacer eso con el tipo de tabla MyISAM (tablename.frm tablename.MYD tablename.MYI) InnoDB solo mostrará los nombres de la tabla sin contenido. El tipo de tabla InnoDB es completamente complejo. enlace de ayuda: http://stackoverflow.com/questions/5745221/import-frm-and-opt-files-to-mysql –

3

Algo similar se responde aquí. por favor una mirada https://stackoverflow.com/a/10943833/3985205

Si esto es posible. No es suficiente que solo copie los archivos .frm a la carpeta databse, pero también debe copiar el archivo ib_logfiles y ibdata en su carpeta de datos. Acabo de copiar los archivos .frm y copiar esos archivos y simplemente reiniciar el servidor y mi base de datos se restaura.

0

I publicado la solución correcta cuando se le cayó y ib_logfilesibdata archivo y usted tiene sólo .frm y .idb archivos.

favor, eche un vistazo a mi comentario en este enlace:

Restore table structure from frm and ibd files

Esto funcionará para usted, también.

Gracias.

Cuestiones relacionadas