mysql-NDBcluster安装配置说明

Mysql cluster介绍:

MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。

MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程序。关于 Cluster 中这些组件的关系。

“NDB” 是一种“内存中”的存储引擎,它具有可用性高和数据一致性好的特点。

(来自百度百科)

Mysql cluster特性 :

1、 通过自动分片实现高水平的写入扩展能力

MySQL Cluster 自动将表分片(或分区)到不同节点上,使数据库可以在低成本的商用硬件上横向扩展,同时保持对应用程序完全应用透明。

2、 99.999% 的可用性

凭借其分布式、无共享架构,MySQL Cluster 可提供 99.999% 的可用性,确保了较强的故障恢复能力和在不停机的情况下执行预定维护的能力。

3、 SQL 和NoSQL API

MySQL Cluster 让用户可以在解决方案中整合关系数据库技术和NoSQL技术中的最佳部分,从而降低成本、风险和复杂性。

4、 实时性能

MySQL Cluster 提供实时的响应时间和吞吐量,能满足最苛刻的 Web、电信及企业应用程序的需求。

5、 具有跨地域复制功能的多站点集群

跨地域复制使多个集群可以分布在不同的地点,从而提高了灾难恢复能力和全球 Web 服务的扩展能力。

6、 联机扩展和模式升级

为支持持续运营,MySQL Cluster 允许向正在运行的数据库模式中联机添加节点和更新内容,因而能支持快速变化和高度动态的负载。

Mysql cluster逻辑图:

管理(MGM)节点:这类节点的作用是管理MySQL集群内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。

数据节点:这类节点用于保存集群的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。

SQL节点:这是用来访问集群数据的节点。对于MySQL集群,客户端节点是使用NDB集群存储引擎的传统MySQL服务器。

简单部署Mysql cluster

前期工作:

系统版本:Red Hat Enterprise Linux Server release 6.4 (Santiago)  2.6.32-358.el6.x86_64


主机名


IP地址


描述


ndb-mgm


10.0.0.50


ndb mgm node


ndb-sql-node-01


10.0.0.51


sql node 1


ndb-sql-node-02


10.0.0.52


sql node 2


ndb-data-node-01


10.0.0.53


data node 1


ndb-data-node-02


10.0.0.54


data node 2

记得将hosts文件修改下例如:

127.0.0.1   ndb-sql-node-01

安装:

现在的mysql提供了一个专门作集群的安装包,这样就不用一个个的下载所需要的工具了。我在网上找到了最新的而且下载比较快的资源,第一步先是下载,有200M左右。

以下操作在所有节点上都要执行。

#下载安装包

cd /tmp

wget http://mirrors.sohu.com/mysql/MySQL-Cluster-7.1/mysql-cluster-gpl-7.1.24-linux-x86_64-glibc23.tar.gz

#添加mysql用户

useradd mysql -s /sbin/nologin -M

#解包,添加软链接

cd /tmp

tar zxf mysql-cluster-gpl-7.1.24-linux-x86_64-glibc23.tar.gz

mv mysql-cluster-gpl-7.1.24-linux-x86_64-glibc23 /usr/local/mysql-cluster-gpl-7.1.24

ln -s /usr/local/mysql-cluster-gpl-7.1.24/ /usr/local/mysql

#授权

cd /usr/local/mysql

chown -R root.root *

chown -R mysql.mysql data/

#拷贝配置文件,启动脚本

/bin/cp /usr/local/mysql/support-files/my-small.cnf /etc/my.cnf

/bin/cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

chmod 700 /etc/init.d/mysqld

#初始化数据库

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --user=mysql

错误1:

Neither host ‘ndb-sql-node-01‘ nor ‘localhost‘ could be looked up with

/usr/local/mysql/bin/resolveip

Please configure the ‘hostname‘ command to return a correct

hostname.

If you want to solve this at a later stage, restart this script

with the --force option

解决方法:

这是host文件解析的问题,添加127.0.0.1  localhost即可,如果还是报错,则加上--force参数

错误2:

/usr/local/mysql/scripts/mysql_install_db: /usr/local/mysql/bin/my_print_defaults: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录

解决方法:

yum install glibc.i686

错误3:

libgcc_s.so.1 must be installed for pthread_cancel to work

解决方法:

yum install libgcc.i686 --setopt=protected_multilib=false

#启动数据库

/etc/init.d/mysqld start

netstat -lnpt |grep mysql

#添加PATH环境变量

echo ‘PATH=/usr/local/mysql/bin:$PATH‘ >>/etc/profile

. /etc/profile

简单配置

SQL节点配置:

cp /etc/my.cnf /etc/my.cnf_$(date +%F)

cat >/etc/my.cnf <<EOF

[client]

port    =3306

socket  =/tmp/mysql.sock

[mysqld]

basedir         =/usr/local/mysql/

datadir         =/usr/local/mysql/data

user            = mysql

log-error       =/usr/local/mysql/mysqld.err

ndbcluster   #运行NDB存储引擎

ndb-connectstring=10.0.0.50

#指定管理节点  以上两行声明其为SQL节点

EOF

data节点配置:

cp /etc/my.cnf /etc/my.cnf_$(date +%F)

cat >/etc/my.cnf <<EOF

[client]

port    =3306

socket  =/tmp/mysql.sock

[mysqld]

basedir         =/usr/local/mysql/

datadir         =/usr/local/mysql/data

user            = mysql

log-error       =/usr/local/mysql/mysqld.err

[mysql_cluster]

#指定管理节点  以上两行声明其为数据节点

ndb-connectstring=10.0.0.50

EOF

管理节点mgm配置:

#在管理服务器的/var/lib/mysql-cluster/目录中创建config.ini文件。

mkdir /usr/local/mysql/mysql-cluster -p

#在config.ini配置文件中添加以下内容:

cat > /usr/local/mysql/mysql-cluster/config.ini <<EOF

[NDBD DEFAULT]

NoOfReplicas=1    #每个数据节点的镜像数量

DataMemory=200M   #每个数据节点中给数据分配的内存

IndexMemory=100M  #每个数据节点中给索引分配的内存

[TCP DEFAULT]

portnumber=2202   #数据节点的默认连接端口

[NDB_MGMD]        #配置管理节点

id=1

hostname=10.0.0.50

datadir=/var/lib/mysql-cluster/  #管理节点数据(日志)目录

[NDBD]            #数据节点配置

id=2

hostname=10.0.0.53

datadir=/usr/local/mysql/data/   #数据节点目录

[NDBD]

id=3

hostname=10.0.0.54

datadir=/usr/local/mysql/data/

[MYSQLD]   #SQL节点目录

id=4

hostname=10.0.0.51

[MYSQLD]

id=5

hostname=10.0.0.52

EOF

注解:

[NDBD DEFAULT]:表示每个数据节点的默认配置在每个节点的[NDBD]中不用再写这些选项,只能有一个。

[NDB_MGMD]:表示管理节点的配置,只有一个。

[NDBD]:表示每个数据节点的配置,可以有多个。

[MYSQLD]:表示SQL节点的配置,可以有多个,分别写上不同SQL节点的IP地址,也可以什么都不写,只保留一个空节点,表示任意一个IP地址都可以进行访问,此节点的个数表明了可以用来连接数据节点的SQL节点总数。

启动

mysql cluster 需要各个节点都 进行启动后才可以工作,节点的启动顺序为管理节点->数据节点->SQL节点。

启动管理节点:

ndb_mgmd -f /usr/local/mysql/mysql-cluster/config.ini

命令行中的ndb_mgmd是mysql cluster的管理服务器,后面的-f表示后面的参数是启动的参数配置文件。如果在启动后过了几天又添加了一个数据节点,这时修改了配置文件启动时就必须加上--initial参数,不然添加的节点不会作用在mysql cluster中。

./ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial

启动时可能会报个WARNING,如WARNING  -- at line 7: [TCP] portnumber is deprecated,这个不用管。可以正常工作的。

启动数据节点:

安装后第一次启动数据节点时要加上--initial参数,其它时候不要加,除非是在备份、恢复或配置变化后重启时。

ndbd --initial

如果显示以下信息说明启动完成:

2014-07-28 13:17:03 [ndbd] INFO     -- Angel connected to ‘10.0.0.50:1186‘

2014-07-28 13:17:03 [ndbd] INFO     -- Angel allocated nodeid: 3

启动SQL节点:

/etc/init.d/mysqld start

管理

[[email protected] mysql-cluster]# ndb_mgm

-- NDB Cluster -- Management Client --

ndb_mgm> show

Connected to Management Server at: localhost:1186

Cluster Configuration

---------------------

[ndbd(NDB)]     2 node(s)

id=2    @10.0.0.53  (mysql-5.1.63 ndb-7.1.24, Nodegroup: 0, Master)

id=3    @10.0.0.54  (mysql-5.1.63 ndb-7.1.24, Nodegroup: 1)

[ndb_mgmd(MGM)] 1 node(s)

id=1    @10.0.0.50  (mysql-5.1.63 ndb-7.1.24)

[mysqld(API)]   2 node(s)

id=4    @10.0.0.51  (mysql-5.1.63 ndb-7.1.24)

id=5    @10.0.0.52  (mysql-5.1.63 ndb-7.1.24)

可以看到各个节点已经连接上了,至此,mysql cluster配置完成。

关闭

mysql cluster的关闭也很简单,只需在ndb_mgm> 提示符下输入 shutdown即可,这时会显示各节点的关闭信息,再输入exit即可退出ndb_mgm管理,回到shell中。虽然mysql cluster 关闭了,但是SQL节点的mysql服务并不会停止的。接下来就可以做各种试验了。

测试:

登录SQL-node1,创建数据库liyiliang

[[email protected] ~]# mysql

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| ndbinfo            |

| test               |

+--------------------+

4 rows in set (0.00 sec)

mysql> create database liyiliang;

Query OK, 1 row affected (0.17 sec)

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| liyiliang          |

| mysql              |

| ndbinfo            |

| test               |

+--------------------+

5 rows in set (0.00 sec)

登录SQL-node2,检查:

[[email protected] mysql]# mysql

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| liyiliang          |

| mysql              |

| ndbinfo            |

| test               |

+--------------------+

5 rows in set (0.00 sec)

mysql>

时间: 2024-07-29 01:12:54

mysql-NDBcluster安装配置说明的相关文章

mysql cluster安装部署

mysql cluster安装部署: http://www.178linux.com/36462 IPADDR=192.168.0.71 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 DNS1=192.168.0.1 管理节点(MGM):  192.168.1.71 数据节点1(NDBD1):192.168.1.72 数据节点2(NDBD2):192.168.1.73 sql节点1(SQL1):   192.168.1.74 sql节点2(SQL2):  

nagios 安装配置说明(一)

Nagios安装配置说明 修改YUM源为国内sohu的站点: [[email protected] ~]# cd/etc/yum.repos.d/ [[email protected] yum.repos.d]# ls CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo  CentOS-Vault.repo [[email protected] yum.repos.d]# mvCentOS-Base.repo CentOS-Bas

mysql源代码安装细说

mysql为我们提供了三种安装方式:二进制.rpm.源代码编译.这里我们详细讨论mysql的源代码编译安装方式. 在5.5版本之后,mysql不再提供configure编译方式,改为使用cmake编译工具,cmake工具的一个显著特点是其编译独立于源代码,即我们可以在源代码之外的目录使用cmake来编译mysql,如 [[email protected] tmp]# ls -l | grep mysql drwxr-xr-x 2 root root 4096 4月 29 21:11 mysql2

MySQL Cluster安装部署(Success)

参考:http://www.cnblogs.com/zhoulf/archive/2013/01/30/2883207.html 安装要求 安装环境:centos6.3(X64) 软件名称 :mysql-cluster-gpl-7.3.8-linux-glibc2.5-x86_64.tar.gz (通用版) 管理节点IP:10.61.5.51 数据节点-SQL节点IP:10.61.5.52 数据节点-SQL节点IP:10.61.5.52 安装依赖包:yum install -y glibc pe

linux+php5.1.6+mysql5.0.2+apache2.0.55安装配置说明(转)

linux+php5.1.6+mysql5.0.2+apache2.0.55安装配置说明:一.mysql5.0.2的安装配置过程及说明:1. #tar -zvxf mysql-5.0.2-alpha.tar.gz2. cd mysql5.0.23. ./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql --with-charset=gbk  #--prefix=/usr/loc

mysql 详细安装配置管理教程

8 Linux MYSQL 关系型数据库 v5.5 ★★★MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件.MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提

Windows下MySQL下载安装、配置与使用

用过MySQL之后,不论容量的话,发现比其他两个(sql server .oracle)好用的多,一下子就喜欢上了.下面给那些还不知道怎么弄的童鞋们写下具体的方法步骤. (我这个写得有点太详细了,甚至有些繁琐,有很多步骤在其他的教程文档里都是省略掉的,但我还是要写出来,因为我当时走了很多弯路,我希望你们能够避免我走的这些弯路.当然,知道同学的可以略过,选择你想知道的地方看) 第一大步:下载.(不需要注册也可以下载,直接点下面的no thanks) a.俗话说:“巧妇难为无米之炊”嘛!我这里用的是

CentOS6.5 - yum对Mysql的安装与配置

一.mysql的安装 1.查看是否安装mysql [[email protected] ~]# rpm -qa | grep mysql 如果有进行卸载(以下三种方式选一种即可): 1)rpm -e mysql-libs-5.1.71-1.el6.x86_64 //普通删除模式 2)rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64 // 强力删除模式,如果使用上面命令1)删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除(推荐) 3)yum

mysql的安装和基本配置

一.mysql的安装和基本配置 1 安装cmake #./configure#make &&make install 2 安装mysql# yum install ncurses* bison*   # cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/database/mydata -DSYSCONFDIR=/etc -DTMPDIR=/tmp -DWITH_INNOBASE_STORAGE_ENGINE=1 -

Python 3 mysql 简介安装

Python 3 mysql 简介安装 一.数据库是什么 1.  什么是数据库(DataBase,简称DB) 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据库中的数据按一定的数字模型组织.描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并且可为各种用户共享. 2.什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机 在计算机中