MySQL High Availability Architectures

In order to understand replication in MySQL and how high availability  is achieved  it is important to have an idea of how it is done. Replication in MySQL is primarily achieved using the binary log.  The binary log records all changes made to the  database along with additional information related to those changes such as time taken to for a statement to update data Et cetera.    From a high level the master write database changes/events to its(master) binary log file and then notifies the salve(s) of  the new updates which then reads and applies those changes .The binary log is not only used for replication but can be used for auditing and point in time recovery.For more details about MySQL binary log please visit:

MySQL Binary Log Documentation
How Does MySQL Replication Really Work

Depending on your requirements there are various  architectures or ways that you can configure MySQL and MySQL Cluster. Below is just a summary of some of the most frequently used architectures to achieve high availability.

MySQL Master/Slave(s) Replication

MySQL master to slave(s) configuration is the most popular setup. In this design One(1) server acts as the master database  and all other server(s) act as slaves.Writes can only occur on the master node by the application

Pros

*Analytic applications can read from the slave(s) without impacting the master

Continue reading…

MySQL Cluster 101

What is MySQL Cluster

MySQL Cluster is a technology providing shared-nothing clustering and auto-sharding for the MySQL database management system. It is designed to provide high availability and high throughput with low latency, while allowing for near linear scalability.[2] MySQL Cluster is implemented through the NDB or NDBCLUSTER storage engine for MySQL (“NDB” stands for Network Database).Wikipedia

For simplicity MySQL Cluster can be defined as   a shared-nothing distributed “database” that is designed for fault tolerance, high availability and high performance.

MySQL Cluster Architecture

MySQL Cluster is made of  three main kind of nodes:

1. Management Node(s) [ndb_mgmd]  –  Are responsible for performing mainly administrative  functions related to the cluster. Management nodes are used to check the status,start & stop nodes that are apart of the cluster. They are also responsible for distributing information about the makeup of the cluster.

Continue reading…

MySQL Cluster Getting Started [Redhat/Centos 6]

Installing

1.Download the RPM from MySQL.com

wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.3/MySQL-Cluster-gpl-7.3.5-1.el6.x86_64.rpm-bundle.tar 

2.Install the RPM  and dependencies

yum groupinstall 'Development Tools'

yum remove mysql-libs

yum install libaio-devel

rpm -Uhv MySQL-Cluster-server-gpl-7.3.5-1.el6.x86_64.rpm

This installs all the binaries that will be required to configure each component of the MySQL Cluster.

Screen Shot 2014-06-18 at 9.55.52 PM

 

Continue reading…