Skip to main content

MySQL Cluster Set Up


1) Management node

192.168.0.1 -Management (MGM) node
MySQL-ndb-tools-5.1.11-0.glibc23.rpm
MySQL-ndb-management-5.1.11-0.glibc23.rpm
192.168.0.2 - MySQL server (SQL) node 
MySQL-server-5.1.11-0.glibc23.rpm
MySQL-shared-5.1.11-0.glibc23.rpm
MySQL-client-5.1.11-0.glibc23.rpm
192.168.0.3 - Data (NDBD) node "A" 
MySQL-ndb-tools-5.1.11-0.glibc23.rpm
MySQL-client-5.1.11-0.glibc23.rpm
MySQL-ndb-storage-5.1.11-0.glibc23.rpm
MySQL-server-5.1.11-0.glibc23.rpm ( Optional )
192.168.0.4 - Data (NDBD) node "B" 
MySQL-ndb-tools-5.1.11-0.glibc23.rpm
MySQL-client-5.1.11-0.glibc23.rpm
MySQL-ndb-storage-5.1.11-0.glibc23.rpm
MySQL-server-5.1.11-0.glibc23.rpm( Optional )
Step by Step configuration:

Each data node or SQL node requires a my.cnf file that provides two pieces of information:
- A connect string to find the MGM node
- A line which says the MySQL server on this host to run in NDB mode.

The 
my.cnf file for data node (ndb)

For each data node and SQL node in our example setup(i.e. Data (NDBD) node "A" 192.168.0.3 & Data (NDBD) node"B" 192.168.0.4) my.cnf should look like this:
# Options for mysqld process:
[MYSQLD]
ndbcluster # run NDB engine
ndb-connectstring=192.168.0.1 # location of MGM node

# Options for ndbd process:
[MYSQL_CLUSTER]
ndb-connectstring=192.168.0.1 # location of MGM node
Now, you need to start the actual cluster:The Management Node configuration:

You need to create a directory in 
MGM node to in which the configuration file can be found and then to create file it self.
# mkdir /var/lib/mysql-cluster
# cd /var/lib/mysql-cluster
# vi config.ini
# Options affecting ndbd processes on all data nodes:
[NDBD DEFAULT]
NoOfReplicas=2 # Number of replicas


# TCP/IP options:
[TCP DEFAULT]

# Management process options:
[NDB_MGMD]
hostname=192.168.0.1 # Hostname or IP address of MGM node
datadir=/var/lib/mysql-cluster # Directory for MGM node logfiles

# Options for data node "A":
[NDBD]
# (one [NDBD] section per data node)
hostname=192.168.0.3 # Hostname or IP address
DataDir=/var/lib/mysql-cluster # Directory for this data node's datafiles
BackupDataDir=/var/lib/mysql-cluster/backup
#DataMemory=256M # Set this as per your server h/w


# Options for data node "B":
[NDBD]
hostname=192.168.0.4 # Hostname or IP address
DataDir= /var/lib/mysql-cluster # Directory for this data node's datafiles
BackupDataDir=/var/lib/mysql-cluster/backup
#DataMemory = 256M # Set this as per your server h/w

# SQL node options:
[MYSQLD]
hostname=192.168.0.2 # Hostname or IP address
# (additional mysqld connections can be
# specified for this node for various
# purpos 
The following options will be passed to all MySQL clients
[client]
socket=/tmp/mysql.sock
es such as running ndb_restore)
[MYSQLD] # for API
[MYSQLD]
[MYSQLD]
Then, you need to start a cluster which as been configured; each cluster node process must be started separately.

It is recommended that the 
management node be started first, followed by the storage nodes, and then finally by any SQL nodes:

In MGM node (192.168.0.1) pass the following command:
# ndb_mgmd -f /var/lib/mysql-cluster/config.ini
-OR-
# cd /var/lib/mysql-cluster
# ndb_mgmd

You must need to tell mgmd to find the configuration file.

Now, start the 
ndbd process in each data node A and B (192.168.0.3 & 192.168.0.4)
# ndbd --initial

Then, start mysql server process on the SQL node (192.168.0.2)
# service mysql start
Verify that SQL node is started with support of ndb cluster:
# mysql –u root –p
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8 to server version: 5.1.11-beta

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SHOW ENGINES\G*************************** 10. row ***************************
Engine: ndbcluster
Support: YES
Comment: Clustered, fault-tolerant tables
Transactions: YES
XA: NO
Savepoints: NO
************************************************
If all has been setup correctly, the cluster should be operational.

Type the below mentioned command from Management Node:
# ndb_mgm-- NDB Cluster -- Management Client --ndb_mgm> showConnected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.0.4 (Version: 5.1.11, Node group: 0)
id=3 @192.168.0.3 (Version: 5.1.11, Node group: 0, Master)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.0.1 (Version: 5.1.11)

[mysqld(API)] 3 node(s)
id=4 @192.168.0.2 (Version: 5.1.11)
ndb_mgm>
mysql> SHOW PROCESSLIST \G;*************************** 1. row ***************************
Id: 1
User: system user
Host:
db:
Command: Daemon
Time: 1
State: Waiting for event from ndbcluster
Info: NULL
*************************************************
How to shutdown and restart the cluster:

In MGM node use the below mentioned command:
# ndb_mgm -e shutdown

The above command causes the ndb_mgm, ndb_mgmd, and any ndbd processes to terminate gracefully.

To restart the cluster:
From MGM node (192.168.0.1)
# ndb_mgmd -f /var/lib/mysql-cluster/config.ini

From Data Node (192.168.0.3 & 192.168.0.4)
# ndbd (do not use –initial as it is used only first time)

From SQL node:
# service mysql start

Comments

Popular posts from this blog

Mongodb online Training course Agenda

  Goal:   In this module, you will get an understanding of NoSQL databases, design goals, requirement of NoSQL database/ MongoDB, MongoDB® architecture and introduction to JSON and BSON among others. This module will also cover the installation of MongoDB® and associated tools. Skills Understand NoSQL databases and  advantages Install MongoDB on Windows and Linux platform Security Enable and high availability Objectives After completing this module, you will  be able knowledge ed on SQL and noSQL Database usages and difference between these MongoDB design and architecture  MongoDB GUI tools Describe JSON and BSON Install MongoDB on Windows, Linux, MAC OS etc.  Setup MongoDB environment Topics • Understanding the basic concepts of a Database • Database categories: What is NoSQL? Why NoSQL? Benefit over RDBMS  • Types of NoSQL Database, and NoSQL vs. SQL Comparison, ACID & Base Property • CAP Theorem, implementing NoSQL and what is MongoDB?  • O...

Linux Commands With Examples for Database Admins

Frequently Used Linux Commands With Examples 1. tar command examples Create a new tar archive. $ tar cvf archive_name.tar dirname/ Extract from an existing tar archive. $ tar xvf archive_name.tar View an existing tar archive. $ tar tvf archive_name.tar More tar examples: The Ultimate Tar Command Tutorial with 10 Practical Examples 2. grep command examples Search for a given string in a file (case in-sensitive search).  $ grep -i "the" demo_file Print the matched line, along with the 3 lines after it. $ grep -A 3 -i "example" demo_text Search for a given string in all files recursively $ grep -r "ramesh" * More grep examples: Get a Grip on the Grep! – 15 Practical Grep Command Examples 3. find command examples Find files using file-name ( case in-sensitve find) # find -iname "MyCProgram.c" Execute commands on files found by the find command $ find -iname "MyCProgram.c" -exec md5sum {} \; Find all empty...

MySQL Architecture -Client Server Architecture

Client/Server Overview The MySQL database system operates using a client/server architecture. The server is a central program that manages database contents, and client programs connect to the server to retrieve or modify the data. MySQL also includes non-client utility programs and scripts. MySQL Server:   This is the mysqld program that manages database and tables. Most users choose binary MySQL distribution that includes a server ready to run with the capabilities they need, but it's also possible to compile MySQL from source. Client Programs:  These are programs that communicate with the server by sending requests to it over a network connection. The server acts on each request and returns a response to the client. For example you can use the mysql client to send queries to the server, and the server returns the query results. A client program can connect locally to a server running on the same machine or remotely to a server running on a different mac...