MySQL Cluster配置参数详解

MySQL Cluster环境的配置文件config.ini里面,每一类节点都有两个(或以上)的相应配置项组,每一类节点的配置项都主要由两部分组成,一部分是 同类所有节点相同的配置项组,在[NDB_MGM DEFAULT]、[NDBD DEFAULT]和[MySQLD DEFAULT]这三个配置组里面,而且每一个配置组只出现一次;而另外一部分则是针对每一个节点独有配置内容的配置项组 [NDB_MGM]、[NDBD]和[MySQLD],由于这三类配置组中配置的每一个节点独有的个性化配置,所以每一个配置组都可能会出现多次(每一个 节点一次)。下面是每一类节点的各种配置说明:

1、管理节点相关配置
在整个MySQL Cluster环境中,管理节点相关的配置为[NDBD_MGM DEFAULT]和[NDB_MGMD]相关的两组:
1) [NDB_MGMD DEFAULT]中各管理节点的共用配置项:
PortNumber:配置管理节点的服务端程序(ndb_mgmd)监听客户端(ndb_mgm)连接请求和发送的指令,从文档上可以查找到,默认端口 是1186端口。一般来说这一项不需要更改,当然如果是为了在同一台主机上面启动多个管理节点的话,肯定需要将两个管理节点启动不同的监听端口;

LogDestination:配置管理节点上面的cluster日志处理方式。
a) 可以写入文件如:LogDestination=FILE:filename=my-cluster.log,maxsize=500000,maxfiles=4;
b) 也可以通过标准输出来打印出来如:LogDestination=CONSOLE;
c) 还可以计入syslog里面如:LogDestination=SYSLOG:facility=syslog;
d) 甚至多种方式共存:LogDestination=CONSOLE;SYSLOG:facility=syslog;FILE:filename=/var/log/cluster-log

Datadir:设置用于管理节点存放文件输出的位置。如process文件(.pid),cluster log文件(当LogDestination有FILE处理方式存在时候)。

ArbitrationRank:配置各节点在处理某些事件出现分歧的时候的级别。有0,1,2三个值可以选择。
a) 0代表本节点完全听其他节点的,不参与决策
b) 1代表本节点有最高优先权,“一切由我来决策”
c) 2代表本节点参与决策,但是优先权较1低,但是比0高
ArbitrationRank参数不仅仅管理节点有,MySQL节点也有。而且一般来说,所有的管理节点一般都应该设置成1,所有SQL节点都设置成2。

2) [NDB_MGMD]是每个管理节点配置一组,所需配置项如下(下面的参数只能设置在[NDB_MGMD]参数组中):
Id:为节点指定一个唯一的ID号,要求在整个Cluster环境中唯一;
Hostname:配置该节点的IP地址或者主机名,如果是主机名,则该主机名必须要在配置文件所在的节点的/etc/hosts文件中存在,而且绑定的IP是准确的。

上面[NDB_MGMD DEFAULT]里面的所有参数项,都可以设置在下面的[NDB_MGMD]参数组里面,但是Id和Hostname两个参数只能设置在 [NDB_MGMD]里面,而不能设置在[NDB_MGMD DEFAULT]里面,因为这两个参数项针对每一个节点都是不相同的内容。


2、NDB节点相关配置
NDB节点和管理节点一样,既有各个节点共用的配置信息组[NDBD DEFAULT],也有每一个节点个性化配置的[NDBD]配置组(实际上SQL节点也是如此)。
1) [NDBD DEFAULT]中的配置项:
NoOfReplicas:定义在Cluster环境中相同数据的分数,通俗一点来说就是每一份数据存放NoOfReplicas份。如果希望能够冗余, 那么至少设置为2(一般情况来说此参数值设置为2就够了),最大只能设置为4。另外,NoOfReplicas值得大小,实际上也就是node group大小的定义。NoOfReplicas参数没有系统默认值,所以必须设定,而且只能设置在[NDBD DEFAULT]中,因为此数值在整个Cluster集群中一个node group中所有的NDBD节点都需要一样。另外NoOfReplicas的数目对整个Cluster环境中NDB节点数量有较大的影响,因为NDB节点 总数量是NoOfReplicas * 2 * node_group_num;

DataDir:指定本地的pid文件,trace文件,日志文件以及错误日志子等存放的路径,无系统默认地址,所以必须设定;

DataMemory:设定用于存放数据和主键索引的内存段的大小。这个大小限制了能存放的数据的大小,因为ndb存储引擎需属于内存数据库引擎,需要将 所有的数据(包括索引)都load到内存中。这个参数并不是一定需要设定的,但是默认值非常小(80M),只也就是说如果使用默认值,将只能存放很小的数 据。参数设置需要带上单位,如512M,2G等。另外,DataMemory里面还会存放UNDO相关的信息,所以,事务的大小和事务并发量也决定了 DataMemory的使用量,建议尽量使用小事务;

IndexMemory:设定用于存放索引(非主键)数据的内存段大小。和DataMemory类似,这个参数值的大小同样也会限制该节点能存放的数据的 大小,因为索引的大小是随着数据量增长而增长的。参数设置也如DataMemory一样需要单位。IndexMemory默认大小为18M;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d145b845f82b1a56e2594b515e6be0aa.html