mysql cluster集群配置文件主要有两个,对于sql 和ndb节点一般只需要在my.cnf中配置
[mysqld]
ndbcluster //运行NDB 引擎
ndb-connectstring=ndb_mgmd.mysql.com:1186 //连接的主机,默认情况下是1186端口监听,构成MySQL簇的每个节点均需要1个连接字符串,该连接字符串指向管理服务器所在的位置。它用于建立与管理服务器的连接,并执行其他任务
# cluster-specific settings
[mysql_cluster]
ndb-connectstring=ndb_mgmd.mysql.com:1186 //同上
下面重点说一下管理节点
mysql cluster 集群启动时一般是先启动管理节点,在启动管理节点时需要一个配置文件,默认名字是config.ini,你启动时系统需要指定-f参数,比如ndb_mgmd -f /var/lib/mysql-cluster/config.ini,如果不指定那么会在当前目录下寻找config.ini. 顺便说下一关闭命令 ndb_mgm -e shutdown。
在config.ini需要配置些什么呢,下面一一说明。
配置文件统一采用配置文件采用的是INI格式(INI格式包含多个部分,每一部分以该部分的标题(用方括号括住)开始,后跟恰当的参数名和值,具体可以参考my.cnf文件)。
[NDBD]:定义了簇的数据节点。
· [MYSQLD]:定义了簇的MySQL服务器节点。
· [MGM]或[NDB_MGMD]:定义了簇的管理服务器节点。
· [TCP]:定义了簇中节点间的TCP/IP连接,TCP/IP是默认的连接协议(需要注意,在簇之间的数据通信是不安全的,没有经过加密,所以一般是放在防火墙后面的,对网卡要求有点高)。
可以为每个部分定义DEFAULT值。所有的簇参数名称均区分大小写。
配置举例
# file "config.ini" - showing minimal setup consisting of 1 data node,
# 1 management server, and 3 MySQL servers.
# The empty default sections are not required, and are shown only for
# the sake of completeness.
# Data nodes must provide a hostname but MySQL Servers are not required
# to do so.
# If you don't know the hostname for your machine, use localhost.
# The DataDir parameter also has a default value, but it is recommended to
# set it explicitly.
# Note: DB, API, and MGM are aliases for NDBD, MYSQLD, and NDB_MGMD
# respectively. DB and API are deprecated and should not be used in new
# installations.
[NDBD DEFAULT] //配置存储节点的相同部分
NoOfReplicas=2 # Number of replicasDataMemory=80M # How much memory to allocate for data storageIndexMemory=18M # How much memory to allocate for index storage
[MYSQLD DEFAULT] //一般不需要配置,在my.cnf中详细配置
[NDB_MGMD DEFAULT]
[TCP DEFAULT] //配置簇之间的通信方式 portnumber=2202 //一般只需要配置这个[TCP]NodeId1 , [TCP]NodeId2
要想确定两个节点之间的连接,需要在配置文件的[TCP]部分中提供每个节点的ID。
· [TCP]SendBufferMemory
在向操作系统发出调用请求之前,TCP传输器采用缓冲来保存所有的消息。当该缓冲达到64KB时,将发送其内容,执行完一组消息循环后,也将发送这些内容。为了处理临时过载情况,也能定义一个较大的发送缓冲。发送缓冲的默认值是256KB。
· [TCP]SendSignalId
为了能够回扫分布式消息图,需要确定每条消息。将该参数设置为“Y”时,将通过网络传输消息ID。默认情况下禁止该特性。
· [TCP]Checksum
该参数也是一个布尔参数(Y/N或1/0),默认情况下是禁止的。启用了该参数时,在将所有消息置于发送缓冲之前,将为所有参数计算校验和。使用该特性,当消息等候在发送缓冲中时,可以确保消息不会损坏,也能确保消息不会被传输机制破坏。
· [TCP]PortNumber
(已过时)以前,该参数指定了用于监听来自其他节点的连接的端口号。不应再使用嘎参数。
· [TCP]ReceiveBufferMemory
指定了从TCP/IP套接字接收数据时所使用的缓冲大小。几乎不需要更改该参数的默认值,默认值为64KB,但是如果打算节省内存,也能更改它。
[NDB_MGMD]ArbitrationRankId 簇中的每个节点都有唯一的标识,由从1到63的整数表示。所有的内部簇消息使用该ID来定址结点。PortNumber 这是管理服务器用于监听配置请求和管理命令的端口号 默认1186。
LogDestination
该参数指定了将簇登录信息发送到哪里。有三种选项,CONSOLE、SYSLOG和FILE:
o CONSOLE,将日志输出到标准输出设备(stdout):
o CONSOLEo SYSLOG,将日志发送到syslog(系统日志)软设备,可能的值包括:auth、authpriv、cron、daemon、ftp、kern、lpr、mail、news、syslog、user、uucp、local0、local1、local2、local3、local4、local5、local6或local7。
参数用于定义哪个节点将扮演仲裁程序的角色。只有MGM节点和SQL节点能扮演仲裁程序的角色。ArbitrationRank可以取下述值之一:
o 0:该节点永远不会用作仲裁程序。
o 1:该节点具有高的优先级,也就是说,与低优先级节点相比,它更容易成为仲裁程序。
o 2:表明节点具有低的优先级,仅当具有高优先级的节点无法用于该目的时,才能成为仲裁程序。
通常情况下,应将ArbitrationRank设置为1(默认值),并将所有的SQL节点设置为0,将管理服务器配置为仲裁程序。
ArbitrationDelay
整数值,以毫秒为单位规定了管理服务器对仲裁请求的延迟时间。默认情况下,该值为0,通常不需要改变它
DataDir
它用于设置保存管理服务器输出文件的位置
HostName= myhost.example.com
[NDBD] id =1
HostName= myhost.example.com
DataDir= /var/lib/mysql-cluster
Id
这是用作节点地址的节点ID,供有的簇内部消息使用。这是介于1~63之间的整数。簇中的每个节点均有唯一的ID。
HostName
指定该参数的效果类似于指定ExecuteOnComputer。它定义了存储节点所在计算机的主机名。指定除localhost之外的其他主机名时,需要该参数或ExecuteOnComputer。
HostName
指定该参数的效果类似于指定ExecuteOnComputer。它定义了存储节点所在计算机的主机名。指定除localhost之外的其他主机名时,需要该参数或ExecuteOnComputer。
NoOfReplicas
该全局参数仅能在[NDBD DEFAULT]中设置,它定义了簇中每个表保存的副本数。该参数还指定了节点组的大小。节点组指的是保存相同信息的节点集合。
DataDir
该参数指定了存放跟踪文件、日志文件、pid文件以及错误日志的目录。
BackupDataDir
也能指定存放备份的目录
DataMemory
该参数定义了用于保存数据库记录的空间大小
IndexMemory
该参数用于控制MySQL簇中哈希(混编)索引所使用的存储量
[NDBD][NDBD]
[MYSQLD]id =12HostName= myhost.example1.comDataDir= /var/lib/mysql-cluster
[MYSQLD]
[MYSQLD]
注:所有资料搜集于网络