1 votos

¿systemd no cerrar MariaDB correctamente?

Estamos ejecutando una pila LAMP en CentOS 7. Hemos SCL activado pero solo PHP y Apache están utilizando. No fuimos capaces de obtener MariaDB con éxito la transposición en una máquina de prueba, por lo que nunca trató de un traslado de la producción.

Hemos estado experimentando más grave de la base de datos de accidentes de los últimos tiempos. Los accidentes y la corrupción son un problema crónico, pero esta vez se llevó a nuestro wiki offline. Reparamos la wiki tablas y la base de datos MariaDB y pensó que despejó el problema (hasta la próxima vez). Sin embargo, me di cuenta de lo siguiente en el archivo de registro después de reiniciar el equipo:

InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
InnoDB: Database was not shut down normally! 

The log sequence number in ibdata files does not match es un problema bastante común y que se ha discutido hasta la saciedad. Pero no debemos experiencia en un lugar limpio apagar/reiniciar. (correcciones, por favor).

Como un experimento realizado un sudo su - , seguido por shutdown -r now. Los registros, a continuación, reveló:

# tail /var/log/mariadb/mariadb.log
180901 23:01:26 Percona XtraDB (http://www.percona.com) 5.5.59-MariaDB-38.11 started; log sequence number 1478830786
180901 23:01:26 [Note] Plugin 'FEEDBACK' is disabled.
180901 23:01:26 [Note] Server socket created on IP: '0.0.0.0'.
180901 23:01:26 [Note] Event Scheduler: Loaded 0 events
180901 23:01:26 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.5.60-MariaDB'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MariaDB Server
180901 23:01:30 [ERROR] mysqld: Table './my_wiki/wikicryptopp_objectcache' is marked as crashed and should be repaired
180901 23:01:30 [Warning] Checking table:   './my_wiki/wikicryptopp_objectcache'
180901 23:05:01 [ERROR] mysqld: Table './my_wiki/wikicryptopp_module_deps' is marked as crashed and should be repaired
180901 23:05:01 [Warning] Checking table:   './my_wiki/wikicryptopp_module_deps'

Parece que systemd no es cerrar la base de datos correctamente. (correcciones, por favor).

He buscado en el CentOS y Systemd los gestores de fallos, pero no encontrar un tema relacionado. Yo estoy esperando que alguien más ha experimentado los problemas y puede dar los pasos para desactivarla.

¿Cómo puedo solucionar el MariaDB problema de apagado?


Esto es lo más lejos que he llegado al averiguar lo que está pasando durante el apagado. No sé si esto es correcto (tal vez no), porque no soy un systemd chico.

[root@ftpit ~]# find /etc -name mariadb.service
/etc/systemd/system/multi-user.target.wants/mariadb.service
[root@ftpit ~]# find /etc -name mysql.service
[root@ftpit ~]# find /opt/rh -name mariadb.service
[root@ftpit ~]# find /opt/rh -name mysql.service

Y luego:

# cat /etc/systemd/system/multi-user.target.wants/mariadb.service
# It's not recommended to modify this file in-place, because it will be
# overwritten during package upgrades.  If you want to customize, the
# best way is to create a file "/etc/systemd/system/mariadb.service",
# containing
#       .include /lib/systemd/system/mariadb.service
#       ...make your changes here...
# or create a file "/etc/systemd/system/mariadb.service.d/foo.conf",
# which doesn't need to include ".include" call and which will be parsed
# after the file mariadb.service itself is parsed.
#
# For more info about custom unit files, see systemd.unit(5) or
# http://fedoraproject.org/wiki/Systemd#How_do_I_customize_a_unit_file.2F_add_a_custom_unit_file.3F

# For example, if you want to increase mariadb's open-files-limit to 10000,
# you need to increase systemd's LimitNOFILE setting, so create a file named
# "/etc/systemd/system/mariadb.service.d/limits.conf" containing:
#       [Service]
#       LimitNOFILE=10000

# Note: /usr/lib/... is recommended in the .include line though /lib/...
# still works.
# Don't forget to reload systemd daemon after you change unit configuration:
# root> systemctl --system daemon-reload

[Unit]
Description=MariaDB database server
After=syslog.target
After=network.target

[Service]
Type=simple
User=mysql
Group=mysql

ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n
# Note: we set --basedir to prevent probes that might trigger SELinux alarms,
# per bug #547485
ExecStart=/usr/bin/mysqld_safe --basedir=/usr
ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID

# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300

# Place temp files in a secure directory, not /tmp
PrivateTmp=true

[Install]
WantedBy=multi-user.target

0voto

Casebash Puntos 22106

"El número de secuencia de registro en los archivos ibdata no coincide" no debería ocurrir comúnmente. Es poco probable que sea un problema de sistema. Tomaría un mysqldump completo y lo restauraría en una instancia limpia y dejaría que eso solucionara las innumerables discrepancias.

Nota: systemctl show mariadb.service es una mejor forma de mostrar la configuración del sistema.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: