MySQL Cluster的组成有:
1.MySQL Server
2.NDB:管理数据storage
NDB 节点被组织成一个一个的NDB Group,一个NDB Group 实际上就是一组
存有完全相同的物理数据的NDB 节点群。
管理节点中有一个非常重要的参数叫NoOfReplicas,这个参数
指定了每一份数据被冗余存储在不同节点上面的份数,该参数一般至少应该被设置成2,
3.MGMT,管理节点需要最先被启动
ndb_mgm -e SHOW 查看各个节点状态是否正常,是否都已经连接到了管理节点上面。
MySQL Cluster配置:
管理节点的配置:
1.PortNumber:管理节点端口,默认为1186
2.LogDestination:管理节点上cluster日志处理方式
a) 可以写入文件如:LogDestination=FILE:filename=mycluster.
log,maxsize=500000,maxfiles=4;
b) 也可以通过标准输出来打印出来如:LogDestination=CONSOLE;
c) 还可以计入syslog 里面如:LogDestination=SYSLOG:facility=syslog;
d) 甚至多种方式共存:
LogDestination=CONSOLE;SYSLOG:facility=syslog;FILE:filename=/var/log/clusterlog
3.Datadir:设置管理节点存放文件输出的位置。
4.ArbitrationRank:配置各节点在处理某些事件出现分歧的时候的级别。有0,1,2三个值可以选择。
a) 0 代表本节点完全听其他节点的,不参与决策
b) 1 代表本节点有最高优先权,“一切由我来决策”
c) 2 代表本节点参与决策,但是优先权较1 低,但是比0 高
ArbitrationRank 参数不仅仅管理节点有,MySQL 节点也有。而且一般来说,所有
的管理节点一般都应该设置成1,所有SQL 节点都设置成2。
NDB_MGMD的配置:
1. ID为节点指定一个唯一的ID号,要求在整个Cluster环境中唯一。
2. hostname:该节点的IP地址或主机名
NDB节点配置:
NDBD_DEFAULT中的配置:
1.NoOfReplicas:每一份数据存放的份数(类似于Oracle ASM中的Redundancy)
2.DataDir:指定本地的pid 文件,trace 文件,日志文件以及错误日志子等存放的
路径,无系统默认地址,所以必须设定;
3.DataMemory:设定用于存放数据和主键索引的内存段的大小,默认值80M
4.IndexMemory:设定用于存放索引(非主键)数据的内存段大小,默认值为18M
注意:DataMemory 和IndexMemory参数设置的约束,两者任何一个达到限制数量后,
都无法再增加能存储的数据量。如果继续存入数据系统会报错“table is full”。
5.FileSystemPath:指定redo 日志,undo 日志,数据文件以及meta 数据等的存放
位置,默认位置为DataDir 的设置
6.BackupDataDir:设置备份目录路径,默认为FileSystemPath/BACKUP。
与并行事务数和其他一些并行限制有关的参数设置:
*1.MaxNoOfConcurrentTransactions:设置在一个节点上面的最大并行事务数目,默认为4096,
*2.MaxNoOfConcurrentOperations:设置同时能够被更新(或者锁定)的记录数量。其值应该设置为:总记录数,除以NDB
节点数,所得到的值
*3.MaxNoOfLocalOperations:此参数默认是MaxNoOfConcurrentOperations * 1.1
的大小,也就是说,每个节点一般可以处理超过平均值的10%的操作记录数量。但是一般来
说,MySQL 建议单独设置此参数而不要使用默认值,并且将此参数设置得更较大一些;
*4.MaxNoOfConcurrentIndexOperations:这个参数和MaxNoOfConcurrentOperations
参数比较类似,只不过所针对的是Index 的record 而已。其默认值为8192,
*5.MaxNoOfFiredTriggers
*6.TransactionBufferMemory
系统做table scan 或者range scan 的时候使用的一些buffer 的相关设置:
1.MaxNoOfConcurrentScans:这个参数主要控制在Cluster 环境中并发的table scan
和range scan 的总数量平均分配到每一个节点后的平均值。参数默认大小为256,最大只能设置为500
2.MaxNoOfLocalScans
3.BatchSizePerLocalScan
4.LongMessageBuffer
与log相关的参数配置:
log level 有从0 到15,也就是共16 种。如果设定为0,则表示不记录任何log。如果设置为最
高level,也就是15,则表示所有的信息都会通过标准输出来记录log。由于这里的所有信
息实际上都会传递到管理节点的cluster log 中,所以,一般来说,除了启动时候的log
级别需要设置为1 之外,其他所有的log level 都只需要设置为0 就可以了。
1.NoOfFragmentLogFiles 相同于Oracle的redo log的group,默认为8
2.MaxNoOfSavedMessages:这个参数设定了可以保留的trace 文件(在节点crash
的时候参数)的最大个数,文档上面说此参数默认值为25。
3.LogLevelStartup:设定启动ndb 节点时候需要记录的信息的级别(不同级别所记
录的信息的详细程度不一样),默认级别为1;
4.LogLevelShutdown:设定关闭ndb 节点时候记录日志的信息的级别,默认为0;
5.LogLevelStatistic:这个参数是针对于统计相关的日志的,就像更新数量,插入
数量,buffer 使用情况,主键数量等等统计信息。默认日志级别为0;
6.LogLevelCheckpoint:checkpoint 日志记录级别(包括local 和global 的),默认为0;
7.LogLevelNodeRestart:ndb 节点重启过程日志级别,默认为0;
8.LogLevelConnection:各节点之间连接相关日志记录的级别,默认0;
9.LogLevelError:在整个Cluster 中错误或者警告信息的日志记录级别,默认0;
10.LogLevelInfo:普通信息的日志记录级别,默认为0。
11.UndoIndexBuffer
12.UndoDataBuffer
13.RedoBuffer
SQL节点相关配置说明:
1.ArbitrationDelay:默认为0,裁定者在开始裁定之前需要被delay 多久,单位为毫秒。一般不需要更改默认值。
2.BatchByteSize:在做全表扫描或者索引范围扫描的时候,每一次fatch 的数据量,默认为32KB;
3.BatchSize:类似BatchByteSize 参数,只不过BatchSize 所设定的是每一次fetch
的record 数量,而不是物理总量,默认为64,最大为992
4.MaxScanBatchSize:在Cluster 环境中,进行并行处理的情况下,所有节点的
BatchSize 总和的最大值。默认值为256KB,最大值为16MB。
5.[MySQLD]参数组,仅有id 和hostname
1.MySQL Server
2.NDB:管理数据storage
NDB 节点被组织成一个一个的NDB Group,一个NDB Group 实际上就是一组
存有完全相同的物理数据的NDB 节点群。
管理节点中有一个非常重要的参数叫NoOfReplicas,这个参数
指定了每一份数据被冗余存储在不同节点上面的份数,该参数一般至少应该被设置成2,
3.MGMT,管理节点需要最先被启动
ndb_mgm -e SHOW 查看各个节点状态是否正常,是否都已经连接到了管理节点上面。
MySQL Cluster配置:
管理节点的配置:
1.PortNumber:管理节点端口,默认为1186
2.LogDestination:管理节点上cluster日志处理方式
a) 可以写入文件如:LogDestination=FILE:filename=mycluster.
log,maxsize=500000,maxfiles=4;
b) 也可以通过标准输出来打印出来如:LogDestination=CONSOLE;
c) 还可以计入syslog 里面如:LogDestination=SYSLOG:facility=syslog;
d) 甚至多种方式共存:
LogDestination=CONSOLE;SYSLOG:facility=syslog;FILE:filename=/var/log/clusterlog
3.Datadir:设置管理节点存放文件输出的位置。
4.ArbitrationRank:配置各节点在处理某些事件出现分歧的时候的级别。有0,1,2三个值可以选择。
a) 0 代表本节点完全听其他节点的,不参与决策
b) 1 代表本节点有最高优先权,“一切由我来决策”
c) 2 代表本节点参与决策,但是优先权较1 低,但是比0 高
ArbitrationRank 参数不仅仅管理节点有,MySQL 节点也有。而且一般来说,所有
的管理节点一般都应该设置成1,所有SQL 节点都设置成2。
NDB_MGMD的配置:
1. ID为节点指定一个唯一的ID号,要求在整个Cluster环境中唯一。
2. hostname:该节点的IP地址或主机名
NDB节点配置:
NDBD_DEFAULT中的配置:
1.NoOfReplicas:每一份数据存放的份数(类似于Oracle ASM中的Redundancy)
2.DataDir:指定本地的pid 文件,trace 文件,日志文件以及错误日志子等存放的
路径,无系统默认地址,所以必须设定;
3.DataMemory:设定用于存放数据和主键索引的内存段的大小,默认值80M
4.IndexMemory:设定用于存放索引(非主键)数据的内存段大小,默认值为18M
注意:DataMemory 和IndexMemory参数设置的约束,两者任何一个达到限制数量后,
都无法再增加能存储的数据量。如果继续存入数据系统会报错“table is full”。
5.FileSystemPath:指定redo 日志,undo 日志,数据文件以及meta 数据等的存放
位置,默认位置为DataDir 的设置
6.BackupDataDir:设置备份目录路径,默认为FileSystemPath/BACKUP。
与并行事务数和其他一些并行限制有关的参数设置:
*1.MaxNoOfConcurrentTransactions:设置在一个节点上面的最大并行事务数目,默认为4096,
*2.MaxNoOfConcurrentOperations:设置同时能够被更新(或者锁定)的记录数量。其值应该设置为:总记录数,除以NDB
节点数,所得到的值
*3.MaxNoOfLocalOperations:此参数默认是MaxNoOfConcurrentOperations * 1.1
的大小,也就是说,每个节点一般可以处理超过平均值的10%的操作记录数量。但是一般来
说,MySQL 建议单独设置此参数而不要使用默认值,并且将此参数设置得更较大一些;
*4.MaxNoOfConcurrentIndexOperations:这个参数和MaxNoOfConcurrentOperations
参数比较类似,只不过所针对的是Index 的record 而已。其默认值为8192,
*5.MaxNoOfFiredTriggers
*6.TransactionBufferMemory
系统做table scan 或者range scan 的时候使用的一些buffer 的相关设置:
1.MaxNoOfConcurrentScans:这个参数主要控制在Cluster 环境中并发的table scan
和range scan 的总数量平均分配到每一个节点后的平均值。参数默认大小为256,最大只能设置为500
2.MaxNoOfLocalScans
3.BatchSizePerLocalScan
4.LongMessageBuffer
与log相关的参数配置:
log level 有从0 到15,也就是共16 种。如果设定为0,则表示不记录任何log。如果设置为最
高level,也就是15,则表示所有的信息都会通过标准输出来记录log。由于这里的所有信
息实际上都会传递到管理节点的cluster log 中,所以,一般来说,除了启动时候的log
级别需要设置为1 之外,其他所有的log level 都只需要设置为0 就可以了。
1.NoOfFragmentLogFiles 相同于Oracle的redo log的group,默认为8
2.MaxNoOfSavedMessages:这个参数设定了可以保留的trace 文件(在节点crash
的时候参数)的最大个数,文档上面说此参数默认值为25。
3.LogLevelStartup:设定启动ndb 节点时候需要记录的信息的级别(不同级别所记
录的信息的详细程度不一样),默认级别为1;
4.LogLevelShutdown:设定关闭ndb 节点时候记录日志的信息的级别,默认为0;
5.LogLevelStatistic:这个参数是针对于统计相关的日志的,就像更新数量,插入
数量,buffer 使用情况,主键数量等等统计信息。默认日志级别为0;
6.LogLevelCheckpoint:checkpoint 日志记录级别(包括local 和global 的),默认为0;
7.LogLevelNodeRestart:ndb 节点重启过程日志级别,默认为0;
8.LogLevelConnection:各节点之间连接相关日志记录的级别,默认0;
9.LogLevelError:在整个Cluster 中错误或者警告信息的日志记录级别,默认0;
10.LogLevelInfo:普通信息的日志记录级别,默认为0。
11.UndoIndexBuffer
12.UndoDataBuffer
13.RedoBuffer
SQL节点相关配置说明:
1.ArbitrationDelay:默认为0,裁定者在开始裁定之前需要被delay 多久,单位为毫秒。一般不需要更改默认值。
2.BatchByteSize:在做全表扫描或者索引范围扫描的时候,每一次fatch 的数据量,默认为32KB;
3.BatchSize:类似BatchByteSize 参数,只不过BatchSize 所设定的是每一次fetch
的record 数量,而不是物理总量,默认为64,最大为992
4.MaxScanBatchSize:在Cluster 环境中,进行并行处理的情况下,所有节点的
BatchSize 总和的最大值。默认值为256KB,最大值为16MB。
5.[MySQLD]参数组,仅有id 和hostname