+ All Categories
Home > Documents > Oracle Day 2013 ~ MySQL Replication

Oracle Day 2013 ~ MySQL Replication

Date post: 14-Dec-2014
Category:
Upload: manuel-contreras
View: 768 times
Download: 1 times
Share this document with a friend
Description:
 
88
Colombia Bogotá
Transcript
Page 1: Oracle Day 2013 ~ MySQL Replication

Colombia Bogotá

Page 2: Oracle Day 2013 ~ MySQL Replication

MySQL

Pedro Andrade

[email protected]

Strategic Accounts

Manuel Contreras

[email protected]

Senior Consultant

Linux, Virtualization, MySQL

Global Business Unit

Colombia Bogotá Abril ‘13

Page 3: Oracle Day 2013 ~ MySQL Replication

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

Page 4: Oracle Day 2013 ~ MySQL Replication

MySQL Team – LAD

[email protected] – Corporate Sales ( CR )

[email protected] – Strategic Accounts ( ? )

[email protected] – Senior Consultant ( MX)

Page 5: Oracle Day 2013 ~ MySQL Replication

Agenda

MySQL Replication: Introducción

MySQL + Java: como escalar masivamente

aplicaciones.

Beneficios de MySQL, Java & GlassFish

Application Server.

Arquitecturas de Referencia MySQL

Donde encontrar más Información

QA

Page 6: Oracle Day 2013 ~ MySQL Replication

MySQL Replication

Page 7: Oracle Day 2013 ~ MySQL Replication

MySQL Replication: recap Funcionalidad Integrada a MySQL Server

Copia updates / inserts desde un Master Server hacia uno o

varios Slaves Servers.

Usos comunes:

High Availability

Backup On-line

Asíncrono

Semi-Sync en 5.6

updatecustomer

updatecustomer

Asynchronous Replication

Synchronous Replication

Customer Inquiry

Customer Inquiry

Page 8: Oracle Day 2013 ~ MySQL Replication

MySQL Replication Web / App Servers

Writes & Reads

MySQL Master Server

Writes

Index & Binary Log Rotation

MySQL Slave Server

Writes

Reads

Replication Relay Log

Page 10: Oracle Day 2013 ~ MySQL Replication

Replication ~ Topologías Flexibilidad para escalar

Multiple

Single Chain

Circular

Master

Slave

© 2010 Oracle Corporation – Proprietary and Confidential

Page 11: Oracle Day 2013 ~ MySQL Replication

MySQL Enterprise

Page 12: Oracle Day 2013 ~ MySQL Replication

MySQL Enterprise – Valor agregado

– Workbench, monitor, query analyzer, performance advisors - Facilidad de uso y mejor control de la plataforma

– Soporte Técnico 24x7 Oracle Support – Mitigación de riesgos

– Actualizaciones de software - Estabilidad y mejor desempeño en MySQL

Server

Open-source server with pluggable APIs

Monitoring

Enterprise manager

Query analysis

Hot fixes

Service packs

Best practices rules

Knowledge base

24x7 support

Load balancer

Page 13: Oracle Day 2013 ~ MySQL Replication

MySQL Enterprise Edition

MySQL Community Server

MySQL Enterprise - Performance

20x Mejor escalabilidad MySQL Enterprise MySQL 5.5.16

Oracle Linux 6.1, Unbreakable Kernel 2.6.32 2 sockets, 24 cores, 2 X 12-core Intel(R) Xeon(R) X5670 2.93GHz CPUs 72GB DDR3 RAM 2 X LSI SCSI Disk (MR9261-8i) (597GB)

Page 14: Oracle Day 2013 ~ MySQL Replication

Default Connection Pool

Users/Clients

Connection 1

Default

Connection Pool

Connections

/statements

assigned

to Threads

for life

Connection 1 Execution Thread

Connection 2 Connection 2 Execution Thread

• Connections assigned to 1 thread for the life of the connection

• Same thread used for all connection statement executions (single threaded)

Page 15: Oracle Day 2013 ~ MySQL Replication

With Thread Pool Enabled

Thread Pool (and thread groups)

Connection 1 Execution Threads

Users/Clients

Connection 1

Connection 2

Connection 1

Threads 1 - 4096

Connection 2

Threads 4097 - 8193

Connection 2 Execution Threads

• Pool contains configurable number of thread groups (default = 16), each manages up to 4096 re-usable threads

• Each connection assigned to thread group via round robin

Connection N

Threads 8194 - N

Ensures better, sustained performance as user loads continue to grow.

Page 16: Oracle Day 2013 ~ MySQL Replication
Page 17: Oracle Day 2013 ~ MySQL Replication

MySQL Enterprise Monitor: Query Analyzer

Page 18: Oracle Day 2013 ~ MySQL Replication

MySQL Enterprise Backup

• Online Backup for InnoDB

• Full, Incremental, Partial Backups

• Compressed Backup

• Point in Time Recovery (PITR)

• High Performance

• Unlimited Database Size

• Cross-Platform (Windows, Linux, Unix)

MEB Backup Files

MySQL Database Files

mysqlbackup

Page 19: Oracle Day 2013 ~ MySQL Replication

19 © 2012 Oracle Corporation – Proprietary and Confidential

MySQL Workbench Tweets from real users after 5.2 release

“MySQL Workbench – I think I love you. Exporting backups and managing mass connections is so simple. Bootiful!” “MySQL Workbench 5.2 is impressive.

SQL Development, Data Modeling, and Server Administration all integrated”

Page 20: Oracle Day 2013 ~ MySQL Replication

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

MySQL Workbench

• SQL Development

– SQL Editor - Color Syntax Highlighting

– Object Management - Import/Export, Browser, Edit

– Connection Management - Wizard, SSH Tunnel

– Multi-Pane Results View, In-grid data edits

• Data Modelling

– Visual Design

– Forward/Reverse Engineer

• Database Administration

– Status, Configuration, Start/Stop, Replication

– Users, Security, Session Management

– Import/Export Dump Files

New! Database Migration Wizard for SQL Server, Sybase, PostgreSQL

Page 21: Oracle Day 2013 ~ MySQL Replication

21

MySQL Enterprise Security

Page 22: Oracle Day 2013 ~ MySQL Replication

22

MySQL Enterprise Audit

Page 23: Oracle Day 2013 ~ MySQL Replication

23

MySQL Enterprise Audit

Page 24: Oracle Day 2013 ~ MySQL Replication

Java La plataforma de desarrollo

Page 25: Oracle Day 2013 ~ MySQL Replication

Java

Java

- Simple, facil de usar

- 100% orientado a objetos, API clases

- Administración automática de memoria

- Independiente a la plataforma

- Orientado a un contenedor JRE ( JVM )

–Maquina virtual Java que administra multi-threading, seguridad, memoria, class loader, manejo de excepciones ( errores en tiempo de ejecución )

- Oracle Glassfish Application Server es la implementación de referencia para Java EE

- 9 millones de desarrolladores en el mundo

- Java es gestionado por el Java Community Process

El lenguaje de programación independiente a la plataforma

http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html

Page 26: Oracle Day 2013 ~ MySQL Replication

Java 7.0

Java 7.0, incorpora mejoras orientadas para aumentar el desempeño de aplicaciones corriendo en servidores con gran capacidad en RAM, y CPU multi-cores.

– Manejo de memoria mas eficiente

- Memoria es divida en varios Heap - First Gargabe collector: divide la memoria en varios

heap memory, aumentando el desempeño en su acceso

– Nueva funcionalidad en API de JDBC, para conectividad a bases de datos RowSet, Statement y Connection implementan la

interfaz Closeable, AutoCloseable

Java 7.0 – potencializa el desempeño de Java en Servidores

Page 27: Oracle Day 2013 ~ MySQL Replication

Java & MySQL ~ la mejor combinación

Mecanismos para establecer conexiones a MySQL Server, con Java:

- Pool Connection / Data Source

- Persistence Framework

– Hibernate, Spring

– Memcached ( Not-Only SQL MySQL 5.6 & MySQL Cluster 7.2 )

– NoSQL ( Not Only SQL )

– ClusterJ & Memcached Java APIs

– MySQL Server 5.6 ( InnoDB )

– MySQL Cluster ( NDB Cluster )

Prácticas Recomendadas para Java Developers

Page 28: Oracle Day 2013 ~ MySQL Replication

JDBC | Java Database Connectivity Prácticas Recomendadas para Java Developers

Page 29: Oracle Day 2013 ~ MySQL Replication

JDBC | Java Database Connectivity

Pool Connection / DataSource

- Un conjunto de conexiones, siempre esta listo en el pool

- Método: getConnection() en Java, obtiene una conexión lista del pool, sin delay en abrir físicamente una conexión al motor de BD.

- Método closeConnection() en Java, NO cierra la conexión, únicamente la retorna al pool, para que otro Thread pueda re-utilizarla

Prácticas Recomendadas para Java Developers

Page 30: Oracle Day 2013 ~ MySQL Replication

JDBC | DataSource Glassfish

http://blogs.oracle.com/psterk/entry/creating_and_configuring_a_mysql

Page 31: Oracle Day 2013 ~ MySQL Replication

JDBC | DataSource Glassfish

http://blogs.oracle.com/psterk/entry/creating_and_configuring_a_mysql

El Servidor Java EE de aplicaciones, Glassfish Application Server administra las conexiones en el Pool: Automáticamente cierra conexiones en estado idle. Obtiene conexiones sobre demanda, según las requiera el aplicativo. Configuración centralizada desde JDBC Resource Manager, en el Java Application Server.

Prácticas Recomendadas para Java Developers

Page 32: Oracle Day 2013 ~ MySQL Replication

JDBC | Java Database Connectivity

Data Source

Prácticas Recomendadas para Java Developers

Page 33: Oracle Day 2013 ~ MySQL Replication

JDBC | Java Database Connectivity

Data Source (2)

Prácticas Recomendadas para Java Developers

Page 34: Oracle Day 2013 ~ MySQL Replication

Recap: JDBC | Java Database Connectivity

JNDI Data Source

- Pro: flexibilidad en parámetros de configuración, gestión de conexiones por el contenedor Java EE

- Consideración: requiere de un application server ( container )

Persistence Framework

- Pro: mapping entre OO & ER

- Consideración : requiere mayor configuracion ( XML config params )

-NoSQL ( Memcached, ClusterJ )

Pro: Key-Value access repository

Consideración : No FK’s, NO ACIDity

Prácticas Recomendadas para Java Developers

Page 35: Oracle Day 2013 ~ MySQL Replication

Recap: MySQL – Replicación Master – Slave

Page 36: Oracle Day 2013 ~ MySQL Replication

JDBC | Java Database Connectivity

JDBC – MySQL Master, Slave1, Slave2, SlaveN – Round Robin

Prácticas Recomendadas para Java Developers

- Balanceo de Lectura en servidores Slave

- Servidor Master para Read & Writes

- Slaves para Read Only

- JDBC Connector automáticamente, selecciona un

Slave de la lista de Slaves

http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-connection.html

Page 37: Oracle Day 2013 ~ MySQL Replication

JDBC | Java Database Connectivity

Prácticas Recomendadas para Java Developers

http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-connection.html

- Import de Librerías

- Configura Driver para uso en RoundRobin Load Balancing

Page 38: Oracle Day 2013 ~ MySQL Replication

JDBC | Java Database Connectivity

Prácticas Recomendadas para Java Developers

http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-connection.html

- Insert Datos en Master ( Read Only False )

Page 39: Oracle Day 2013 ~ MySQL Replication

JDBC | Java Database Connectivity

Prácticas Recomendadas para Java Developers

http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-connection.html

- Select Datos en uno de los Slaves ( Read Only True )

Page 40: Oracle Day 2013 ~ MySQL Replication

MySQL Enterprise Monitor • Replication Monitor

Page 41: Oracle Day 2013 ~ MySQL Replication

• Vista única consolidada del ambiente MySQL

• Auto descubrimiento de servidores MySQL, replicación y topologías

• Alertas y monitoreo adaptable y basado en reglas

• Identificación de problemas antes de que ocurran

• Reducción de riesgo y tiempo de inactividad

• Facilidad para escalamiento horizontal sin requerir más DBAs

MySQL Enterprise Monitor

Un asistente DBA Virtual para MySQL

http://mysql.com/products/enterprise/monitor.html

Page 42: Oracle Day 2013 ~ MySQL Replication
Page 43: Oracle Day 2013 ~ MySQL Replication

MySQL Enterprise Monitor • Java Connector plugin

Page 44: Oracle Day 2013 ~ MySQL Replication
Page 45: Oracle Day 2013 ~ MySQL Replication

• Java Connector plugin

– MySQL Enterprise Monitor, a través de conector JDBC Java

•Obtiene información de queries para su análisis, desde la aplicación

– Utilizado por Query Analyzer de MySQL Monitor

MySQL Enterprise Monitor

http://dev.mysql.com/doc/mysql-monitor/2.3/en/mem-qanal-using-cj.html

Page 46: Oracle Day 2013 ~ MySQL Replication
Page 47: Oracle Day 2013 ~ MySQL Replication

MySQL Replication

Clustering & Virtualization

Clustering & Geo Replication

DRBD

TCO

& M

ore

Co

mp

lex

Alta Disponibilidad

% 9 9 9 9 35 dias 4 days 50 min 5 min 8 horas

eCommerce

Telecoms, Militar

. 9

4 dias

ISPs &

Corporativo On-Line

Services

Page 48: Oracle Day 2013 ~ MySQL Replication

MySQL Replication

Manual Failover

Hardware o software load balancers [ F5,

ultramonkey (software) ]

Linux-ha.org / Linux Heartbeat

Linux Enterprise Cluster Suite

Windows Clustering Service

Built-in MySQL Connector Failover (Connector J )

A nivel a aplicación

- Try connection A, then try connection B

Page 49: Oracle Day 2013 ~ MySQL Replication

Recap: MySQL – Replicación Master – Slave

Page 50: Oracle Day 2013 ~ MySQL Replication

© 2010 Oracle Corporation – Proprietary and Confidential

Shared Storage (SAN)

Page 51: Oracle Day 2013 ~ MySQL Replication

© 2010 Oracle Corporation – Proprietary and Confidential

Shared-Disk Clustering Architectures

= Private IP =

10.10.10.21

Active Server Passive Server

Cluster Management

= Virtual IP =

10.10.10.10

= Private IP =

10.10.10.20

Cluster Agent

SAN

Cluster Agent

Page 52: Oracle Day 2013 ~ MySQL Replication

© 2010 Oracle Corporation – Proprietary and Confidential

DRBD Distributed Replicated Block

Device

Page 53: Oracle Day 2013 ~ MySQL Replication

Linux Heartbeat, DRBD and MySQL

= Private IP = 10.10.10.21

Active Server Passive Server

= Private IP = 10.10.10.20

Primary DRBD Secondary DRBD DRBD

Linux Heartbeat = Virtual IP = 10.10.10.10

Page 54: Oracle Day 2013 ~ MySQL Replication

• Certified and fully supported by Oracle – DRBD integrated into Oracle Linux

Unbreakable Enterprise Kernel R2

– Pacemaker and Corosync for clustering & failover

– Updates to stack via ULN channel

• Based on distributed storage, not a SAN – Synchronous replication eliminates

risk of data loss

• Open source, mature & proven

MySQL Enterprise High Availability Oracle Linux + DRBD Stack

Page 55: Oracle Day 2013 ~ MySQL Replication

MySQL: Sakila & el Chavo del 8 en Facebook

MySQL apoya a el Chavo del 8 con:

- Soporte técnico 24x7, para el cluster de 10 nodos.

- Revisión de configuración & puesta a punto de la plataforma productiva.

- Actualizaciones de software al binario MySQL Cluster CGE v 7.2.X

- Disminución de 30% de saturación & consumo de CPU.

- Detección de fallas & monitoring a través de MySQL Enterprise Monitor.

- Afinación del ambiente MySQL Cluster, para mejorar el desempeño del juego.

Page 56: Oracle Day 2013 ~ MySQL Replication

MySQL: Sakila & el Chavo del 8 en Facebook

MySQL apoya a el Chavo del 8 con:

- Soporte técnico 24x7, para el cluster de 10 nodos.

- Revisión de configuración & puesta a punto de la plataforma productiva.

- Actualizaciones de software al binario MySQL Cluster CGE v 7.2.X

- Disminución de 30% de saturación & consumo de CPU.

- Detección de fallas & monitoring a través de MySQL Enterprise Monitor.

- Afinación del ambiente MySQL Cluster, para mejorar el desempeño del juego.

Page 57: Oracle Day 2013 ~ MySQL Replication
Page 58: Oracle Day 2013 ~ MySQL Replication

MySQL Cluster CGE

Introducción

Botero en Medellin Colombia

http://www.flickr.com/photos/dfinnecy/2092541057/

Page 59: Oracle Day 2013 ~ MySQL Replication

MySQL Cluster CGE – Características generales

- ACID, datos distribuidos en memoria – BDs distribuida en memoria, auto-partitioning (sharding).

Write-Scalable & Real-Time –Procesamiento en nodos Activo – Activo, con replicación síncrona de datos.

Alta Disponibilidad, 99.999%

–SQL & Not Only SQL (NoSQL), interfaces.

–Arquitectura Shared-nothing, con soporte a replicación local & geográfica.

Mejora el TCO Open-source, herramientas para administración, monitoring, &

escalabilidad horizontal en commodity hardware.

Page 60: Oracle Day 2013 ~ MySQL Replication
Page 61: Oracle Day 2013 ~ MySQL Replication

MySQL Cluster CGE

Auto

Fragmentación de

Datos

Machu Picchu Perú

http://www.flickr.com/photos/94875862@N00/95345836/in/photostream/

Page 62: Oracle Day 2013 ~ MySQL Replication

MySQL Cluster CGE Auto-Sharding –

Introducción

•Partitioning - Sharding ocurre automáticamente y de forma

transparente para la aplicación

•Conocimientos básicos de como funciona, puede incrementar el

desempeño de la aplicación

•Escalable de forma horizontal, con soporte para agregar mas nodos

en linea

•No es necesario, agregar lógica en la aplicación para tomar ventaja

del Sharding

http://www.mysql.com/why-mysql/white-papers/mysql_wp_cluster_perfomance.php

Page 63: Oracle Day 2013 ~ MySQL Replication
Page 64: Oracle Day 2013 ~ MySQL Replication
Page 65: Oracle Day 2013 ~ MySQL Replication
Page 66: Oracle Day 2013 ~ MySQL Replication
Page 67: Oracle Day 2013 ~ MySQL Replication
Page 68: Oracle Day 2013 ~ MySQL Replication
Page 69: Oracle Day 2013 ~ MySQL Replication
Page 70: Oracle Day 2013 ~ MySQL Replication
Page 71: Oracle Day 2013 ~ MySQL Replication
Page 72: Oracle Day 2013 ~ MySQL Replication
Page 73: Oracle Day 2013 ~ MySQL Replication
Page 74: Oracle Day 2013 ~ MySQL Replication
Page 75: Oracle Day 2013 ~ MySQL Replication
Page 76: Oracle Day 2013 ~ MySQL Replication
Page 77: Oracle Day 2013 ~ MySQL Replication

MySQL Cluster CGE

Scaling-Out

Escalabilidad

Horizontal

9 de Julio BsAs Argentina

http://www.flickr.com/photos/fvyague/2538963317/

Page 78: Oracle Day 2013 ~ MySQL Replication
Page 79: Oracle Day 2013 ~ MySQL Replication
Page 80: Oracle Day 2013 ~ MySQL Replication
Page 81: Oracle Day 2013 ~ MySQL Replication

• Certified and fully supported by Oracle – DRBD integrated into Oracle Linux

Unbreakable Enterprise Kernel R2

– Pacemaker and Corosync for clustering & failover

– Updates to stack via ULN channel

• Based on distributed storage, not a SAN – Synchronous replication eliminates

risk of data loss

• Open source, mature & proven

MySQL Enterprise High Availability Oracle Linux + DRBD Stack

Page 82: Oracle Day 2013 ~ MySQL Replication

• Cluster managed through MS Failover Cluster Management snap-in GUI

• Loss of service = couple of seconds + InnoDB recovery time

– App sees temporary loss of connection and reconnects on same IP address

– Replication slave recovers automatically

App

Virtual IP

Data Bin

Slave App App

Vote

MySQL Enterprise High Availability

Page 83: Oracle Day 2013 ~ MySQL Replication

• Kernel based heartbeat and monitoring

• SPARC and x86. Solaris Virtualization-aware

• MySQL agent included with Oracle Solaris Clusterl

MySQL Enterprise High Availability Oracle Solaris Clustering

Page 84: Oracle Day 2013 ~ MySQL Replication

MySQL Enterprise Backup

• Respaldo en linea para MySQL databases • Alto performance en Respaldo y Restauración de Info • Respaldos Full, Incremental, Partial

- Compressed Tables - Partition Files - In-memory database

• Compresión de datos • Point in Time Recovery • Cross Platform • Unlimited Database size

• Mejora de 3.5x, sobre tiempos de backup con mysqldump • Mejora de 16x, sobre tiempos de restore con mysqldump

Page 85: Oracle Day 2013 ~ MySQL Replication

MySQL Workbench

http://www.mysql.com/products/workbench/

Page 86: Oracle Day 2013 ~ MySQL Replication
Page 87: Oracle Day 2013 ~ MySQL Replication

Software Open Source @

Oracle Pedro Andrade

[email protected]

Strategic Accounts

Manuel Contreras

[email protected]

Senior Consultant

Linux, Virtualization, MySQL

Global Business Unit

Colombia Bogotá Abril ‘13

Page 88: Oracle Day 2013 ~ MySQL Replication

Colombia Bogotá


Recommended