依赖包要求:cmake     gcc    gcc-c++     ncurses     Perl     ncurses-devel

在7.3以及更高的版本中, WITH_NDB_JAVA是默认启动的,需要配置JAVA环境,WITH_CLASSPATH配置JAVA目录。如果不启用,可以: -DWITH_NDB_JAVA=OFF。

CMAKE配置选项:

具体参阅:https://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html#cmake-general-options

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysqld.sock -DWITH_EXTRA_CHARSETS=all -DWITH_SSL=bundled -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_NDB_JAVA=OFF -DWITH_NDBCLUSTER_STORAGE_ENGINE=1 -DWITH_boost=/usr/local/boost

SQL节点存储的是表结构,数据节点存储的是数据文件。

配置参数:

数据节点配置参数参阅:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-params-ndbd.html                   https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-ndbd-definition.html

SQL节点配置参数参阅:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-params-api.html                      https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-api-definition.html

管理节点参数参阅:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-params-mgmd.html                        https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-mgm-definition.html

其他参数参阅:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-params-other.html

管理节点需要一个config.ini文件,SQL节点和数据节点需要一个my.cnf文件。

SQL节点与数据节点配置(my.cnf):     #SQL节点与数据节点配置都是一样的,在管理节点上区分两个节点。

[mysqld]

ndbcluster
skip-ndbcluster
binlog_format=row

log-bin=fb-bin

server-id=2151

ndb-connectstring=192.168.152.156

secure-file-priv=''

[mysql_cluster]
ndb-connectstring=192.168.152.156

[ndbd]
connect-string=192.168.152.156

[ndb_mgm]
connect-string=192.168.152.156

[ndb_mgmd]
config-file=/etc/mysql/config.ini

[mysqldump]
quick
max_allowed_packet = 24M

[mysql]
auto-rehash #使用TAB键自动补全

[mysqld_safe]
open-files-limit = 65536

管理节点(config.ini):

[ndbd default]                     #数据节点所有默认配置

NoOfReplicas=2           #一份数据在集群中的存在份数,与数据节点对应

DataMemory=80M      #装载到内存中的数据大小

IndexMemory=18M      #装载到内存中索引大小

ServerPort=2202          #默认端口

LockPagesInMainMemory=1           #将进程锁定在内存中,以避免与磁盘的交换

NoOfFragmentLogFiles=300     #设置节点的REDO日志文件的个数

DataDir=/usr/local/mysql/data       #数据节点目录,包括集群日志文件,进程输出文件和守护进程的进程ID(PID)文件

MaxNoOfConcurrentOperations=100000     #设置事务中同时更新的最大记录数

MaxNoOfConcurrentTransactions=50000  #定义节点中最大事务数

ODirect=1                #开启这个设置会使内地版NDB尝试采用O_DIRECT写LCP、备份、重做日志,通常使用更少的内存和cpu。

SchedulerSpinTimer=400    #定义线程在进入睡眠状态之前多少毫秒被执行

SchedulerExecutionTimer=100    #定义线程在被发送前多少毫秒被执行

RealTimeScheduler=1    #设置ndbcluster线程启用真实时间的时序安排

TimeBetweenGlobalCheckpoints=1000

TimeBetweenEpochs=200

RedoBuffer=32M    #设置redo日志缓存

MaxNoOfTables=1024    #该参数为作为整体的簇设置了最大表对象数目。该参数的默认值为128。最小值为8,最大值为20320,每个表对象每节点约需20KB的空间。

MaxNoOfOrderedIndexes=256    #设置哈希索引在系统中同意时间被使用的总数,该参数的默认值为128。

BackupMaxWriteSize=1M    #设置备份日志和备份数据缓冲写入磁盘的默认大小
BackupDataBufferSize=16M    #设置备份数据缓存的大小
BackupLogBufferSize=4M    #设置备份日志缓存的大小
BackupMemory=20M    #备份内存,该参数是BackupDataBufferSize和BackupLogBufferSize之和。

[tcp default]

SendBufferMemory=2M

ReceiveBufferMemory=2M

[ndb_mgmd]              #管理节点

Nodeid=1

HostName=198.51.100.10           #IP或者hostname,管理节点

DataDir=/usr/local/mysql/data            #数据文件存放目录

[ndbd]      #数据节点节点1

HostName=198.51.100.30             #节点IP

NodeId=11                                       #节点ID

LockExecuteThreadToCPU=1

LockMaintThreadsToCPU=0

[ndbd]     #数据节点节点2

HostName=198.51.100.40                #节点IP

NodeId=12

LockExecuteThreadToCPU=1

LockMaintThreadsToCPU=0

[mysqld]               #sql节点1

Nodeid=21

HostName=198.51.100.20

[mysqld]    #sql节点2

Nodeid=22

HostName=198.51.100.20

初始化数据库:

5.7之前:

mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

5.7之后:

mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

管理节点上进行初始化:

  ndb_mgmd -f /var/lib/mysql-cluster/config.ini --ndb-nodeid=1                 #指定config.ini文件位置,配置文件位置

数据节点上执行:

    ndbd --ndbcluster

--ndbcluster(--initial):该NDBCLUSTER存储引擎是必要的使用NDB簇

SQL节点上执行:

service mysqld start

启动顺序:管理节点-->数据节点-->SQL节点

关闭集群,在管理节点上执行:

    ndb_mgm -e shutdown

错误解决:

1、Mixing of localhost (default for [NDBD]HostName) with other hostname(192.168.152.156) is illegal

查找管理节点上config.ini文件中的[ndbd]模块,删除多余的。

2、Nodegroup 0 has 1 members, NoOfReplicas=2

编辑config.ini文件,修改参数:NoOfReplicas值修改为1。

3、数据节点链接不上

检查防火墙是否关闭,配置文件config.ini是否配置正确。

mysql cluster限制:

1、数据节点的节点ID范围必须是1-48     管理节点的节点ID在1-255    NDB群集中的最大节点总数为255    元数据最大数据量为20320

2、事物隔离级别只支持RC级别,当更新或删除多行数据时,可能会发生读已提交现象,这时必须使用当前读。

3、任何包含BLOB和TEXT的列,NDB引擎都会使用S锁来锁定改行,但是对于有索引的列,不会使用共享锁

4、错误会导致整个事物回滚

5、不适合处理大事物,因为会消耗更多的内存,本身NDB引擎是建立在内存上的

6、硬件机器必须是同一种体系结构

7、sql_log_bin对数据操作没有影响; 但是,它支持模式操作。NDB群集无法为具有BLOB列但没有主键的表生成二进制日志。

8、副本冗余数量为1时,数据丢失无法恢复,所以必须为2.

mysql cluster配置的更多相关文章

  1. MySQL Cluster 配置详细介绍

    在上篇文章已经详细说明了MySQL Cluster搭建与测试,现在来说说详细的配置参数.在MySQL Cluster 环境的配置文件 config.ini 里面,每一类节点都有两个(或以上)的相应配置 ...

  2. MySQL Cluster配置概述

    一.     MySQL Cluster概述 MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster .通过无共享体系结构,系统能够使用廉价的硬件,而 ...

  3. Mysql Cluster配置基本篇

    一.下载mysql-cluster 从mysql官网下载对应的mysql-cluster 二.配置管理节点 1.解压mysql-cluster,找到解压文件中的ndb_mgm和ndb_mgmd 2.复 ...

  4. MySQL Cluster 7.3.5 集群配置参数优化(优化篇)

    按照前面的教程:MySQL Cluster 7.3.5 集群配置实例(入门篇),可快速搭建起基础版的MySQL Cluster集群,但是在生成环境中,还是有很多问题的,即配置参数需要优化下, 当前生产 ...

  5. Windows Server 2008R2配置MySQL Cluster

    目录 配置环境 相关知识 配置过程 配置 ini参数解释 启动集群 检查配置 同步测试 故障测试 写在之后 配置环境 VMware:(版本10.0.01) 操作系统:Windows Server 20 ...

  6. mysql cluster (mysql 集群)安装配置方案(转)

    一.准备 1.准备服务器 计划建立有5个节点的MySQL CLuster体系,需要用到5台服务器,但是我们做实验时没有这么多机器,可以只用2台,我就是一台本机,一台虚拟机搭建了有5个节点的MySQL ...

  7. mysql cluster 安装配置方案

    mysql cluster (mysql 集群)安装配置方案   一.准备 1.准备服务器 计划建立有5个节点的MySQL CLuster体系,需要用到5台服务器,但是我们做实验时没有这么多机器,可以 ...

  8. MySQL Cluster搭建与测试

    MySQL Cluster是一个基于NDB Cluster存储引擎的完整的分布式数据库系统.不仅仅具有高可用性,而且可以自动切分数据,冗余数据等高级功能.和Oracle Real Cluster Ap ...

  9. MySQL Cluster 集群

    本文转载 http://www.cnblogs.com/gomysql/p/3664783.html MySQL Cluster是一个基于NDB Cluster存储引擎的完整的分布式数据库系统.不仅仅 ...

随机推荐

  1. Ubuntu 安装MTP驱动访问安卓设备(转载)

    转自:http://www.ipython.me/ubuntu/how-to-connect-kindle-with-ubuntu.html 1.安装MTP工具集: mr_liu@i-it:~$ su ...

  2. 洛谷 P3952 时间复杂度【模拟】

    把No写成NO,WA了一发-- 现在看这题也不难-- 用一个栈,记一下前面F的字母,是否合法,合法的有多长,每次入栈弹栈即可 #include<iostream> #include< ...

  3. YCOJ中国邮递员问题

    题目: Description 一个邮递员从邮局出发,需要去 n - 2个城市送信,送完信件以后回家. 邮局在城市 1,家在城市 n,任意两个城市之间都有道路,但是这些道路是单向,也就是说 a 到 b ...

  4. iOS 切割圆角图片、图片文件格式判断

    1.切割圆角图片 // 性能不好,适合圆角图形数量比较少的情况 UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMak ...

  5. [SRM625 Div1 Hard] Seatfriends

    题目链接:Portal Vjudge Solution 一开始拿到这一题Sb了,把空放到dp中一起考虑了,这样计数就变得很麻烦. 其实我们可以把空位拿出来,假设它是存在的,最后再放回去. 那么就可以钦 ...

  6. [POI2007]洪水pow

    Description AKD市处在一个四面环山的谷地里.最近一场大暴雨引发了洪水,AKD市全被水淹没了.Blue Mary,AKD市的市长,召集了他的所有顾问(包括你)参加一个紧急会议.经过细致的商 ...

  7. 洛谷 P2742 [USACO5.1]圈奶牛Fencing the Cows || 凸包模板

    整篇都是仅做记录... 蓝书上的板子.水平序,单调栈.先求下凸包,再求上凸包.叉积的作用是判定向量的位置关系. 48行的作用是在求上凸包的时候不至于去删下凸包中的点.上凸包中第一个点被认为是t1. 另 ...

  8. 题解报告:hdu1202The calculation of GPA(算绩点问题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1202 Problem Description 每学期的期末,大家都会忙于计算自己的平均成绩,这个成绩对 ...

  9. 421 Maximum XOR of Two Numbers in an Array 数组中两个数的最大异或值

    给定一个非空数组,数组中元素为 a0, a1, a2, … , an-1,其中 0 ≤ ai < 231 .找到 ai 和aj 最大的异或 (XOR) 运算结果,其中0 ≤ i,  j < ...

  10. AJPFX关于抽象方法和接口

    class Demo_Animal1{ public static void main(String[] args) {                Cat a = new Cat("加菲 ...