Restauración de Archivos y Tablas de Base de Datos MySQL
Lea, cómo recuperar la base MySQL perdida o eliminada. Cómo restaurar las tablas dañadas de la base MySQL utilizando myisamchk. La base de datos MySQL en forma predeterminada se instala en el ordenador en la carpeta en el disco C:
C:\Program Files\MySQL\MySQL Server 5.7
Pero, los datos de tablas se almacenan en archivos en otra carpeta en el disco C del ordenador, es:
C:\Program Files\MySQL\MySQL Server 5.7\Data
Ubicación de datos de archivos está indicada en el menú Server Status de aplicación MySQL Workbench, en el apartado Server Directories.
Para el caso con la necesidad de restaurar tablas de base de datos será de interés precisamente la carpeta con datos de una concreta base de datos y archivos ubicados en la misma.
- Archivos de la base de datos MySQL
- Cómo recuperar la base de datos MySQL
- Recuperación de la base MySQL perdida o eliminada
- Restauración de tablas corruptas de base MySQL con ayuda de myisamchk
- Preguntas y respuestas
- Comentarios
Archivos de la base de datos MySQL
MySQL es compatible con un gran número de formatos de archivos, tales como, por ejemplo: .sql, .arm, .cnf, .dbs, .ddl, .frm, .ibd, .ism, .mrg, .myd, .myi, .mysql, .opt, .phl, .sal, .sqr, .tmd, .arz, .ibz, .ibc, .qbquery, .rul. Pero este artículo no se trata de eso. Hoy en día, estamos interesados precisamente en aquellos archivos donde se almacenan datos y tablas de base, con cuya restauración el usuario tendrá la posibilidad de recuperar información importante y evitar su posible pérdida en el futuro.
Los datos de cada base de datos se almacenan en una carpeta con su nombre, y conforme al tipo de tabla se almacenan en archivos con tales extensiones:
- db.opt – archivo donde se almacenan características de base de datos indicadas en el proceso de su creación;
- .frm – archivo de estructura de tablas;
- .myd – archivo donde se almacenan los datos de tablas MyISAM;
- .myi – archivo donde se almacenan los índices de tablas MyISAM;
- .ibd – archivo donde se almacenan datos e índices de tablas InnoDB.
Cómo recuperar la base de datos MySQL
Restauración de base de datos MySQL es un proceso no complicado técnicamente, pero él depende de una multitud de condiciones. Para los usuarios de MySQL Workbench está prevista la función de Exportación e Importación/Restauración de los datos de bases de datos.
Además de esto, es posible la creación de una copia de reserva y restauración de base de datos MySQL con ayuda de mysqldump (descrita detalladamente por nosotros en uno de nuestros artículos).
Sin embargo, estas funciones están más relacionadas con la creación de copias de reserva de datos de MySQL con ayuda de herramientas integradas. Para los usuarios más avanzados o para los que no utilizaron en su tiempo la función de reserva de datos de la base MySQL, será también de interés el modo de creación de copias y restauración de datos de bases manualmente, mediante el método de sustitución de los archivos de estructura y datos de tablas descritos arriba:
- Creación de copia de datos de tablas de la base MySQL, posiblemente mediante la copia de archivos de estructura y datos (*.opt, *.frm, *.myd, *.myi para MyIsam; *.opt, *.frm, *.ibd para InnoDB) y su almacenamiento en otra carpeta.
- Restauración de datos de tablas de la base MySQL, posiblemente mediante la sustitución de los archivos copiados anteriormente de la estructura y datos a las carpetas de bases ya existentes (en nuestro caso son dos bases: my_db y my_db2).
Recuperación de la base MySQL perdida o eliminada
De tal manera, si Usted eliminó por alguna causa la base de datos MySQL, reinstaló Windows o formateó el disco duro, entonces se puede restaurarla con el modo descrito arriba, mediante la sustitución de los archivos copiados anteriormente de base de datos a la carpeta con el nombre de la base:
C:\ProgramData\MySQL\MySQL Server 5.7\Data
Pero si por el usuario no fue creada de antemano una copia de archivos de base de datos, entonces se podrá recuperarlos con ayuda de Hetman Partition Recovery, y luego mover a una carpeta necesaria con un modo descrito anteriormente.
Para esto:
-
Inicie Hetman Partition Recovery y escanee con su ayuda el disco donde se almacenaba la base de datos MySQL
-
Busque y pase con ayuda del programa a la carpeta C:\ProgramData\MySQL\MySQL Server 5.7\Data,
o realice la búsqueda de archivos necesarios de la base de datos con ayuda de la función de búsqueda:
Preste la atención: archivos con datos y formatos de tablas tendrán el nombre de la tabla, y no de la base de tabla.
-
Restaure archivos de base de datos
-
Trasládelos a la carpeta con el nombre de la base de datos.
-
Al iniciar luego de esto MySQL Workbench, serán accesibles los archivos restaurados de tablas, ubicados en la carpeta de base.
De la misma manera se podrá restaurar archivos perdidos de dump (*.sql) o su archivo (*.zip, *.gzip, *.bzip2).
Restauración de tablas corruptas de base MySQL con ayuda de myisamchk
Tablas MyISAM de base de datos MySQL podrán ser corruptas en consecuencia de una súbita interrupción del proceso de grabación o desconexión del ordenador, fallos y defectos en la función de hardware o software, así como en el caso de intentar a ajustar con ayuda de myisamchk utilizada por el servidor de tabla.
En consecuencia de corrupción, de la tabla pueden desaparecer o pueden mostrarse incorrectamente los datos, pero más a menudo en consecuencia de corrupción de la tabla, los usuarios se enfrentan al error: «Incorrect key file for table: “denominación_de_tabla”. Try to repair it»
Para restauración de las tablas corruptas MyISAM, se puede utilizar la orden myisamchk.
Myisamchk funciona mediante el ajuste y creación de copia del archivo .myd, con el reemplazo consiguiente por él del archivo dañado. Por lo tanto, antes de usar esta orden, es mejor crear con anticipación una copia de reserva del archivo de tabla que sería necesario restaurar.
De tal manera, para restaurar la tabla dañada, utilice la orden siguiente:
myisamchk -r -q DENOMINACIÓN_DE_TABLA
donde, -r -q – es el régimen de restauración rápida. En este caso será corregido el archivo de índice sin cambiar el archivo de datos. Si en el archivo de datos hay todo lo necesario, y las comunicaciones remotas indican a las posiciones correctas en el archivo de datos, entonces en consecuencia de esta orden será corregida la tabla.
Si la orden anterior no producirá un resultado deseado, entonces haga una copia de reserva del archivo de datos y realice la orden:
myisamchk -r DENOMINACIÓN_DE_TABLA
donde, -r – es sólo el régimen de recuperación. En tal caso, desde el archivo de datos serán eliminadas grabaciones incorrectas y perdidas, y el archivo de índice será creado de nuevo (como se describe arriba).
Preste atención. Si se planea realizar ajuste y restauración de tabla desde la línea de órdenes, entonces será necesario detener el servidor. Hay que marcar lo que con la ejecución de mysqladmin shutdown desde un servidor remoto mysgld, todavía funcionará durante un periodo mysqladmin luego de terminación, hasta que no serán detenidas todas solicitudes y descargadas al disco todas las llaves.