Si hay corrupción de página de base de datos, es posible que
        se desee hacer un volcado de tablas desde la base de datos con
        SELECT INTO OUTFILE; usualmente, la mayoría
        de los datos obtenidos de esta manera están intactos. Aún
        así, la corrupción puede hacer que SELECT * FROM
         o las operaciones
        en segundo plano de tbl_nameInnoDB caigan o, incluso
        activar la recuperación roll-forward de
        InnoDB. Sin embargo, se puede forzar el motor
        de almacenamiento de InnoDB para que se
        inicie mientras se evitan las operaciones en segundo plano, de
        forma que se pueda realizar un volcado de las tablas. Por
        ejemplo, puede agregarse la siguiente linea a la sección
        [mysqld] del fichero de opciones antes de
        reiniciar el servidor:
      
[mysqld] innodb_force_recovery = 4
        Debajo se listan los valores mayores a cero permitidos para
        innodb_force_recovery. Un número mayor
        incluye todas las precauciones de los números por debajo. Si se
        logra hacer un volcado de tablas con un valor de a lo sumo 4, se
        puede estar relativamente seguro de que solamente se han perdido
        algunos datos en páginas individuales corruptas. Un valor de 6
        es más dramático, porque las páginas de base de datos han
        quedado obsoletas, lo que a su vez puede introducir más
        corrupción en B-trees y otras estructuras de bases de datos.
      
            1
            (SRV_FORCE_IGNORE_CORRUPT)
          
            Le permite al servidor ejecutarse aún si detecta una
            página corrupta; intenta hacer que SELECT * FROM
             salte sobre
            los registros de índice y páginas corruptos, lo cual es de
            ayuda en el volcado de las tablas.
          tbl_name
            2
            (SRV_FORCE_NO_BACKGROUND)
          
Impide que se ejecute el subproceso (thread) principal. Si durante la operación de descarga (purge) ocurriese una caida, esto la previene.
            3
            (SRV_FORCE_NO_TRX_UNDO)
          
No revierte transacciones luego de la recuperación.
            4
            (SRV_FORCE_NO_IBUF_MERGE)
          
También evita las operaciones de combinación del buffer de inserciones. Si ello pudiese causar una caida, es mejor no hacerlo; no calcula estadísticas de tablas.
            5
            (SRV_FORCE_NO_UNDO_LOG_SCAN)
          
            No tiene en cuenta el contenido de los registros para
            revertir cambios (undo logs) al iniciar la base de datos:
            InnoDB considera como confirmadas
            inclusive a las transacciones incompletas.
          
            6
            (SRV_FORCE_NO_LOG_REDO)
          
Omite la creación del registro (log) que permite la recuperación de tipo roll-forward.
        En otro caso la base de datos no debe emplearse con
        ninguna de estas opciones habilitadas. Como una
        medida de seguridad, InnoDB impide que los
        usuarios lleven a cabo operaciones INSERT,
        UPDATE, o DELETE cuando
        innodb_force_recovery está configurado en un
        valor mayor a 0.
      
        Se pueden ejecutar sentencias DROP y
        CREATE para eliminar y crear tablas incluso
        cuando se está empleando la recuperación forzada. Si se sabe
        que una determinada tabla está provocando caídas al hacer una
        cancelación (rollback), se la puede eliminar. También puede
        utilizarse para detener una cancelación fuera de control
        causada por una importación o un ALTER TABLE
        en masa. Se puede interrumpir el proceso
        mysqld y establecer
        innodb_force_recovery a un valor de
        3 para poner a funcionar la base de datos sin
        que ejecute cancelación (rollback), luego emplear
        DROP para eliminar la tabla que está
        causando la cancelación fuera de control.
      
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

