> Faqs > Solucionar errores al arrancar MariaDB por fallos en 'InnoDB'

Solucionar errores al arrancar MariaDB por fallos en 'InnoDB'

Tengo un servidor zabbix corriendo en Ubuntu 22.04, hace poco se fue la luz y MariaDb dejó de funcionar, no soy muy experto en el tema, por eso les pido su ayuda. ejecute "systemctl status mariadb.service", devuelve lo siguiente:

root@zabbix1:/home/jchacon# systemctl status mariadb.service
× mariadb.service - MariaDB 10.6.16 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Sat 2024-01-27 08:30:47 -04; 18min ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 868 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
    Process: 901 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
    Process: 920 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POS>
    Process: 966 ExecStart=/usr/sbin/mariadbd $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=1/FAILURE)
   Main PID: 966 (code=exited, status=1/FAILURE)
     Status: "MariaDB server is down"
        CPU: 1.283s

ene 27 08:30:47 zabbix1 mariadbd[966]: 2024-01-27  8:30:47 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
ene 27 08:30:47 zabbix1 mariadbd[966]: 2024-01-27  8:30:47 0 [Note] InnoDB: Starting shutdown...
ene 27 08:30:47 zabbix1 mariadbd[966]: 2024-01-27  8:30:47 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
ene 27 08:30:47 zabbix1 mariadbd[966]: 2024-01-27  8:30:47 0 [Note] Plugin 'FEEDBACK' is disabled.
ene 27 08:30:47 zabbix1 mariadbd[966]: 2024-01-27  8:30:47 0 [ERROR] Unknown/unsupported storage engine: InnoDB
ene 27 08:30:47 zabbix1 mariadbd[966]: 2024-01-27  8:30:47 0 [ERROR] Aborting
ene 27 08:30:47 zabbix1 systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
ene 27 08:30:47 zabbix1 systemd[1]: mariadb.service: Failed with result 'exit-code'.
ene 27 08:30:47 zabbix1 systemd[1]: Failed to start MariaDB 10.6.16 database server.
ene 27 08:30:47 zabbix1 systemd[1]: mariadb.service: Consumed 1.283s CPU time.

intente revisar mas a fondo y ejecute journalctl -u mariadb.service -n 30 arrojo lo siguiente:

root@zabbix1:/home/jchacon# journalctl -u mariadb.service -n 30 ene 27 09:06:42 zabbix1 mariadbd[969]: 2024-01-27 9:06:42 0 [ERROR] InnoDB: Plugin initialization aborted with error Data structure corruption ene 27 09:06:42 zabbix1 mariadbd[969]: 2024-01-27 9:06:42 0 [Note] InnoDB: Starting shutdown... ene 27 09:06:43 zabbix1 mariadbd[969]: 2024-01-27 9:06:43 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. ene 27 09:06:43 zabbix1 mariadbd[969]: 2024-01-27 9:06:43 0 [Note] Plugin 'FEEDBACK' is disabled. ene 27 09:06:43 zabbix1 mariadbd[969]: 2024-01-27 9:06:43 0 [ERROR] Unknown/unsupported storage engine: InnoDB ene 27 09:06:43 zabbix1 mariadbd[969]: 2024-01-27 9:06:43 0 [ERROR] Aborting ene 27 09:06:43 zabbix1 systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE ene 27 09:06:43 zabbix1 systemd[1]: mariadb.service: Failed with result 'exit-code'. ene 27 09:06:43 zabbix1 systemd[1]: Failed to start MariaDB 10.6.16 database server. -- Boot 3bf1aa9cf4294ef38ca251065c073e6a -- ene 30 09:49:18 zabbix1 systemd[1]: Starting MariaDB 10.6.16 database server... ene 30 09:49:19 zabbix1 mariadbd[986]: 2024-01-30 9:49:19 0 [Note] Starting MariaDB 10.6.16-MariaDB-0ubuntu0.22.04.1 source revision as process 986 ene 30 09:49:20 zabbix1 mariadbd[986]: 2024-01-30 9:49:20 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 ene 30 09:49:20 zabbix1 mariadbd[986]: 2024-01-30 9:49:20 0 [Note] InnoDB: Number of pools: 1 ene 30 09:49:20 zabbix1 mariadbd[986]: 2024-01-30 9:49:20 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions ene 30 09:49:20 zabbix1 mariadbd[986]: 2024-01-30 9:49:20 0 [Note] InnoDB: Initializing buffer pool, total size = 134217728, chunk size = 134217728 ene 30 09:49:20 zabbix1 mariadbd[986]: 2024-01-30 9:49:20 0 [Note] InnoDB: Completed initialization of buffer pool ene 30 09:49:20 zabbix1 mariadbd[986]: 2024-01-30 9:49:20 0 [Note] InnoDB: Setting log file ./ib_logfile101 size to 100663296 bytes ene 30 09:49:20 zabbix1 mariadbd[986]: 2024-01-30 9:49:20 0 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0 ene 30 09:49:20 zabbix1 mariadbd[986]: 2024-01-30 9:49:20 0 [Note] InnoDB: New log file created, LSN=28288989937 ene 30 09:49:20 zabbix1 mariadbd[986]: 2024-01-30 9:49:20 0 [ERROR] InnoDB: invalid undo header offset 0 ene 30 09:49:20 zabbix1 mariadbd[986]: 2024-01-30 9:49:20 0 [Note] InnoDB: Retry with innodb_force_recovery=5 ene 30 09:49:20 zabbix1 mariadbd[986]: 2024-01-30 9:49:20 0 [ERROR] InnoDB: Plugin initialization aborted with error Data structure corruption ene 30 09:49:20 zabbix1 mariadbd[986]: 2024-01-30 9:49:20 0 [Note] InnoDB: Starting shutdown... ene 30 09:49:21 zabbix1 mariadbd[986]: 2024-01-30 9:49:21 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. ene 30 09:49:21 zabbix1 mariadbd[986]: 2024-01-30 9:49:21 0 [Note] Plugin 'FEEDBACK' is disabled. ene 30 09:49:21 zabbix1 mariadbd[986]: 2024-01-30 9:49:21 0 [ERROR] Unknown/unsupported storage engine: InnoDB ene 30 09:49:21 zabbix1 mariadbd[986]: 2024-01-30 9:49:21 0 [ERROR] Aborting ene 30 09:49:21 zabbix1 systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE ene 30 09:49:21 zabbix1 systemd[1]: mariadb.service: Failed with result 'exit-code'. ene 30 09:49:21 zabbix1 systemd[1]: Failed to start MariaDB 10.6.16 database server.

Agradezco si pudieran ayudarme

Respuestas

ufff q faenón... lo que describes no tiene muy buena pinta. ¿Tienes copias de seguridad? porque lo más fácil sería comenzar de nuevo y hacer una instalación de nueva de Mariadb instalando de nuevo los datos que tengas en las copias de seguridad.

Si MariaDB está fallando al iniciarse por problemas con InnoDB. Esos errores pueden indicar que hay corrupción en las estructuras de datos de InnoDB

Te doy algunas sugerencias que puedes usar para intentar resolver el problema:

Hacer una copia de seguridad de los archivos de base de datos existentes

Si no tienes copias de antemano prueba esto:

Identifica el directorio de datos de MariaDB. El directorio de datos predeterminado suele ser /var/lib/mysql, pero puede variar según tu configuración específica. Puedes verificar el directorio de datos actual buscando la opción datadir en el archivo de configuración de MariaDB (/etc/mysql/mariadb.conf.d/50-server.cnf o un archivo similar).

Haz una copia del directorio de datos. Puedes utilizar el comando cp para hacer una copia del directorio de datos a otra ubicación en tu sistema o un dispositivo de almacenamiento externo. Por ejemplo:

sudo cp -R /var/lib/mysql /path/to/backup/location/mysql_backup

Copia también los archivos de configuración. Es una buena práctica hacer copia de los archivos de configuración de MariaDB, ubicados generalmente en /etc/mysql/.

Recuerda que esta copia de seguridad de los archivos de datos no garantiza que los datos estén en un estado completamente consistente, especialmente si hubo transacciones en curso en el momento del fallo. Esta copia debería utilizarse como un último recurso.

Posibles técnicas de recuperación después de tener copias de los datos de MariaDB

Verificar los archivos de registro de InnoDB. Los archivos de registro (ib_logfile0, ib_logfile1, etc.) pueden estar corruptos. Puedes intentar mover estos archivos fuera del directorio de datos de MariaDB y reiniciar el servicio para ver si eso resuelve el problema. MariaDB intentará recrear estos archivos al iniciar. Sin embargo, esto podría resultar en la pérdida de transacciones que no se hayan guardado en el disco.

Forzar la recuperación de InnoDB. Puedes intentar iniciar MariaDB en modo de recuperación forzada. Esto se hace agregando innodb_force_recovery = 1 a tu archivo de configuración de MariaDB (/etc/mysql/my.cnf o similar), en la sección [mysqld]. El nivel de recuperación forzada puede variar de 1 a 6, donde niveles más altos realizan recuperaciones más agresivas pero aumentan el riesgo de pérdida de datos. Es recomendable empezar con el nivel 1 e ir incrementándolo según sea necesario. No olvides quitar o comentar esta línea después de intentar la recuperación, ya que no deberías ejecutar tu servidor en este modo de forma permanente.

Revisar y reparar las tablas. Si logras iniciar MariaDB con la recuperación forzada, puedes intentar revisar y reparar las tablas usando las herramientas de MariaDB como mysqlcheck.

Si los pasos anteriores no resuelven el problema, revisa detenidamente los logs de error de MariaDB para obtener más información sobre el problema y posibles soluciones.

No sé si alguno de estos consejos te ayudará, porque no lo he probado. Ya te digo que yo comenzaría todo de nuevo con una copia de seguridad que tengas, porque tampoco soy muy de sistemas. Te deseo suerte

Julian
1100 46 84 45
Vale muchas gracias voy a ir probando a ver cuál me resulta, mil gracias amigo