Pregunta

Tengo que restaurar una base de datos que se ha CAÍDO inadvertidamente en MySQL 5.0.Al verificar los archivos de respaldo, parece que solo tengo archivos .FRM para guardar los datos de la base de datos.

¿Alguien puede decirme si esto es todo lo que necesito para realizar una restauración/importación de la base de datos desde la copia de seguridad, o si hay otros archivos que debería tener a mano para completar esto?

¿Fue útil?

Solución

Los archivos .frm no son archivos de datos, solo almacenan la "información del diccionario de datos" (consulte manuales de mysql).InnoDB almacena sus datos en archivos ib_logfile*.Eso es lo que necesita para hacer una copia de seguridad/restauración.Para más detalles ver aquí.

Otros consejos

Restaurando innodb:(suponiendo que su carpeta de datos sea C:\ProgramData\MySQL\MySQL Server 5.5\data)

  1. Copie las carpetas de las bases de datos (que llevan el nombre del nombre de la base de datos) que desea restaurar en C:\ProgramData\MySQL\MySQL Server 5.5\data
  2. Copie los 3 archivos ibdata a la carpeta de datos, ej.(C:\ProgramData\MySQL\MySQL Server 5.5\datos)

    _ib_logfile0
    _ib_logfile1
    _ibdata1
    
  3. Obtenga el tamaño de _ib_logfile0 en MB (debe ser el mismo que _ib_logfile1) haciendo clic derecho en Archivo -> Propiedades

  4. Edite el archivo de configuración mysql (mysql\bin\my.ini) para que innodb_log_file_size=343M tenga exactamente el tamaño de los archivos ibdata

  5. Correr

    mysqld --defaults-file = mysql bin my.ini-standalone --console--innodb_force_recovery

  6. Ahora sus datos deberían estar nuevamente en su base de datos.Exportarlos usando phpmysql o cualquier otra herramienta

Oh mi...estás en problemas.Cierre la base de datos.Haga una copia de seguridad del archivo innodb.Ore para que no haya hecho NADA después de eliminar la base de datos.

Los chicos de Percona (incluye a los autores de MySQL Performance Blog) deberían poder ayudarte: Soporte de emergencia Percona.

Si te aventuras por tu cuenta, lleva esto contigo: Kit de herramientas de recuperación de datos para Innodb.

¿La logística de esto?Tienes que leer cada página (la página de términos informáticos...Bloque de 16k en el caso de Innodb) y reconstruya sus datos de esa manera.Es un trabajo de muy bajo nivel (estamos hablando de abrir su editor hexadecimal y comenzar a contar bytes si el kit de herramientas no lo hace por usted), y si no es un programador con mucha experiencia, se sentirá perjudicado. .

La solución detallada que puede encontrar aquí:

http://www.unilogica.com/mysql-innodb-recovery/ (Artículo en portugués)

Además de la bandera de innodb_force_recovery, encontré otra solución: innodb_file_per_table, que divide las tablas InnoDB en cada archivo como las tablas MyISAM.

En una recuperación tras fallo puedes perder menos datos que en un solo archivo ibdata1.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top