AgileApps Support Wiki Pre Release

MySQL clustering

From AgileApps Support Wiki
Revision as of 06:38, 5 April 2017 by imported>Aeric (→‎Configuration setting)

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 setting
  • 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.