搭建mysql NDB集群
NDB群集安装
介绍
https://dev.mysql.com/doc/refman/8.0/en/mysql-cluster-basics.html
NDBCLUSTER (也称为NDB)是一种内存存储引擎,提供高可用性和数据持久性功能。
的NDBCLUSTER存储引擎可以与一系列故障切换和负载平衡选项进行配置,但最简单的是开始在集群级别的存储引擎。NDB Cluster的NDB存储引擎包含一整套数据,仅依赖于群集本身内的其他数据。
NDB群集 的“ 群集 ”部分的配置独立于MySQL服务器。在NDB群集中,群集的每个部分都被视为一个 节点。
共有三种类型的群集节点,并且在最小的NDB群集配置中,将至少有三个节点,这些类型之一:
管理节点:这种类型的节点的作用是管理NDB群集中的其他节点,执行诸如提供配置数据,启动和停止节点以及运行备份之类的功能。由于此节点类型管理其他节点的配置,因此应首先启动此类型的节点,然后再启动任何其他节点。使用命令ndb_mgmd启动一个MGM节点 。
数据节点:这种类型的节点存储集群数据。
NDB群集表通常完全存储在内存中,而不是磁盘上(这就是为什么我们将NDB群集称为 内存数据库)。但是,某些NDB群集数据可以存储在磁盘上。
SQL节点:这是访问集群数据的节点。对于NDB群集,SQL节点是使用
NDBCLUSTER存储引擎的传统MySQL服务器 。SQL节点实际上只是API节点的一种特殊类型 ,它指定访问NDB群集数据的任何应用程序。API节点的另一个示例是用于还原集群备份的 ndb_restore实用程序。可以使用NDB API编写此类应用程序。
1、资源规划
|
节点 |
IP地址 |
硬件资源 |
系统 |
||
|
管理节点(mgmd) |
192.168.137.128 |
1cpu、1G内存 |
Centos7 |
||
|
管理节点(mgmd) |
192.168.137.129 |
1cpu、1G内存 |
Centos7 |
||
|
数据节点“ A”(ndbd) SQL节点(mysqld) |
192.168.137.130 |
1cpu、3G内存 (数据节点吃内存) |
Centos7 |
||
|
数据节点“ B”(ndbd) SQL节点(mysqld) |
192.168.137.131 |
1cpu、3G内存 |
Centos7 |
2、下载安装文件(192.168.137.130、192.168.137.131)
官网地址:https://dev.mysql.com/downloads/cluster/
3.2、SQL节点
将位置更改为包含下载文件的目录,解压缩归档文件,并创建一个名为mysql该mysql 目录的符号链接 。
useradd mysql
tar -xf mysql-cluster-gpl-8.0.20-linux-glibc2.12-x86_64.tar.gz
mv mysql-cluster-gpl-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysql
3.3、将位置更改为mysql目录,并使用mysqld 设置系统数据库 --initialize,如下所示:
#rm -rf /data/apps/mysql-8.0/ mkdir -p /data/apps/mysql-8.0/logs && chown -R mysql.mysql /data/apps/mysql-8.0 chown -R mysql.mysql /usr/local/mysql cat > /usr/local/mysql/my.cnf <<EOE [mysqld] basedir=/usr/local/mysql datadir=/data/apps/mysql-8.0/data socket=/tmp/mysql.sock user=mysql symbolic-links= lower_case_table_names= max_connections= wait_timeout= interactive_timeout= key_buffer_size=128M tmp_table_size=16M read_buffer_size=4M read_rnd_buffer_size=16M sort_buffer_size=32M innodb_buffer_pool_size=1024M ndbcluster [mysqld_safe] log-error=/data/apps/mysql-8.0/logs/mysqld.log pid-file=/data/apps/mysql-8.0/mysqld.pid user=mysql [mysql_cluster] ndb-connectstring=192.168.137.128,192.168.137.129 EOE
mv /etc/my.cnf /etc/my.cnf_`date +%F-%s`
ln -s /usr/local/mysql/my.cnf /etc/my.cnf
3.4初始化数据库
/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/my.cnf --basedir=/usr/local/mysql --datadir=/data/apps/mysql-8.0/data --initialize --user=mysql

记住密码一会儿用
3.4 将MySQL启动脚本复制到适当的目录,使其可执行,并将其设置为在操作系统启动时启动:
cp support-files/mysql.server /etc/rc.d/init.d/ chmod +x /etc/rc.d/init.d/mysql.server chkconfig --add mysql.server
4.1数据节点,拷贝数据节点启动文件,如数据节点和sql节点在同一台,此步忽略
scp 192.168.137.130:/usr/local/mysql/bin/{ndbd,ndbmtd} /usr/local/bin/.
cd /usr/local/bin
chmod +x ndb*
mkdir -p /data/apps/mysql-8.0
在每个数据节点主机上应重复上述步骤。
5.1管理节点。 137.128、137.129
scp 192.168.137.130:/usr/local/mysql/bin/ndb_mgm* /usr/local/bin/.
cd /usr/local/bin
chmod +x ndb_mgm*
mkdir -p /usr/local/mysql/mysql-cluster
5.2配置管理节点。
#配置文件详解
#https://dev.mysql.com/doc/refman/8.0/en/mysql-cluster-config-file.html
cat > /usr/local/mysql/config.ini <<EOE
[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas= # Number of replicas
DataMemory=98M # How much memory to allocate for data storage [ndb_mgmd]
NodeId=
# Management process options:
HostName=192.168.137.128 # Hostname or IP address of MGM node
DataDir=/usr/local/mysql/mysql-cluster # Directory for MGM node log files [ndb_mgmd]
NodeId=
# Management process options:
HostName=192.168.137.129 # Hostname or IP address of MGM node
DataDir=/usr/local/mysql/mysql-cluster # Directory for MGM node log files [ndbd]
# Options for data node "A":
# (one [ndbd] section per data node)
HostName=192.168.137.130 # Hostname or IP address
NodeId= # Node ID for this data node
DataDir=/data/apps/mysql-8.0 # Directory for this data node's data files [ndbd]
# Options for data node "B":
HostName=192.168.137.131 # Hostname or IP address
NodeId= # Node ID for this data node
DataDir=/data/apps/mysql-8.0 # Directory for this data node's data files [mysqld]
NodeId=
# SQL node options:
HostName=192.168.137.130 # Hostname or IP address
# (additional mysqld connections can be
# specified for this node for various
[mysqld]
# SQL node options:
NodeId=
HostName=192.168.137.131
# purposes such as running ndb_restore)
EOE
6、 NDB群集的初始启动
6.1管理主机
/usr/local/mysql/bin/ndb_mgmd -f /usr/local/mysql/config.ini --initial (初始化才加)

6.2在每个数据节点主机上,运行以下命令以启动 ndbd进程:
ndbd --initial (初始化才加)
如报错,执行下列命令

ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1 ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
再次启动成功:

6.3 Sql节点启动数据库:
/usr/local/mysql/bin/mysqld &
如果一切顺利,并且集群已正确设置,则集群现在应该可以运行了。您可以通过调用ndb_mgm管理节点客户端来对此进行测试。输出看起来应该像这里显示的一样,尽管您可能会看到输出有些细微的差异,具体取决于所使用的MySQL版本:
管理节点

SQL节点在这里被称为 [mysqld(API)],这反映了mysqld进程充当NDB群集API节点的事实 。
7、安全关闭和重新启动NDB群集
7.1要关闭群集,请在托管管理节点的计算机上的外壳程序中输入以下命令:
ndb_mgm -e shutdown -e此处 的选项用于将命令从外壳传递给ndb_mgm客户端。
7.2 再次启动,管理节点执行
ndb_mgmd -f /usr/local/mysql/config.ini
7.3 在每个数据节点执行
ndbd
7.4 使用ndb_mgm客户端来验证两个数据节点均已成功启动。
7.5 在SQL主机上:
/usr/local/mysql/bin/mysqld &
如果其中一个数据节点挂掉,必须让其中一个节点完全恢复,集群才可以继续使用
8、 其他注意
创建表时必须设定主键和加上ENGINE=NDBCLUSTER
create table s_position ( id int not null auto_increment, name varchar() not null default '经理', #设定默认值 description varchar(), primary key PK_positon (id) #设定主键 ) ENGINE=NDBCLUSTER;
搭建mysql NDB集群的更多相关文章
- 抄来的,占个位儿【百度架构师是怎样搭建MySQL分布式集群】
1.准备集群搭建环境 使用6台虚拟机来搭建MySQL分布式集群,相应的实验环境与对应的MySQL节点之间的对应关系如下图所示: 管理节点(MGM):这类节点的作用是管理MySQLCluster ...
- 基于keepalived搭建MySQL热机集群
背景 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,M ...
- Windows系统搭建Mysql Cluster集群
简单介绍一下MySQL集群涉及的三种节点: 管理节点(也可以称管理服务器)是整个集群环境的核心,类似于集群中起调度作用的枢纽,由它来负责管理其它节点(数据节点和SQL节点)的开启.关闭或重启某 ...
- MySQL集群---②Windows平台搭建MySQL CLUSTER集群
原文:http://blog.csdn.net/mazhaojuan/article/details/42211857 本文将通过两台电脑来简单介绍一下Windows平台如何搭建MySQL集群. My ...
- MySQL NDB集群安装配置(mysql cluster 9.4.13 installation)
一.安装前规划 1.安装软件版本:mysql-cluster-gpl-7.4.13-linux-glibc2.5-x86_64.tar.gz 2.安装规划: 主机名 Ip地址 角色 db01 192. ...
- 搭建mysql主从集群的步骤
前提条件是:须要在linux上安装4个mysql数据库,都须要配置完对应的信息. 须要搭建: mysql 01: 主数据库 master mysql 02 : ...
- Docker搭建MySQL主从集群,基于GTID
写在前边 搭建MySQL读写分离主从集群,这里未使用binlog方式,使用的是GTID方式 源码见我的Github https://github.com/hellxz/mysql-cluster-do ...
- 如何搭建一个 MySQL 分布式集群
1.准备集群搭建环境 使用6台虚拟机来搭建 MySQL分布式集群 ,相应的实验环境与对应的MySQL节点之间的对应关系如下图所示: 管理节点(MGM):这类节点的作用是管理MySQLCluster内的 ...
- 【Data Cluster】真机环境下MySQL数据库集群搭建
真机环境下MySQL-Cluster搭建文档 摘要:本年伊始阶段,由于实验室对不同数据库性能测试需求,才出现MySQL集群搭建.购置主机,交换机,双绞线等一系列准备工作就绪,也就开始集群搭建.起初笔 ...
随机推荐
- 基于 Blazor 开发五子棋⚫⚪小游戏
今天是农历五月初五,端午节.在此,祝大家端午安康! 端午节是中华民族古老的传统节日之一.端午也称端五,端阳.此外,端午节还有许多别称,如:午日节.重五节.五月节.浴兰节.女儿节.天中节.地腊.诗人节. ...
- 入门大数据---Hbase是什么?
一.Hbase是什么? Hbase属于NoSql的一种. NoSql数据库分为如下几类: Key-Value类型数据库 这类数据库主要会使用到一个哈希表,这个表有一个特定的键和一个指针指向特定的数据. ...
- mfc 中unicode 字符和字符串的使用
在MFC或SDK程序中,不需要进行任何关于unicode的设置,记住下面两个宏,保你程序一路畅通: 用TCHAR/TCHAR*代替char/char* 及wchar/wchar*用TEXT(" ...
- 客官,来看看AspNetCore的身份验证吧
开篇 这段时间潜水了太久,终于有时间可以更新一篇文章了. 通过本篇文章您将Get: Http的一些身份验证概念 在AspNetCore中实现身份验证方案 JWT等概念的基础知识 使用Bearer To ...
- StringBuider 在什么条件下、如何使用效率更高?
声明:本文首发于博客园,作者:后青春期的Keats:地址:https://www.cnblogs.com/keatsCoder/ 转载请注明,谢谢! 引言 都说 StringBuilder 在处理字符 ...
- Java项目开启远程调试(tomcat、springboot)
当我们运行一个项目的时候,一般都是在本地进行debug.但是如果是一个分布式的微服务,这时候我们选择远程debug是我们开发的利器. 环境apache-tomcat-8.5.16 Linux 如何启用 ...
- Java NIO之Buffer的使用
目录 Buffer简介 Buffer的核心属性 Buffer的创建与使用(ByteBuffer为例) 总结 参考资料 Buffer简介 缓冲区(Buffer):本质上是一个数组,用于临时保存.写入以及 ...
- Java并发编程(06):Lock机制下API用法详解
本文源码:GitHub·点这里 || GitEE·点这里 一.Lock体系结构 1.基础接口简介 Lock加锁相关结构中涉及两个使用广泛的基础API:ReentrantLock类和Condition接 ...
- Fetch.AI的最新发布speaks your language
更新增强长期网络的稳定性 包括新的Etch功能,使我们的代码比以往对开发人员更加友好.我们现在支持太阳下的每一种语言,包括普通话,希腊语和希伯来语-甚至表情符号 介绍我们很高兴地宣布我们最新的技术更新 ...
- 浏览器访问 www.baidu.com 的过程
浏览器访问 www.baidu.com 的过程 1 先要解析出www.baidu.com DNS域名解析为服务器 IP 2 得到 IP地址后,客户端会发起TCP请求,以及3次握手建立连接 3 建立连接 ...