mysql 官方集群- mysql cluster 教程

软件和工具

  1. centos 7.x

  2. mysql - cluster 7.1.34

  工作目录 :  /mytest/mysqlcluster

    

一、前言

MySQL Cluster 是MySQL适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster存储引擎,允许在1个Cluster中运行多个MySQL服务器。在MyQL5.0 及以上的二进制版本中、以及与最新的Linux版本兼容的RPM中提供了该存储引擎。MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。MySQL Cluster由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster的数据节点,管理服务器,以及(可能)专门的数据访问程序。

二、MySQL Cluster基本概念 

NDB是一种“内存中”的存储引擎,它具有可用性高和数据一致性好的特点。MySQL  Cluster能够使用多种故障切换和负载平衡选项配置NDB存储引擎,但在Cluster 级别上的存储引擎上做这个最简单。MySQL Cluster的NDB存储引擎包含完整的数据集,仅取决于Cluster本身内的其他数据。 

目前,MySQL Cluster的Cluster部分可独立于MySQL服务器进行配置。在MySQL Cluster中,Cluster

的每个部分被视为1个节点。 

管理(MGM)节点:这类节点的作用是管理MySQL  Cluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。MGM节点是用命令“ndb_mgmd”启动的。 

数据(NDB)节点:这类节点用于保存Cluster的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。不过没有必要设置多个副本。数据节点是用命令“ndbd”启动的。 

客户(SQL)节点:这是用来访问Cluster数据的节点。对于MySQL Cluster,客户端节点是使用NDB Cluster 存储引擎的传统MySQL服务器。通常,SQL节点是使用命令“mysqld -ndbcluster”启动的,或将“ndbcluster”添加到“my.cnf”后使用“mysqld”启动。 

注释:在很多情况下,术语“节点”用于指计算机,但在讨论MySQL Cluster时,它表示的是进程。在单台计算机上可以有任意数目的节点,为此,我们采用术语“Cluster主机”。 

管理服务器(MGM节点)负责管理Cluster配置文件和Cluster日志。Cluster中的每个节点从管理服务器检索配置数据,并请求确定管理服务器所在位置的方式。当数据节点内出现新的事件时,节点将关于这类事件的信息传输到管理服务器,然后将这类信息写入Cluster日志。



架构拓扑图

      




实验网络部署

管理节点 (MGM)       192.168.1.222

数据节点(NDBD1)    192.168.1.223

数据节点(NDBD2)    192.168.1.224

SQL 节点 (SQL1)     192.168.1.225

SQL 节点 (SQL2)     192.168.1.226



下载相关安装包

   点击这里下载 

 这里我们使用 mysql-cluster 7.1.34  下载如下的几个5个包 共50M 左右

MySQL-Cluster-gpl-management-7.1.34-1.el6.x86_64.rpm

MySQL-Cluster-gpl-tools-7.1.34-1.el6.x86_64.rpm

MySQL-Cluster-gpl-server-7.1.34-1.el6.x86_64.rpm

MySQL-Cluster-gpl-client-7.1.34-1.el6.x86_64.rpm

MySQL-Cluster-gpl-storage-7.1.34-1.el6.x86_64.rpm


安装

    

 MGM:
     rpm -ivh MySQL-Cluster-gpl-management-7.1.34-1.el6.x86_64.rpm
     rpm -ivh MySQL-Cluster-gpl-tools-7.1.34-1.el6.x86_64.rpm
SQL1:
        rpm -ivh MySQL-Cluster-gpl-server-7.1.34-1.el6.x86_64.rpm
       rpm -ivh MySQL-Cluster-gpl-client-7.1.34-1.el6.x86_64.rpm
SQL2:
        rpm -ivh MySQL-Cluster-gpl-server-7.1.34-1.el6.x86_64.rpm
       rpm -ivh MySQL-Cluster-gpl-client-7.1.34-1.el6.x86_64.rpm
NDBD1:
        rpm -ivh MySQL-Cluster-gpl-storage-7.1.34-1.el6.x86_64.rpm
NDBD2:
        rpm -ivh MySQL-Cluster-gpl-storage-7.1.34-1.el6.x86_64.rpm

 配置

   1. 配置管理节点 (MGM)

 

[root@mgm mytest]# mkdir /etc/mysql-cluster
[root@mgm mytest]# vi /etc/mysql-cluster/config.ini

[ndbd default]
NoOfReplicas=2 #定义在Cluster环境中相同数据的份数,最大为4
DataMemory=80M #分配的数据内存大小,根据本机服务器内存适量来分配
IndexMemory=18M #设定用于存放索引(非主键)数据的内存段大小


#TCP/IP options
[tcp default]
portnumber=2202  => 此参数可以不用了

#一个NDB节点能存放的数据量是会受到DataMemory和IndexMemory两个参数设置的约束,两者任何一个达到限制数量后,都无法再增加能存储的数据量。如果继续存入数据系统会报错“table is full”。
#Management process options
[ndb_mgmd]
nodeid=1
hostname=192.168.1.222
datadir=/var/lib/mysql-cluster


#options for data node
[ndbd]
nodeid=2
hostname=192.168.1.223
datadir=/var/lib/mysql


[ndbd]
nodeid=3
hostname=192.168.1.224
datadir=/var/lib/mysql




#option sql node

[mysqld]

nodeid=4

hostname=192.168.1.225





[mysqld]

nodeid=5

hostname=192.168.1.226

管理节点配置好后 就可以启动了   -f 指定配置文件

[root@mgm mytest]# ndb_mgmd -f /etc/mysql-cluster/config.ini


启动的时候可能会有个错误  /var/lib/mysql-cluster  找不到  我们可以手动创建  

#  mkdir  /var/lib/mysql-cluster 

启动好后看看 端口 多个 1186 

[root@mgm mytest]# netstat -nlpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1566/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1262/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2487/master         
tcp        0      0 0.0.0.0:1186            0.0.0.0:*               LISTEN    

 2. 配置存储节点(NDB)

   

[root@ndbd1 mytest]# vi /etc/my.cnf
[mysql_cluster]
ndb_connectstring=192.168.1.222    ip为管理节点地址也可以为主机名

 启动 NDB

  

[root@ndbd1 mytest]# ndbd --initial
2017-04-24 11:20:36 [ndbd] INFO     -- Angel connected to '192.168.1.222:1186'
2017-04-24 11:20:36 [ndbd] INFO     -- Angel allocated nodeid: 2

[root@ndbd2 mytest]# ndbd --initial
2017-04-24 11:20:54 [ndbd] INFO     -- Angel connected to '192.168.1.222:1186'
2017-04-24 11:20:54 [ndbd] INFO     -- Angel allocated nodeid: 3

启动后, NDB 连接上 MGM的 1186 端口  。

注意 : 内网端口需要能访问,如果访问不了, 防火墙允许 通过1186

   --initial  初始化参数只有第一次启动的时候需要 ,其他的时候不要加,否则以前数据就没了。除非是在配置变动了可以加此参数





我们查看哪些机器连接到 MGM

 

[root@mgm mytest]# netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:1186            0.0.0.0:*               LISTEN     
tcp        0     96 192.168.1.222:22        192.168.1.101:22593     ESTABLISHED
tcp        0      0 127.0.0.1:1186          127.0.0.1:51916         ESTABLISHED
tcp        0      0 192.168.1.222:1186      192.168.1.224:53372     ESTABLISHED
tcp        0      0 127.0.0.1:51916         127.0.0.1:1186          ESTABLISHED
tcp        0      0 192.168.1.222:1186      192.168.1.223:34486     ESTABLISHED ==========
tcp        0      0 192.168.1.222:1186      192.168.1.224:53374     ESTABLISHED =========
tcp        0      0 192.168.1.222:1186      192.168.1.223:34484     ESTABLISHED ========

 3. 配置SQL节点

 

[root@sql1 mytest]# vi /etc/my.cnf
# The mysql server
[mysqld]
port=3306
socket=/var/lib/mysql/mysql.sock
ndbcluster #运行NDB存储引擎
default-storage-engine=NDBCLUSTER # ndb存储引擎,如果没有此参数,那么创建表的时候需要制定NDB存储引擎
character_set_server=utf8
collation-server=utf8_unicode_ci
lower_case_table_names=1 # 1 不区分大小写  0 区分大小写
[mysql_cluster]
ndb-connectstring=192.168.1.222:1186


[client]
default-character-set=utf8

[root@sql2 mytest]# vi /etc/my.cnf

# The mysql server
[mysqld]
port=3306
socket=/var/lib/mysql/mysql.sock
ndbcluster
default-storage-engine=NDBCLUSTER
character_set_server=utf8
collation-server=utf8_unicode_ci
lower_case_table_names=1
[mysql_cluster]
ndb-connectstring=192.168.1.222:1186


[client]
default-character-set=utf8


启动 mysql 

  

[root@sql1 mytest]# service mysql start
Starting MySQL.................................... SUCCESS! 

[root@sql2 mytest]# service mysql start
Starting MySQL.................................... SUCCESS!

这样  sql 服务器启动了  成功打开了 3306 端口

注意 如果之前安装过 非 集群的  mysql(mariadb) 首先需要移除   可能需要通过以下命令启动 

# /usr/share/mysql/mysql.server  start    我安装的时候 只能通过这个命令启动有效,很奇怪



如果是之前 有安装过 普通版 mysql的  可能会产生冲突 , 可以通过此命令删除

 

# yum -y remove mysql-community-*

我们再次查看 有哪些 进程连接了  MGM  1186 

  

[root@mgm ~]# netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:1186            0.0.0.0:*               LISTEN     
tcp        0      0 192.168.1.222:1186      192.168.1.225:39876     ESTABLISHED
tcp        0      0 127.0.0.1:1186          127.0.0.1:51916         ESTABLISHED
tcp        0      0 192.168.1.222:1186      192.168.1.224:53372     ESTABLISHED
tcp        0      0 127.0.0.1:51916         127.0.0.1:1186          ESTABLISHED
tcp        0      0 192.168.1.222:1186      192.168.1.226:35526     ESTABLISHED
tcp        0      0 192.168.1.222:1186      192.168.1.223:34486     ESTABLISHED
tcp        0      0 192.168.1.222:1186      192.168.1.224:53374     ESTABLISHED
tcp        0      0 192.168.1.222:1186      192.168.1.223:34484     ESTABLISHED

可以看到  223,224,225,226 端连接上 1186


MGM管理

  # ndb_mgm -e show

查看集群状态 

Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @192.168.1.223  (mysql-5.1.73 ndb-7.1.34, Nodegroup: 0, *)
id=3    @192.168.1.224  (mysql-5.1.73 ndb-7.1.34, Nodegroup: 0)


[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.1.222  (mysql-5.1.73 ndb-7.1.34)


[mysqld(API)]   2 node(s)
id=4    @192.168.1.225  (mysql-5.1.73 ndb-7.1.34)
id=5    @192.168.1.226  (mysql-5.1.73 ndb-7.1.34)

至此 mysql cluster 官方集群搭建成功。


测试

    可以连接上其中的数据库实例进行 数据库操作, 看看是否数据同步到另一个数据库实例

    我们在 sql1中创建数据库

   

mysql> create database t;
Query OK, 1 row affected (0.06 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| ndbinfo            |
| performance_schema |
| t                  |
| test               |
+--------------------+
6 rows in set (0.00 sec)

mysql> 
mysql> 
mysql> 
mysql> 
mysql> use t;
Database changed
mysql> create table t1(id int);
Query OK, 0 rows affected (0.25 sec)

mysql> insert into t1 values(100)
    -> ;
Query OK, 1 row affected (0.01 sec)

mysql> select  * from t1;
+------+
| id   |
+------+
|  100 |
+------+
1 row in set (0.00 sec)

sql2上是否能查看到

  

[root@sql2 ~]# mysql -e 'select * from t.t1'
+------+
| id   |
+------+
|  100 |
+------+

 以上查询结果是正确的哦, 说明数据实时同步了。


    测试 故障转移

   关闭 ndb1 节点

    

[root@ndbd1 ~]# ps -aux | grep ndbd
avahi       528  0.0  0.0  30188   936 ?        Ss   12:55   0:02 avahi-daemon: registering [ndbd1-257.local]
root       4099  0.0  0.0 102620   668 ?        Ss   14:31   0:00 ndbd --initial
root       4100  1.2 76.0 1426088 760404 ?      Rl   14:31   0:13 ndbd --initial
root       4389  0.0  0.0 112648   960 pts/0    R+   14:49   0:00 grep --color=auto ndbd
[root@ndbd1 ~]# pkill ndbd  =>MGM可以监控其关闭状态
[root@ndbd1 ~]# ps -aux | grep ndbd
avahi       528  0.0  0.0  30188   936 ?        Ss   12:55   0:02 avahi-daemon: registering [ndbd1-262.local]
root       4426  0.0  0.0 112648   960 pts/0    R+   14:51   0:00 grep --color=auto ndbd

更新数据库 依然没有问题

启动后 继续链接上 MGM

 

[root@ndbd1 ~]# ndbd
2017-04-24 14:55:18 [ndbd] INFO     -- Angel connected to '192.168.1.222:1186'
2017-04-24 14:55:18 [ndbd] INFO     -- Angel allocated nodeid: 2


当我们修改过配置文件config.ini之后,需要重新加载配置文件,有两种方法:

    ndb_mgm -e shutdown:停止 关闭集群

    1. 增加初始化参数 --initial,将该配置文件重载到缓冲区,但是这样的话会删除之前建立的二进制缓存文件;

    # ndb_mgmd --ndb_nodeid=1 --initial -f /var/lib/mysql-cluster/config.ini

    2. 增加重载参数 --reload,将配置文件重载到缓冲区,不会删除之前建立的二进制缓存文件,会重新再次新建一个缓存文件,此时,在/usr/mysql-cluster/下面将会有两个二进制文件;

    # ndb_mgmd --ndb_nodeid=1 --reload -f /var/lib/mysql-cluster/config.ini

启动顺序:

管理节点 -> 数据节点 -> SQL节点

关闭顺序:

SQL节点 -> 数据节点 -> 管理节点

注意点:

1. 在建表的时候一定要用ENGINE=NDB 或ENGINE=NDBCLUSTER 指定使用NDB 集群存储引擎,或用ALTER TABLE 选项更改表的存储引擎。
2.NDB 表必须有一个主键,因此创建表的时候必须定义主键,否则NDB 存储引擎将自动生成隐含的主键。
3.Sql 节点的用户权限表仍然采用MYISAM 存储引擎保存的,所以在一个Sql 节点创建的MySql 用户只能访问这个节点,如果要用同样的用户访问别的Sql 节点,需要在对应的Sql 节点追加用户。



参数的详细配置参考

   

MySQL Cluster 详细配置文件(config.ini)
###########################################################################
## MySQL CLuster 配置文件
## 带有[!]的注释表示该参数有详细说明,建议参考官方描述.
## 带有[!!]的注释表示设置该参数时应该详细阅读官方描述.
## SCI 连接方式的配置请详细阅读官方描述.
## 官方说明: http://dev.mysql.com/doc/refman/5.1/zh/ndbcluster.html
###########################################################################

###########################################################################
# 定义 MySQL Cluster TCP/IP 连接
# TCP/IP是MySQL集群用于建立连接的默认传输协议.正常情况下不需要定义连接.
# * 可使用 [TCP DEFAULT] 定义.
###########################################################################
[TCP DEFAULT]
#[TCP]

# [!]TCP 传输缓存
# 默认值为 256KB
SendBufferMemory=256k

# [!]通过网络传输消息ID.
# 默认禁止该特性.(取值: Y/N或1/0)
#SendSignalId=0

# [!]启用该参数将在所有消息置于发送缓冲之前,为所有参数计算校验和.
# 默认禁止该特性.(取值: Y/N或1/0)
#Checksum=0

# 指定从 TCP/IP Socket 接收数据时所使用的缓冲大小.
# 几乎不需要更改该参数的默认值,默认值为64KB
ReceiveBufferMemory=64k

###########################################################################
# 定义管理服务器(MGM)
#
# 用于配置管理服务器行为.下面参数均能被忽略,如果是这样,将使用其默认值.
# 如果没有定义 ExecuteOnComputer 或 HostName 则会指定为 localhost
# * 可使用 [NDB_MGMD DEFAULT] 定义多个管理节点的默认行为
###########################################################################
[NDB_MGMD DEFAULT]
[NDB_MGMD]

# 集群中节点的唯一标识, 取值 1~63
id=1

# 指定节点主机名或IP
HostName=192.168.1.100

# 引用在[COMPUTER]部分中定义的计算机之一
#ExecuteOnComputer=

# 管理服务器监听端口 (默认值: 2202)
PortNumber=2202

# 节点日志出处理方式
# 可取下述值:
# 1. CONSOLE
# 将日志输出到标准输出设备(stdout).
# 2. SYSLOG:facility=syslog
# 将日志发送到syslog(系统日志)软设备.可能值:
# auth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, syslog
# , user, uucp, local0, local12~7
# 3. FILE:filename=/var/log/mgmd.log,maxsize=1000000,maxfiles=6
# 讲日志输出到文件,可指定一下值:
# filename: 日志文件名称.
# maxsize: 日志文件最大尺寸,大于该尺寸时自动创建新日志文件.
# maxfiles: 日志文件最大数量
LogDestination=FILE:filename=/var/log/mgmd.log

# 指定哪个节点扮演决策角色, 只有MGM节点和SQL节点可以使用. (默认值: 1)
# 通常情况下,应将值设为 1, 并将所有SQL节点设为 0, 以MGM服务器作为决策程序.
# 可取下述值之一:
# 0 : 该节点永远不用作决策.
# 1 : 该节点具有高优先级.
# 2 : 该节点具有低有限级.
ArbitrationRank=1

# 指定管理服务器对决策请求的延迟时间,毫秒为单位,默认为 0.
# 通常情况下不需要改变它.
ArbitrationDelay=0

# 保存管理服务器输出文件的位置,包括日志,进程输出文件,以及程序的pid文件
# 对于日志文件,可通过设置LogDestination的FILE参数覆盖它.
DataDir=/var/lib/mysql-cluster

###########################################################################
# 定义数据节点默认行为(NDBD DEFAULT)
# NoOfReplicas 为必要参数
###########################################################################
[NDBD DEFAULT]

# 定义集群中每个表保存在拷贝数, 另外还指定节点组的大小.
# 节点组指保存相同信息的节点集合.
# 通常情况下不需要为该参数指定值.
# NoOfReplicas 没有默认值, 最大的可能值为 4.
NoOfReplicas=1

###########################################################################
# 定义数据节点(NDBD)
#
# 用于配置数据节点的行为.
# ExecuteOnComputer 或 HostName 为必要参数.
# 对于各种参数, 能够使用后缀 k, M 或 G 指明单位.
###########################################################################
[NDBD]

# 启动节点时, 可在命令行中分配id(即数据节点id), 也能在配置文件中分配.
id=11

# 指定节点主机名或IP
HostName=192.168.1.101

# 引用在[COMPUTER]部分中定义的计算机之一
#ExecuteOnComputer=

# 指定存放跟踪文件,日志文件,pid文件以及错误日志的目录.
DataDir=/var/lib/mysql-cluster

# 该参数指定了存放为元数据创建的所有文件, REDO日志, UNDO日志和数据文件目录.
# 注意: 在 ndbd 进程启动前,该目录必须已存在.
#FileSystemPath=

# 指定存放备份的目录, 默认为 {FileSystemPath}/BACKUP
#BackupDataDir=

# 指定数据内存, 默认值为 80MB, 最小值 1MB, 无大小限制.
DataMemory=80M

# 指定索引内存, 默认值为 18MB, 最小值 1MB, 无大小限制.
IndexMemory=18M

# [!]用于设定节点内可能的并发事务数.默认值为 4096.
# 对于所有节点,必须将参数设置为相同的值.
#MaxNoOfConcurrentTransactions=4096

# [!]设置能同时出现在更新阶段或同时锁定的记录数.默认值为 32768.
#
#MaxNoOfConcurrentOperations=32768

# [!]默认情况下,将按照1.1 * MaxNoOfConcurrentOperations计算该参数,
# 它适合于具有很多并发事务但不存在特大事务的系统.
# 如果需要在某一时间处理特大事务而且有很多节点,
# 最好通过明确指定该参数以覆盖默认值
#MaxNoOfLocalOperations=

# [!]该参数的默认值为8192.
# 只有在极其罕见的情况下, 需要使用唯一性哈希索引执行极高的并行操作时,
# 才有必要增大该值.
# 如果确信该集群不需要高的并行操作.可以使用较小的值并节省内存.
#MaxNoOfConcurrentIndexOperations=8192

# [!]默认值是4000, 它足以应付大多数情况.
# 在某些情况下, 如果认为在集群中对并行操作的要求并不高, 甚至还能降低它.
#MaxNoOfFiredTriggers=4000

# [!]该参数影响的内存用于跟踪更新索引表和读取唯一索引时执行的操作.
# 该内存用于保存关于这类操作的键和列信息.
# 几乎不需要更改该参数的默认值.
#TransactionBufferMemory=1M

# [!]该参数用于控制可在集群中执行的并行扫描的数.
# 默认值为256, 最大值为500.
#MaxNoOfConcurrentScans=256

# [!]如果很多扫描不是完全并行化的, 指定本地扫描记录的数.
#MaxNoOfLocalScans=

# [!]该参数用于计算锁定记录的数量.
# 要想处理很多并发扫描操作, 需要这类记录.
# 默认值是64, 该值与SQL节点中定义的 ScanBatchSize 关系密切.
#BatchSizePerLocalScan=

# [!]用于在单独节点内和节点之间传递消息的内部缓冲.
# 尽管几乎不需要改变它. 但它仍是可配置的. 默认情况下, 它被设置为1MB.
#LongMessageBuffer=1M

# [!]设置节点的REDO日志文件的大小,默认值为 8.
#NoOfFragmentLogFiles=8

# [!]设置跟踪文件的最大数, 默认值为 25.
#MaxNoOfSavedMessages=25

# [!]设置可在集群中定义的属性数量, 默认值为 1000, 最小值为 32.
#MaxNoOfAttributes=1000

# [!]设置集群中最大表对象数量, 默认值为128, 最小值为8, 最大值为1600.
#MaxNoOfTables=128

# [!]该参数默认值为128.
#MaxNoOfOrderedIndexes=128

# [!]该参数默认值为64.
#MaxNoOfUniqueHashIndexes=64

# [!]该参数用于设置集群中触发器的最大数量
#MaxNoOfTriggers=768

# 对于很多操作系统, 能够将进程锁定在内存中, 以避免与磁盘的交换.
# 使用它, 可确保集群的实时特性。
# 默认情况下,该特性是被禁止的(取值: Y/N或1/0)
#LockPagesInMainMemory=0

# 出现错误时,该参数指定NDBD进程是退出还是自动重启.
# 默认情况下,该特性是启用的(取值: Y/N或1/0)
#StopOnError=1

# [!]指定集群为"无磁盘".
# 默认情况下,该特性是被禁止的(取值: Y/N或1/0)
#Diskless=0

# [!]仅当编译为调试版时才能访问该特性.
# 默认情况下,该特性是被禁止的
#RestartOnErrorInsert=0

# [!]指定监控线程检查的间隔.该参数以毫秒为单位.
# 默认值为 4000 毫秒
#TimeBetweenWatchDogCheck=4000

# [!]该参数指定了在调用集群初始化子程序之前, 集群等待所有存储节点出现的时间.
# 默认值为 30000 毫秒(0 表示无限超时)
#StartPartialTimeout=30000

# [!]如果集群做好了启动准备但仍可能处于隔离状态,集群将等待该超时时间结束.
# 默认值为 60000 毫秒
#StartPartitionedTimeout=60000

# [!]如果数据节点在该参数指定的时间内未完成其启动序列,
# 节点启动将失败. 如果将该参数设置为0. 表示不采用数据节点超时.
# 默认值为 60000 毫秒
#StartFailureTimeout=60000

# [!]每个数据节点发送心跳信号到SQL节点的间隔.
# 默认值为 1500 毫秒
#HeartbeatIntervalDbDb=1500

# [!]该参数默认值为 1500 毫秒
#HeartbeatIntervalDbApi=1500

# [!]该参数默认值为20
#TimeBetweenLocalCheckpoints=20

# [!]该参数定义了全局检查点操作之间的时间间隔.
# 默认值为 2000 毫秒
#TimeBetweenGlobalCheckpoints=2000

# [!]该参数默认值为 1000 毫秒
#TimeBetweenInactiveTransactionAbortCheck=1000

# [!]如果事务目前未执行任何查询, 而是等待进一步的用户输入.
# 该参数指明了放弃事务之前用户能够等待的最长时间.
# 默认值为 0
#TransactionInactiveTimeout=0

# [!]该超时参数指明了放弃事务之前, 事务协调器等候另一节点执行查询的时间.
#TransactionDeadlockDetectionTimeout=1200

# [!]该参数指定了执行本地检查点操作的速度,
# 并能与NoOfFragmentLogFiles、DataMemory和IndexMemory一起使用。
# 默认值是40(每秒3.2MB的数据页)
#NoOfDiskPagesToDiskAfterRestartTUP=40

# 该参数使用的单位与NoOfDiskPagesToDiskAfterRestartTUP的相同.
# 工作方式也类似,但限制的是从索引内存进行的索引页写入速度。
# 该参数的默认值为每秒20个索引内存页 (1.6MB每秒)
#NoOfDiskPagesToDiskAfterRestartACC=20

# [!]该参数涉及从数据内存写入的页。
# 默认值是40 (3.2MB每秒)
#NoOfDiskPagesToDiskDuringRestartTUP=40

# [!]该参数默认值是20 (1.6MB每秒)
#NoOfDiskPagesToDiskDuringRestartACC=20

# [!]指定数据节点等待决策程序对决策消息的回应的时间.
# 默认值为 1000 毫秒
#ArbitrationTimeout=1000

# [!]指定UNDO索引缓冲区大小.
# 默认值为 2MB, 最小值为1MB.
#UndoIndexBuffer=2M

# [!]指定UNDO数据缓冲区大小.
# 默认值为 16MB, 最小值为1MB.
#UndoDataBuffer=16M

# [!]指定REDO数据缓冲区大小.
# 默认值为 8MB, 最小值为1MB.
#RedoBuffer=8M

# 日志级别,用于进程启动过程中生成的事件.
# 默认级别为 1
#LogLevelStartup=1

# 日志级别,用于作为节点恰当关闭进程组成部分而生成的事件.
# 默认级别为 0
#LogLevelShutdown=0

# 日志级别,用于统计事件,如主键法读取次数,更新数,插入数,
# 与缓冲使用有关的信息等.
# 默认级别为 0
#LogLevelStatistic=0

# 日志级别,用于由本地和全局检查点操作生成的事件.
# 默认级别为 0
#LogLevelCheckpoint=0

# 日志级别,用于在节点重启过程中生成的事件.
# 默认级别为 0
#LogLevelNodeRestart=0

# 日志级别,用于由簇节点间的连接生成的事件.
# 默认级别为 0
#LogLevelConnection=0

# 日志级别,用于由在整个集群内的错误和警告生成的事件.
# 这类错误不会导致任何节点失败.当仍值得记录.
# 默认级别为 0
#LogLevelError=0

# 日志级别,用于为集群的一般状态信息而生成的事件.
# 默认级别为 0
#LogLevelInfo=0

# [!]指定数据备份缓冲区大小.
# 默认值为 2MB
#BackupDataBufferSize=2M

# [!]指定日志备份缓冲区大小.
# 默认值为 2MB
#BackupLogBufferSize=2M

# 该参数是BackupDataBufferSize和BackupLogBufferSize之和。
# 默认值是2MB + 2MB = 4MB
#BackupMemory=4M

# 该参数指定了由备份日志缓冲和备份数据缓冲写入磁盘的消息大小.
# 默认值为 32KB
#BackupWriteSize=32k

###########################################################################
# 定义MySQL服务器(MYSQLD)
#
# 定义用于访问集群数据的MySQL服务器(SQL节点)的行为
# * 可使用 [NDB_MGMD DEFAULT] 定义多个管理节点的默认行为
###########################################################################
#[MYSQLD DEFAULT]
[MYSQLD]

# 集群中节点的唯一标识, 取值 1~63
id=21

# 指定节点主机名或IP
HostName=192.168.1.102

# 引用在[COMPUTER]部分中定义的计算机之一
#ExecuteOnComputer=

# 对于正常配置,使用管理服务器作为决策程序.
# 将它的ArbitrationRank设置为1(默认),
# 并将所有SQL节点的ArbitrationRank设置为0.
ArbitrationRank=0

# 指定管理服务器对决策请求的延迟时间,毫秒为单位,默认为 0.
# 通常情况下不需要改变它.
ArbitrationDelay=0

# [!!]该参数以字节为单位,默认值是 32KB.
#BatchByteSize=32k

# [!!]该参数以字节为单位,默认值是 64 ,最大值为 992.
#BatchSize=64
# skip-name-resolve 数据库加这个参数速度会变快skip-name-resolve,但是也有注意点,mysql.user 表里面的 host 不要用 localhost 之类的,要用127.0.0.1不然连自己都连不上数据库,会报错
# [!]指定从各数据节点发送的每批数据的大小.
# 默认值是 256KB ,最大值为 16MB.
#MaxScanBatchSize=256k




  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值