SlideShare una empresa de Scribd logo
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
MySQL Cluster: El ‘qué’ y el ‘cómo’.
Keith Hollman
Principal Sales Consultant EMEA
MySQL
keith.hollman@oracle.com
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Agenda
1
2
3
Introducción
Empezando: configuración/instalación/inicio/parada
La forma más sencilla: Cluster Manager.
2
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Oracle MySQL Soluciones de Alta Disponibilidad & Sharding
MySQL
Replication
MySQL Fabric
Oracle VM
Template
Oracle
Clusterware
Solaris
Cluster
Windows
Cluster
DRBD
MySQL
Cluster
App Auto-Failover ✖ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Data Layer Auto-Failover ✖ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Zero Data Loss MySQL 5.7 MySQL 5.7 ✔ ✔ ✔ ✔ ✔ ✔
Platform Support All All Linux Linux Solaris Windows Linux All
Clustering Mode
Master +
Slaves
Master +
Slaves
Active/Passi
ve
Active/Passive
Active/Pas
sive
Active/Passiv
e
Active/Pas
sive
Multi-
Master
Failover Time N/A Secs Secs + Secs + Secs + Secs + Secs + < 1 Sec
Scale-out Reads ✔ ✖ ✖ ✖ ✖ ✖ ✔
Cross-shard operations N/A ✖ N/A N/A N/A N/A N/A ✔
Transparent routing ✖ For HA ✔ ✔ ✔ ✔ ✔ ✔
Shared Nothing ✔ ✔ ✖ ✖ ✖ ✖ ✔ ✔
Storage Engine InnoDB+ InnoDB+ InnoDB+ InnoDB+ InnoDB+ InnoDB+ InnoDB+ NDB
Single Vendor Support ✔ ✔ ✔ ✔ ✔ ✖ ✔ ✔
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Cuando pensar en MySQL Cluster
• ¿Cuáles son las consecuencias de una parada o de una caída en el
rendimiento?
• ¿Cuánto esfuerzo y dinero se invierte en el desarrollo de las
aplicaciones y en la gestión de la infrastructura HA?
• Estás pensando en hacer sharding en la base de datos para poder
escalar las escrituras y ganar en rendimiento. ¿Y ésto cómo afecta
a tu aplicación y desarrolladores?
• ¿Tus servicios necesitan ser real-time?
• ¿Los servicios que ofreces tienen un crecimiento predicible,
sobretodo en escrituras?
• ¿Quieres la flexibilidad de acceder a tus datos con algo más que
SQL?
4
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Cuando NO pensar en MySQL Cluster
• La mayoría de las aplicaciones de terceros.
• Transacciones laragas.
• Índices geospaciales.
• Volumenes de datos grandes (>2TB)
• Accesos complejos al dato y muchos Full Scans de tablas.
•Cuando necesitas una base de datos basado en el almacenamiento
en disco, ej. InnoDB.
5
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Introducción a MySQL Cluster
6
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
La historia de MySQL Cluster ”NDB”
• MySQL Cluster también conocido como la Network DataBase NDB
• Diseñado / desarrollado en Ericcson a finales de los 90.
• Documento original de diseño: ”Design and Modeling of a Parallel Data
Server for Telecom Applications” del año 1997 por Michael Ronström
• Originalmente escrito en PLEX (Programming Language for EXchanges) pero
convertido luego a C++.
• MySQL AB adquirió Alzato (cuyo propietario era Ericsson) final del 2003.
La base de datos en red / ”The Network DataBase NDB”
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
La historia de MySQL Cluster ”NDB”
• Servicios de bases de datos en aquel entonces:
– SCP/SDP (Service Control/Data Point) en Redes Inteligentes.
– HLR (Home Location Register) para mantener el control sobre los teléfonos móbiles /
usuarios.
– Bases de datos para gestión de redes, sobretodo información de cobro al instante
(real-time charging).
La base de datos en red / ”The Network DataBase NDB”
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
La historia de MySQL Cluster ”NDB”
• Se diseñó NDB para:
– Fiabilidad, la clase de disponibilidad de las bases de datos telco’s debería ser 6. Esto
significa que cualquier parada tiene que ser menos de 30 segundos por año. Significa
que no se permite paradas no-planificadas.
– Rendimiento, diseñado con alta concurrencia en mente, escalabilidad lineal cuando
añadiendo servidores (data nodes) para accesos sencillos (búsquedas por PK).
– Tiempo real (real-time), los datos se guardan en memoria y el sistema está diseñado
para realizar operaciones en memoria.
La base de datos en red / ”The Network DataBase NDB”
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
MySQL Cluster resumido
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
MySQL Cluster: Los Componentes
11
NDB API
(Aplicaciones)
Data Node
(Almacenamiento de
datos)
MGM Node
(Gestión)
SQL Node
(Aplicaciones)
• Interfaz estándar de SQL
• Escalabilidad horizontal para mejoras del rendimiento.
• Habilita la Replica Geográfica.
• Real-time applications.
• APIs C++/Java
• Failover y balanceo de carga automática.
• Almacenamiento de datos (en Memoria y en Disco).
• Particionamiento de datos Automática y Customizado.
• Escalabilidad horizontal para aumentar capacidad y rendimiento.
• Gestión, Monitorización y Configuración.
• Árbitro en situaciones de split brain/red particionada.
•Logs del Cluster .
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Data Nodes
• Almacena datos e índices
– En memoria
– Datos no-indexados posibles en disco.
– Contiene varios bloques, los mas
importantes, LQH, TUP, ACC y TC.
• Check points de los datos
realizados a disco “LCP”.
• Coordinación de Transacciones.
• Gestiona fail-over
• Realiza los backups online
• Todos conectados entre sí.
• Hasta 48
– Típicamente 2, 4.
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Management Nodes
• Distribuyen la configuración
• Logging
• Monitorización
• Hace de Árbitro
– Impede escenarios de split-brain
• Cuando no está en funcionamiento, Cluster
sigue.
– Se necesita para iniciar otros
• 1 es lo mínimo, 3 demasiados, 2 perfecto.
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
API Nodes
• Aplicaciones escritos utilizando NDB API
– C/C++/Java
• Rápido
– No parsea SQL
• Ejemplos:
– El storage engine NDBCluster
– ndb_restore
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
SQL Nodes
• Es MySQL con el motor NDBCluster.
– Es un API Node a la misma vez.
• Transparente para la mayoría de las aplicaciones.
• Se usa para crear tablas.
• Se usa para Replica Geográfica
– Guarda todos los cambios en Bin logs
• Puede ser un Árbitro.
• Conecta a todos los Data Nodes
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
MySQL Cluster Arquitectura
MySQL Cluster Data Nodes
Clientes
Capa Aplicaciones
Capa de Datos
Gestión
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
MySQL Cluster Escalando horizontalmente
MySQL Cluster Data Nodes
Clientes
Capa Aplicaciones
Capa de Datos
Gestión
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
MySQL Cluster – Resistencia Extrema
MySQL Cluster Data Nodes
Clientes
Capa Aplicaciones
Capa de Datos
Gestión
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Particionamiento I
• Particionamiento Vertical - 1:1 tablas a reducir el tamaño de las filas, tablas
e índices.
• Particionamiento Horizontal - 1 Tabla separación en múltiples tablas con
filas diferentes.
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
p1 p2 p1 p2 p3
Particionamiento de Datos II
• Se particionan los datos por Primary Key por defecto.
• Valor HASH de la PK, sólo es selectivo si se proporciona la PK completa, no
“la columna más a la izquierda”.
• Hash lineal, los datos sólo están desplazados (impacto bajo al hacer un
“reorganize”).
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Data Node 1
Data Node 2
Data Node 3
Data Node 4- Una partición es una parte de la tabla
- Número de particiónes = número de data nodes
- Particionamiento horizontal
Tabla T1
ID FirstName LastName Email Phone
P2
P3
P4
Px Partición
P1
Particionamiento de Datos Automático
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Data Node 1
Data Node 2
Data Node 3
Data Node 4Un fragmento es una partición
Número de fragmentos = # de particiónes * # de replicas
Tabla T1
ID FirstName LastName Email Phone
P2
P3
P4
Px Partición
P1
Particionamiento de Datos Automático
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Data Node 1
Data Node 2
Data Node 3
Data Node 4Un fragmento puede ser primario o secondario / backup
Número de fragmentos = # de particiones * # de replicas
Tabla T1
ID FirstName LastName Email Phone
P2
P3
P4
Px Partición
4 Particiones * 2 Replicas = 8 Fragmentos
P1
Particionamiento de Datos Automático
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Data Node 1
Data Node 2
F1
Primer Fragmento
Segundo Fragmento
Data Node 3
Data Node 4Fx
Fx
Tabla T1
ID FirstName LastName Email Phone
P2
P3
P4
Px Partición
4 Particiones * 2 Replicas = 8 Fragmentos
P1
Particionamiento de Datos Automático
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Data Node 1
Data Node 2
F1
Primer Fragmento
Segundo Fragmento
F1
Data Node 3
Data Node 4Fx
Fx
Tabla T1
ID FirstName LastName Email Phone
P2
P3
P4
Px Partición
4 Particiones * 2 Replicas = 8 Fragmentos
P1
Particionamiento de Datos Automático
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Data Node 1
Data Node 2
F1
Primer Fragmento
Segundo Fragmento
F3 F1
Data Node 3
Data Node 4Fx
Fx
Tabla T1
ID FirstName LastName Email Phone
P2
P3
P4
Px Partición
4 Particiones * 2 Replicas = 8 Fragmentos
P1
Particionamiento de Datos Automático
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Data Node 1
Data Node 2
F1 F3
Primer Fragmento
Segundo Fragmento
F3 F1
Data Node 3
Data Node 4Fx
Fx
Tabla T1
ID FirstName LastName Email Phone
P2
P3
P4
Px Partición
4 Particiones * 2 Replicas = 8 Fragmentos
P1
Particionamiento de Datos Automático
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Data Node 1
Data Node 2
F1 F3
Primer Fragmento
Segundo Fragmento
F3 F1
Data Node 3
Data Node 4
F2
Fx
Fx
Tabla T1
ID FirstName LastName Email Phone
P2
P3
P4
Px Partición
4 Particiones * 2 Replicas = 8 Fragmentos
P1
Particionamiento de Datos Automático
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Data Node 1
Data Node 2
F1 F3
Primer Fragmento
Segundo Fragmento
F3 F1
Data Node 3
Data Node 4
F2
F2
Fx
Fx
Tabla T1
ID FirstName LastName Email Phone
P2
P3
P4
Px Partición
4 Particiones * 2 Replicas = 8 Fragmentos
P1
Particionamiento de Datos Automático
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Data Node 1
Data Node 2
F1 F3
Primer Fragmento
Segundo Fragmento
F3 F1
Data Node 3
Data Node 4
F2
F4 F2
4 Particiones * 2 Replicas = 8 Fragmentos
Fx
Fx
Tabla T1
ID FirstName LastName Email Phone
P2
P3
P4
Px Partición
P1
Particionamiento de Datos Automático
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Data Node 1
Data Node 2
F1 F3
Primer Fragmento
Segundo Fragmento
F3 F1
Data Node 3
Data Node 4
F2 F4
F4 F2
Fx
Fx
Tabla T1
ID FirstName LastName Email Phone
P2
P3
P4
Px Partición
4 Particiones * 2 Replicas = 8 Fragmentos
P1
Particionamiento de Datos Automático
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Data Node 1
Data Node 2
F3
Primer Fragmento
Segundo Fragmento
F1
Data Node 3
Data Node 4
F2 F4
F4 F2
Node Group 1
Fx
Fx
Tabla T1
ID FirstName LastName Email Phone
P2
P3
P4
Px Partición
4 Particiones * 2 Replicas = 8 Fragmentos
P1
F1
F3
Particionamiento de Datos Automático
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Data Node 1
Data Node 2
F1 F3
Primer Fragmento
Segundo Fragmento
F3 F1
Data Node 3
Data Node 4
F2 F4
F4 F2
Node Group 1
Node Group 2
Fx
Fx
-Los node groups se crean automáticamente
- # de grupos = # de data nodes / # de replicas
Tabla T1
ID FirstName LastName Email Phone
P2
P3
P4
Px Partición
4 Particiones * 2 Replicas = 8 Fragmentos
P1
Particionamiento de Datos Automático
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Data Node 1
Data Node 2
F1 F3
Primer Fragmento
Segundo Fragmento
F3 F1
Data Node 3
Data Node 4
F2 F4
F4 F2
Node Group 1
Node Group 2
Fx
Fx
Mientras que haya un data node
funcionando en cada node group, tenemos
una copia completa de los datos.
Tabla T1
ID FirstName LastName Email Phone
P2
P3
P4
Px Partición
4 Particiones * 2 Replicas = 8 Fragmentos
P1
Particionamiento de Datos Automático
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Data Node 1
Data Node 2
F1 F3
Primer Fragmento
Segundo Fragmento
F3 F1
Data Node 3
Data Node 4
F2 F4
F4 F2
Node Group 1
Node Group 2
Fx
Fx
Tabla T1
ID FirstName LastName Email Phone
P2
P3
P4
Px Partición
4 Particiones * 2 Replicas = 8 Fragmentos
P1
Particionamiento de Datos Automático
Mientras que haya un data node
funcionando en cada node group, tenemos
una copia completa de los datos.
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Data Node 1
Data Node 2
F1 F3
Primer Fragmento
Segundo Fragmento
F3 F1
Data Node 3
Data Node 4
F2 F4
F4 F2
Node Group 1
Node Group 2
Fx
Fx
Tabla T1
ID FirstName LastName Email Phone
P2
P3
P4
Px Partición
4 Particiones * 2 Replicas = 8 Fragmentos
P1
Particionamiento de Datos Automático
Mientras que haya un data node
funcionando en cada node group, tenemos
una copia completa de los datos.
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Tabla T1 Data Node 1
Data Node 2
F1 F3
Primer Fragmento
Segundo Fragmento
ID FirstName LastName Email Phone
P2
P3
P4
Px Partición
F3 F1
Data Node 3
Data Node 4
F2 F4
F4 F2
Node Group 1
Node Group 2
4 Particiones * 2 Replicas = 8 Fragmentos
Fx
Fx
- No hay una copia completa de los datos.
- El cluster se para automáticamente.
P1
Particionamiento de Datos Automático
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Particionamiento de Datos III
• Partición
– Particionamiento Horizontal.
– Una parte de una tabla, cada Partición contiene un conjunto de filas.
– Número de Particiones == LQH
• Replica
– Una copia completa de los datos.
• Node Group
– Creado automáticamente
– # de grupos = # de data nodes / # de replicas
– Mientras que haya un data node funcionando en cada node group, tenemos una copia completa
de los datos.
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Agenda
1
2
3
Introducción
Empezando: configuración/instalación/inicio/parada
La forma más sencilla: Cluster Manager.
39
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
MySQL Cluster y los tipos de Instalaciones
• Community / GPL
– http://dev.mysql.com/downloads/cluster
• Carrier Grade Edition
– http://edelivery.oracle.com
– http://support.oracle.com
• Tarball
– Instalación de manera manual.
• RPM, DEB, PKG, DMG, MSI
– Paquetes de instalación específicos
para el S.O.
– Rutas y paquetes (server, client, etc.)
específicas.
• Código fuente
– Compila tu propia versión.
• cmake .
• make
• make install
40
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
MySQL Cluster Configuración
• Todos los nodos está definidos en el fichero config.ini
– Dividido en secciones mediante “[…]”, donde hay secciones para;
• Data nodes ndb{mt}d
• Management nodes [ndb_mgmd]
• MySQL servers [mysqld]
• API nodes [ndbapi]
• Si se añade ‘default’ al nombre de la sección [ndbd default], los valores se aplican a todos.
– Se inicia el Management node con un config.ini. Debería ser el mismo para todos los
management nodes del Cluster.
• Los MySQL API nodes se configuran tanto en el in config.ini y también en
un my.cnf dedicado.
41
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Configuración “config.ini”
Parámetros típicos
• IndexMemory y DataMemory.
• Configura MaxNoOfExecutionThreads <= #cores
– Si no, podría genera situaciones de contención → comportamiento inesperado.
• RedoBuffer=32-64M
– Si se tiene que configurar más alto → probablemente los discos sean demasiado lentos.
• FragmentLogFileSize=256M
• NoOfFragmentLogFiles= 6 x DataMemory (en MB) / (4x 256MB)
– Problema más típico – clientes nunca configuran los redo logs lo suficientemente grandes.
• Memoria para datos e índices adecuado para el tamaño de las bases de datos /índices.
• LockPagesInMainMemory=1
• MaxNoOf*
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Configuración
Tablas “Disk-based ”
• Usa “Disk Data Tables” para:
– Accesos simples (lectura/escritura por PK)
– Lo mismo que para InnoDB – Puedes empezar a sufrir problemas de E/S si no se vigila (iostat).
• Configura DiskPageBufferMemory=3072M
– Si se depende mucho de datos en disco, se suele recomenda su uso – igual que el
Innodb_Buffer_Pool, pero configúralo lo más alto que se pueda!
• Aumenta las posibilidades de que se cachea una página:
– SharedGlobalMemory=384M-1024M
• UNDO_BUFFER=64M to 128M (Si hay mucha escritura en disco)
– ¡No puedes modificar éste buffer después!
• Especificado a la hora de crear el LOGFILE GROUP:
– DiskIOThreadPool=[ 8 .. 16 ]
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
MySQL Cluster Iniciando / Parando
config.ini
[ndb_mgmd default]
ArbitrationRank =1
DataDir =/opt/mysql/746/mgmd_data
[ndb_mgmd]
hostname =khollman-es
NodeId =1
[ndbd default]
noofreplicas =2
DataDir =/opt/mysql/746/ndbd_data
DataMemory =20M
IndexMemory =10M
DiskPageBufferMemory =4M
StringMemory =5
MaxNoOfConcurrentOperations =2K
MaxNoOfConcurrentTransactions =2K
SharedGlobalMemory =500K
LongMessageBuffer =512K
MaxParallelScansPerFragment =16
MaxNoOfAttributes =1000
MaxNoOfTablas =20
MaxNoOfOrderedIndexes =20
ODirect =TRUE
HeartbeatIntervalDbDb =500
HeartbeatIntervalDbApi =500
StopOnError =1
TransactionInactiveTimeout =500
TransactionDeadlockDetectionTimeout = 1200
LockPagesInMainMemory =2
[ndbd]
hostname =khollman-es
datadir =/opt/mysql/746/ndbd_data
nodeid =3
[mysqld default]
[mysqld]
NodeId =10
[mysqld]
NodeId =11
[NDBAPI]
NodeId =12
[NDBAPI]
NodeId =13
44
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
MySQL Cluster Iniciando / Parando
my.cnf
[client]
socket =/tmp/mysql_7461.sock
[mysql]
prompt =R:m d>_
no-beep
[mysqld]
ndbcluster
datadir =/opt/mysql/746/data
ndb-connectstring =khollman-es:1186
user =mysql
port =7461
socket =/tmp/mysql_7461.sock
general-log =1
log-output =FILE
log-error =khollman-es_7461.err
slow-query-log =1
max_connections =20
innodb_log_buffer_size =8M
innodb_buffer_pool_size =64M
innodb_log_file_size =16M
innodb_flush_log_at_trx_commit =2
innodb_file_per_Tabla =1
innodb_data_home_dir =/opt/mysql/746/data
innodb_data_file_path
=ibdata1:50M;ibdata2:50M:autoextend
[mysql_cluster]
ndb-connectstring =khollman-es:1186
45
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
MySQL Cluster Iniciando / Parando
• La primera vez y cuando cambios en la configuación son necesarios:
--INITIAL
– Cuando cambia el config.ini, no hay que hacer una parada completa del cluster.
Reinicia ndb_mgmd con --INITIAL para limpiar la información cacheada de la
configuración. Y luego reiniciar los datanodes (sin --initial).
• Iniciando
# ndb_mgmd -f config.ini --config-dir=/usr/local/mysql-cluster/conf --INITIAL
# ndbd --INITIAL | ndbmtd –c localhost:1186 --INITIAL | ndbd –n (nostart)
# scripts/mysql_install_db --defaults-file=my.cnf --user=mysql
# mysqld_safe --defaults-file=my.cnf --user=mysql
46
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
MySQL Cluster Iniciando / Parando
• Iniciando
– ndb_mgmd -f config.ini --config-dir=/usr/local/mysql-cluster/conf
– ndbd | ndbmtd –c localhost:1186
– mysqld_safe --defaults-file=my.cnf
• Parando
– ndb_mgm –e shutdown
– ndb_mgm –e [mgmt node & datanode] 1 | 3 | 4 stop
– ndb_mgm –e [mgmt node & datanode] 1 | 3 | 4 restart
– mysqladmin --defaults-file=my.cnf -uroot shutdown
47
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
MySQL Cluster Iniciando / Parando
nostart
ndbmtd --ndb-nodeid=3 –n
ndbmtd --ndb-nodeid=4 –n
ndb_mgm -e show
Cluster configuración
---------------------
[ndbd(NDB)] 2 node(s)
id=3 @127.0.0.1 (mysql-5.6.17 ndb-7.3.5, not started)
id=4 @127.0.0.1 (mysql-5.6.17 ndb-7.3.5, not started)
ndb_mgm -e "all start“
ndb_mgm -e show
Cluster configuración
---------------------
[ndbd(NDB)] 2 node(s)
id=3 @127.0.0.1 (mysql-5.6.17 ndb-7.3.5, starting, Nodegroup: 0, *)
id=4 @127.0.0.1 (mysql-5.6.17 ndb-7.3.5, starting, Nodegroup: 0)
48
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Ficheros de Log
• Logs
– Management
• Datadir: /opt/mysql/746/mgmd_data/ ndb_1_cluster.log / ndb_1_out.log
– Datanodes
• Datadir: /opt/mysql/746/ndbd_data/ ndb_3_out.log / ndb_3_out.err
– SQLNodes
• Datadir /opt/mysql/746/data/ hostname.err
• Errores
– El fichero de log del Cluster ndb_1_cluster.log es el mejor sitio donde empezar a
investigar.
49
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Agenda
1
2
3
Introducción
Empezando: configuración/instalación/inicio/parada
La forma más sencilla: Cluster Manager.
50
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 51
La forma más sencilla: Cluster Manager
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Oracle Premier
Lifetime Support
Oracle Product
Certifications/Integrations
MySQL Enterprise
Security
MySQL Enterprise
Scalability
MySQL Cluster
Manager
MySQL Enterprise
Monitor/Query Analyzer
MySQL Workbench
MySQL Enterprise
Audit
MySQL Enterprise
Backup
Los niveles más altos de Rendimiento,
Seguridad y Disponibilidad.
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Potenciando la agilidad de DevOps,
Minimizando el Downtime
Gestión Automatizada
• Iniciar/Parar nodo o todo
el cluster.
• Crecimiento horizontal
online.
• Reconfiguración online.
• Upgrades online.
• Backup & Restore online.
• Importar un Cluster en
marcha.
Auto-recuperable
• Monitorización por
nodo.
• Auto-recuperación se
extiende a los sql nodes
y management node.
Operaciones de Alta
Disponibilidad
• Configuración
consistente de todos los
componentes del cluster.
• Configuraciónes
persistentes.
• Agentes de HA.
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
MySQL Cluster Manager: Creando un Cluster I
• Download MySQL Cluster Manager (MCM) + MySQL Cluster:
– MCM 1.3.4, elige el paquete *sin* cluster, que debería ser sobre unos 20Mb (download en https://edelivery.oracle.com/)
– MySQL Cluster 7.4.6 (download en http://downloads.mysql.com/archives/get/file/ mysql-cluster-gpl-7.4.6-linux-glibc2.5-
x86_64.tar.gz)
• Instalar y Configurar MySQL Cluster Manager
– Los binarios de MCM y Cluster tienen que estar instalados en todos los servidores donde corre algún proceso NDB.
– mkdir MCM
– cd MCM
– tar xzf /ruta/a/ mcm-1.3.4-linux-glibc2.5-x86-64bit.tar.gz
– mv mcm-1.3.4-linux-glibc2.5-x86-64bit/mcm1.3.4 .
– rmdir mcm-1.3.4-linux-glibc2.5-x86-64bit.tar.gz
– cp mcm1.3.4/etc/mcmd.ini .
– (hay que cambiar: manager-directory = /home/<user>/MCM/mcm_data)
54
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
MySQL Cluster Manager: Creando un Cluster II
• Instalar los binarios Cluster
– tar xzf /ruta/a/ mysql-cluster-gpl-7.4.6-linux-glibc2.5-x86_64.tar.gz
– mv mysql-cluster-gpl-7.4.6-linux-glibc2.5-x86_64 cluster-746
• iniciar el demonio MCMD (como usuario del s.o. ‘mysql’)
– ./mcm1.3.4/bin/mcmd --defaults-file=./mcmd.ini –daemon
• Configurar el Cluster
– Connect to MCM and configure cluster (only from one site):
– Start mcm client: ./mcm1.3.4/bin/mcm
– (se necesita en el PATH la ruta del CLI de mysql, ej. /usr/local/mysql/bin/mysql ya que el CLI mcm se basa en él)
55
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
MySQL Cluster Manager: Creando un Cluster III
mcm> list commands
mcm> create site --hosts=127.0.0.1 mysite;
mcm> list sites;
mcm> list hosts mysite;
mcm> add package --basedir=/home/<user>/MCM/cluster-746
cluster746;
mcm> list packages mysite;
mcm> create cluster --package=cluster746 --
processhosts=ndb_mgmd@127.0.0.1,ndbmtd@127.0.0.1,ndbmtd@1
27.0.0.1 mycluster;
mcm> add process --
processhosts=mysqld@127.0.0.1,mysqld@127.0.0.1 mycluster;
mcm> add process --
processhosts=ndbapi@127.0.0.1,ndbapi@127.0.0.1 mycluster;
mcm> add process --
processhosts=ndbapi@127.0.0.1,ndbapi@127.0.0.1 mycluster;
mcm> get -d port:mysqld mycluster;
mcm> set port:mysqld:51=3307 mycluster;
56
• Iniciar el Cluster:
mcm> show status -r mycluster;
mcm> start cluster mycluster;
mcm> show status -r mycluster;
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Migración de Base de datos en caliente
Alternativas
• Para que se haga en ‘caliente’, la mejor y única alternativa es un “Rolling
Restart”:
1. Parar todos los Cluster Management nodes, sustituyendo el binario ndb_mgmd
con la nueva versión y reiniciando.
2. Parar, sustituir y reinicar cada data node, cada uno en turno, uno a uno.
3. Parar, sustituir y reinicar cada sql node, cada uno en turno.
– “Sustituir” significa redirigir al software nuevo en el servidor, (bien ln –s, o bien a la ruta directa /absoluta).
– “software” significa el nuevo paquete de Cluster, en el formato de “mysql-cluster-gpl-7.4.6-linux-
glibc2.5-x86_64.tar.gz”.
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Migración de Base de datos en caliente
Requisitos
• Usar un esclavo replica del MySQL Cluster.
– El esclavo puede tener una versión superior al Master.
• “Rolling Upgrade” upgrade escalonado. (--initial obligatorio)
• Si quieres usar MySQL Cluster Manager:
mcm> add package –-basedir=/opt/MCM_LAB/cluster-746 cluster747;
mcm> upgrade cluster --package=cluster747 mycluster;
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
¿Cómo ayuda MySQL Cluster Manager?
Realizando la actualización de MySQL Cluster 7.0 a 7.4
• 1 x chequeo preliminar del estado del cluster
• 8 x comandos ssh por servidor
• 8 x comandos “stop” para cada proceso.
• 4 x scp del fichero de configuración (2x mgmd y 2x
mysqld)
• 8 x comandos “start” para cada proceso.
• 8 x comprobaciones para los procesos iniciados y
los procesos que se unen
• 8 verificaciones de éxito a cada proceso
• 1 x verificación completa del cluster entero
• Excluye el ajuste manual de cada fichero de config
Total: 46 comandos -
2.5 horas de operación atendida
Antes de MySQL Cluster Manager Con MySQL Cluster Manager
upgrade cluster --package=7.4 mycluster;
Total: 1 Comando –
Operación Desatendida
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
MCM: La actualización de Cluster
mcm> upgrade cluster --package=cluster747
mycluster;
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
http://www.mysql.com/customers/cluster/
• Telecomunicaciones
• Subscriber Databases (HLR / HSS)
• Service Delivery Platforms
• VAS: VoIP, IPTV & VoD
• Mobile Content Delivery
• Mobile Payments
• LTE Access
• Web & Enterprise
• High volume OLTP
• eCommerce
• User Profile Management
• Session Management & Caching
• Content Management
• On-Line Gaming
MySQL Cluster – Usuarios y Aplicaciones
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
COMPANY OVERVIEW
• Leading provider of communications platforms, solutions &
services
• €15.2bn Revenues (2009), 77k employees across 130 countries
CHALLENGES / OPPORTUNITIES
• Converged services driving migration to next generation HLR /
HSS systems
• New IMS platforms for Unified Communications
• Reduce cost per subscriber and accelerate time to value
SOLUTIONS
• MySQL Cluster Carrier Grade Edition
• MySQL Support & Consulting Services
CUSTOMER PERSPECTIVE
“MySQL Cluster won the performance test hands-down, and it fitted our
needs perfectly. We evaluated shared-disk clustered databases, but the cost
would have been at least 10x more.”
-- François Leygues, Systems Manager
RESULTS
• Scale out on standard ATCA hardware to support 60m+
subscribers on a single platform
• Low latency, high throughput with 99.999%+ availability
• Enabled customers to reduce cost per subscriber and improve
margins
• Delivered data management solution at 10x less cost than
alternatives
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
COMPANY OVERVIEW
• Leading telecoms provider across Europe and Asia. Largest
Nordic provider
• 184m subscribers (Q2, 2010)
CHALLENGES / OPPORTUNITIES
• Extend OSS & BSS platforms for new mobile services and
evolution to LTE
• OSS: IP Management & AAA
• BSS: Subscriber Data Management & Customer Support
SOLUTIONS
• MySQL Cluster
• MySQL Support Services
CUSTOMER PERSPECTIVE
“Telenor has been using MySQL for fixed IP
management since 2003 and are extremely
satisfied with its speed, availability and
flexibility. Now we also support mobile
and LTE IP management with our solution.
Telenor has found MySQL Cluster to be
the best performing database in the world
for our applications.”
- Peter Eriksson, Manager, Network Provisioning
RESULTS
• Launch new services with no downtime, due to on-line
operations of MySQL Cluster
• Consolidated database supports Subscriber Data Management
initiatives
• MySQL Cluster selected due to 99.999% availability, real time
performance and linear scalability on commodity hardware
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Alguna Pregunta?
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Siguientes Pasos
65
Aprender más:
• www.mysql.com/cluster
• MySQL Curriculum: http://oracle.com/education/mysql
Pruébame:
• dev.mysql.com/downloads/cluster/
Dejadnos saber que opinas:
• forums.mysql.com/list.php?25
• keith.hollman@oracle.com
MySQL Cluster: El ‘qué’ y el ‘cómo’.

Más contenido relacionado

PPT
MySQL Cluster Basics
PPTX
DevOps Introduction
PPTX
DevOps Training | DevOps Training Video | DevOps Tools | DevOps Tutorial For ...
PDF
REPORTE INSTALACIÓN Y CONFIGURACIÓN DEL MySQL CLUSTER
PDF
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
PPS
la perra iris
DOC
Antología de cuentos
PDF
Historia16
MySQL Cluster Basics
DevOps Introduction
DevOps Training | DevOps Training Video | DevOps Tools | DevOps Tutorial For ...
REPORTE INSTALACIÓN Y CONFIGURACIÓN DEL MySQL CLUSTER
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
la perra iris
Antología de cuentos
Historia16

Destacado (17)

DOCX
bikram
PPT
Mda Consulting S E A Presentation Feb 2012
PDF
International
PPTX
petroleo artificial
PDF
Seminario magneto terapia libro
PPT
Oga gloria mendez y marlen espinel
PDF
El Carbono Social - Microsol - Por: Nadia Wagner
PPTX
PDF
Viking K 1900-3 - Door Entry Dialer 250 apt
PDF
Stora Enso at Interpack 2011: Primeforma
PPTX
Mapa conceptual interoperabilidad
PDF
Buenagente noviembre 2011.
PDF
Uso responsable alcohol arba feb2012
PDF
2011 Nissan Quest Specs
PPT
Sales Promotion
PPTX
Oman rail project public english
DOCX
(2013-01-08) lesiones dermatologicas en ap 2 parte (doc)
bikram
Mda Consulting S E A Presentation Feb 2012
International
petroleo artificial
Seminario magneto terapia libro
Oga gloria mendez y marlen espinel
El Carbono Social - Microsol - Por: Nadia Wagner
Viking K 1900-3 - Door Entry Dialer 250 apt
Stora Enso at Interpack 2011: Primeforma
Mapa conceptual interoperabilidad
Buenagente noviembre 2011.
Uso responsable alcohol arba feb2012
2011 Nissan Quest Specs
Sales Promotion
Oman rail project public english
(2013-01-08) lesiones dermatologicas en ap 2 parte (doc)
Publicidad

Similar a MySQL Cluster: El ‘qué’ y el ‘cómo’. (20)

DOCX
PDF
MySQL Cluster CGE 7.2
PPTX
Fnavarrete s2 1
PPTX
Base de datos CBTis 75
PDF
Cluster MySQL en Windows
PPTX
Principales bases de datos existentes
DOCX
Caracteristicas de oracle y my sql
PPTX
Oracle database
PPTX
Presentacion base de datos
DOCX
Clúster
PPTX
Bases de datos
DOCX
Arquitectura de oracle (30 hojas)
PDF
MySQL de 1995 a 5.5
PPTX
Bases de datos
PPTX
Principales bases de datos
PPTX
Bases de datos
PPTX
Base de datos
PPTX
Principales base de datos
PDF
ENTERPRISE MANAGER DE LA BASE DE DATOS ORACLE VERSIÓN 11G
MySQL Cluster CGE 7.2
Fnavarrete s2 1
Base de datos CBTis 75
Cluster MySQL en Windows
Principales bases de datos existentes
Caracteristicas de oracle y my sql
Oracle database
Presentacion base de datos
Clúster
Bases de datos
Arquitectura de oracle (30 hojas)
MySQL de 1995 a 5.5
Bases de datos
Principales bases de datos
Bases de datos
Base de datos
Principales base de datos
ENTERPRISE MANAGER DE LA BASE DE DATOS ORACLE VERSIÓN 11G
Publicidad

Más de Keith Hollman (14)

PDF
MySQL Enterprise Backup - BnR Scenarios
PDF
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
PDF
MySQL InnoDB Cluster HA Overview & Demo
PDF
MySQL Technology Overview
PPTX
MySQL 8.0 Released Update
PDF
MySQL Enterprise Edition - Complete Guide (2019)
PDF
MySQL 8.0 InnoDB Cluster demo
PDF
MySQL NoSQL JSON JS Python "Document Store" demo
PDF
MySQL Replication: Demo Réplica en Español
PDF
Meb Backup & Recovery Performance
PPT
MySQL Una Introduccion Tecnica
PDF
MySQL Enterprise Backup: PITR Partial Online Recovery
PDF
A MySQL Odyssey - A Blackhole Crossover
PDF
Embracing Database Diversity: The New Oracle / MySQL DBA - UKOUG
MySQL Enterprise Backup - BnR Scenarios
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
MySQL InnoDB Cluster HA Overview & Demo
MySQL Technology Overview
MySQL 8.0 Released Update
MySQL Enterprise Edition - Complete Guide (2019)
MySQL 8.0 InnoDB Cluster demo
MySQL NoSQL JSON JS Python "Document Store" demo
MySQL Replication: Demo Réplica en Español
Meb Backup & Recovery Performance
MySQL Una Introduccion Tecnica
MySQL Enterprise Backup: PITR Partial Online Recovery
A MySQL Odyssey - A Blackhole Crossover
Embracing Database Diversity: The New Oracle / MySQL DBA - UKOUG

Último (20)

PDF
clase auditoria informatica 2025.........
PDF
Calidad desde el Docente y la mejora continua .pdf
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
Influencia-del-uso-de-redes-sociales.pdf
PDF
ACTIVIDAD 2.pdf j
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
taller de informática - LEY DE OHM
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPTX
Administración se srevidores de apliaciones
PDF
Temas y subtemas de las fichas 1 y 2.pdf
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
Yogurt de tocosh (1).pptx preparacion receta
PDF
Aristoteles-y-su-forma-de-entender-el-conocimiento-y-las-personas.pdf
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
DOCX
Trabajo colaborativo Grupo #2.docxmmuhhlk
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
La electricidad y la electrónica .pdf n
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
clase auditoria informatica 2025.........
Calidad desde el Docente y la mejora continua .pdf
REDES INFORMATICAS REDES INFORMATICAS.pptx
Influencia-del-uso-de-redes-sociales.pdf
ACTIVIDAD 2.pdf j
Plantilla para Diseño de Narrativas Transmedia.pdf
taller de informática - LEY DE OHM
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
Administración se srevidores de apliaciones
Temas y subtemas de las fichas 1 y 2.pdf
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Yogurt de tocosh (1).pptx preparacion receta
Aristoteles-y-su-forma-de-entender-el-conocimiento-y-las-personas.pdf
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
Trabajo colaborativo Grupo #2.docxmmuhhlk
Presentación PASANTIAS AuditorioOO..pptx
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
La electricidad y la electrónica .pdf n
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx

MySQL Cluster: El ‘qué’ y el ‘cómo’.

  • 1. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | MySQL Cluster: El ‘qué’ y el ‘cómo’. Keith Hollman Principal Sales Consultant EMEA MySQL keith.hollman@oracle.com
  • 2. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Agenda 1 2 3 Introducción Empezando: configuración/instalación/inicio/parada La forma más sencilla: Cluster Manager. 2
  • 3. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle MySQL Soluciones de Alta Disponibilidad & Sharding MySQL Replication MySQL Fabric Oracle VM Template Oracle Clusterware Solaris Cluster Windows Cluster DRBD MySQL Cluster App Auto-Failover ✖ ✔ ✔ ✔ ✔ ✔ ✔ ✔ Data Layer Auto-Failover ✖ ✔ ✔ ✔ ✔ ✔ ✔ ✔ Zero Data Loss MySQL 5.7 MySQL 5.7 ✔ ✔ ✔ ✔ ✔ ✔ Platform Support All All Linux Linux Solaris Windows Linux All Clustering Mode Master + Slaves Master + Slaves Active/Passi ve Active/Passive Active/Pas sive Active/Passiv e Active/Pas sive Multi- Master Failover Time N/A Secs Secs + Secs + Secs + Secs + Secs + < 1 Sec Scale-out Reads ✔ ✖ ✖ ✖ ✖ ✖ ✔ Cross-shard operations N/A ✖ N/A N/A N/A N/A N/A ✔ Transparent routing ✖ For HA ✔ ✔ ✔ ✔ ✔ ✔ Shared Nothing ✔ ✔ ✖ ✖ ✖ ✖ ✔ ✔ Storage Engine InnoDB+ InnoDB+ InnoDB+ InnoDB+ InnoDB+ InnoDB+ InnoDB+ NDB Single Vendor Support ✔ ✔ ✔ ✔ ✔ ✖ ✔ ✔
  • 4. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Cuando pensar en MySQL Cluster • ¿Cuáles son las consecuencias de una parada o de una caída en el rendimiento? • ¿Cuánto esfuerzo y dinero se invierte en el desarrollo de las aplicaciones y en la gestión de la infrastructura HA? • Estás pensando en hacer sharding en la base de datos para poder escalar las escrituras y ganar en rendimiento. ¿Y ésto cómo afecta a tu aplicación y desarrolladores? • ¿Tus servicios necesitan ser real-time? • ¿Los servicios que ofreces tienen un crecimiento predicible, sobretodo en escrituras? • ¿Quieres la flexibilidad de acceder a tus datos con algo más que SQL? 4
  • 5. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Cuando NO pensar en MySQL Cluster • La mayoría de las aplicaciones de terceros. • Transacciones laragas. • Índices geospaciales. • Volumenes de datos grandes (>2TB) • Accesos complejos al dato y muchos Full Scans de tablas. •Cuando necesitas una base de datos basado en el almacenamiento en disco, ej. InnoDB. 5
  • 6. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Introducción a MySQL Cluster 6
  • 7. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | La historia de MySQL Cluster ”NDB” • MySQL Cluster también conocido como la Network DataBase NDB • Diseñado / desarrollado en Ericcson a finales de los 90. • Documento original de diseño: ”Design and Modeling of a Parallel Data Server for Telecom Applications” del año 1997 por Michael Ronström • Originalmente escrito en PLEX (Programming Language for EXchanges) pero convertido luego a C++. • MySQL AB adquirió Alzato (cuyo propietario era Ericsson) final del 2003. La base de datos en red / ”The Network DataBase NDB”
  • 8. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | La historia de MySQL Cluster ”NDB” • Servicios de bases de datos en aquel entonces: – SCP/SDP (Service Control/Data Point) en Redes Inteligentes. – HLR (Home Location Register) para mantener el control sobre los teléfonos móbiles / usuarios. – Bases de datos para gestión de redes, sobretodo información de cobro al instante (real-time charging). La base de datos en red / ”The Network DataBase NDB”
  • 9. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | La historia de MySQL Cluster ”NDB” • Se diseñó NDB para: – Fiabilidad, la clase de disponibilidad de las bases de datos telco’s debería ser 6. Esto significa que cualquier parada tiene que ser menos de 30 segundos por año. Significa que no se permite paradas no-planificadas. – Rendimiento, diseñado con alta concurrencia en mente, escalabilidad lineal cuando añadiendo servidores (data nodes) para accesos sencillos (búsquedas por PK). – Tiempo real (real-time), los datos se guardan en memoria y el sistema está diseñado para realizar operaciones en memoria. La base de datos en red / ”The Network DataBase NDB”
  • 10. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | MySQL Cluster resumido
  • 11. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | MySQL Cluster: Los Componentes 11 NDB API (Aplicaciones) Data Node (Almacenamiento de datos) MGM Node (Gestión) SQL Node (Aplicaciones) • Interfaz estándar de SQL • Escalabilidad horizontal para mejoras del rendimiento. • Habilita la Replica Geográfica. • Real-time applications. • APIs C++/Java • Failover y balanceo de carga automática. • Almacenamiento de datos (en Memoria y en Disco). • Particionamiento de datos Automática y Customizado. • Escalabilidad horizontal para aumentar capacidad y rendimiento. • Gestión, Monitorización y Configuración. • Árbitro en situaciones de split brain/red particionada. •Logs del Cluster .
  • 12. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Data Nodes • Almacena datos e índices – En memoria – Datos no-indexados posibles en disco. – Contiene varios bloques, los mas importantes, LQH, TUP, ACC y TC. • Check points de los datos realizados a disco “LCP”. • Coordinación de Transacciones. • Gestiona fail-over • Realiza los backups online • Todos conectados entre sí. • Hasta 48 – Típicamente 2, 4.
  • 13. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Management Nodes • Distribuyen la configuración • Logging • Monitorización • Hace de Árbitro – Impede escenarios de split-brain • Cuando no está en funcionamiento, Cluster sigue. – Se necesita para iniciar otros • 1 es lo mínimo, 3 demasiados, 2 perfecto.
  • 14. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | API Nodes • Aplicaciones escritos utilizando NDB API – C/C++/Java • Rápido – No parsea SQL • Ejemplos: – El storage engine NDBCluster – ndb_restore
  • 15. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | SQL Nodes • Es MySQL con el motor NDBCluster. – Es un API Node a la misma vez. • Transparente para la mayoría de las aplicaciones. • Se usa para crear tablas. • Se usa para Replica Geográfica – Guarda todos los cambios en Bin logs • Puede ser un Árbitro. • Conecta a todos los Data Nodes
  • 16. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | MySQL Cluster Arquitectura MySQL Cluster Data Nodes Clientes Capa Aplicaciones Capa de Datos Gestión
  • 17. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | MySQL Cluster Escalando horizontalmente MySQL Cluster Data Nodes Clientes Capa Aplicaciones Capa de Datos Gestión
  • 18. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | MySQL Cluster – Resistencia Extrema MySQL Cluster Data Nodes Clientes Capa Aplicaciones Capa de Datos Gestión
  • 19. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Particionamiento I • Particionamiento Vertical - 1:1 tablas a reducir el tamaño de las filas, tablas e índices. • Particionamiento Horizontal - 1 Tabla separación en múltiples tablas con filas diferentes.
  • 20. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | p1 p2 p1 p2 p3 Particionamiento de Datos II • Se particionan los datos por Primary Key por defecto. • Valor HASH de la PK, sólo es selectivo si se proporciona la PK completa, no “la columna más a la izquierda”. • Hash lineal, los datos sólo están desplazados (impacto bajo al hacer un “reorganize”).
  • 21. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Data Node 1 Data Node 2 Data Node 3 Data Node 4- Una partición es una parte de la tabla - Número de particiónes = número de data nodes - Particionamiento horizontal Tabla T1 ID FirstName LastName Email Phone P2 P3 P4 Px Partición P1 Particionamiento de Datos Automático
  • 22. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Data Node 1 Data Node 2 Data Node 3 Data Node 4Un fragmento es una partición Número de fragmentos = # de particiónes * # de replicas Tabla T1 ID FirstName LastName Email Phone P2 P3 P4 Px Partición P1 Particionamiento de Datos Automático
  • 23. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Data Node 1 Data Node 2 Data Node 3 Data Node 4Un fragmento puede ser primario o secondario / backup Número de fragmentos = # de particiones * # de replicas Tabla T1 ID FirstName LastName Email Phone P2 P3 P4 Px Partición 4 Particiones * 2 Replicas = 8 Fragmentos P1 Particionamiento de Datos Automático
  • 24. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Data Node 1 Data Node 2 F1 Primer Fragmento Segundo Fragmento Data Node 3 Data Node 4Fx Fx Tabla T1 ID FirstName LastName Email Phone P2 P3 P4 Px Partición 4 Particiones * 2 Replicas = 8 Fragmentos P1 Particionamiento de Datos Automático
  • 25. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Data Node 1 Data Node 2 F1 Primer Fragmento Segundo Fragmento F1 Data Node 3 Data Node 4Fx Fx Tabla T1 ID FirstName LastName Email Phone P2 P3 P4 Px Partición 4 Particiones * 2 Replicas = 8 Fragmentos P1 Particionamiento de Datos Automático
  • 26. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Data Node 1 Data Node 2 F1 Primer Fragmento Segundo Fragmento F3 F1 Data Node 3 Data Node 4Fx Fx Tabla T1 ID FirstName LastName Email Phone P2 P3 P4 Px Partición 4 Particiones * 2 Replicas = 8 Fragmentos P1 Particionamiento de Datos Automático
  • 27. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Data Node 1 Data Node 2 F1 F3 Primer Fragmento Segundo Fragmento F3 F1 Data Node 3 Data Node 4Fx Fx Tabla T1 ID FirstName LastName Email Phone P2 P3 P4 Px Partición 4 Particiones * 2 Replicas = 8 Fragmentos P1 Particionamiento de Datos Automático
  • 28. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Data Node 1 Data Node 2 F1 F3 Primer Fragmento Segundo Fragmento F3 F1 Data Node 3 Data Node 4 F2 Fx Fx Tabla T1 ID FirstName LastName Email Phone P2 P3 P4 Px Partición 4 Particiones * 2 Replicas = 8 Fragmentos P1 Particionamiento de Datos Automático
  • 29. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Data Node 1 Data Node 2 F1 F3 Primer Fragmento Segundo Fragmento F3 F1 Data Node 3 Data Node 4 F2 F2 Fx Fx Tabla T1 ID FirstName LastName Email Phone P2 P3 P4 Px Partición 4 Particiones * 2 Replicas = 8 Fragmentos P1 Particionamiento de Datos Automático
  • 30. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Data Node 1 Data Node 2 F1 F3 Primer Fragmento Segundo Fragmento F3 F1 Data Node 3 Data Node 4 F2 F4 F2 4 Particiones * 2 Replicas = 8 Fragmentos Fx Fx Tabla T1 ID FirstName LastName Email Phone P2 P3 P4 Px Partición P1 Particionamiento de Datos Automático
  • 31. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Data Node 1 Data Node 2 F1 F3 Primer Fragmento Segundo Fragmento F3 F1 Data Node 3 Data Node 4 F2 F4 F4 F2 Fx Fx Tabla T1 ID FirstName LastName Email Phone P2 P3 P4 Px Partición 4 Particiones * 2 Replicas = 8 Fragmentos P1 Particionamiento de Datos Automático
  • 32. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Data Node 1 Data Node 2 F3 Primer Fragmento Segundo Fragmento F1 Data Node 3 Data Node 4 F2 F4 F4 F2 Node Group 1 Fx Fx Tabla T1 ID FirstName LastName Email Phone P2 P3 P4 Px Partición 4 Particiones * 2 Replicas = 8 Fragmentos P1 F1 F3 Particionamiento de Datos Automático
  • 33. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Data Node 1 Data Node 2 F1 F3 Primer Fragmento Segundo Fragmento F3 F1 Data Node 3 Data Node 4 F2 F4 F4 F2 Node Group 1 Node Group 2 Fx Fx -Los node groups se crean automáticamente - # de grupos = # de data nodes / # de replicas Tabla T1 ID FirstName LastName Email Phone P2 P3 P4 Px Partición 4 Particiones * 2 Replicas = 8 Fragmentos P1 Particionamiento de Datos Automático
  • 34. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Data Node 1 Data Node 2 F1 F3 Primer Fragmento Segundo Fragmento F3 F1 Data Node 3 Data Node 4 F2 F4 F4 F2 Node Group 1 Node Group 2 Fx Fx Mientras que haya un data node funcionando en cada node group, tenemos una copia completa de los datos. Tabla T1 ID FirstName LastName Email Phone P2 P3 P4 Px Partición 4 Particiones * 2 Replicas = 8 Fragmentos P1 Particionamiento de Datos Automático
  • 35. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Data Node 1 Data Node 2 F1 F3 Primer Fragmento Segundo Fragmento F3 F1 Data Node 3 Data Node 4 F2 F4 F4 F2 Node Group 1 Node Group 2 Fx Fx Tabla T1 ID FirstName LastName Email Phone P2 P3 P4 Px Partición 4 Particiones * 2 Replicas = 8 Fragmentos P1 Particionamiento de Datos Automático Mientras que haya un data node funcionando en cada node group, tenemos una copia completa de los datos.
  • 36. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Data Node 1 Data Node 2 F1 F3 Primer Fragmento Segundo Fragmento F3 F1 Data Node 3 Data Node 4 F2 F4 F4 F2 Node Group 1 Node Group 2 Fx Fx Tabla T1 ID FirstName LastName Email Phone P2 P3 P4 Px Partición 4 Particiones * 2 Replicas = 8 Fragmentos P1 Particionamiento de Datos Automático Mientras que haya un data node funcionando en cada node group, tenemos una copia completa de los datos.
  • 37. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Tabla T1 Data Node 1 Data Node 2 F1 F3 Primer Fragmento Segundo Fragmento ID FirstName LastName Email Phone P2 P3 P4 Px Partición F3 F1 Data Node 3 Data Node 4 F2 F4 F4 F2 Node Group 1 Node Group 2 4 Particiones * 2 Replicas = 8 Fragmentos Fx Fx - No hay una copia completa de los datos. - El cluster se para automáticamente. P1 Particionamiento de Datos Automático
  • 38. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Particionamiento de Datos III • Partición – Particionamiento Horizontal. – Una parte de una tabla, cada Partición contiene un conjunto de filas. – Número de Particiones == LQH • Replica – Una copia completa de los datos. • Node Group – Creado automáticamente – # de grupos = # de data nodes / # de replicas – Mientras que haya un data node funcionando en cada node group, tenemos una copia completa de los datos.
  • 39. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Agenda 1 2 3 Introducción Empezando: configuración/instalación/inicio/parada La forma más sencilla: Cluster Manager. 39
  • 40. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | MySQL Cluster y los tipos de Instalaciones • Community / GPL – http://dev.mysql.com/downloads/cluster • Carrier Grade Edition – http://edelivery.oracle.com – http://support.oracle.com • Tarball – Instalación de manera manual. • RPM, DEB, PKG, DMG, MSI – Paquetes de instalación específicos para el S.O. – Rutas y paquetes (server, client, etc.) específicas. • Código fuente – Compila tu propia versión. • cmake . • make • make install 40
  • 41. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | MySQL Cluster Configuración • Todos los nodos está definidos en el fichero config.ini – Dividido en secciones mediante “[…]”, donde hay secciones para; • Data nodes ndb{mt}d • Management nodes [ndb_mgmd] • MySQL servers [mysqld] • API nodes [ndbapi] • Si se añade ‘default’ al nombre de la sección [ndbd default], los valores se aplican a todos. – Se inicia el Management node con un config.ini. Debería ser el mismo para todos los management nodes del Cluster. • Los MySQL API nodes se configuran tanto en el in config.ini y también en un my.cnf dedicado. 41
  • 42. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Configuración “config.ini” Parámetros típicos • IndexMemory y DataMemory. • Configura MaxNoOfExecutionThreads <= #cores – Si no, podría genera situaciones de contención → comportamiento inesperado. • RedoBuffer=32-64M – Si se tiene que configurar más alto → probablemente los discos sean demasiado lentos. • FragmentLogFileSize=256M • NoOfFragmentLogFiles= 6 x DataMemory (en MB) / (4x 256MB) – Problema más típico – clientes nunca configuran los redo logs lo suficientemente grandes. • Memoria para datos e índices adecuado para el tamaño de las bases de datos /índices. • LockPagesInMainMemory=1 • MaxNoOf*
  • 43. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Configuración Tablas “Disk-based ” • Usa “Disk Data Tables” para: – Accesos simples (lectura/escritura por PK) – Lo mismo que para InnoDB – Puedes empezar a sufrir problemas de E/S si no se vigila (iostat). • Configura DiskPageBufferMemory=3072M – Si se depende mucho de datos en disco, se suele recomenda su uso – igual que el Innodb_Buffer_Pool, pero configúralo lo más alto que se pueda! • Aumenta las posibilidades de que se cachea una página: – SharedGlobalMemory=384M-1024M • UNDO_BUFFER=64M to 128M (Si hay mucha escritura en disco) – ¡No puedes modificar éste buffer después! • Especificado a la hora de crear el LOGFILE GROUP: – DiskIOThreadPool=[ 8 .. 16 ]
  • 44. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | MySQL Cluster Iniciando / Parando config.ini [ndb_mgmd default] ArbitrationRank =1 DataDir =/opt/mysql/746/mgmd_data [ndb_mgmd] hostname =khollman-es NodeId =1 [ndbd default] noofreplicas =2 DataDir =/opt/mysql/746/ndbd_data DataMemory =20M IndexMemory =10M DiskPageBufferMemory =4M StringMemory =5 MaxNoOfConcurrentOperations =2K MaxNoOfConcurrentTransactions =2K SharedGlobalMemory =500K LongMessageBuffer =512K MaxParallelScansPerFragment =16 MaxNoOfAttributes =1000 MaxNoOfTablas =20 MaxNoOfOrderedIndexes =20 ODirect =TRUE HeartbeatIntervalDbDb =500 HeartbeatIntervalDbApi =500 StopOnError =1 TransactionInactiveTimeout =500 TransactionDeadlockDetectionTimeout = 1200 LockPagesInMainMemory =2 [ndbd] hostname =khollman-es datadir =/opt/mysql/746/ndbd_data nodeid =3 [mysqld default] [mysqld] NodeId =10 [mysqld] NodeId =11 [NDBAPI] NodeId =12 [NDBAPI] NodeId =13 44
  • 45. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | MySQL Cluster Iniciando / Parando my.cnf [client] socket =/tmp/mysql_7461.sock [mysql] prompt =R:m d>_ no-beep [mysqld] ndbcluster datadir =/opt/mysql/746/data ndb-connectstring =khollman-es:1186 user =mysql port =7461 socket =/tmp/mysql_7461.sock general-log =1 log-output =FILE log-error =khollman-es_7461.err slow-query-log =1 max_connections =20 innodb_log_buffer_size =8M innodb_buffer_pool_size =64M innodb_log_file_size =16M innodb_flush_log_at_trx_commit =2 innodb_file_per_Tabla =1 innodb_data_home_dir =/opt/mysql/746/data innodb_data_file_path =ibdata1:50M;ibdata2:50M:autoextend [mysql_cluster] ndb-connectstring =khollman-es:1186 45
  • 46. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | MySQL Cluster Iniciando / Parando • La primera vez y cuando cambios en la configuación son necesarios: --INITIAL – Cuando cambia el config.ini, no hay que hacer una parada completa del cluster. Reinicia ndb_mgmd con --INITIAL para limpiar la información cacheada de la configuración. Y luego reiniciar los datanodes (sin --initial). • Iniciando # ndb_mgmd -f config.ini --config-dir=/usr/local/mysql-cluster/conf --INITIAL # ndbd --INITIAL | ndbmtd –c localhost:1186 --INITIAL | ndbd –n (nostart) # scripts/mysql_install_db --defaults-file=my.cnf --user=mysql # mysqld_safe --defaults-file=my.cnf --user=mysql 46
  • 47. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | MySQL Cluster Iniciando / Parando • Iniciando – ndb_mgmd -f config.ini --config-dir=/usr/local/mysql-cluster/conf – ndbd | ndbmtd –c localhost:1186 – mysqld_safe --defaults-file=my.cnf • Parando – ndb_mgm –e shutdown – ndb_mgm –e [mgmt node & datanode] 1 | 3 | 4 stop – ndb_mgm –e [mgmt node & datanode] 1 | 3 | 4 restart – mysqladmin --defaults-file=my.cnf -uroot shutdown 47
  • 48. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | MySQL Cluster Iniciando / Parando nostart ndbmtd --ndb-nodeid=3 –n ndbmtd --ndb-nodeid=4 –n ndb_mgm -e show Cluster configuración --------------------- [ndbd(NDB)] 2 node(s) id=3 @127.0.0.1 (mysql-5.6.17 ndb-7.3.5, not started) id=4 @127.0.0.1 (mysql-5.6.17 ndb-7.3.5, not started) ndb_mgm -e "all start“ ndb_mgm -e show Cluster configuración --------------------- [ndbd(NDB)] 2 node(s) id=3 @127.0.0.1 (mysql-5.6.17 ndb-7.3.5, starting, Nodegroup: 0, *) id=4 @127.0.0.1 (mysql-5.6.17 ndb-7.3.5, starting, Nodegroup: 0) 48
  • 49. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Ficheros de Log • Logs – Management • Datadir: /opt/mysql/746/mgmd_data/ ndb_1_cluster.log / ndb_1_out.log – Datanodes • Datadir: /opt/mysql/746/ndbd_data/ ndb_3_out.log / ndb_3_out.err – SQLNodes • Datadir /opt/mysql/746/data/ hostname.err • Errores – El fichero de log del Cluster ndb_1_cluster.log es el mejor sitio donde empezar a investigar. 49
  • 50. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Agenda 1 2 3 Introducción Empezando: configuración/instalación/inicio/parada La forma más sencilla: Cluster Manager. 50
  • 51. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 51 La forma más sencilla: Cluster Manager
  • 52. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle Premier Lifetime Support Oracle Product Certifications/Integrations MySQL Enterprise Security MySQL Enterprise Scalability MySQL Cluster Manager MySQL Enterprise Monitor/Query Analyzer MySQL Workbench MySQL Enterprise Audit MySQL Enterprise Backup Los niveles más altos de Rendimiento, Seguridad y Disponibilidad.
  • 53. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Potenciando la agilidad de DevOps, Minimizando el Downtime Gestión Automatizada • Iniciar/Parar nodo o todo el cluster. • Crecimiento horizontal online. • Reconfiguración online. • Upgrades online. • Backup & Restore online. • Importar un Cluster en marcha. Auto-recuperable • Monitorización por nodo. • Auto-recuperación se extiende a los sql nodes y management node. Operaciones de Alta Disponibilidad • Configuración consistente de todos los componentes del cluster. • Configuraciónes persistentes. • Agentes de HA.
  • 54. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | MySQL Cluster Manager: Creando un Cluster I • Download MySQL Cluster Manager (MCM) + MySQL Cluster: – MCM 1.3.4, elige el paquete *sin* cluster, que debería ser sobre unos 20Mb (download en https://edelivery.oracle.com/) – MySQL Cluster 7.4.6 (download en http://downloads.mysql.com/archives/get/file/ mysql-cluster-gpl-7.4.6-linux-glibc2.5- x86_64.tar.gz) • Instalar y Configurar MySQL Cluster Manager – Los binarios de MCM y Cluster tienen que estar instalados en todos los servidores donde corre algún proceso NDB. – mkdir MCM – cd MCM – tar xzf /ruta/a/ mcm-1.3.4-linux-glibc2.5-x86-64bit.tar.gz – mv mcm-1.3.4-linux-glibc2.5-x86-64bit/mcm1.3.4 . – rmdir mcm-1.3.4-linux-glibc2.5-x86-64bit.tar.gz – cp mcm1.3.4/etc/mcmd.ini . – (hay que cambiar: manager-directory = /home/<user>/MCM/mcm_data) 54
  • 55. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | MySQL Cluster Manager: Creando un Cluster II • Instalar los binarios Cluster – tar xzf /ruta/a/ mysql-cluster-gpl-7.4.6-linux-glibc2.5-x86_64.tar.gz – mv mysql-cluster-gpl-7.4.6-linux-glibc2.5-x86_64 cluster-746 • iniciar el demonio MCMD (como usuario del s.o. ‘mysql’) – ./mcm1.3.4/bin/mcmd --defaults-file=./mcmd.ini –daemon • Configurar el Cluster – Connect to MCM and configure cluster (only from one site): – Start mcm client: ./mcm1.3.4/bin/mcm – (se necesita en el PATH la ruta del CLI de mysql, ej. /usr/local/mysql/bin/mysql ya que el CLI mcm se basa en él) 55
  • 56. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | MySQL Cluster Manager: Creando un Cluster III mcm> list commands mcm> create site --hosts=127.0.0.1 mysite; mcm> list sites; mcm> list hosts mysite; mcm> add package --basedir=/home/<user>/MCM/cluster-746 cluster746; mcm> list packages mysite; mcm> create cluster --package=cluster746 -- processhosts=ndb_mgmd@127.0.0.1,ndbmtd@127.0.0.1,ndbmtd@1 27.0.0.1 mycluster; mcm> add process -- processhosts=mysqld@127.0.0.1,mysqld@127.0.0.1 mycluster; mcm> add process -- processhosts=ndbapi@127.0.0.1,ndbapi@127.0.0.1 mycluster; mcm> add process -- processhosts=ndbapi@127.0.0.1,ndbapi@127.0.0.1 mycluster; mcm> get -d port:mysqld mycluster; mcm> set port:mysqld:51=3307 mycluster; 56 • Iniciar el Cluster: mcm> show status -r mycluster; mcm> start cluster mycluster; mcm> show status -r mycluster;
  • 57. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Migración de Base de datos en caliente Alternativas • Para que se haga en ‘caliente’, la mejor y única alternativa es un “Rolling Restart”: 1. Parar todos los Cluster Management nodes, sustituyendo el binario ndb_mgmd con la nueva versión y reiniciando. 2. Parar, sustituir y reinicar cada data node, cada uno en turno, uno a uno. 3. Parar, sustituir y reinicar cada sql node, cada uno en turno. – “Sustituir” significa redirigir al software nuevo en el servidor, (bien ln –s, o bien a la ruta directa /absoluta). – “software” significa el nuevo paquete de Cluster, en el formato de “mysql-cluster-gpl-7.4.6-linux- glibc2.5-x86_64.tar.gz”.
  • 58. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Migración de Base de datos en caliente Requisitos • Usar un esclavo replica del MySQL Cluster. – El esclavo puede tener una versión superior al Master. • “Rolling Upgrade” upgrade escalonado. (--initial obligatorio) • Si quieres usar MySQL Cluster Manager: mcm> add package –-basedir=/opt/MCM_LAB/cluster-746 cluster747; mcm> upgrade cluster --package=cluster747 mycluster;
  • 59. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | ¿Cómo ayuda MySQL Cluster Manager? Realizando la actualización de MySQL Cluster 7.0 a 7.4 • 1 x chequeo preliminar del estado del cluster • 8 x comandos ssh por servidor • 8 x comandos “stop” para cada proceso. • 4 x scp del fichero de configuración (2x mgmd y 2x mysqld) • 8 x comandos “start” para cada proceso. • 8 x comprobaciones para los procesos iniciados y los procesos que se unen • 8 verificaciones de éxito a cada proceso • 1 x verificación completa del cluster entero • Excluye el ajuste manual de cada fichero de config Total: 46 comandos - 2.5 horas de operación atendida Antes de MySQL Cluster Manager Con MySQL Cluster Manager upgrade cluster --package=7.4 mycluster; Total: 1 Comando – Operación Desatendida
  • 60. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | MCM: La actualización de Cluster mcm> upgrade cluster --package=cluster747 mycluster;
  • 61. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | http://www.mysql.com/customers/cluster/ • Telecomunicaciones • Subscriber Databases (HLR / HSS) • Service Delivery Platforms • VAS: VoIP, IPTV & VoD • Mobile Content Delivery • Mobile Payments • LTE Access • Web & Enterprise • High volume OLTP • eCommerce • User Profile Management • Session Management & Caching • Content Management • On-Line Gaming MySQL Cluster – Usuarios y Aplicaciones
  • 62. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | COMPANY OVERVIEW • Leading provider of communications platforms, solutions & services • €15.2bn Revenues (2009), 77k employees across 130 countries CHALLENGES / OPPORTUNITIES • Converged services driving migration to next generation HLR / HSS systems • New IMS platforms for Unified Communications • Reduce cost per subscriber and accelerate time to value SOLUTIONS • MySQL Cluster Carrier Grade Edition • MySQL Support & Consulting Services CUSTOMER PERSPECTIVE “MySQL Cluster won the performance test hands-down, and it fitted our needs perfectly. We evaluated shared-disk clustered databases, but the cost would have been at least 10x more.” -- François Leygues, Systems Manager RESULTS • Scale out on standard ATCA hardware to support 60m+ subscribers on a single platform • Low latency, high throughput with 99.999%+ availability • Enabled customers to reduce cost per subscriber and improve margins • Delivered data management solution at 10x less cost than alternatives
  • 63. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | COMPANY OVERVIEW • Leading telecoms provider across Europe and Asia. Largest Nordic provider • 184m subscribers (Q2, 2010) CHALLENGES / OPPORTUNITIES • Extend OSS & BSS platforms for new mobile services and evolution to LTE • OSS: IP Management & AAA • BSS: Subscriber Data Management & Customer Support SOLUTIONS • MySQL Cluster • MySQL Support Services CUSTOMER PERSPECTIVE “Telenor has been using MySQL for fixed IP management since 2003 and are extremely satisfied with its speed, availability and flexibility. Now we also support mobile and LTE IP management with our solution. Telenor has found MySQL Cluster to be the best performing database in the world for our applications.” - Peter Eriksson, Manager, Network Provisioning RESULTS • Launch new services with no downtime, due to on-line operations of MySQL Cluster • Consolidated database supports Subscriber Data Management initiatives • MySQL Cluster selected due to 99.999% availability, real time performance and linear scalability on commodity hardware
  • 64. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Alguna Pregunta?
  • 65. Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Siguientes Pasos 65 Aprender más: • www.mysql.com/cluster • MySQL Curriculum: http://oracle.com/education/mysql Pruébame: • dev.mysql.com/downloads/cluster/ Dejadnos saber que opinas: • forums.mysql.com/list.php?25 • keith.hollman@oracle.com