Planet MySQL Planet MySQL: Meta English Deutsch Français Italiano 日本語 Русский Português 中文
Showing entries 1 to 10 of 502 Próximo 10 Viejas entradas
Mi tutorial sobre optimización de consultas para la Percona Live London 2014 (e información importante si deseáis asistir)
+0 Vote Up -0Vote Down

El lunes de la próxima semana, 3 de noviembre, impartiré un tutorial de la mayor conferencia europea de MySQL, la Percona Live London 2014. El tema es una continuación natural de la que impartí el año pasado en el mismo lugar, “Optimización de consultas con MySQL 5.6: trucos nuevos y viejos“. Este año me centraré en los últimos cambios en el optimizador que podemos encontrar no sólo en los ya publicados 5.6 y MariaDB 10, pero también alguna de las características de los todavía en desarrollo MySQL 5.7 y

  [Lea más...]
Posición inicial de los binlogs (MySQL)
+0 Vote Up -0Vote Down

Al realizar el SHOW MASTER STATUS para iniciar la replicación siempre me había preguntado porque la posición inicial no era ni 0 ni 1. Mediante SHOW BINLOG EVENTS podemos verlo:

El primer evento de un binlog contiene información sobre el formato del binlog, por lo tanto, es un evento que realmente no hace nada y que nos podemos saltar (realmente si lo aplicamos tampoco realiza ningún cambio):

mysql-master> show binlog events limit 2;
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
| Log_name         | Pos | Event_type  | Server_id | End_log_pos | Info                                  |
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
| mysql-bin.000355 |
  [Lea más...]
Buscar las foreign keys que referencian a una tabla en MySQL
+0 Vote Up -0Vote Down

En MySQL, mediante INFORMATION_SCHEMA podemos listar las tablas que tienen foreign keys hacia la tabla que nos interesa

Para ello deberemos hacer la siguiente query a la tabla KEY_COLUMN_USAGE:

SELECT table_name,column_name,constraint_name, referenced_table_name,referenced_column_name
FROM information_schema.key_column_usage
WHERE referenced_table_name = 'tabla';

Por ejemplo, suponiendo que tenemos las siguientes dos tablas:

mysql> CREATE TABLE fc1 (
    ->     i INT PRIMARY KEY,
    ->     j INT
    -> ) ENGINE = InnoDB;
Query OK, 0 rows affected (0.25 sec)

mysql> CREATE TABLE fc2 (
    ->     m INT PRIMARY KEY,
    ->     n INT,
    ->     FOREIGN KEY ni (n) REFERENCES fc1 (i)
    ->         ON
  [Lea más...]
xtrabackup: Restaurar backup incremental
+0 Vote Up -0Vote Down

Tal y como vimos anteriormente, mediante xtrabackup podemos hacer backups incrementales sobre un full. Vamos a ver cómo restaurarlos.

Vamos a suponer que tenemos los siguientes backups:

# ls -la
total 36
drwxr-xr-x 9 root root 4096 Aug 26 19:06 .
drwxr-xr-x 3 root root 4096 Aug 26 14:04 ..
drwxr-xr-x 6 root root 4096 Aug 26 19:02 2014-08-26_19-02-14
drwxr-xr-x 6 root root 4096 Aug 26 19:03 2014-08-26_19-03-30
drwxr-xr-x 6 root root 4096 Aug 26 19:06 2014-08-26_19-06-41

Los renombro por tipo para simplificar la sintaxi:

# mv 2014-08-26_19-02-14 FULL
# mv 2014-08-26_19-03-30 INC1
# mv 2014-08-26_19-06-41 INC2

Primero deberemos preparar el backup aplicando las transacciones ya comiteadas

  [Lea más...]
Rotación de Logs MySQL lentas
+0 Vote Up -0Vote Down
Original post: http://anothermysqldba.blogspot.com/2014/10/rotating-mysql-slow-logs.html

Al trabajar con diferentes clientes Sucede que correr a través de grandes archivos de registro lento de vez en cuando. Si bien existen varias opiniones sobre la forma en que se deben rotar. Muchas de estas opiniones utilice Girar registro y el comando registros ras, prefiero no para eliminar mis registros binarios sin embargo. Es por esto que estoy de acuerdo con Ronald Bradfordentrada de

  [Lea más...]
Probando la manera más rápida de importar una tabla en MySQL (y unos resultados interesantes del rendimiento de 5.7)
+0 Vote Up -0Vote Down

Como mencioné en mi anterior entrada, donde comparaba las opciones de configuración por defecto de 5.6 y 5.7, he estado haciendo algunos tests para un tipo particular de carga en varias versiones de MySQL. Lo que he estado comprobando es las diferentes maneras de cargar un archivo CSV (el mismo fichero que usé para comprobar las herramientas de compresión) en MySQL. Aquellos administradores de bases de datos y programadores MySQL con experiencia probablemente ya conozcáis la respuesta, así que podéis saltar a los resultados de 5.7 respecto de 5.6. Sin

  [Lea más...]
Lost connection to MySQL server at reading initial communication packet
+0 Vote Up -0Vote Down

Intentando conectar a un MySQL me encontré con el siguiente error:

# mysql -h 192.168.157.97
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

Haciendo un tcpdump veremos que la conexión TCP se establece y se cierra correctamente:

# tcpdump -nni any 'host 192.168.157.97'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
16:31:44.812893 IP 192.168.157.97.54337 > 192.168.157.121.3306: Flags [S], seq 4035808194, win 5840, options [mss 1460,sackOK,TS val 2347458047 ecr 0,nop,wscale 7], length 0
16:31:44.812937 IP 192.168.157.121.3306 > 192.168.157.97.54337: Flags [S.], seq 1534874692,
  [Lea más...]
xtrabackup / innobackupex: Restaurar full
+0 Vote Up -0Vote Down

No solo es importante tener los backups, también saber restaurarlos. Vamos a ver cómo restaurar un backup full hecho con xtrabackup

Primero deberemos asegurarnos que se trata de un backup, lo podemos ver mediante el fichero xtrabackup_checkpoints:

# cat FULL/xtrabackup_checkpoints 
backup_type = full-backuped
from_lsn = 0
to_lsn = 1862778
last_lsn = 1862778
compact = 0

A continuación deberemos aplicar los logs para hacer undo de transacciones no comiteadas o aplicar cambios pendientes de transacciones que ya esta comiteadas. Lo deberemos hacer mediante la opción –apply-log:

# innobackupex --apply-log /var/backups/xtrabackup/FULL/

InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
  [Lea más...]
xtrabackup / innobackupex: Backups full y incremental
+0 Vote Up -0Vote Down

Podemos utilizar xtrabackup mediante el wrapper innobackupex para realizar backups de MySQL sin la asistencia de LVM de una forma muy similar a hotbackup. Vamos a ver un ejemplo de cómo realizar un full backup, un incremental y otro incremental del incremental anterior

Para realizar un backup simplemente deberemos indicar dónde dejar el backup:

# innobackupex /var/backups/xtrabackup

InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
and Percona LLC and/or its affiliates 2009-2013.  All Rights Reserved.

This software is published under
the GNU GENERAL PUBLIC LICENSE Version 2, June 1991.

Get the latest version of Percona XtraBackup, documentation, and help resources:
  [Lea más...]
MySQL 5.6 con GTID: El slave también debe tener binlogs
+0 Vote Up -0Vote Down

Al montar un slave de MySQL resulta común evitar tener binlogs (si no es master de otro slave) para evitat el overhead de dicha escritura a disco

Pero si intentamos el mismo setup con GTID tendremos el siguiente error:

2014-08-25 19:39:19 1599 [ERROR] --gtid-mode=ON or UPGRADE_STEP_1 or UPGRADE_STEP_2 requires --log-bin and --log-slave-updates
2014-08-25 19:39:19 1599 [ERROR] Aborting

No es posible tener un slave con GTID sin los binlogs activos también en el slave.

Esto se debe a la forma que se aplican las transacciones en el slave con GTID:

Primero el slave comprueba que el GTID de la transacción no se ha usado en su propio binlog, si es así, aplica la transacción y el GTID y lo escribe

  [Lea más...]
Showing entries 1 to 10 of 502 Próximo 10 Viejas entradas

Planet MySQL © 1995, 2014, Oracle Corporation and/or its affiliates   Legal Policies | Your Privacy Rights | Terms of Use

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.