Saltar al contenido

Restaurar la estructura de la tabla desde archivos frm e ibd

Hola usuario de nuestro sitio web, encontramos la respuesta a lo que estabas buscando, has scroll y la verás aquí.

Solución:

Restauré la mesa de solo .frm y .idb archivos

Obtenga la consulta SQL para crear las tablas

Si ya conoce el esquema de sus tablas, puede omitir este paso.

  1. Primero, instale las utilidades de MySQL. Entonces puedes usar mysqlfrm comando en el símbolo del sistema (cmd).

  2. En segundo lugar, obtenga las consultas SQL de .frm archivos usando mysqlfrm mando:

    mysqlfrm --diagnostic /example_table.frm
    

Luego puede obtener la consulta SQL para crear la misma tabla estructurada. Me gusta esto:

CREATE TABLE `example_table` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(150) NOT NULL,
  `photo_url` varchar(150) NOT NULL,
  `password` varchar(600) NOT NULL,
  `active` smallint(6) NOT NULL,
  `plan` int(11) NOT NULL,
PRIMARY KEY `PRIMARY` (`id`)
) ENGINE=InnoDB;

Crear las tablas

Cree la(s) tabla(s) utilizando la consulta SQL anterior.

Si los datos antiguos aún existen, es posible que primero deba eliminar la base de datos y las tablas respectivas. Asegúrese de tener una copia de seguridad de los archivos de datos.

restaurar los datos

Ejecute esta consulta para eliminar los nuevos datos de la tabla:

ALTER TABLE example_table DISCARD TABLESPACE;

Esto elimina las conexiones entre el nuevo .frm archivo y el (nuevo, vacío) .idb expediente. Además, elimine el .idb archivo en la carpeta.

Luego, pon el viejo .idb archivo en la nueva carpeta, por ejemplo:

cp backup/example_table.ibd /example_table.idb

Asegúrese de que el .ibd Los archivos pueden ser leídos por el mysql usuario, por ejemplo, ejecutando chown -R mysql:mysql *.ibd en la carpeta.

Ejecute esta consulta para importar datos antiguos:

ALTER TABLE example_table IMPORT TABLESPACE;

Esto importa datos de la .idb y restaurará los datos.

InnoDB necesita los archivos ib_log para la recuperación de datos, pero también necesita el archivo ibdata1 que contiene el diccionario de datos y, a veces, contiene datos pendientes para las tablas.

El diccionario de datos es una especie de sistema duplicado que registra la estructura de la tabla y también hace coincidir una identificación de tabla con el archivo .ibd físico que contiene los datos de la tabla.

No puede simplemente mover archivos .ibd sin el diccionario de datos InnoDB, y el diccionario de datos debe coincidir con la identificación de la tabla que se encuentra dentro del archivo .ibd. Tú lata vuelva a adjuntar un archivo .ibd y recupere los datos, pero el procedimiento no es para los débiles de corazón. Consulte http://www.chriscalender.com/recovering-an-innodb-table-from-only-an-ibd-file/

Puede recuperar la estructura utilizando los archivos .frm con algunos trucos de archivos, pero al principio no podrá crearlos como tablas InnoDB. Aquí hay un blog que cubre un método para recuperar archivos .frm como tablas MyISAM: http://www.percona.com/blog/2008/12/17/recovering-create-table-statement-from-frm-file/

No podrá usar PMA para esto. Necesita acceso de superusuario al directorio de datos en el servidor.

Puede recuperar la estructura de la tabla de los archivos .frm y los datos de los archivos ibd.

Usando la herramienta mysqlfrm que es parte de MySQL Utilities

shell> mysqlfrm --diagnostic myfile.frm

Vuelva a crear la tabla en una base de datos del mismo nombre utilizando la estructura de la tabla.

mysql> CREATE mytable (int i);

Deseche el tablespace de la tabla recién creada.

mysql> ALTER TABLE mytable DISCARD TABLESPACE;

Copie el archivo .idb huérfano de su directorio de respaldo al nuevo directorio de la base de datos. Asegúrese de que el archivo .ibd tenga los permisos de archivo necesarios.

Importe el archivo .ibd huérfano. Se emite una advertencia que indica que InnoDB intentará importar el archivo sin verificación de esquema.

mysql> ALTER TABLE r IMPORT TABLESPACE;SHOW WARNINGS;

Eres capaz de estimular nuestra tarea dejando un comentario o dejando una valoración te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *