No hay nada que pueda hacer realmente porque se está realizando una reversión a través del espacio de tabla UNDO dentro de ibdata1 , que debería haber crecido enormemente.
Si mata el proceso mysqld y reinicia mysql, simplemente continuará donde lo dejó como parte del ciclo de recuperación de fallos.
DESCARGO DE RESPONSABILIDAD: no nos hacemos responsables de la pérdida de datos
Lo que podría hacer puede resultar en la pérdida de datos para otras tablas, pero hay algo que puede hacer para evitar el ciclo normal de recuperación de fallas de InnoDB.
Hay una opción de inicio llamada innodb_force_recovery , que le permite omitir varias etapas de la recuperación de fallas de InnoDB.
De acuerdo con la documentación de MySQL sobre Forzar la recuperación de InnoDB , aquí están las configuraciones y sus efectos:
1 (SRV_FORCE_IGNORE_CORRUPT)
Deje que el servidor se ejecute incluso si detecta una página corrupta. Intente hacer que SELECT * FROM tbl_name salte sobre registros y páginas de índice corruptos, lo que ayuda a volcar las tablas.
2 (SRV_FORCE_NO_BACKGROUND)
Evitar que el hilo maestro se ejecute. Si ocurriera un bloqueo durante la operación de purga, este valor de recuperación lo impide.
3 (SRV_FORCE_NO_TRX_UNDO)
No ejecute reversiones de transacciones después de la recuperación del bloqueo.
4 (SRV_FORCE_NO_IBUF_MERGE)
Evitar operaciones de fusión de búfer de inserción. Si causarían un choque, no los hagas. No calcule las estadísticas de la tabla.
5 (SRV_FORCE_NO_UNDO_LOG_SCAN)
No mire los registros de deshacer al iniciar la base de datos: InnoDB trata incluso las transacciones incompletas como confirmadas.
6 (SRV_FORCE_NO_LOG_REDO)
No haga el registro de rehacer en avance en relación con la recuperación.
Con los cambios transaccionales enterrados en los registros UNDO y REDO, corre el riesgo de
- perder datos destinados a ser escritos
- mantener los datos destinados a ser eliminados
En caso de que espere efectos secundarios negativos, haga una copia de seguridad de todo / var / lib / mysql y colóquelo en algún lugar en caso de que desee copiar ibdata1, ib_logfile0 e ib_logfile1 y vuelva a intentar la recuperación normal.
Si mysql está completamente activo en uno de los modos
- mysqldump todos los datos excepto la tabla ofensiva
- apagado mysql
- eliminar todo en / var / lib / mysql excepto / var / lib / mysql / mysql
- iniciar mysql
- recarga el mysqldump
PRECAUCIÓN: ¡Asegúrese de hacer una copia de seguridad de todo!
Espero que esto ayude !!!