linux下构建MysqlCluster集群,NDB搜索引擎
搭建管理节点
Ndb搜索引擎对于服务器的内存要求比较高,因为所有数据节点的数据,以及索引,事务等等都需要加载进内存中。
下载 mysql-cluster-gpl-7.6.8-linux-glibc2.12-x86_64.tar.gz 集群压缩包上传至服务器,解压,这里说明一下文件解压后会比较大,尽量增大服务器的磁盘空间。
取出解压文件中的ndb_mgm文件拷贝到/usr/local/bin目录下 \cp -rf mysql-cluster-gpl-7.6.8-linux-glibc2.12-x86_64/bin/ndb_mgm* /usr/local/bin
赋予ndb_mgm可执行权限
创建 /var/lib/mysql-cluster文件夹
创建 /usr/local/mysql文件夹
创建 config.ini管理节点配置文件
例如:
[ndbd default]
NoOfReplicas=2
DataMemory=6G
IndexMemory=1G
MaxNoOfConcurrentTransactions=10240
MaxNoOfConcurrentOperations=100000
MaxNoOfOrderedIndexes=10000
NoOfFragmentLogFiles=128
TimeBetweenLocalCheckpoints=20
FragmentLogFileSize=256M
RedoBuffer=64M
TransactionDeadlockDetectionTimeout=15000
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
[ndb_mgmd]
NodeId=1
HostName=***.***.***.***
DataDir=/var/lib/mysql-cluster
[ndb_mgmd]
NodeId=2
HostName=***.***.***.***
DataDir=/var/lib/mysql-cluster
[ndbd]
NodeId=10
HostName=***.***.***.***
DataDir=/var/opt/mitec/mysql/data/
[ndbd]
NodeId=11
HostName=***.***.***.***
DataDir=/var/opt/mitec/mysql/data/
[ndbd]
NodeId=12
HostName=***.***.***.***
DataDir=/var/opt/mitec/mysql/data/
[ndbd]
NodeId=13
HostName=***.***.***.***
DataDir=/var/opt/mitec/mysql/data/
[mysqld]
NodeId=30
HostName=***.***.***.***
[mysqld]
NodeId=31
HostName=***.***.***.***
[mysqld]
NodeId=32
HostName=***.***.***.***
[mysqld]
NodeId=33
HostName=***.***.***.***
[mysqld]
[mysqld]
上面的配置是比较好的,对于中小型企业的业务量完全能吃的消百万级数据量完全够用,NoOfReplicas参数最大为4最小为2,这个参数代表数据节点的相互备份数。越大的话对于程序本身也是一种资源消耗。数据节点的数量必须能被NoOfReplicas参数整除,因为这个地方涉及到分区,有兴趣的小伙伴可以进一步了解。
config.ini文件配置完成后,将其拷贝到/var/lib/mysql-cluster文件夹下然后就可以进行管理节点的初始化了
首次初始化执行:ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial 。下次启动管理节点就不需要加 --initial参数。这里说明以下如果是两个管理节点话:主管理节点执行前面的命令,备管理节点执行:ndb_mgmd -c '主管理节点ip' --ndb-nodeid=2 --configdir=/var/lib/mysql-cluster
mysqlCluster提供监控集群状态的客户端:在sshd客户端执行:ndb_mgm命令, 使用show命令查看集群状态,这里客户端有重启数据节点,管理节点等命令,例如:‘节点id’ restart / '节点id' stop
修改config.ini配置文件可以使用(主)管理节点 ndb_mgmd -f /var/lib/mysql-cluster/config.ini --reload重新加载配置文件。
搭建sql节点
首先校验当前服务器是否有libaio-0.3.107-10.el6.x86_64.rpm,numactl-2.0.9-2.el6.x86_64.rpm包,没有的话yum安装一下,这两个包是支持mysql安装时用的。
创建mysql用户组,执行:groupadd mysql
创建mysql用户,执行:useradd -g mysql -s /bin/false mysql
创建安装目录:/var/opt/mitec/mysql。这个目录是可以自己指定的,这个目录的磁盘空间一定要大,最小15G,不然数据一多就宕机了。
赋予目录可执行权限:chown root:mysql :/var/opt/mitec/mysql
解压mysql-cluster-gpl-7.6.8-linux-glibc2.12-x86_64.tar.gz集群压缩包,解压目录至:/usr/local
创建mysql配置文件:执行 vi /etc/my.cnf 命令
my.cnf 文件 例如:
[mysqld]
ndbcluster
basedir=/var/opt/mitec/mysql
datadir=/var/opt/mitec/mysql/data
ndb-connectstring=‘管理节点ip(多个管理节点以 ,分割)’
default-storage-engine=NDBCLUSTER
query_cache_size=512M
key_buffer_size=384M
max_allowed_packet=128M
sort_buffer_size=6M
read_buffer_size=6M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql_cluster]
ndb-connectstring=‘管理节点ip(多个管理节点以 ,分割)’
上述配置文件完成后开始初始化mysql服务
/var/opt/mitec/mysql/bin/mysqld --initialize ,这里时mysql5.7初始化,其他版本的自行查找资料,初始化完成后控制台会有产生一个随机密码,登录mysqli修改mysql密码配置远程登录就会用到这个密码。
赋予mysql用户权限 给mysql相关文件增加权限
chown -R root /var/opt/mitec/mysql
chown -R mysql /var/opt/mitec/mysql/data
chgrp -R mysql /var/opt/mitec/mysql
将mysql加入开机自起
cp -rf /var/opt/mitec/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
#改变mysql启动文件权限
chmod +x /etc/rc.d/init.d/mysql
chkconfig --add mysql
ln -s /var/opt/mitec/mysql/bin/mysql /usr/bin
启动msyql服务即可
搭建数据节点
这里我是将数据节点与mysql节点安装在了同一台服务器上
上述my.cnf配置文件中的
[mysql_cluster]
ndb-connectstring=‘管理节点ip(多个管理节点以 ,分割)’
是配置数据节点与管理节点之间的连接,也就是配置当前数据节点是否为集群的数据节点。
直接执行:/var/opt/mitec/mysql/bin/ndbd --initial 命令。数据节点初始化时需要将 --initial参数带上,初始化后在启动数据节点就不需要加上 --initial参数。
到这里整个集群就相当于搭建完成,登录管理节点客户端查看各各节点状态。
附录:
mysqlcluster集群也提供了数据备份数据恢复等功能,以及滚动添加数据节点,这个可以参考mysqlCluster官网进行操作。
管理节点的config.ini文件内部有很多的参数,参数很重要,参数配置的不正确会导致集群很不友好,会有很多错误产生。
我现在搭建的集群数据库表为内存表,也可以创建磁盘表。这个地方就需要根据需求而定。
集群节点的初始化顺序:管理节点初始化,数据节点初始化,sql节点初始化。
集群节点的关闭顺序:sql节点关闭,数据节点关闭,管理节点关闭。
如要转发请指明出处,谢谢!
linux下构建MysqlCluster集群,NDB搜索引擎的更多相关文章
- Linux下搭建tomcat集群全记录(转)
本文将讲述如何在Linux下搭建tomcat集群,以及搭建过程中可能的遇到的问题和解决方法.为简单起见,本文演示搭建的集群只有两个tomact节点外加一个apache组成,三者将安装在同一机器上:ap ...
- linux下配置tomcat集群的负载均衡
linux下配置tomcat集群的负载均衡 一.首先了解下与集群相关的几个概念集群:集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台.在客户端看来,一个集群就象是一个服 ...
- Linux下搭建tomcat集群全记录
(转) Linux下搭建tomcat集群全记录 2011-10-12 10:23 6133人阅读 评论(1) 收藏 举报 tomcatlinuxapacheinterceptorsession集群 1 ...
- 【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)
Oracle 11G RAC数据库安装(九) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...
- 170711、Linux下搭建MySQL集群
一.MySQL集群简介 1.什么是MySQL集群 MySQL集群是一个无共享的(shared-nothing).分布式节点架构的存储方案,其目的是提供容错性和高性能. 数据更新使用读已提交隔离级别(r ...
- 【转】【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)
原文地址:http://www.cnblogs.com/baiboy/p/orc9.html 阅读目录 目录 检查RAC状态 检查创建的数据库 全部参考文献 相关文章 Oracle 11G RAC ...
- 【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)
Oracle 11G RAC数据库安装(八) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...
- 【转】【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)
原文地址:http://www.cnblogs.com/baiboy/p/orc8.html 阅读目录 目录 数据库安装 参考文献 相关文章 Oracle 11G RAC数据库安装(八) 概述:写 ...
- Linux下安装zookeeper集群
首先,准备三台Linux虚拟机 三台机器 centos01 :192.168.1.168(lxs001) centos03 :192.168.1.178(lxs003) centos03 :1 ...
随机推荐
- 2018-2019-2 网络对抗技术 20165320 Exp5 MSF基础应用
2018-2019-2 网络对抗技术 20165320 Exp5 MSF基础应用 一.实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 一个主 ...
- pl sql 存储过程 执行sql 锁死状态
背景 这是在一个不知如何表达的项目中,我在这个项目中做的就是不知如何表达的事情.只是想着技术,到是通过这个项目把存储过程基本能用的都用了,oracle开发的技术我感觉基本都全活了.别人没搞定的我搞定了 ...
- 使用zabbix3.0.4的ICMP Ping模版实现对客户端网络状态的监控
一.登陆Zabbix服务器做以下操作: 1.fping安装 wget http://www.fping.org/dist/fping-3.16.tar.gz tar zxvf fping-3.16.t ...
- 使用ajax上传表单(带文件)
在使用form表单的时候上传文件+表单,会使得页面跳转,而在某些时候不希望跳转,只变化页面中的局部信息 通过查找资料,可以使用FormData进行ajax操作. FormData介绍:XMLHttpR ...
- rsa加密解密, 非对称加密
2016年3月17日 17:21:08 星期四 现在越来越懒了.... 参考: http://www.xuebuyuan.com/1399981.html 左边是加密流程, 右边是解密流程 呃...有 ...
- node path.resolve()
作用: path.resolve()方法将一系列路径或路径段解析为绝对路径. 语法: path.resolve([from ...], to) 说明:将参数 to 位置的字符解析到一个绝对路径里. 参 ...
- hdu2838树状数组解逆序
离散化和排序后的序号问题搞得我实在是头痛 不过树状数组解逆序和偏序一类问题真的好用 更新:hdu的数据弱的真实,我交上去错的代价也对了.. 下面的代码是错的 /* 每个点的贡献度=权值*在这个点之前的 ...
- python 全栈开发,Day38(在python程序中的进程操作,multiprocess.Process模块)
昨日内容回顾 操作系统纸带打孔计算机批处理 —— 磁带 联机 脱机多道操作系统 —— 极大的提高了CPU的利用率 在计算机中 可以有超过一个进程 进程遇到IO的时候 切换给另外的进程使用CPU 数据隔 ...
- 01_kettle源码部署
一 kettle源码部署概述 1.从git上选择合适的版本,并down下来: 2.创建一个java项目,建立core,dbdialog,engine,ui,plugins文件夹,和一个lib文件夹: ...
- jeecg Export导出图片到excel
import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; impo ...