Forzar sincronización (SST) en Galera

Si queremos forzar la sincronización de un determinado nodo con el resto, deberemos borrar el fichero grastate.dat

Primero deberemos apagar el nodo:

# /etc/init.d/mysql stop
Shutting down MySQL (Percona XtraDB Cluster).... SUCCESS! 

Luego borramos el fichero del datadir:

# rm -f /var/lib/mysql/grastate.dat 

Al volver a arrancar empezará la resincronización:

# /etc/init.d/mysql start
Starting MySQL (Percona XtraDB Cluster)....State transfer in progress, setting sleep higher
.. SUCCESS! 

En el nodo “donante“, si utilizamos xtrabackup para la sincronización, podemos encontrar el fichero innobackup.backup.log en el datadir con el log:

# cat innobackup.backup.log

InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
and Percona LLC and/or its …
[Lea más]
Malas costumbres en el my.cnf

Realizando una actualización de MySQL me encontré con una mala costumbre bastante común.

Al ejecutar el mysql_upgrade fallaba:

# mysql_upgrade 
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
FATAL ERROR: Upgrade failed

Por lo que me decidí a ejecutar los comandos manualmente:

mysqlcheck --all-databases --check-upgrade --auto-repair  
mysql < fix_priv_tables  
mysqlcheck --all-databases --check-upgrade --fix-db-names --fix-table-names

Ejecutando el primero (mysqlcheck) me encontré con el problema real:

# mysqlcheck --all-databases --check-upgrade --auto-repair
mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect

En el my.cnf estaban añadidas las opciones (cómo dónde deja el …

[Lea más]
¿Qué herramienta de compresión debería usar para las copias de seguridad de mi base de datos? (Parte II: descompresión)

En mi entrada de la semana pasada, analizaba algunos de las herramientas y formatos de compresión más comunes, así como su velocidad y ratio de compresión. Aunque ello podría darnos una buena idea del rendimiento de estas herramientas, el análisis estaría incompleto sin investigar la descompresión. Esto es particularmente cierto para backups de base de datos ya que, en aquellos casos en los que el proceso de compresión se realice fuera de las máquinas de producción puede que no te importe tanto los tiempos de compresión. En tal caso, incluso si es relativamente lento, no afectará al rendimiento de tu servidor MySQL (o aquello que estés usando). El tiempo de descompresión, sin embargo, puede ser crítico, ya que podría influir en muchos casos en el …

[Lea más]
Compilation of entrances on MySQL

This is the last entrance of August, and it’s related to MySQL, one of the hottest topics of this blog. Several entrances of this entrance are in spanish, because I started writing both languages about October, and some of the materials were published before. Most of them have been translated and published after, but other …

Continue reading »

Esta entrada Compilation of entrances on MySQL es contenido original de Manejando datos - Blog de bases de datos y programación. This entrance Compilation of entrances on MySQL is created by …

[Lea más]
Recopilación de entradas sobre MySQL

Hoy toca la última entrada veraniega, centrada en MySQL, uno de los pilares de este blog. La primera de las entradas del blog fue para hablar de un framework para los DBA de MySQL, que yo uso bastante y debería ser usado por los administradores y desarrolladores. Migrando de versión de MySQL Una de las …

Continuar leyendo »

Esta entrada Recopilación de entradas sobre MySQL es contenido original de Manejando datos - Blog de bases de datos y programación. This entrance Recopilación de entradas sobre MySQL is created by …

[Lea más]
MySQL Foreign Keys Ejemplo Y ERROR 1452

Original post - http://anothermysqldba.blogspot.com/2014/08/mysql-foreign-keys-example-error-1452.html

Así que me encontré con una situación hoy en día se trata de tener que actualizar un campo, pero el usuario no podía hacerlo debido a las restricciones de claves foráneas afines. 

Esta entrada de blog con ser un ejemplo sencillo que muestra una clave externa y cómo actualizarlos si tiene que hacerlo. 

En primer lugar vamos a crear una tabla simple y rellenarla con datos aleatorios. 

CREATE TABLE `table_w_code` ( 
`SOMECode` varchar(50) COLLATE utf8_unicode_ci NOT NULL, 
`NameofCode` varchar(50) COLLATE utf8_unicode_ci NOT NULL, 
PRIMARY KEY (`SOMECode`) 
) ENGINE=InnoDB ; 

[Lea más]
¿Qué herramienta de compresión debería usar para las copias de seguridad de mi base de datos? (Parte I: compresión)

Esta semana hablamos de tamaño, algo que debería preocuparle a cualquier administrador de sistemas a cargo del sistema de backups de cualquier proyecto, y en particular de los backups de una base de datos.

A menudo recibo preguntas sobre cuál es la mejor herramienta de compresión a aplicar en un sistema de copias de seguridad: ¿gzip? ¿bzip2? ¿algún otro?

El entorno de pruebas

Para poder probar diferentes formatos y herramientas, creé un archivo .csv (comma-separated values, valores separados por comas) de tamaño 3.700.635.579 bytes transformando un dump reciente de todos los nodos de la porción europea de España en OpenStreetMap. Tenía un total de 46.741.126 de filas y tenía la siguiente pinta:

171773  38.6048402      -0.0489871      4       2012-08-25 00:37:46     12850816        472193 …
[Lea más]
Cómo instalar MySQL 5.6 en CentOS 7

Un poco de historia

La última versión de Red Hat Enterprise Linux, una de las distribuciones de Linux más populares y respetadas en el mercado de servidores, se publicó en junio de 2014, seguido por los lanzamientos de CentOS 7 y Oracle Linux en julio del mismo año.

Hay cambios muy interesantes para administradores de bases de datos en estas nuevas versiones, de las cuales me gustaría destacar el hecho de que el instalador oficial ahora selecciona XFS como el sistema de archivos por defecto, …

[Lea más]
Consultas de referencias cruzadas en MySQL

Hace algún tiempo que uso Redmine para gestionar proyectos, la herramienta en general es buena pero a veces necesitaba de reportes diarios de tiempo utilizado por los miembros del proyecto.

En este punto se me ocurrió si podría lograr una consulta de referencias cruzadas (al estilo MS Excel), MySQL no soporta consultas de ese tipo pero pueden simularse:

1. Escribir la consulta principal que contenga las filas más importantes: project identifier, task subject y total_hours, todo en un rango de fechas.

select p.identifier, 
        e.issue_id, i.subject, round(sum(e.hours),2) as total_hours
        from redmine_nsp.time_entries e
        inner join redmine_nsp.issues i on e.issue_id = i.id
        inner join redmine_nsp.projects p on e.project_id = p.id
        where e.spent_on between '2014-07-01' and '2014-07-07'
 group by p.identifier,e.issue_id;

Resultado:

[Lea más]
Test de procesos de selección – parte 2

Siguiendo el post anterior sobre malas preguntas en test de procesos de selección, hoy veremos la siguiente pregunta:

¿Cuantos servidores MySQL puedes ejecutar al mismo tiempo en un solo servidor usando unicamente una sola IP?

Las opciones son las siguientes:

  • Es necesaria una IP para cada servicio, se deben añadir más IPs al servidor: Falso, podemos hacer escuchar el daemon en otro puerto.
  • MySQL usa el puerto 3306, se puede cambiar, pero no se recomienda: Que se el por defecto no quiere decir que no se pueda cambiar ni que no se recomienda, simplemente que debe tenerse en cuenta

La parte complicada viene con:

  • Puedes ejecutar tantos servicios como quieras: Dado que habla de IP, …
[Lea más]