Mysql Cluster安装:
软件版本:mysql-cluster-gpl-7.2.19-linux2.6-x86_64.tar.gz
mysql官方下载页面中会访问google的js,google不能访问的话,选择平台的下拉框就会失效。需要代理服务器下载。
安装环境:
Centos5.8 Linux 2.6.18-308.el5 x86_64 内存4G 非常消耗内存
10.0.12.150:管理节点
10.0.12.151:SQL节点
10.0.12.152:SQL节点
10.0.12.153:DATA节点
10.0.12.154:DATA节点
管理节点安装:
:管理节点
[root@localhost ~]# groupadd mysql [root@localhost ~]# useradd mysql-g mysql [root@localhost ~]# cd /usr/local [root@localhost ~]# tar –xf mysql-cluster-gpl-7.2.19-linux2.6-x86_64.tar.gz [root@localhost ~]# mv mysql-cluster-gpl-7.2.19-linux2.6-x86_64 mysql [root@localhost ~]# chown -R mysql:mysql mysql [root@localhost ~]# mkdir /usr/local/mysql/data [root@localhost ~]# mkdir /usr/local/mysql/logs [root@localhost ~]# mkdir/var/lib/mysql-cluster [root@localhost ~]# cd mysql [root@localhost ~]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data [root@localhost ~]#vi /var/lib/mysql-cluster/config.ini
写入以下内容:
[NDBD DEFAULT] NoOfReplicas=2 DataMemory=1024MB IndexMemory=1024MB MaxNoOfTables=300 MaxNoOfOrderedIndexes=500 MaxNoOfUniqueHashIndexes=500 MaxNoOfAttributes=20000 [TCP DEFAULT] portnumber=3306 [NDB_MGMD] hostname=10.0.12.150 datadir=/usr/local/mysql/data/ [NDBD] hostname=10.0.12.153 datadir=/usr/local/mysql/data/ [NDBD] hostname=10.0.12.154 datadir=/usr/local/mysql/data/ [MYSQLD] hostname=10.0.12.151 [MYSQLD] hostname=10.0.12.152
[root@localhost ~]#
DATA节点安装
10.0.12.153 Data节点
10.0.12.154 Data节点
[root@localhost ~]# groupadd mysql [root@localhost ~]# useradd mysql-g mysql [root@localhost ~]# cd /usr/local [root@localhost ~]# tar –xf mysql-cluster-gpl-7.2.19-linux2.6-x86_64.tar.gz [root@localhost ~]# mv mysql-cluster-gpl-7.2.19-linux2.6-x86_64 mysql [root@localhost ~]# chown -R mysql:mysql mysql [root@localhost ~]# mkdir /usr/local/mysql/data [root@localhost ~]# mkdir /usr/local/mysql/logs [root@localhost ~]# mkdir /var/lib/mysql-cluster [root@localhost ~]# cd mysql [root@localhost ~]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data [root@localhost ~]# cpsupport-files/mysql.server /etc/init.d/mysqld [root@localhost ~]# vi /etc/my.cnf
写入以下内容:
[mysqld] basedir = /usr/local/mysql datadir = /usr/local/mysql/data user = mysql port = 3306 socket = /var/lib/mysql/mysql.sock ndbcluster ndb-connectstring=10.0.12.150 [mysql_cluster] ndb-connectstring=10.0.12.150 [NDB_MGM] connect-string=10.0.12.150
[root@localhost ~]# chown -Rmysql:mysql /var/lib/mysql [root@localhost ~]# [root@localhost ~]#
SQL节点安装
同Data节点安装
10.0.12.151 sql节点
10.0.12.152 sql节点
Cluster启动
1、 启动管理节点
/usr/local/mysql/bin/ndb_mgmd -f/var/lib/mysql-cluster/config.ini --initial
首次启动后面加 –initial
关闭:/usr/local/mysql/bin/ndb_mgm -e shutdown
2、 启动data节点
/usr/local/mysql/bin/ndbd --initial
首次启动或者修改参数后启动需要加--initial
3、 启动sql节点
service mysqld start
关闭:service mysqld stop
启动完成后在管理节点执行/usr/local/mysql/bin/ndb_mgm
ndb_mgm>show Connected toManagement Server at: localhost:1186 ClusterConfiguration --------------------- [ndbd(NDB)] 2 node(s) id=2 @10.0.12.153 (mysql-5.5.41 ndb-7.2.19, Nodegroup: 0, *) id=3 @10.0.12.154 (mysql-5.5.41 ndb-7.2.19, Nodegroup: 0) [ndb_mgmd(MGM)] 1node(s) id=1 @10.0.12.150 (mysql-5.5.41 ndb-7.2.19) [mysqld(API)] 2 node(s) id=4 @10.0.12.151 (mysql-5.5.41 ndb-7.2.19) id=5 @10.0.12.152 (mysql-5.5.41 ndb-7.2.19) ndb_mgm>
测试:在sql节点10.0.12.151进入mysql创建库testcluster,创建测试table,在10.0.12.152可以看见新建的表,mysqlcluster创建成功。
mysql cluster节点,分组, 复制和分片详见以下文档
MySQL Cluster Nodes, Node Groups, Replicas, and Partitions
http://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-nodes-groups.html
*********************************************************
Replica. This is a copy of a cluster partition. Each node in a node group stores a replica. Also sometimes known as a partition replica. The number of replicas is equal to the number of nodes per node group.
The following diagram illustrates a MySQL Cluster with four data nodes, arranged in two node groups of two nodes each; nodes 1 and 2 belong to node group 0, and nodes 3 and 4 belong to node group 1.
Note
Only data (ndbd) nodes are shown here; although a working cluster requires an ndb_mgm process for cluster management and at least one SQL node to access the data stored by the cluster, these have been omitted in the figure for clarity.
The data stored by the cluster is divided into four partitions, numbered 0, 1, 2, and 3. Each partition is stored—in multiple copies—on the same node group. Partitions are stored on alternate node groups as follows:
Partition 0 is stored on node group 0; a primary replica (primary copy) is stored on node 1, and a backup replica (backup copy of the partition) is stored on node 2.
Partition 1 is stored on the other node group (node group 1); this partition's primary replica is on node 3, and its backup replica is on node 4.
Partition 2 is stored on node group 0. However, the placing of its two replicas is reversed from that of Partition 0; for Partition 2, the primary replica is stored on node 2, and the backup on node 1.
Partition 3 is stored on node group 1, and the placement of its two replicas are reversed from those of partition 1. That is, its primary replica is located on node 4, with the backup on node 3.
What this means regarding the continued operation of a MySQL Cluster is this: so long as each node group participating in the cluster has at least one node operating, the cluster has a complete copy of all data and remains viable. This is illustrated in the next diagram.
In this example, where the cluster consists of two node groups of two nodes each, any combination of at least one node in node group 0 and at least one node in node group 1 is sufficient to keep the cluster “alive” (indicated by arrows in the diagram). However, if both nodes from either node group fail, the remaining two nodes are not sufficient (shown by the arrows marked out with an X); in either case, the cluster has lost an entire partition and so can no longer provide access to a complete set of all cluster data.