Me gustaría entender estos archivos ibdata, ya que estos juegan un papel vital en el procedimiento de recuperación de fallos. No pude encontrar los recursos adecuados en la web para esto.
El archivo ibdata1 es el espacio de tabla del sistema para la infraestructura de InnoDB.
Contiene varias clases de información vital para InnoDB
Haga clic aquí para ver una representación pictórica
Puede divorciar las páginas de datos e índices de ibdata1 habilitando innodb_file_per_table . Esto hará que cualquier tabla InnoDB recién creada almacene datos e páginas de índice en un .ibd
archivo externo .
Ejemplo
CREATE TABLE mydb.mytable (...) ENGINE=InnoDB;
crea /var/lib/mysql/mydb/mytable.frm
/var/lib/mysql/mydb/mytable.ibd
No importa dónde esté almacenada la tabla InnoDB, la funcionalidad de InnoDB requiere buscar metadatos de tabla y almacenar y recuperar información MVCC para admitir el cumplimiento de ACID y el aislamiento de transacciones .
Aquí están mis artículos anteriores sobre la separación de datos de tablas e índices de ibdata1
Oct 29, 2010
: Mi publicación original en StackOverflowNov 26, 2011
: ERROR 1114 (HY000) en la línea 6308 en el archivo y la tabla user_analysis está llenaFeb 03, 2012
: Optimización programada de tablas en MySQL InnoDBMar 25, 2012
: ¿Por qué InnoDB almacena todas las bases de datos en un archivo?Apr 01, 2012
: ¿Es aconsejable innodb_file_per_table?ib_logfile0
, ib_logfile1
)Si usted quiere saber lo que el ib_logfile0
y ib_logfile1
es de, que son los registros de rehacer InnoDB. Nunca deben borrarse o redimensionarse hasta que se haya producido un apagado normal completo de mysqld . Si mysqld falla alguna vez, simplemente inicie mysqld. Leerá ib_logfile0
y ib_logfile1
comprobará cualquier cambio de datos que no se haya publicado en el búfer de doble escritura ibdata1
. Reproducirá (rehacerá) esos cambios. Una vez que se reproducen y almacenan, mysqld se prepara para nuevas conexiones de base de datos.
innodb_file_per_table disabled, Data/Index Pages Stored in /var/lib/mysql/mydb/mytable.ibd
yinnodb_file_per_table enbled, Data/Index Pages Stored in ibdata1
debería ser al revés, ¿no?