MySQLCluster部署配置文档

MySQLCluster部署配置文档node

本文借鉴了网上其余人的文章,因为你们关于mysql cluster的文章基本都差了很少,这里我也就不写从哪里引用的了。mysql

环境sql

OS版本:CentOS 6.3 Finalshell

MySQL 版本:MySQL Server 5.1.73-3数据库

MySQL Cluster版本(应采用NDB7.x版本,别的版本不支持不重启动态就能增长数据节点):MySQL Cluster 7.3.4-1安全


1、MySQLCluster 概述服务器

核心的基本概念网络

1.1设计目标负载均衡

一、没有单点失败;tcp

二、部署“内存中”的数据库;

三、不能共享任何东西,如网络文件系统或SAN等。

将标准的MySQL Server和NDB引擎集成在一块儿。MySQL Cluster等于标准的MySQL Server+NDB。数据存在数据节点,全部MySQL Cluster都能访问。存储在数据节点里面的数据能够镜像。MySQL Cluster里面的节点指一个进程。不是指一台机器,一台机器上能够装多个节点。


1.2 三种节点:

管理节点(MGM node):管理其余节点的节点。必须先于其余节点启动。ndb_mgmd;

数据节点:存储数据的节点。多个复本保证高可用性。Ndbd;

SQL节点:访问数据的节点。是一个标准的MySQL Server,不过带了支持NDB引擎的选项。mysqld带--ndbcluster和--ndb-connectstring选项。

其实是一个API节点,就是用NDB的API实现了对数据的访问。

要实现冗余,必须是多个数据节点和多个SQL节点。也高度推荐多个管理节点。MySQL Cluster认为数据节点在处理器、内存空间、带宽上应是同质的。另外,全部Cluster里面的配置放在一个配置文件里面以方便单点配置。

管理节点管理这个配置和cluster的日志。每一个节点都从管理节点处得到这个配置。当数据节点发生某个事件时,它将信息传给管理节点,管理节点写日志。
能够有两种类型的Client:

标准的MySQL Client: Connector/J5.0.6及以后的版本能够用jdbc:mysql:loadbalance://URLs来实现透明的负载均衡。

管理Client:链接管理节点,下发管理指令如启动关闭节点等。这样的client好比ndb_mgm是用MGMAPI(C语言API)实现的。


*下文中若是单独提到节点,都是指数据节点。


1.3节点、节点组、复本、分区

节点组内的一个数据节点存储了分区的复本,一个分区指派给一个节点组。每一个数据节点应该位于单个机器上。节点组包含一个或多个节点,能够存储多个分区。一个cluster里面的节点组数不是配置的,是复本个数(可配置NoOfReplicas)和数据节点个数的函数。

节点组数=总的节点数/复本个数

分区是指cluster存储的一部分数据。数据节点越多,分区就越多。一般状况下,MySQL Cluster自动将NDB表分区。每个节点组里面,分区的复本数=组内节点数。

每一个节点组内至少须要1台机器是活的,才能保证整个系统可用。
若是是2台机器,复本个数配置为2,那么就只有1个节点组,包含这2台机器,其中1个坏了,另外一台仍可用。


2MySQL Cluster 多台机器How-To

2、规划

机器尽可能使用IP,不须要没必要要的服务,只要网络通就能够了。至少百兆网络,推荐千兆网络。尽可能在子网里面运行。在SQL节点上,要装MySQL Server。管理节点和数据节点能够不用装MySQL Server。能够采用RPM包安装,对于MySQL Cluster,须要以下3个rpm包:

ServerRPM: 安装MySQL Server,也能够再装MySQL Client RPM;

ClusterStorage Engine:带有ndbd,装在数据节点上;

ClusterStorage Engine Management RPM:带有ndb_mgmd,装在管理节点上;

另外,最好再装NDB Cluster-Storage engine basic tools RPM:包含ndb_mgm;

NDBCluster-Storage engine extra tools RPM:包含一些测试和监控工具。注意:全部RPM的cluster版本号应该一致。


3、安装

安装数据节点前要作的事情(假设是YUM安装版本):

shell>group add mysql

shell>useradd -g mysql mysql

shell> yum install mysql*

shell> cd /root/MySQL_Cluster

shell> yum install MySQL-Cluster-*

安装后,在/usr/sbin目录下会产生ndbd文件。


4、配置

每一个节点须要1个配置文件。其中每一个数据节点或SQL节点须要1个my.cnf文件。里面包含2类信息:

1类信息定义如何去找管理节点。

1类信息定义启用NDB引擎

管理节点须要1个config.ini文件,定义复本个数、为每一个数据节点开多少内存、哪里去找数据节点、数据存在数据节点的什么地方、哪里去找SQL节点。

配置数据节点和SQL节点:my.cnf文件应位于/etc目录,文件内容很是简单:

#mysqld进程的选项:

[mysqld]

ndbcluster                     # run NDB storage engine

ndb-connectstring=172.16.7.99 # 本地管理服务器的IP地址


#ndbd进程的选项

[mysql_cluster]

ndb-connectstring=172.16.7.99 #本地管理服务器的IP地址

一旦按照上述配置启动mysqld,将不能进行create table或altert table操做,必须启动cluster以后才能进行。

配置管理节点:建一个目录放config.ini文件。

shell>cd /home/mysql

shell>vi config.ini

#全部数据节点上影响ndbd进程的选项:

[ndbddefault]

NoOfReplicas=2   # 副本的个数

DataMemory=80M   # 分配多少内存给数据存储

IndexMemory=18M  # 分配多少内存给目录存储

                # 这里的数据内存和目录内存的配置咱们可使用

# 默认数值,自从“world”数据库仅仅占用了500

# KB的内存以后,这些默认配置足够进行集群的安装。


#TCP/IP 选项:

[tcpdefault]

portnumber=2202  # 默认配置;默认配置;除非你要是用其它的端口

                    # 而且这个端口在集群中全部其它的主机上都没有

                    # 被占用。

                #注意: It is recommended that youdo not specify the p

Ort

                # number at all and allow the default value to be used instead


#Management process options:

[ndb_mgmd]

hostname=172.16.7.99          # 管理节点的IP或主机名

datadir=/home/mysql/mysql-cluster # 管理节点存放日志的目录


#Options for data node "A":

[ndbd]

                              # (one [ndbd] section per data node)

hostname=172.16.7.94          # IP或主机名

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


#Options for data node "B":

#[ndbd]

#hostname=192.168.0.40          # Hostname or IP address

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


#SQL node options:

[mysqld]

hostname=172.16.7.96          # Hostname or IP address

                              # (additional mysqld connections can be

                              # specified for this node for various

                              # purposes such as running ndb_restore)


[mysqld]

hostname=172.16.7.98          # Hostname or IP address

                              # (additional mysqld connections can be

                              # specified for this node for various

                              # purposes such as running ndb_restore)


缺省的cluster管理节点端口是1186,缺省的数据节点的端口是2202。


5、启动

先启动管理节点、再启动数据节点、最后启动SQL节点。

启动管理节点:

shell>ndb_mgmd -f /home/mysql/mysql-cluster/config.ini

启动数据节点:

shell>ndbd

启动SQL节点:

shell>service mysqld start

或者

shell>/etc/init.d/mysqld start

  查看启动状态

shell>ndb_mgm

--NDB Cluster -- Management Client –

ndb_mgm>SHOW

......


倒数据时要转换为NDB引擎,应用程序访问的应该是SQL节点。


6、关闭和重启

关闭Cluster在管理节点上执行:

shell>ndb_mgm -e shutdown

将安全的关闭管理节点和数据节点。SQL节点能够用mysqladmin shutdown或别的方式关闭。

重启Cluster在管理节点上执行:

shell>ndb_mgmd -f /home/mysql/mysql-cluster/config.ini

在数据节点上执行:

shell>ndbd

在SQL节点上执行:

shell>mysqld_safe &

相关文章
相关标签/搜索