Planet MySQL Planet MySQL: Meta English Deutsch Français Italiano 日本語 Русский Português 中文
Showing entries 1 to 10 of 500 Próximo 10 Viejas entradas
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...]
MySQL 5.6: master slave con GTID
+0 Vote Up -0Vote Down

A continuación vamos a ver cómo montar la replicación master-slave en MySQL 5.6 con GTID

Primero deberemos asegurarnos que el master tiene las siguientes opciones en su my.cnf:

gtid_mode=ON
log_bin=binlog
log_slave_updates=1
enforce_gtid_consistency
expire_logs_days=7
server_id=1         
binlog_format=ROW

Creamos el usuario para la replicación con un GRANT:

mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'slavepassword';
Query OK, 0 rows affected (0.01 sec)

A continuación mediante un snapshot LVM, mysqldump,

  [Lea más...]
Hoy es el día en que MyISAM ha dejado de ser necesario
+0 Vote Up -0Vote Down

Por supuesto, esto sólo es un título para llamar la atención. Por lo que yo sé no todas las tablas de sistema se pueden convertir a InnoDB todavía (por ejemplo, las tablas de privilegios), lo cual convierte la cabecera en técnicamente falsa. MyISAM es un motor muy simple, y eso tiene algunas ventajas inherentes (no hay carga extra debido a las transacciones, más fácil de “editar” manualmente, normalmente ocupa menos espacio en disco), pero también algunas desventajas bastante importantes: no es seguro en el caso de un cuelgue general, no hay claves foráneas, sólo bloqueos a nivel de tabla, problemas de consistencia, bugs en tablas muy grandes,… La versión 5.7.5 “Milestone

  [Lea más...]
Showing entries 1 to 10 of 500 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.