Estoy ejecutando la versión Percona de MySQL Server v5.6 y cada pocos días MySQL parece fallar y luego se reinicia automáticamente. ¿Cómo puedo averiguar cuál es el motivo del accidente? He visto a otras personas que MySQL se detiene inesperadamente y parece deberse a problemas de memoria, pero en sus casos el registro de errores menciona esto. En mi caso, no aparece nada en el archivo de registro hasta que se reinicia.
Incluyo el archivo de registro relevante a continuación con el último error "esperado" y luego lo que registra cuando MySQL se reinicia. Consiste en varias advertencias de "Declaraciones inseguras escritas en el registro binario" antes del bloqueo, pero no creo que sean el motivo del bloqueo. (En breve actualizaré las declaraciones para no usar la ON DUPLICATE KEY
construcción para detenerlas y evitar que se llene el registro. También debo mencionar que no hago replicaciones, por lo que no creo que sean demasiado importantes en este momento. )
El servidor es un Centos 6.6 de 64 bits que se ejecuta en una máquina virtual (Virtuozzo).
Ojalá alguien pueda indicarme la dirección correcta para determinar qué está causando el accidente. ¡Gracias!
Archivo de registro a continuación:
2018-03-19 08:39:51 21476 [Advertencia] Declaración insegura escrita en el registro binario usando el formato de declaración ya que BINLOG_FORMAT = STATEMENT. INSERTAR... EN ACTUALIZACIÓN DE CLAVE DUPLICADA en una tabla con más de una CLAVE ÚNICA no es segura Declaración: INSERTAR EN xxxx EN ACTUALIZACIÓN DE CLAVE DUPLICADA xxxx 180319 08:39:52 mysqld_safe Número de procesos en ejecución ahora: 0 180319 08:39:52 mysqld_safe mysqld reiniciado 2018-03-19 08:39:53 0 [Advertencia] TIMESTAMP con valor DEFAULT implícito está en desuso. Utilice la opción de servidor --explicit_defaults_for_timestamp (consulte la documentación para obtener más detalles). 2018-03-19 08:39:53 20217 [Advertencia] El uso del prefijo de opción único myisam-recover en lugar de myisam-recover-options está obsoleto y se eliminará en una versión futura. Utilice el nombre completo en su lugar. 2018-03-19 08:39:53 20217 [Nota] El complemento 'FEDERADO' está deshabilitado. 2018-03-19 08:39:53 20217 [Nota] InnoDB: uso de atomics para contar las páginas del grupo de búfer 2018-03-19 08:39:53 20217 [Nota] InnoDB: el montón de memoria de InnoDB está deshabilitado 2018-03-19 08:39:53 20217 [Nota] InnoDB: Mutexes y rw_locks usan funciones atómicas GCC 2018-03-19 08:39:53 20217 [Nota] InnoDB: no se utiliza la barrera de memoria 2018-03-19 08:39:53 20217 [Nota] InnoDB: las tablas comprimidas usan zlib 1.2.3 2018-03-19 08:39:53 20217 [Nota] InnoDB: uso de AIO nativo de Linux 2018-03-19 08:39:53 20217 [Nota] InnoDB: uso de instrucciones CPU crc32 2018-03-19 08:39:53 20217 [Nota] InnoDB: Inicializando grupo de buffer, tamaño = 3.0G 2018-03-19 08:39:54 20217 [Nota] InnoDB: inicialización completa del grupo de búfer 2018-03-19 08:39:54 20217 [Nota] InnoDB: el formato de archivo más compatible es Barracuda. 2018-03-19 08:39:54 20217 [Nota] InnoDB: el escaneo de registros avanzó más allá del punto de control lsn 123717382274 2018-03-19 08:39:54 20217 [Nota] InnoDB: ¡La base de datos no se cerró normalmente! 2018-03-19 08:39:54 20217 [Nota] InnoDB: iniciando la recuperación tras fallo. 2018-03-19 08:39:54 20217 [Nota] InnoDB: lectura de información de espacio de tabla de los archivos .ibd... 2018-03-19 08:39:54 20217 [Nota] InnoDB: Restaurando posibles páginas de datos a medio escribir 2018-03-19 08:39:54 20217 [Nota] InnoDB: desde el búfer de doble escritura... InnoDB: realizando recuperación: escaneado hasta el número de secuencia de registro 123717811056 InnoDB: la transacción 790235434 estaba en el estado preparado XA. InnoDB: 1 transacción(es) que deben revertirse o limpiarse InnoDB: en total 0 operaciones de fila para deshacer InnoDB: el contador de identificación de Trx es 790235904 2018-03-19 08:39:55 20217 [Nota] InnoDB: iniciando un lote de aplicación de registros a la base de datos... InnoDB: Progreso en porcentaje: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 7 InnoDB: Aplicar lote completado InnoDB: última posición del archivo binlog MySQL 0 697177863, nombre de archivo mysql-bin.000227 InnoDB: iniciar en segundo plano la reversión de transacciones no confirmadas 2018-03-19 08:39:56 20217 [Nota] InnoDB: 128 segmentos de reversión están activos. 2018-03-19 08:39:56 7f481bd03700 InnoDB: Reversión de transacciones no preparadas completadas 2018-03-19 08:39:56 20217 [Nota] InnoDB: esperando a que comience la purga 2018-03-19 08:39:56 20217 [Nota] InnoDB: Percona XtraDB (http://www.percona.com) 5.6.22-71.0 iniciado; número de secuencia de registro 123717811056 2018-03-19 08:39:56 20217 [Nota] Recuperación después de un bloqueo usando /var/lib/mysql/mysql-bin 2018-03-19 08:46:36 20217 [Nota] Iniciando recuperación de fallas... 2018-03-19 08:46:36 7f491ce677e0 InnoDB: Iniciando recuperación para transacciones XA... 2018-03-19 08:46:36 7f491ce677e0 InnoDB: Transacción 790235434 en estado preparado después de la recuperación 2018-03-19 08:46:36 7f491ce677e0 InnoDB: la transacción contiene cambios en 1 fila 2018-03-19 08:46:36 7f491ce677e0 InnoDB: 1 transacciones en estado preparado después de la recuperación 2018-03-19 08:46:36 20217 [Nota] Se encontraron 1 transacción(es) preparada(s) en InnoDB 2018-03-19 08:46:36 20217 [Nota] Recuperación de fallos finalizada. 2018-03-19 08:46:36 20217 [Nota] No se encontró el archivo de clave privada RSA: /var/lib/mysql//private_key.pem. Algunos complementos de autenticación no funcionarán. 2018-03-19 08:46:36 20217 [Nota] No se encontró el archivo de clave pública RSA: /var/lib/mysql//public_key.pem. Algunos complementos de autenticación no funcionarán. 2018-03-19 08:46:36 20217 [Nota] Nombre de host del servidor (dirección vinculada): '*'; puerto: 3306 2018-03-19 08:46:36 20217 [Nota] IPv6 está disponible. 2018-03-19 08:46:36 20217 [Nota] - '::' se resuelve en '::'; 2018-03-19 08:46:36 20217 [Nota] Socket de servidor creado en IP: '::'. 2018-03-19 08:46:37 20217 [Nota] Programador de eventos: Cargado 0 eventos 2018-03-19 08:46:37 20217 [Nota] /usr/sbin/mysqld: listo para conexiones. Versión: '5.6.22-71.0-log' socket: '/var/lib/mysql/mysql.sock' puerto: 3306 Servidor Percona (GPL), versión 71.0, revisión 726 2018-03-19 08:46:38 20217 [Advertencia] Declaración insegura escrita en el registro binario usando el formato de declaración desde BINLOG_FORMAT = STATEMENT. INSERTAR... EN ACTUALIZACIÓN DE CLAVE DUPLICADA en una tabla con más de una CLAVE ÚNICA no es segura Declaración: INSERTAR EN xxxx EN ACTUALIZACIÓN DE CLAVE DUPLICADA xxxx
Editar: según la pregunta de @impimp en los comentarios, aquí está el contenido de/var/log/messages
18 de marzo 04:02:22 NOMBRE DE HOST rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="474" x-info="http://www.rsyslog.com"] rsyslogd fue HUPed 19 de marzo 08:39:52 Kernel HOSTNAME: [103311785.405884] Sin memoria en UB 650543: OOM eliminó el proceso 21476 (mysqld) puntuación 0 vm:6363484kB, rss:4024500kB, swap:45536kB 20 de marzo 09:17:35 Kernel HOSTNAME: [103400050.711461] Sin memoria en UB 650543: OOM eliminó el proceso 20217 (mysqld) puntuación 0 vm:6382720kB, rss:4066652kB, swap:0kB