SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
MySQL High Availability Solutions


     Lenz Grimmer <lenz@grimmer.com>
                  <
     http://lenzg.net/ | Twitter: @lenzgr
2011-01-26 | San Francisco MySQL Meetup | USA
$ whoami




1998              2002



2008              2010
Agenda
●   High Availability: Concepts &
    Considerations
●   MySQL Replication
●   DRBD / Pacemaker
●   MySQL Cluster
●   Other HA tools/applications
Single MySQL Server

            MySQL Client



   SQL (SELECT, INSERT,
      UPDATE, DELETE)

   MySQL Storage Engines
(InnoDB, MyISAM, PBXT...)



             Disk Storage
(XFS, ReiserFS, JFS, ext3...)
Why HA?
●   Something can and will fail
●   Service Maintenance
●   Downtime is expensive
●   Adding HA to an existing system is complex
Elimination of the SPOF
●   Identify what will fail eventually
     ●   Hard disks
     ●   Fans
●   Consider what might fail
     ●   Application crashes
     ●   OOM-Situations, Kernel-Panics
     ●   Network connections, Cables
     ●   Power supply
What is HA Clustering?
●   Redundancy
●   One system or service goes down → others
    take over
●   IP address takeover, service takeover
●   Ensuring data availability & integrity
●   Not designed for high-performance
High Availability Levels
Rules of High Availability
●   Prepare for failure
●   Aim to ensure that no important data is
    lost
●   Keep it simple, stupid (KISS)
●   Complexity is the enemy of reliability
●   Automate it
●   Test your setup frequently!
HA Components
●   Heartbeat
     ●   Checks that services that are monitored, are alive.
     ●   Can check individual servers, software services,
         networking etc.
●   HA Monitor
     ●   Configuration of the services
     ●   Ensures proper shutdown and startup
     ●   Allows manual control
●   Shared storage / Replication
Split-Brain
●   Communications failures can lead to
    separated partitions of the cluster
●   If those partitions each try and take control
    of the cluster, then it's called a split-brain
    condition
●   If this happens, then bad things will happen
●   Use Fencing or Moderation/Arbitration to
    avoid it
Redundancy Using MySQL Replication




           MySQL Replication
MySQL Replication
●   Unidirectional
●   Statement- or row-based (MySQL 5.1)
●   Built into MySQL
●   Easy to use and set up
●   One Master, many Slaves
●   Asynchronous – Slaves can lag behind
●   New in MySQL 5.5: Semisync Replication
MySQL Replication (2)
●   Master maintains Binary logs & index
●   Replication on Slave is single-threaded
    http://forge.mysql.com/wiki/ReplicationFeatures/ParallelSlave
●   No automated fail-over
●   No heartbeat, no monitoring
●   New in 5.5: replication heartbeat
MySQL Replication - Overview

        Read & Write


            Web/App
             Server
                                                                       Write

                                                 Relay
                                                  Log



                  mysqld                                                SQL
                                                       I/O
                                                                       Threa
                                                     Thread
                                                                         d
                       Index &
                       Binlogs

Data

                                 Replication                  Binlog           Data

                                               mysqld

       MySQL Master                                       MySQL Slave
Statement-based Replication
●   Pro
     ✔   Proven (around since MySQL 3.23)
     ✔   Smaller log files
     ✔   Auditing of actual SQL statements
     ✔   No primary key requirement for replicated tables
●   Con
     ✗   Non-deterministic functions and UDFs
     ✗   LOAD_FILE(), UUID(), CURRENT_USER(),
         FOUND_ROWS()
         (but RAND() and NOW() work)
Row-based Replication
●   Pro
     ✔   All changes can be replicated
     ✔   Similar technology used by other RDBMSes
     ✔   Fewer locks required for some INSERT, UPDATE or
         DELETE statements
●   Con
     ✗   More data to be logged
     ✗   Log file size increases (backup/restore implications)
     ✗   Replicated tables require explicit primary keys
     ✗   Possible different result sets on bulk INSERTs
Replication Topologies

Master > Slave                          Master > Slaves




Master > Slave > Slaves            Masters > Slave (Multi-Source)




                                         Ring (Multi-Master)
Master < > Master (Multi-Master)
Master-Master Replication
●   Two nodes are both master and slave to
    each other
●   Useful for easier failover
●   Not suitable for (write) load-balancing
●   Don't write to both masters
    simultaneously!
●   Use Sharding or Partitioning instead
    (e.g. MySQL Proxy)
MySQL Replication as a HA Solution
●   What happens if the Master fails?
●   What happens if the Slave fails?
●   This doesn’t sound like High Availability!
●   Yes!
●   Replication is only part of a HA
    configuration
Pacemaker (Linux-HA)
●   Supports 2 or more Nodes (v2)
●   Resource monitoring (Apps and HW)
●   Active fencing mechanism (STONITH)
●   Node failure detection in seconds
●   Supports many applications (incl. MySQL)
●   http://clusterlabs.org/
●   http://www.clusterlabs.org/wiki/Load_Balanced_MySQL_Replicated_Cluster
●   http://www.clusterlabs.org/wiki/DRBD_MySQL_HowTo
Replication & HA
●   Combined with Pacemaker
●   Virtual IP takeover
●   Slave gets promoted to Master
●   Side benefits: load balancing & backup
●   Can be tricky to fail back
●   No automatic conflict resolution
●   Proper failover needs to be scripted
Redundancy With Disk Replication




           Disk Replication
DRBD
●   Distributed Replicated Block Device
●   “RAID-1 over network”
●   Synchronous/asynchronous block replication
●   Automatic resynchronisation
●   Application-agnostic
●   Can mask local I/O-Errors
●   Active/passive configuration
●   Dual-primary mode (requires cluster file sytem
    like GFS or OCFS2)
●   http://drbd.org/
DRBD in Detail
●   DRBD replicates data blocks between to
    block devices
●   DRBD can be combined with Linux-HA and
    other HA solutions
●   MySQL runs normally                    Applications


    on primary node
●   MySQL is not active on   Active Node   Virtual IP     Passive Node


    the secondary node
●   DRBD is Linux only                            DRBD
Redundancy Using Shared Storage
Replication vs. SAN
●   Data Consistency / Integrity
●   Synchronous vs. asynchronous
●   SAN can become the SPOF
●   Cold caches
●   “Split brain”-Situations
●   SAN/NAS I/O Overhead
Redundancy with MySQL Cluster
MySQL Cluster
●   “Shared-nothing”-Architecture
●   Automatic partitioning
●   Distributed fragments
●   Synchronous replication
●   Fast, automatic fail-over of data nodes
●   Automatic resynchronisation
●   Transparent to MySQL applicationen
●   Supports transactions
●   http://mysql.com/products/database/cluster/
MySQL Cluster
●   In-memory indexes
●   Not suitable for all query patterns
    (cross-table JOINs, range scans)
●   No support for foreign keys
●   Not suitable for long running transactions
●   Network latency crucial
●   Can be combined with MySQL replication
    (RBR)
MySQL Cluster & Replikation
●   MySQL Cluster
     ●   Easy failover from one MySQL node to another
     ●   Scaling write load using multiple SQL nodes
●   Asynchronous replication from Cluster to
    regular MySQL slaves
●   Slaves take read load (InnoDB/MyISAM)
●   Quick setup of new slaves (Cluster Online
    Backup)
●   Easy failover and fast recovery
http://johanandersson.blogspot.com/2009/05/ha-mysql-write-scaling-using-cluster-to.html
Galera Replication
●   Patch for InnoDB plus external library
●   Synchronous replication
●   Single- or multi-master
●   Multicast-Replication
●   HA plus load sharing possible
●   Certifikate-based replikation
    (instead of 2PC)
●   http://codership.com/products/mysql_galera
MMM
●   MySQL Master-Master Replication
    Manager
●   Perl-Script for monitoring, failover and
    management
●   Master-master replication configuration
    (one active writable master)
●   Failover by moving virtual IP-Address
●   Also supports read balancing
●   http://mysql-mmm.org/
Continuent Tungsten Replicator
●   Database-external solution
●   Asynchronous, Master-Slave, Fan-out &
    Fan-in
●   Java
●   Log-based
●   Events are stored in the Transaction History
    Log (THL)
●   Modular architekture (Pipelines, Stages)
●   http://continuent.com/community/tungsten-replicator
Red Hat Cluster Suite
●   HA and load balancing
●   Supports up to 16 nodes
●   Shared storage
●   Monitors services, file systems and network
    status
●   Fencing (STONITH) or distributed lock
    manager
●   Configuration synchronization
●   http://www.redhat.com/cluster_suite/
Solaris Cluster / OpenHA Cluster
●   Provides failover and scalability services
●   Solaris / OpenSolaris (Project Colorado)
●   Kernel-level components plus userland
●   Agents monitor applications
●   Geo Edition to provide Disaster Recovery
    using Replication
●   Open Source since June 2007
●   http://hub.opensolaris.org/bin/view/Community+Group+ha-clusters/WebHome
●   http://hub.opensolaris.org/bin/view/Project+ha-mysql/WebHome
Flipper
●   Perl Script managing pairs of MySQL
    servers replicating to each other.
●   Automatic switchover, triggered manually
●   Enables one half of the pair to be taken
    offline for maintenance work while other
    half carries on
●   Moves IP addresses based on a role ("read-
    only", "writable")
●   http://provenscaling.com/software/flipper/
Q&A




Questions, Comments?
Thank you!




Lenz Grimmer <lenz@grimmer.com>
         Twitter: @lenzgr
         http://lenzg.net/

Contenu connexe

Tendances

Making MySQL Administration a Breeze - A look into a MySQL DBA's toolchest
Making MySQL Administration a Breeze - A look into a MySQL DBA's toolchest Making MySQL Administration a Breeze - A look into a MySQL DBA's toolchest
Making MySQL Administration a Breeze - A look into a MySQL DBA's toolchest
Lenz Grimmer
 
Webseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
Webseminar: MariaDB Enterprise und MariaDB Enterprise ClusterWebseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
Webseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
MariaDB Corporation
 

Tendances (20)

MariaDB Galera Cluster - Simple, Transparent, Highly Available
MariaDB Galera Cluster - Simple, Transparent, Highly AvailableMariaDB Galera Cluster - Simple, Transparent, Highly Available
MariaDB Galera Cluster - Simple, Transparent, Highly Available
 
MySQL features missing in MariaDB Server
MySQL features missing in MariaDB ServerMySQL features missing in MariaDB Server
MySQL features missing in MariaDB Server
 
High Availability with MariaDB Enterprise
High Availability with MariaDB EnterpriseHigh Availability with MariaDB Enterprise
High Availability with MariaDB Enterprise
 
Best practices for MySQL High Availability
Best practices for MySQL High AvailabilityBest practices for MySQL High Availability
Best practices for MySQL High Availability
 
Databases in the hosted cloud
Databases in the hosted cloudDatabases in the hosted cloud
Databases in the hosted cloud
 
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleThe Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
 
Making MySQL Administration a Breeze - A look into a MySQL DBA's toolchest
Making MySQL Administration a Breeze - A look into a MySQL DBA's toolchest Making MySQL Administration a Breeze - A look into a MySQL DBA's toolchest
Making MySQL Administration a Breeze - A look into a MySQL DBA's toolchest
 
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB MeetupMariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
 
MariaDB 10 Tutorial - 13.11.11 - Percona Live London
MariaDB 10 Tutorial - 13.11.11 - Percona Live LondonMariaDB 10 Tutorial - 13.11.11 - Percona Live London
MariaDB 10 Tutorial - 13.11.11 - Percona Live London
 
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
 
High Performance Drupal with MariaDB
High Performance Drupal with MariaDBHigh Performance Drupal with MariaDB
High Performance Drupal with MariaDB
 
The MySQL ecosystem - understanding it, not running away from it!
The MySQL ecosystem - understanding it, not running away from it! The MySQL ecosystem - understanding it, not running away from it!
The MySQL ecosystem - understanding it, not running away from it!
 
Webseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
Webseminar: MariaDB Enterprise und MariaDB Enterprise ClusterWebseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
Webseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
 
MariaDB 10: The Complete Tutorial
MariaDB 10: The Complete TutorialMariaDB 10: The Complete Tutorial
MariaDB 10: The Complete Tutorial
 
Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015
 
Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0
 
The MySQL Server ecosystem in 2016
The MySQL Server ecosystem in 2016The MySQL Server ecosystem in 2016
The MySQL Server ecosystem in 2016
 
Meet MariaDB 10.1 at the Bulgaria Web Summit
Meet MariaDB 10.1 at the Bulgaria Web SummitMeet MariaDB 10.1 at the Bulgaria Web Summit
Meet MariaDB 10.1 at the Bulgaria Web Summit
 
Distributions from the view a package
Distributions from the view a packageDistributions from the view a package
Distributions from the view a package
 
Upgrade to MySQL 5.6 without downtime
Upgrade to MySQL 5.6 without downtimeUpgrade to MySQL 5.6 without downtime
Upgrade to MySQL 5.6 without downtime
 

En vedette

MySQL Best Practices - OTN LAD Tour
MySQL Best Practices - OTN LAD TourMySQL Best Practices - OTN LAD Tour
MySQL Best Practices - OTN LAD Tour
Ronald Bradford
 
MHA (MySQL High Availability): Getting started & moving past quirks
MHA (MySQL High Availability): Getting started & moving past quirksMHA (MySQL High Availability): Getting started & moving past quirks
MHA (MySQL High Availability): Getting started & moving past quirks
Colin Charles
 
MySQL High-Availability and Scale-Out architectures
MySQL High-Availability and Scale-Out architecturesMySQL High-Availability and Scale-Out architectures
MySQL High-Availability and Scale-Out architectures
FromDual GmbH
 

En vedette (20)

MySQL Server Defaults
MySQL Server DefaultsMySQL Server Defaults
MySQL Server Defaults
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group Replication
 
SQL Outer Joins for Fun and Profit
SQL Outer Joins for Fun and ProfitSQL Outer Joins for Fun and Profit
SQL Outer Joins for Fun and Profit
 
MySQL aio
MySQL aioMySQL aio
MySQL aio
 
Mysql For Developers
Mysql For DevelopersMysql For Developers
Mysql For Developers
 
MySQL Best Practices - OTN LAD Tour
MySQL Best Practices - OTN LAD TourMySQL Best Practices - OTN LAD Tour
MySQL Best Practices - OTN LAD Tour
 
Mastering InnoDB Diagnostics
Mastering InnoDB DiagnosticsMastering InnoDB Diagnostics
Mastering InnoDB Diagnostics
 
MHA (MySQL High Availability): Getting started & moving past quirks
MHA (MySQL High Availability): Getting started & moving past quirksMHA (MySQL High Availability): Getting started & moving past quirks
MHA (MySQL High Availability): Getting started & moving past quirks
 
Successful Scalability Principles - Part 1
Successful Scalability Principles - Part 1Successful Scalability Principles - Part 1
Successful Scalability Principles - Part 1
 
MySQL High Availability and Disaster Recovery with Continuent, a VMware company
MySQL High Availability and Disaster Recovery with Continuent, a VMware companyMySQL High Availability and Disaster Recovery with Continuent, a VMware company
MySQL High Availability and Disaster Recovery with Continuent, a VMware company
 
Everything You Need to Know About MySQL Group Replication
Everything You Need to Know About MySQL Group ReplicationEverything You Need to Know About MySQL Group Replication
Everything You Need to Know About MySQL Group Replication
 
Online MySQL Backups with Percona XtraBackup
Online MySQL Backups with Percona XtraBackupOnline MySQL Backups with Percona XtraBackup
Online MySQL Backups with Percona XtraBackup
 
Mysql high availability and scalability
Mysql high availability and scalabilityMysql high availability and scalability
Mysql high availability and scalability
 
High Availability Using MySQL Group Replication
High Availability Using MySQL Group ReplicationHigh Availability Using MySQL Group Replication
High Availability Using MySQL Group Replication
 
Mix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Mix ‘n’ Match Async and Group Replication for Advanced Replication SetupsMix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Mix ‘n’ Match Async and Group Replication for Advanced Replication Setups
 
MySQL High Availability Deep Dive
MySQL High Availability Deep DiveMySQL High Availability Deep Dive
MySQL High Availability Deep Dive
 
MySQL High-Availability and Scale-Out architectures
MySQL High-Availability and Scale-Out architecturesMySQL High-Availability and Scale-Out architectures
MySQL High-Availability and Scale-Out architectures
 
MySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDBMySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDB
 
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
 
A New Architecture for Group Replication in Data Grid
A New Architecture for Group Replication in Data GridA New Architecture for Group Replication in Data Grid
A New Architecture for Group Replication in Data Grid
 

Similaire à MySQL High Availability Solutions

Drupal Con My Sql Ha 2008 08 29
Drupal Con My Sql Ha 2008 08 29Drupal Con My Sql Ha 2008 08 29
Drupal Con My Sql Ha 2008 08 29
liufabin 66688
 
Buytaert kris my_sql-pacemaker
Buytaert kris my_sql-pacemakerBuytaert kris my_sql-pacemaker
Buytaert kris my_sql-pacemaker
kuchinskaya
 
Ukoug 2011 mysql_arch_for_orcl_dba
Ukoug 2011 mysql_arch_for_orcl_dbaUkoug 2011 mysql_arch_for_orcl_dba
Ukoug 2011 mysql_arch_for_orcl_dba
orablue11
 
UKOUG 2011: Practical MySQL Tuning
UKOUG 2011: Practical MySQL TuningUKOUG 2011: Practical MySQL Tuning
UKOUG 2011: Practical MySQL Tuning
FromDual GmbH
 
MySQL overview
MySQL overviewMySQL overview
MySQL overview
Marco Tusa
 

Similaire à MySQL High Availability Solutions (20)

Drupal Con My Sql Ha 2008 08 29
Drupal Con My Sql Ha 2008 08 29Drupal Con My Sql Ha 2008 08 29
Drupal Con My Sql Ha 2008 08 29
 
Buytaert kris my_sql-pacemaker
Buytaert kris my_sql-pacemakerBuytaert kris my_sql-pacemaker
Buytaert kris my_sql-pacemaker
 
The Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialThe Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication Tutorial
 
Ukoug 2011 mysql_arch_for_orcl_dba
Ukoug 2011 mysql_arch_for_orcl_dbaUkoug 2011 mysql_arch_for_orcl_dba
Ukoug 2011 mysql_arch_for_orcl_dba
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAs
 
Running MySQL in AWS
Running MySQL in AWSRunning MySQL in AWS
Running MySQL in AWS
 
NoSQL with MySQL
NoSQL with MySQLNoSQL with MySQL
NoSQL with MySQL
 
UKOUG 2011: Practical MySQL Tuning
UKOUG 2011: Practical MySQL TuningUKOUG 2011: Practical MySQL Tuning
UKOUG 2011: Practical MySQL Tuning
 
MariaDB und mehr - MariaDB Roadshow Summer 2014 Hamburg Berlin Frankfurt
MariaDB und mehr - MariaDB Roadshow Summer 2014 Hamburg Berlin FrankfurtMariaDB und mehr - MariaDB Roadshow Summer 2014 Hamburg Berlin Frankfurt
MariaDB und mehr - MariaDB Roadshow Summer 2014 Hamburg Berlin Frankfurt
 
MySQL always-up with Galera Cluster
MySQL always-up with Galera ClusterMySQL always-up with Galera Cluster
MySQL always-up with Galera Cluster
 
Collaborate 2012 - Administering MySQL for Oracle DBAs
Collaborate 2012 - Administering MySQL for Oracle DBAsCollaborate 2012 - Administering MySQL for Oracle DBAs
Collaborate 2012 - Administering MySQL for Oracle DBAs
 
MySQL overview
MySQL overviewMySQL overview
MySQL overview
 
The Peoper Care and Feeding of a MySQL Server for Busy Linux Admin
The Peoper Care and Feeding of a MySQL Server for Busy Linux AdminThe Peoper Care and Feeding of a MySQL Server for Busy Linux Admin
The Peoper Care and Feeding of a MySQL Server for Busy Linux Admin
 
When is MyRocks good?
When is MyRocks good? When is MyRocks good?
When is MyRocks good?
 
MySQL Webinar 2/4 Performance tuning, hardware, optimisation
MySQL Webinar 2/4 Performance tuning, hardware, optimisationMySQL Webinar 2/4 Performance tuning, hardware, optimisation
MySQL Webinar 2/4 Performance tuning, hardware, optimisation
 
Open stack HA - Theory to Reality
Open stack HA -  Theory to RealityOpen stack HA -  Theory to Reality
Open stack HA - Theory to Reality
 
Proper Care and Feeding of a MySQL Database for Busy Linux Administrators
Proper Care and Feeding of a MySQL Database for Busy Linux AdministratorsProper Care and Feeding of a MySQL Database for Busy Linux Administrators
Proper Care and Feeding of a MySQL Database for Busy Linux Administrators
 
Linuxfest Northwest Proper Care and Feeding Of a MySQL for Busy Linux Admins
Linuxfest Northwest Proper Care and Feeding Of a MySQL for Busy Linux AdminsLinuxfest Northwest Proper Care and Feeding Of a MySQL for Busy Linux Admins
Linuxfest Northwest Proper Care and Feeding Of a MySQL for Busy Linux Admins
 
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best PracticesMySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
 
The Proper Care and Feeding of a MySQL Database for Busy Linux Admins -- SCaL...
The Proper Care and Feeding of a MySQL Database for Busy Linux Admins -- SCaL...The Proper Care and Feeding of a MySQL Database for Busy Linux Admins -- SCaL...
The Proper Care and Feeding of a MySQL Database for Busy Linux Admins -- SCaL...
 

Plus de Lenz Grimmer

MySQL 5.5 Replication Enhancements – An Overview (FOSDEM 2011)
MySQL 5.5 Replication Enhancements – An Overview (FOSDEM 2011)MySQL 5.5 Replication Enhancements – An Overview (FOSDEM 2011)
MySQL 5.5 Replication Enhancements – An Overview (FOSDEM 2011)
Lenz Grimmer
 
MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability Solutions
Lenz Grimmer
 

Plus de Lenz Grimmer (20)

Ceph Management and Monitoring - DevConf.CZ - 2019-01-26
Ceph Management and Monitoring -  DevConf.CZ - 2019-01-26Ceph Management and Monitoring -  DevConf.CZ - 2019-01-26
Ceph Management and Monitoring - DevConf.CZ - 2019-01-26
 
Managing and Monitoring Ceph - Ceph Day Berlin - 2018-11-12
Managing and Monitoring Ceph - Ceph Day Berlin - 2018-11-12Managing and Monitoring Ceph - Ceph Day Berlin - 2018-11-12
Managing and Monitoring Ceph - Ceph Day Berlin - 2018-11-12
 
Ceph Management and Monitoring with Dashboard V2 - Cephalocon 2018-03-23
Ceph Management and Monitoring with Dashboard V2 - Cephalocon 2018-03-23Ceph Management and Monitoring with Dashboard V2 - Cephalocon 2018-03-23
Ceph Management and Monitoring with Dashboard V2 - Cephalocon 2018-03-23
 
Ceph and Storage Management with openATTIC - FOSDEM 2017-02-05
Ceph and Storage Management with openATTIC - FOSDEM 2017-02-05Ceph and Storage Management with openATTIC - FOSDEM 2017-02-05
Ceph and Storage Management with openATTIC - FOSDEM 2017-02-05
 
Ceph and Storage Management with openATTIC - Ceph Day Munich - 2016-09-23
Ceph and Storage Management with openATTIC - Ceph Day Munich - 2016-09-23Ceph and Storage Management with openATTIC - Ceph Day Munich - 2016-09-23
Ceph and Storage Management with openATTIC - Ceph Day Munich - 2016-09-23
 
Ceph and Storage Management in openATTIC - solutions.hamburg - 2016-09-09
Ceph and Storage Management in openATTIC - solutions.hamburg - 2016-09-09Ceph and Storage Management in openATTIC - solutions.hamburg - 2016-09-09
Ceph and Storage Management in openATTIC - solutions.hamburg - 2016-09-09
 
Storage Monitoring in openATTIC - Monitoring Workshop - 2016-09-07
Storage Monitoring in openATTIC - Monitoring Workshop - 2016-09-07Storage Monitoring in openATTIC - Monitoring Workshop - 2016-09-07
Storage Monitoring in openATTIC - Monitoring Workshop - 2016-09-07
 
Ceph and Storage Management with openATTIC - FrOSCon 2016-08-21
Ceph and Storage Management with openATTIC - FrOSCon 2016-08-21Ceph and Storage Management with openATTIC - FrOSCon 2016-08-21
Ceph and Storage Management with openATTIC - FrOSCon 2016-08-21
 
Ceph and Storage Management with openATTIC - SUSE MOST - 2016-06-07
Ceph and Storage Management with openATTIC - SUSE MOST - 2016-06-07Ceph and Storage Management with openATTIC - SUSE MOST - 2016-06-07
Ceph and Storage Management with openATTIC - SUSE MOST - 2016-06-07
 
Ceph and Storage Management with openATTIC, Ceph Tech Talks 2016-06-23
Ceph and Storage Management with openATTIC, Ceph Tech Talks 2016-06-23Ceph and Storage Management with openATTIC, Ceph Tech Talks 2016-06-23
Ceph and Storage Management with openATTIC, Ceph Tech Talks 2016-06-23
 
Ceph and Storage Management with openATTIC, openSUSE Conference 2016-06-23
Ceph and Storage Management with openATTIC, openSUSE Conference 2016-06-23Ceph and Storage Management with openATTIC, openSUSE Conference 2016-06-23
Ceph and Storage Management with openATTIC, openSUSE Conference 2016-06-23
 
Storage Management mit openAttic - LinuxDay - 2015-11-21
Storage Management mit openAttic - LinuxDay - 2015-11-21Storage Management mit openAttic - LinuxDay - 2015-11-21
Storage Management mit openAttic - LinuxDay - 2015-11-21
 
Flexibles Storage Management unter Linux mit OpenATTIC - Kielux 2015-09-18
Flexibles Storage Management unter Linux mit OpenATTIC - Kielux 2015-09-18Flexibles Storage Management unter Linux mit OpenATTIC - Kielux 2015-09-18
Flexibles Storage Management unter Linux mit OpenATTIC - Kielux 2015-09-18
 
The Evolution of Storage on Linux - FrOSCon - 2015-08-22
The Evolution of Storage on Linux - FrOSCon - 2015-08-22The Evolution of Storage on Linux - FrOSCon - 2015-08-22
The Evolution of Storage on Linux - FrOSCon - 2015-08-22
 
MySQL 5.5 Replication Enhancements – An Overview (FOSDEM 2011)
MySQL 5.5 Replication Enhancements – An Overview (FOSDEM 2011)MySQL 5.5 Replication Enhancements – An Overview (FOSDEM 2011)
MySQL 5.5 Replication Enhancements – An Overview (FOSDEM 2011)
 
What's new in MySQL 5.5? FOSDEM 2011
What's new in MySQL 5.5? FOSDEM 2011What's new in MySQL 5.5? FOSDEM 2011
What's new in MySQL 5.5? FOSDEM 2011
 
MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability Solutions
 
How to build your own Quadrocopter
How to build your own QuadrocopterHow to build your own Quadrocopter
How to build your own Quadrocopter
 
What's new in MySQL 5.5?
What's new in MySQL 5.5?What's new in MySQL 5.5?
What's new in MySQL 5.5?
 
ZFS unter Linux
ZFS unter LinuxZFS unter Linux
ZFS unter Linux
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

MySQL High Availability Solutions

  • 1. MySQL High Availability Solutions Lenz Grimmer <lenz@grimmer.com> < http://lenzg.net/ | Twitter: @lenzgr 2011-01-26 | San Francisco MySQL Meetup | USA
  • 2. $ whoami 1998 2002 2008 2010
  • 3. Agenda ● High Availability: Concepts & Considerations ● MySQL Replication ● DRBD / Pacemaker ● MySQL Cluster ● Other HA tools/applications
  • 4. Single MySQL Server MySQL Client SQL (SELECT, INSERT, UPDATE, DELETE) MySQL Storage Engines (InnoDB, MyISAM, PBXT...) Disk Storage (XFS, ReiserFS, JFS, ext3...)
  • 5. Why HA? ● Something can and will fail ● Service Maintenance ● Downtime is expensive ● Adding HA to an existing system is complex
  • 6. Elimination of the SPOF ● Identify what will fail eventually ● Hard disks ● Fans ● Consider what might fail ● Application crashes ● OOM-Situations, Kernel-Panics ● Network connections, Cables ● Power supply
  • 7. What is HA Clustering? ● Redundancy ● One system or service goes down → others take over ● IP address takeover, service takeover ● Ensuring data availability & integrity ● Not designed for high-performance
  • 9. Rules of High Availability ● Prepare for failure ● Aim to ensure that no important data is lost ● Keep it simple, stupid (KISS) ● Complexity is the enemy of reliability ● Automate it ● Test your setup frequently!
  • 10. HA Components ● Heartbeat ● Checks that services that are monitored, are alive. ● Can check individual servers, software services, networking etc. ● HA Monitor ● Configuration of the services ● Ensures proper shutdown and startup ● Allows manual control ● Shared storage / Replication
  • 11. Split-Brain ● Communications failures can lead to separated partitions of the cluster ● If those partitions each try and take control of the cluster, then it's called a split-brain condition ● If this happens, then bad things will happen ● Use Fencing or Moderation/Arbitration to avoid it
  • 12. Redundancy Using MySQL Replication MySQL Replication
  • 13. MySQL Replication ● Unidirectional ● Statement- or row-based (MySQL 5.1) ● Built into MySQL ● Easy to use and set up ● One Master, many Slaves ● Asynchronous – Slaves can lag behind ● New in MySQL 5.5: Semisync Replication
  • 14. MySQL Replication (2) ● Master maintains Binary logs & index ● Replication on Slave is single-threaded http://forge.mysql.com/wiki/ReplicationFeatures/ParallelSlave ● No automated fail-over ● No heartbeat, no monitoring ● New in 5.5: replication heartbeat
  • 15. MySQL Replication - Overview Read & Write Web/App Server Write Relay Log mysqld SQL I/O Threa Thread d Index & Binlogs Data Replication Binlog Data mysqld MySQL Master MySQL Slave
  • 16. Statement-based Replication ● Pro ✔ Proven (around since MySQL 3.23) ✔ Smaller log files ✔ Auditing of actual SQL statements ✔ No primary key requirement for replicated tables ● Con ✗ Non-deterministic functions and UDFs ✗ LOAD_FILE(), UUID(), CURRENT_USER(), FOUND_ROWS() (but RAND() and NOW() work)
  • 17. Row-based Replication ● Pro ✔ All changes can be replicated ✔ Similar technology used by other RDBMSes ✔ Fewer locks required for some INSERT, UPDATE or DELETE statements ● Con ✗ More data to be logged ✗ Log file size increases (backup/restore implications) ✗ Replicated tables require explicit primary keys ✗ Possible different result sets on bulk INSERTs
  • 18. Replication Topologies Master > Slave Master > Slaves Master > Slave > Slaves Masters > Slave (Multi-Source) Ring (Multi-Master) Master < > Master (Multi-Master)
  • 19. Master-Master Replication ● Two nodes are both master and slave to each other ● Useful for easier failover ● Not suitable for (write) load-balancing ● Don't write to both masters simultaneously! ● Use Sharding or Partitioning instead (e.g. MySQL Proxy)
  • 20. MySQL Replication as a HA Solution ● What happens if the Master fails? ● What happens if the Slave fails? ● This doesn’t sound like High Availability! ● Yes! ● Replication is only part of a HA configuration
  • 21. Pacemaker (Linux-HA) ● Supports 2 or more Nodes (v2) ● Resource monitoring (Apps and HW) ● Active fencing mechanism (STONITH) ● Node failure detection in seconds ● Supports many applications (incl. MySQL) ● http://clusterlabs.org/ ● http://www.clusterlabs.org/wiki/Load_Balanced_MySQL_Replicated_Cluster ● http://www.clusterlabs.org/wiki/DRBD_MySQL_HowTo
  • 22. Replication & HA ● Combined with Pacemaker ● Virtual IP takeover ● Slave gets promoted to Master ● Side benefits: load balancing & backup ● Can be tricky to fail back ● No automatic conflict resolution ● Proper failover needs to be scripted
  • 23. Redundancy With Disk Replication Disk Replication
  • 24. DRBD ● Distributed Replicated Block Device ● “RAID-1 over network” ● Synchronous/asynchronous block replication ● Automatic resynchronisation ● Application-agnostic ● Can mask local I/O-Errors ● Active/passive configuration ● Dual-primary mode (requires cluster file sytem like GFS or OCFS2) ● http://drbd.org/
  • 25. DRBD in Detail ● DRBD replicates data blocks between to block devices ● DRBD can be combined with Linux-HA and other HA solutions ● MySQL runs normally Applications on primary node ● MySQL is not active on Active Node Virtual IP Passive Node the secondary node ● DRBD is Linux only DRBD
  • 27. Replication vs. SAN ● Data Consistency / Integrity ● Synchronous vs. asynchronous ● SAN can become the SPOF ● Cold caches ● “Split brain”-Situations ● SAN/NAS I/O Overhead
  • 29. MySQL Cluster ● “Shared-nothing”-Architecture ● Automatic partitioning ● Distributed fragments ● Synchronous replication ● Fast, automatic fail-over of data nodes ● Automatic resynchronisation ● Transparent to MySQL applicationen ● Supports transactions ● http://mysql.com/products/database/cluster/
  • 30. MySQL Cluster ● In-memory indexes ● Not suitable for all query patterns (cross-table JOINs, range scans) ● No support for foreign keys ● Not suitable for long running transactions ● Network latency crucial ● Can be combined with MySQL replication (RBR)
  • 31.
  • 32. MySQL Cluster & Replikation ● MySQL Cluster ● Easy failover from one MySQL node to another ● Scaling write load using multiple SQL nodes ● Asynchronous replication from Cluster to regular MySQL slaves ● Slaves take read load (InnoDB/MyISAM) ● Quick setup of new slaves (Cluster Online Backup) ● Easy failover and fast recovery
  • 34. Galera Replication ● Patch for InnoDB plus external library ● Synchronous replication ● Single- or multi-master ● Multicast-Replication ● HA plus load sharing possible ● Certifikate-based replikation (instead of 2PC) ● http://codership.com/products/mysql_galera
  • 35. MMM ● MySQL Master-Master Replication Manager ● Perl-Script for monitoring, failover and management ● Master-master replication configuration (one active writable master) ● Failover by moving virtual IP-Address ● Also supports read balancing ● http://mysql-mmm.org/
  • 36. Continuent Tungsten Replicator ● Database-external solution ● Asynchronous, Master-Slave, Fan-out & Fan-in ● Java ● Log-based ● Events are stored in the Transaction History Log (THL) ● Modular architekture (Pipelines, Stages) ● http://continuent.com/community/tungsten-replicator
  • 37. Red Hat Cluster Suite ● HA and load balancing ● Supports up to 16 nodes ● Shared storage ● Monitors services, file systems and network status ● Fencing (STONITH) or distributed lock manager ● Configuration synchronization ● http://www.redhat.com/cluster_suite/
  • 38. Solaris Cluster / OpenHA Cluster ● Provides failover and scalability services ● Solaris / OpenSolaris (Project Colorado) ● Kernel-level components plus userland ● Agents monitor applications ● Geo Edition to provide Disaster Recovery using Replication ● Open Source since June 2007 ● http://hub.opensolaris.org/bin/view/Community+Group+ha-clusters/WebHome ● http://hub.opensolaris.org/bin/view/Project+ha-mysql/WebHome
  • 39. Flipper ● Perl Script managing pairs of MySQL servers replicating to each other. ● Automatic switchover, triggered manually ● Enables one half of the pair to be taken offline for maintenance work while other half carries on ● Moves IP addresses based on a role ("read- only", "writable") ● http://provenscaling.com/software/flipper/
  • 41. Thank you! Lenz Grimmer <lenz@grimmer.com> Twitter: @lenzgr http://lenzg.net/