InnoDB: Warning: a long semaphore wait

Actualizando un MySQL de la versión 5.1 a la versión 5.5 empezaron a salir errores como el siguiente:

InnoDB: Warning: a long semaphore wait:
--Thread 139816751400704 has waited at trx0trx.c line 754 for 241.00 seconds the semaphore:
Mutex at 0x1770d48 created file srv0srv.c line 1024, lock var 1
waiters flag 1

Causando que se queden colgadas las queries y por lo tanto colapsando el servidor MySQL.

La única forma de recuperar el MySQL era matando el proceso. Buscando el problema, encontré en los foros de MySQL que mediante la opción –skip-innodb_adaptive_hash_index se soluciona, pero no hay feedback al respecto. Aparentemente, dejando ya más de un mes de margen parece que efectivamente ha solucionado el problema.

Tags: …

[Lea más]
ERROR 1356 (HY000)

Original post:  http://anothermysqldba.blogspot.com/2013/12/error-1356-hy000.html


Lo más importante de entender cuando viene sobre un error es tomar un momento y relajarse. 
A veces la gente se encuentra con un error y se vuelven nerviosos y frustrados. Tome una respiración profunda y relajarse. A veces, " La locura es como la gravedad. Todo lo que necesita es un poco de empuje "y"  …

[Lea más]
Una estrategia de la comunidad

Original post: http://anothermysqldba.blogspot.com/2013/11/a-strategy-from-community.html

Hemos visto las noticias sobre MariaDB reemplazar MySQL en Fedora, SUSE y Red Hat.

Mientras que Oracle no estaría contento con este tipo de noticias, la comunidad de código abierto compatible con el enfoque en una solución de código "más" abierta a ser implementado en Linux.

Lo interesante que todos podamos sobre el aspecto es que, la decisión o estrategia para pasar a MariaDB de MySQL fue probable es que no acaba de hacer por la alta dirección en Red Hat. Esto es mucho más probable que sea un movimiento de la comunidad de código abierto de Red Hat que evalúa y escucharon.

Considere esto, echar un vistazo atrás en casa de Jackie Yeaney ( …

[Lea más]
Plantilla para Procedimientos almacenados en MySQL – MariaDB

Conforme paso más tiempo programando para MySQL – MariaDB, más necesidad tengo del uso de plantillas, sobre todo porque vas adquiriendo ciertos conocimientos, trucos, etc, …. y de esta forma, no solo no aceleras la programación, sino que también la haces más profesional! Hoy os presento la plantilla para los procedimientos almacenados (stored procedures) que …

Continuar leyendo »

The post Plantilla para Procedimientos almacenados en MySQL – MariaDB appeared first on Manejando datos.

MariaDB y las distribuciones de Linux

Original post: http://anothermysqldba.blogspot.com/2013/11/mariadb-linux-distributions.html

Así que por ahora muchos de ustedes han visto las noticias sobre Google, SUSE y Red Hat / Fedora mudarse a MariaDB como base de datos predeterminada en lugar de MySQL.

MariaDB y SkySQL han hecho movimientos de negocios muy productivos este año. ¿Qué significa esto en realidad para la comunidad MySQL y la comunidad en general de código abierto?

Para empezar piensan volver a lo que hizo tan popular MySQL? Es fácilmente disponible en todas las principales distribuciones de Linux.

OpenSUSE y Fedora ya se están moviendo a MariaDB para el impulso a un movimiento centrado código abierto ha comenzado. Después de una migración de Red Hat Enterprise Linux que tiene MariaDB como la base de …

[Lea más]
Check de Nagios para el log de MySQL

En el log del MySQL podemos encontrar errores, como tablas corruptas, que de otra forma deberíamos de detectar en la capa de aplicación

Tomando de ejemplo una tabla corrupta, tendríamos en el log entradas similares a la siguiente por cada query que use dicha tabla:

130107 20:00:19 [ERROR] /usr/local/mysql/bin/mysqld: Table './db/tbl' is marked as crashed and should be repaired

Otros errores comunes, como por ejemplo el Sort aborted (una query con sort que no se ha podido completar o la hemos matado) podemos ignorar el error para que no nos vaya saltando la alerta de Nagios:

120913 10:58:03 [ERROR] /usr/local/mysql51/libexec/mysqld: Sort aborted

En el caso que tengamos un sistema de ficheros dedicado para el datadir del MySQL, se nos quejará que el directorio …

[Lea más]
Importador/Exportador para MySQL: mydumper y myloader

De sobra es conocido que mysqldump no es la mejor forma de hacer backups por lo básica que es la herramienta. Anteriormente ya hemos hablado de otras herramientas como mylvmbackup que hace un backup físico (datafiles) de la base de datos, vamos a ver el caso de mydumper.

Dicha herramienta la ha creado Domas Mituzas que según dice:

My current occupations:
Database Engineer at Facebook
Systems Engineer at Wikimedia Foundation (Wikipedia)

Para instalarla haremos:

cd /usr/local/src
wget https://launchpad.net/mydumper/0.5/0.5.2/+download/mydumper-0.5.2.tar.gz
tar xzf mydumper-0.5.2.tar.gz 
cd mydumper-0.5.2

Necesitaremos tener instalado …

[Lea más]
Comparar número de registros de dos bases de datos MySQL-MariaDB

La semana pasada me surgió la necesidad de comparar 2 bases de datos casi idénticas en MySQL. Como me corria un poco de prisa, decidí crear una consulta simple para ver si todo estaba bien: SELECT table_name, engine, row_format , SUM( CASE WHEN table_schema = "base_datos_1" THEN table_rows ELSE NULL END) AS "base_datos_1" , SUM( …

Continuar leyendo »

The post Comparar número de registros de dos bases de datos MySQL-MariaDB appeared first on Manejando datos.

Mensajes bonitos en MySQL-MariaDB con Common_schema

Una de las características que más me gusta de Common_schema es la posibilidad de ir escribiendo mensajes durante la ejecución de un procedimiento, y una vez concluido, mostrarlos, pero diferenciando un mensaje por cada registro. En definitiva, ejecutamos una tarea de un procedimiento almacenado, y vamos completando el mensaje. Hay un separador de línea que …

Continuar leyendo »

The post Mensajes bonitos en MySQL-MariaDB con Common_schema appeared first on Manejando datos.

Common_schema. Tamaños por motor y por esquema

Otras dos utilidades muy interesantes del framework common_schema es conocer el tamaño que estamos usando por motor (MyIsam, InnoDB, Memory, …), o bien, el que usamos por base de datos. Para llamarlas: SELECT * FROM common_schema.data_size_per_engine; SELECT * FROM common_schema.data_size_per_schema; En mi opinión, sería más “transparente” para el usuario que en lugar de los números …

Continuar leyendo »

The post Common_schema. Tamaños por motor y por esquema appeared first on Manejando datos.