Introducción a MySQL Cluster

MySQL Cluster es una base de datos que como su nombre indica funciona en un Cluster de servidores. Mucha gente confunde terminos y define un conjunto de servidores con replicación como un MySQL Cluster, pero hay que tener en cuenta que son dos conceptos totalmente distintos. MySQL Cluster nos ofrece:

  • Alta disponibilidad
  • Escalabilidad
  • Failover automático
  • Redundancia
  • Alto throughput

La versión actual es la 7.1 y puede descargarse de http://www.mysql.com/products/database/cluster/

Componentes

Un Cluster MySQL está compuesto por los siguientes componentes:

Manager (ndb_mgmd): es un servicio encargado de poner en marcha el cluster, conectar nuevos servidores y ejecutar distintos comandos de administración mediante el CLI ndb_mgm. Una vez que …

[Lea más]
MySQL 5.5 con InnoDB 1.1

Del brazo de Oracle llego la tan esperada version 5.5 de MySQL con InnoDB 1.1 que se muestra como la Default Storage Engine desplazando a MyISAM.

Dentro de los principales cambios tenemos

  • Bloqueo de Metadata con las transacciones
  • Particion por columnas (Antes solo lo teniamos por filas)
  • PERFORMANCE_SCHEMA para el analisis de la performance  y asi obtener mayor control a un bajo nivel.
  • Replicacion semi-sincronica.

Bloqueo de Metadata con las transacciones:

Supongamos que estamos realizando una transaccion, y alguien quisiera hacer algun DDL como un Drop de la tabla t1 donde nosotros estamos realizando una transaccion y otra de las sesiones quiere  realizar un drop. ¿Que pasaria? Bueno con  metadata locking evitariamos un problema de esta indole.

PERFORMANCE_SCHEMA

[mysql] show …
[Lea más]
Data Types Comparacion MySQL-Oracle-PostgreSQL-MSQL

MySQL PostgreSQL SQLite

TINYINT SMALLINT INTEGER
SMALLINT SMALLINT
MEDIUMINT INTEGER
BIGINT BIGINT
BIT BIT INTEGER
_______________________________________________________

TINYINT UNSIGNED SMALLINT INTEGER
SMALLINT UNSIGNED INTEGER
MEDIUMINT UNSIGNED INTEGER
INT UNSIGNED BIGINT
BIGINT UNSIGNED NUMERIC(20)
_______________________________________________________

DOUBLE DOUBLE PRECISION REAL
FLOAT REAL REAL
DECIMAL DECIMAL REAL
NUMERIC NUMERIC REAL
_______________________________________________________

BOOLEAN BOOLEAN INTEGER
_______________________________________________________

DATE DATE TEXT
TIME TIME
DATETIME TIMESTAMP
_______________________________________________________

TIMESTAMP DEFAULT TIMESTAMP DEFAULT TEXT
NOW() NOW()

[Lea más]
Herramientas de Monitoreo para MySQL

Vamos a ir repasando algunas herramientas utiles para el trabajo del DBA de MySQL que nos ayudan a administrar nuestros servidores  para poder ver de otra forma la performance de los mismos.

Las herramientas que vamos a ver son:

  • MySQL Enterprise Monitor http://www.mysql.com/products/enterprise/monitor.html
  • Monyog http://www.sqlyog.com
  • dim_Stat http://dimitrik.free.fr/
  • Cacti http://www.cacti.net
  • HoneyMonitor
  • Nagios
  • Munin
Replicacion en MySQL

En este post vamos a hacer muy sencilla la replicacion con mysql y vamos a dar una intro a como podemos realizar esto para luego tratar de abordar casos un poco mas avanzados.

En el servidor Master
Debemos dejar parte de nuestro my.cnf asi:

[mysqld]
# The TCP/IP Puerto en el que escuchara nuestro MySQL
port=3306
server-id=1
binlog-do-db=BASEAREPLICAR
log-bin = /var/log/mysql/masterserver-bin.log

Luego desde el shell creamos el usuario

GRANT  REPLICATION SLAVE ON *.* TO 'usuario_slave'@'%' IDENTIFIED BY  'password';
+-----------------------+----------+--------------+------------------+
| File                  | Position | Binlog_do_db | Binlog_ignore_db |
+-----------------------+----------+--------------+------------------+
| masterserver-bin.004  | 206      | baseareplicar|                  |
+-----------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

[Lea más]
Denegación de servicio en MySQL

Mediante un ALTER DATABASE es posible mover todos los datos del datadir a un nuevo punto, haciendo desaparecer todas las bases de datos. Vamos a suponer las siguientes base de datos: mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | cacti | | jordi | | mysql | | nagios | | [...]

Encontrar la raíz del problema en un entorno LAMP (II)

Anteriormente ya vimos evaluar el estado de un Apache mediante su server-status, hoy vamos a ver como evaluar el estado de un MySQL En caso de problemas resulta muy importante guardar la salida de los comandos que ejecutemos, ya que en un primer momento siempre se analiza a ojo y rápidamente todo lo que uno [...]

Replicación maestro-esclavo en MongoDB

Esta es una entrada cortita, gracias en parte a la extrema facilidad de administrador de nuestra base de datos NoSQL favorita. En esta ocasión vamos a ver como crear una replicación dentre dos sistemas MongoDB, en arquitectura Maestro-Esclavo. Como pasa bastante habitualmente, la arquitectura Maestro-Maestro, a pesar de ser posible, no la recomiendan. Esta, al igual que en MySQL, se basa en el truco de hacer que un esclavo sea al mismo tiempo maestro.

Yo voy a mostrar la opción recomendada, Maestro-Esclavo.

Para ello, lo primero es instalar dos MongoDB en Debian Lenny.

El primero se llamará Maestro con IP 192.168.1.105 y el segundo Esclavo con IP 192.168.1.101.

Arrancamos el maestro indicando que actuará con ese Rol:

debian1:/usr/local/mongodb# bin/mongod --master
Sat Jun 12 16:41:23 Mongo DB : starting : pid = 2158 port = 27017 
dbpath = /data/db/ master = 1 slave = 0  64-bit 
Sat Jun 12 16:41:23 …
[Lea más]
Finalmente no me certifico en MySQL Cluster

Realmente no es porque yo no quiera, que en realidad tengo muchas ganas, si no que el pésimo servicio de atención al cliente de Oracle me lo impide por su completa inutilidad operativa. Llevo meses esperando que hagan algo que a priori es sencillo, comprobar mis certificados en PearsonVUE para permitirme sacar la nueva certificación en Prometric. Algo tan sencillo como eso, más aún siendo Oracle cliente también de PearsonVUE, se ha convertido en una hazaña imposible.

Desde la última vez que me pidieron algunos datos y documentos desde "suncert_ww@oracle.com" no he vuelto a saber de ellos. Y cuando escribo ya no me llega ni el mensaje de respuesta automática. Por lo tanto, ¿que puedo pensar de esto? O que estoy filtrado de por vida o que son unos completos inútiles. Desde aquí lanzo unas preguntas:

  • ¿Si tuviese una cuenta en Metalink u Oracle Support me harían más caso?
  • ¿Y Si estuviese interesado en …
[Lea más]
Formación JAVA y MySQL en Zaragoza. Calendario 2010.

Os informamos de los cursos públicos JAVA y MySQL, que se van a impartir en el segundo semestre de 2010, en Zaragoza. Warp Networks como partner oficial de Sun Microsystems, imparte formación certificada MySQL y JAVA. También puede proveer a los interesados de vouchers para certificaciones Sun. FORMACIÓN JAVA EN ZARAGOZA: Programación Java (SL-275-SE6): Septiembre [...]