mysql cluster配置
依赖包要求: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配置的更多相关文章
- MySQL Cluster 配置详细介绍
在上篇文章已经详细说明了MySQL Cluster搭建与测试,现在来说说详细的配置参数.在MySQL Cluster 环境的配置文件 config.ini 里面,每一类节点都有两个(或以上)的相应配置 ...
- MySQL Cluster配置概述
一. MySQL Cluster概述 MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster .通过无共享体系结构,系统能够使用廉价的硬件,而 ...
- Mysql Cluster配置基本篇
一.下载mysql-cluster 从mysql官网下载对应的mysql-cluster 二.配置管理节点 1.解压mysql-cluster,找到解压文件中的ndb_mgm和ndb_mgmd 2.复 ...
- MySQL Cluster 7.3.5 集群配置参数优化(优化篇)
按照前面的教程:MySQL Cluster 7.3.5 集群配置实例(入门篇),可快速搭建起基础版的MySQL Cluster集群,但是在生成环境中,还是有很多问题的,即配置参数需要优化下, 当前生产 ...
- Windows Server 2008R2配置MySQL Cluster
目录 配置环境 相关知识 配置过程 配置 ini参数解释 启动集群 检查配置 同步测试 故障测试 写在之后 配置环境 VMware:(版本10.0.01) 操作系统:Windows Server 20 ...
- mysql cluster (mysql 集群)安装配置方案(转)
一.准备 1.准备服务器 计划建立有5个节点的MySQL CLuster体系,需要用到5台服务器,但是我们做实验时没有这么多机器,可以只用2台,我就是一台本机,一台虚拟机搭建了有5个节点的MySQL ...
- mysql cluster 安装配置方案
mysql cluster (mysql 集群)安装配置方案 一.准备 1.准备服务器 计划建立有5个节点的MySQL CLuster体系,需要用到5台服务器,但是我们做实验时没有这么多机器,可以 ...
- MySQL Cluster搭建与测试
MySQL Cluster是一个基于NDB Cluster存储引擎的完整的分布式数据库系统.不仅仅具有高可用性,而且可以自动切分数据,冗余数据等高级功能.和Oracle Real Cluster Ap ...
- MySQL Cluster 集群
本文转载 http://www.cnblogs.com/gomysql/p/3664783.html MySQL Cluster是一个基于NDB Cluster存储引擎的完整的分布式数据库系统.不仅仅 ...
随机推荐
- <hr />标签的颜色和粗细设定
设置<hr />的颜色和粗细,不需要用到style,直接用标签的color和size属性: <hr color="red" size="0.5" ...
- SVN常用命令说明(转载)
转自:http://www.blogjava.net/jasmine214--love/archive/2011/01/12/342839.html /** * 转载请注明作者longdick htt ...
- Math对象常用方法(取整细节)
Math 对象 Math 对象用于执行数学任务. 1.常用属性: 1.E :返回算术常量e,即自然对数的底数(约2.718) 2.PI :返回圆周率,约3.14159 2.常用方法 Math.方 ...
- bzoj 1606: [Usaco2008 Dec]Hay For Sale 购买干草【01背包】
在洛谷上被卡常了一个点! 就是裸的01背包咯 为啥我在刷水题啊 #include<iostream> #include<cstdio> #include<algorith ...
- 实现简单版的LinkedList
相比ArrayList,双链表的数据结构就复杂多了,想要弄清代码的意思还是要搞清数据结构层面的变化. package cn.sp.chapter03; import java.util.Concurr ...
- _bzoj1012 [JSOI2008]最大数maxnumber【Fenwick Tree】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1012 裸的树状数组. #include <cstdio> #include &l ...
- B Balala Power!
Bryce1010模板 每个字母所在位置对应权值加和,肯定存不下. 但我们只需要26个字母对应值之间的关系即可,开一个数组a[i][j]分别记录字母i在j这个位置上出现了多少次,对于大于26的值进位, ...
- 8.JAVA-向上转型、向下转型
父子对象之间的转换分为了向上转型和向下转型,它们区别如下: 向上转型 : 通过子类对象(小范围)实例化父类对象(大范围),这种属于自动转换 向下转型 : 通过父类对象(大范围)实例化子类对象(小范围) ...
- 微信小程序组件解读和分析:十五、switch 开关选择器
switch 开关选择器组件说明: switch,开关选择器.只能选择或者不选.这种属于表单控件或者查询条件控件. switch 开关选择器示例代码运行效果如下: 下面是WXML代码: [XML] 纯 ...
- System.Lazy<T>延迟加载
在很多情况下,有些对象需要在使用时加载或根据逻辑动态加载.有些情况如果不延迟加载,可能会影响效率甚至抛出Timeout Exception.如网络操作.数据库操作.文件IO操作 直接上代码,方便我们理 ...