AgileApps Support Wiki Pre Release

Difference between revisions of "MySQL clustering"

From AgileApps Support Wiki
imported>Aeric
imported>Aeric
Line 42: Line 42:
Create a new configuration file for cluster management ''config.ini'' inside the <tt>/var/lib/mysql-cluster</tt> directory and save the configuration file after customizing the settings.
Create a new configuration file for cluster management ''config.ini'' inside the <tt>/var/lib/mysql-cluster</tt> directory and save the configuration file after customizing the settings.


=====Configuration setting=====
=====Configuration settings=====
:*'''<tt>HostName:</tt>''' Defines the hostname of the computer on which the data node resides.
:*'''<tt>HostName:</tt>''' Defines the hostname of the computer on which the data node resides.
:*'''<tt>NoOfReplicas:'''</tt> Defines the number of replicas for each table stored in the cluster. This global parameter can be set only in the ndbd default section.
:*'''<tt>NoOfReplicas:'''</tt> Defines the number of replicas for each table stored in the cluster. This global parameter can be set only in the ndbd default section.
Line 57: Line 57:
:*data node 2 = 10.60.29.176
:*data node 2 = 10.60.29.176
Create a new configuration file ''my.cnf'' in the ''/etc'' directory using the VI editor. Also, create a new data directory for the database defined in the management node ''config'' file. To start the data node, use <tt>ndbd</tt> command. <br>Follow the same steps to configure other data nodes.
Create a new configuration file ''my.cnf'' in the ''/etc'' directory using the VI editor. Also, create a new data directory for the database defined in the management node ''config'' file. To start the data node, use <tt>ndbd</tt> command. <br>Follow the same steps to configure other data nodes.
=====Configuration settings=====
:*'''<tt>nbd-connectstring:</tt>''' Defines the IP address of your server management node.

Revision as of 06:56, 5 April 2017

AgileApps is now certified with MySQL v5.7 enterprise edition and supports clustering for on-premises installation. MySQL cluster is designed to avoid single point of failure. The cluster is set up to avoid any node, system, or hardware failure.

MySQL Cluster implementation

To implement MySQL cluster, you have to install three types of nodes.

  • Management node: This node is used to manage the other nodes of the server.
  • Data node: This node facilitates the process of data synchronization and data replication between the nodes.
  • SQL node: This node acts as an interface server to connect the applications to the database cluster.

Each node should be installed in its own server.

Pre-requisites

Operating System
  • RedHat Enterprise Linux Server - Version 5 or Version 6
  • SUSE Linux Enterprise Server - Version 11
  • CentOS Linux - Release 7
Database
  • Management node: mgmt node1 = 10.60.30.75
  • Data node: data node 1 = 10.60.29.119, data node 2 = 10.60.29.176
  • SQL node: sql node 1 = 10.60.30.44, sql node 2 = 10.60.30.75
Libraries
  • MySQL Cluster client library
  • MySQL Cluster server library
  • MySQL Cluster shared library

Setting up nodes

To set up management, data, and SQL nodes:

  • Remove mariadb-libs and install perl-Data-Dumper required for MySQL Cluster server.
  • Download MySQL-Cluster-gpl-7.4.13-1.el7.x86_64.rpm-bundle.tar file from MySQL website.
  • Install MySQL Cluster client, server, and shared packages using rpm commands.

Configuring management node

Create a new configuration file for cluster management config.ini inside the /var/lib/mysql-cluster directory and save the configuration file after customizing the settings.

Configuration settings
  • HostName: Defines the hostname of the computer on which the data node resides.
  • NoOfReplicas: Defines the number of replicas for each table stored in the cluster. This global parameter can be set only in the ndbd default section.
  • DataMemory: Defines the amount of space (bytes) available for storing database records.
  • IndexMemory: Controls the amount of storage used for hash indexes in NDB Cluster.
  • MaxNoOfAttributes: Sets a suggested maximum number of attributes that can be defined in the cluster.
  • MaxNoOfOrderedIndexes: Sets the total number of ordered indexes that can be in use in the system at any one time. For each ordered index in the cluster, an object is allocated to describe what is being indexed and to define the storage segments. For more information, see https://dev.mysql.com/doc/mysql-cluster-excerpt/5.7/en/mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooforderedindexes.

You can start the Management node using: ndb_mgmd --config-file=/var/lib/mysql-cluster/config.ini. To monitor the Management node, use ndb_mgm command. For more information on configuration settings, see https://dev.mysql.com/doc/mysql-cluster-excerpt/5.7/en/mysql-cluster-ndbd-definition.html.

Configuring data nodes

You have to use two servers for data nodes:

  • data node 1 = 10.60.29.119
  • data node 2 = 10.60.29.176

Create a new configuration file my.cnf in the /etc directory using the VI editor. Also, create a new data directory for the database defined in the management node config file. To start the data node, use ndbd command.
Follow the same steps to configure other data nodes.

Configuration settings
  • nbd-connectstring: Defines the IP address of your server management node.