MySQL NDB 6.3.20集群安装

标签: mysql ndb 集群 | 发表时间:2014-10-19 10:49 | 作者:abc123456789cba
出处:http://www.iteye.com

引言:

本文会先对MySQL集群稍作一点介绍,然后会提供一个安装过程。

介绍:

MySQL集群是一种在无共享架构系统里应用内存数据库集群的技术。这种无共享的架构可以使得系统使用非常便宜的并且是最小配置的硬件。

 

MySQL集群是一种分布式设计,目标是要达到没有任何单点故障点。因此,任何组成部分都应该拥有自己的内存和磁盘。任何共享存储方案如网络共享,网络文件系统和SAN设备是不推荐或不支持的。通过这种冗余设计,MySQL声称数据的可用度可以达到99。999%。

 

实际上,MySQL集群是把一个叫做NDB的内存集群存储引擎集成与标准的MySQL服务器集成。它包含一组计算机,每个都跑一个或者多个进程,这可能包括一个MySQL服务器,一个数据节点,一个管理服务器和一个专有的一个数据访问程序。它们之间的关系如下图所示:

安装

准备:

机器:    全部安装Red Hat Linux AS 5且关闭防火墙

软件:    mysql-cluster-gpl-6.3.20-linux-i686-glibc23.tar.gz

 

四台机器分别分配如下IP及用途:

IP

Description

192.168.99.80

Management Node

192.168.99.88

SQL Node

192.168.99.89

Data Node

192.168.99.90

Data Node

 

 

安装节点,四台机器,需要重复四次:

[root@candyshop ~]#groupadd mysql

[root@candyshop ~]#useradd –g mysql mysql

[root@candyshop ~]#tar zxvf mysql-cluster-gpl-6.3.20-linux-i686-glibc23.tar.gz

[root@candyshop ~]#chown mysql:mysql mysql-cluster-gpl-6.3.20-linux-i686-glibc23

[root@candyshop ~]#mv  mysql-cluster-gpl-6.3.20-linux-i686-glibc23 /usr/local/mysql

 

上述命令先创建mysql组和mysql用户,并且把mysql分配到mysql组,然后将安装文件解压,把它放置到/usr/local/mysql目录。

 

配置

配置管理节点[192.168.99.80]:

创建以下文件/usr/local/mysql/cluster-conf/config.ini,并且放置如下内容:

# Options affecting ndbd processes on all data nodes:

[ndbd default]

NoOfReplicas=2    # Number of replicas

DataMemory=80M    # How much memory to allocate for data storage

IndexMemory=18M   # How much memory to allocate for index storage

                  # For DataMemory and IndexMemory, we have used the

                  # default values. Since the "world" database takes up

                  # only about 500KB, this should be more than enough for

                  # this example Cluster setup.

 

# Management process options:

[ndb_mgmd]

Id=1

Hostname=192.168.99.80           # Hostname or IP address of management node

Datadir=/usr/local/mysql/logs  # Directory for management node log files

 

# Options for data node "A":

[ndbd]

Id=2

Hostname=192.168.99.89           # Hostname or IP address

Datadir=/usr/local/mysql/ndbdata   # Directory for this data node's data files

 

# Options for data node "B":

[ndbd]

Id=3

Hostname=192.168.99.90           # Hostname or IP address

Datadir=/usr/local/mysql/ndbdata   # Directory for this data node's data files

 

# SQL node options:

[mysqld]

Id=4

Hostname=192.168.99.88           # Hostname or IP address

                                # (additional mysqld connections can be

                                # specified for this node for various

                                # purposes such as running ndb_restore)

 

 

在这个文件里,我们分别给四个节点分配了ID,这有利于更好的管理和区分各个节点。当然,要是不指定,MySQL也会动态分配一个。上述几个Datadir如果还不存在的需要手动创建。用mkdir –p命令即可。

 

 

配置数据节点[192.168.99.89, 192.168.99.90]:

创建/etc/my.cnf文件,内容如下

# Options for mysqld process:

[mysqld]

Datadir=/usr/local/mysql/ndbdata

ndbcluster                      # run NDB storage engine

ndb-connectstring=192.168.99.80  # location of management server

 

# Options for ndbd process:

[mysql_cluster]

ndb-connectstring=192.168.99.80  # location of management server

 

配置SQL节点[192.168.99.88]

创建/etc/my.cnf文件,内容如下

# Options for mysqld process:

[mysqld]

ndbcluster                      # run NDB storage engine

ndb-connectstring=192.168.99.80  # location of management server

 

# Options for ndbd process:

[mysql_cluster]

ndb-connectstring=192.168.99.80  # location of management server

 

 

[root@server88 mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --ldata=/usr/local/mysql/data/

Installing MySQL system tables...

OK

Filling help tables...

OK

 

到这里,所有配置已经完成了。

 

启动

启动管节点[192.168.99.80]:

[root@candyshop mysql]# ./bin/ndb_mgmd -f cluster-conf/config.ini

[root@candyshop mysql]# ./bin/ndb_mgm

-- NDB Cluster -- Management Client --

ndb_mgm> show

Connected to Management Server at: 192.168.99.80:1186

Cluster Configuration

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

[ndbd(NDB)]     2 node(s)

id=2 (not connected, accepting connect from 192.168.99.89)

id=3 (not connected, accepting connect from 192.168.99.90)

 

[ndb_mgmd(MGM)] 1 node(s)

id=1    @192.168.99.80  (mysql-5.1.30 ndb-6.3.20)

 

[mysqld(API)]   1 node(s)

id=4 (not connected, accepting connect from 192.168.99.88)

 

我们可以看到集群的状态都还没有启动,都是not connected状态。

[root@candyshop mysql]# ./bin/ndb_mgmd -f cluster-conf/config.ini

[root@candyshop mysql]# ./bin/ndb_mgm

-- NDB Cluster -- Management Client --

ndb_mgm> show

Connected to Management Server at: 192.168.99.80:1186

Cluster Configuration

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

[ndbd(NDB)]     2 node(s)

id=2 (not connected, accepting connect from 192.168.99.89)

id=3 (not connected, accepting connect from 192.168.99.90)

 

[ndb_mgmd(MGM)] 1 node(s)

id=1    @192.168.99.80  (mysql-5.1.30 ndb-6.3.20)

 

[mysqld(API)]   1 node(s)

id=4 (not connected, accepting connect from 192.168.99.88)

 

 

 

启动数据节点[192.168.99.89, 192.168.99.90]:

[root@server89 ~]#cd /usr/local/mysql

[root@server89 mysql]#./bin/ndbd

 

 

 

启动SQL节点[192.168.99.88]:

[root@server88 mysql]# ./bin/mysqld_safe &

 

至此,所有节点已经启动完成,让我们来查看系统状态:

ndb_mgm> show

Connected to Management Server at: localhost:1186

Cluster Configuration

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

[ndbd(NDB)]     2 node(s)

id=2    @192.168.99.89  (mysql-5.1.30 ndb-6.3.20, Nodegroup: 0, Master)

id=3    @192.168.99.90  (mysql-5.1.30 ndb-6.3.20, Nodegroup: 0)

 

[ndb_mgmd(MGM)] 1 node(s)

id=1    @192.168.99.80  (mysql-5.1.30 ndb-6.3.20)

 

[mysqld(API)]   1 node(s)

id=4    @192.168.99.88  (mysql-5.1.30 ndb-6.3.20)

 



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [mysql ndb 集群] 推荐:

MySQL NDB 6.3.20集群安装

- - 数据库 - ITeye博客
本文会先对MySQL集群稍作一点介绍,然后会提供一个安装过程. MySQL集群是一种在无共享架构系统里应用内存数据库集群的技术. 这种无共享的架构可以使得系统使用非常便宜的并且是最小配置的硬件. MySQL集群是一种分布式设计,目标是要达到没有任何单点故障点. 因此,任何组成部分都应该拥有自己的内存和磁盘.

MYSQL集群介绍

- - 企业架构 - ITeye博客
MySQL Proxy是一个处于你的client端和MySQL server端之间的简单程序,它可以监测、分析或改变它们的通信. 它使用灵活,没有限制,常见的用途包括:负载平衡,故障、查询分析,查询过滤和修改等等. MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载平衡.

使用mysql-proxy 快速实现mysql 集群 读写分离

- - 开心平淡对待每一天。热爱生活
  目前较为常见的mysql读写分离分为两种:  1、 基于程序代码内部实现:在代码中对select操作分发到从库;其它操作由主库执行;这类方法也是目前生产环境应用最广泛,知名的如DISCUZ X2. 优点是性能较好,因为在程序代码中实现,不需要增加额外的设备作为硬件开支. 缺点是需要开发人员来实现,运维人员无从下手.

项目进阶 之 集群环境搭建(二)MySQL集群

- - CSDN博客推荐文章
        上次的博文中我们介绍了一下集群的相关概念,今天的博文我们介绍一下MySQL集群的相关内容.         MySQL群集技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单个MySQL服务器故障不会对系统产生巨大的负面效应,系统的稳定性得到保障.         MySQL群集需要有一组计算机,每台计算机的角色可能是不一样的.

Facebook揭密:如何让MySQL数据库集群自主运行

- - IT经理网
Facebook运行着全球最大的MySQL数据库集群,该集群分布在两个大洲上的多个数据中心中数以千计的服务器上. 让人不解的是,Facebook只动用了一个很小的团队来管理这个庞大的MySQL数据库集群. 近日Facebook的Shlomo Priymak在Facebook博客上 发文揭开了这个秘密.

Galera:多主同步MySQL集群原理解析

- - 进击的程序猿
Galera Cluster是基于MySQL/innodb二次开发而成的一个支持“多主同步”的数据库主从集群. 强调主从集群意味着Galera Cluster的每个节点充当一个数据冗余,而没有在节点间做分库分表的水平扩展. Galaer官网中为Galera Cluster洋洋洒洒罗列了10大优势,其实总结下来无非上文用引号注明的两点:.

微信开源 PhxSQL:高可用强一致的 MySQL 集群

- - 开源中国社区最新新闻
昨日,微信后台团队宣布其开源了 PhxSQL 项目,并将项目托管到 Github 上. PhxSQL 是一个兼容 MySQL、服务高可用、数据强一致的关系型数据库集群. PhxSQL 以单 Master 多 Slave 方式部署,在集群内超过一半机器存活的情况下,可自身实现自动 Master 切换,且保证数据一致性.

科普专线:MySQL大型集群解决方案 Cobar使用说明测试案例

- - Seay's blog 小屌丝守护着信息安全、
最近好不容易抽空研究了下Cobar,感觉这个产品确实很不错(在文档方面比Amoeba强多了),特此推荐给大家. Cobar是阿里巴巴研发的关系型数据的分布式处理系统,该产品成功替代了原先基于Oracle的数据存储方案,目前已经接管了3000+个MySQL数据库的schema,平均每天处理近50亿次的SQL执行请求.

Linux Ksplice,MySQL and Oracle

- Syn - DBA Notes
Oracle 在 7 月份收购了 Ksplice. 使用了 Ksplice 的 Linux 系统,为 Kernel 打补丁无需重启动,做系统维护的朋友应该明白这是一个杀手级特性. 现在该产品已经合并到 Oracle Linux 中. 目前已经有超过 700 家客户,超过 10 万套系统使用了 Ksplice (不知道国内是否已经有用户了.

MySQL Replication 线程

- - CSDN博客推荐文章
Replication 线程. Mysql 的Replication 是一个异步的复制过程,从一个Mysql instace(我们称之为Master)复制到另一个Mysql instance(我们称之Slave). 在Master 与Slave 之间的实现整个复制过程主. 要由三个线程来完成,其中两个线程(Sql 线程和IO 线程)在Slave 端,另外一个线程(IO 线程)在Master 端.