当前位置:网站首页>MySQL8 NDB Cluster安装部署
MySQL8 NDB Cluster安装部署
2022-06-30 15:48:00 【Joyce.Du】
1、NDB Cluster介绍

MySQL NDB Cluster 使用 MySQL 服务器和 NDB存储引擎,NDBCLUSTER (也称为NDB)是一种内存存储引擎,提供高可用性和数据持久性功能。NDB Cluster将MySQL服务器与NDB的内存集群存储引擎集成在一起。NDB集群由一组主机组成,每个主机运行一个或多个进程。这些被称为节点的进程可以包括MySQL服务器(用于访问NDB数据)、数据节点(用于存储数据)、一个或多个管理服务器。
(1)管理节点(Management node):此类节点的作用是管理 NDB Cluster 中的其他节点,执行提供配置数据、启动和停止节点以及运行备份等功能。因为这种节点类型管理其他节点的配置,所以应该首先启动这种类型的节点,然后再启动任何其他节点。使用命令ndb_mgmd启动管理节点
(2)数据节点(Data node):NDB Cluster的核心功能,用于保存数据、索引,控制事务。插入的数据按照主键的哈希值分散到不同的节点组里面保存(每个节点组保存部分数据),另外每个节点组内,数据会复制到不同的数据节点上以实现冗余
(3)SQL节点(SQL node):相当于增加了NDB存储引擎的MySQL服务器,数据节点作为NDB存储引擎使用,如果使用其它的MySQL存储引擎,例如InnoDB,MyISAM等,数据将会保存在SQL节点上;应用程序通过SQL节点访问数据节点,使用方法与通常的MySQL一样,SQL节点会自动找到正确的数据节点将数据找回
2、环境规划
节点类型 | IP | 主机名 | 占用端口 |
管理节点 | 172.16.80.56 | mgr0 | 1186 |
数据节点 | 172.16.80.57 172.16.80.58 | mgr1 mgr2 | 2202 |
SQL节点 | 172.16.80.59 | mgr3 | 3306,33060 |
3、下载MySQL NDB Cluster
社区版:MySQL :: Download MySQL Cluster

商业版:https://edelivery.oracle.com/osdc/faces/SoftwareDelivery

选择glibc二进制安装包:

4、所有节点初始化
(1)卸载已存在的mysql客户端
rpm -qa|grep mysql rpm -qa|grep mariadb rpm -e *** 卸载 |
(2)创建mysql目录
lvcreate -L 300G -n lvmysql vgtest mkfs.xfs /dev/vgtest/lvmysql mount /dev/vgtest/lvmysql /mysql |
(3)创建mysql用户和组
groupadd -g 512 mysql useradd -u 512 -g 512 -d /mysql mysql chown -R mysql.mysql /mysql |
(4)解压glibc包到/mysql
su - mysql cd /mysql tar -xvf /soft/mysql-cluster-commercial-8.0.29-linux-glibc2.12-x86_64.tar.gz mv mysql-cluster-commercial-8.0.29-linux-glibc2.12-x86_64 mysql-cluster-8.0.29 mkdir /mysql/data |
(5)配置环境变量
vi /etc/profile export MYSQL_CLUSTER_HOME=/mysql/mysql-cluster-8.0.29 export PATH="$PATH:${MYSQL_CLUSTER_HOME}/bin" |
5、管理节点配置
(1)配置config.ini
cat /mysql/config.ini [ndbd default] # Options affecting ndbd processes on all data nodes: NoOfReplicas=2 # Number of fragment replicas,指定了每一份数据被冗余存储在不同节点上面的份数, #该参数一 般至少应该被设置成2,分段的数目为数据节点总数除以NoOfReplicas DataMemory=98M # How much memory to allocate for data storage BackupDataDir=/mysql/backup #数据节点备份目录 [ndb_mgmd] # 管理节点: HostName=172.16.80.56 DataDir=/mysql/data [ndbd] # 数据节点 "A": HostName=172.16.80.57 NodeId=2 DataDir=/mysql/data [ndbd] # 数据节点 "B": HostName=172.16.80.58 NodeId=3 DataDir=/mysql/data [mysqld] # SQL节点: HostName=172.16.80.59 |
(2)配置my.cnf
cat /mysql/my.cnf [mysqld] # Options for mysqld process: ndbcluster # run NDB storage engine datadir=/mysql/data basedir=/mysql/mysql-cluster-8.0.29 [mysql_cluster] # Options for NDB Cluster processes: ndb-connectstring=172.16.80.56 # location of management server |
(3)初始化并启动管理节点
ndb_mgmd --defaults-file=/mysql/my.cnf --initial --config-file /mysql/config.ini --configdir=/mysql |
(4)重启管理节点并查看集群状态
ndb_mgm show shutdown exit 正常启动管理节点: ndb_mgmd --defaults-file=/mysql/my.cnf --config-file /mysql/config.ini --configdir=/mysql
|
6、数据节点配置(两个数据节点均执行)
(1)配置my.cnf
cat /mysql/my.cnf [mysql_cluster] # Options for NDB Cluster processes: ndb-connectstring=172.16.80.56 # location of management server |
(2)启动两个ndbd数据节点
ndbd --defaults-file=/mysql/my.cnf
|
7、MySQL节点配置
(1)创建必要目录
su - mysql mkdir -p /mysql/log |
(2)创建my.cnf
cat /mysql/my.cnf [mysqld] # Options for mysqld process: ndbcluster # run NDB storage engine datadir=/mysql/data basedir=/mysql/mysql-cluster-8.0.29 log-error=/mysql/log/mysqld.log pid-file=/mysql/mysqld.pid [mysql_cluster] # Options for NDB Cluster processes: ndb-connectstring=172.16.80.56 # location of management server |
(3)创建/etc/my.cnf软链接
ln -s /mysql/my.cnf /etc/my.cnf |
(4)创建mysqld服务并启动
cp /mysql/mysql-cluster-8.0.29/support-files/mysql.server /etc/init.d/mysqld service mysqld status service mysqld start |
(5)重置root密码
查看临时密码/mysql/log/mysqld.log

mysql -uroot -p alter user [email protected] identified by 'R00t_123'; exit mysql -uroot -pR00t_123 show engines;
|
8、起停测试
停止顺序:
SQL节点-->数据节点-->管理节点
启动顺序:
管理节点-->数据节点-->SQL节点
停止命令:
service mysqld stop(SQL节点)
ndb_mgm -e shutdown(管理节点)
启动命令:
ndb_mgmd --defaults-file=/mysql/my.cnf --config-file /mysql/config.ini --configdir=/mysql(管理节点)
ndbd --defaults-file=/mysql/my.cnf (所有数据节点)
service mysqld start(SQL节点)
9、创建NDB表测试
(1)创建InnoDB表
create database ndb_test; use ndb_test; CREATE TABLE `test1` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(10), PRIMARY KEY (`id`) ) ENGINE=InnoDB; |
发现InnoDB表是被建在SQL节点上的

(2)创建ndb表
CREATE TABLE `test2` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(10) , PRIMARY KEY (`id`) ) ENGINE=ndbcluster/ndb; |
(3)测试两种表的insert/select速度
DROP PROCEDURE IF EXISTS repeatCourse; DELIMITER $ CREATE PROCEDURE repeatCourse() BEGIN DECLARE i INT DEFAULT 1; WHILE i < 400000 DO insert into ndb_test.test2 values(null,i); SET i = i + 1; END WHILE; END $ DELIMITER ; CALL repeatCourse();
似乎是ndb表的速度更快 |
边栏推荐
- Bidding announcement: Taizhou Unicom Oracle all in one machine and database maintenance service project in 2022
- HMS Core音频编辑服务3D音频技术,助力打造沉浸式听觉盛宴
- CMakeLists 基础
- TCP Socket与TCP 连接
- Implementation of aut, a self-developed transport layer protocol for sound network -- dev for dev column
- STL教程7-set、pair对组和仿函数
- addmodule_allmerge_ams_im
- [activity registration] it's your turn to explore the yuan universe! I will be waiting for you in Shenzhen on July 2!
- POJ Project Summer
- 荣盛生物冲刺科创板:拟募资12.5亿 年营收2.6亿
猜你喜欢

Headhunter 50, 000, I'll go to VC

Hologres shared cluster helps Taobao subscribe to the extreme refined operation

RT thread heap size setting

备战数学建模33-灰色预测模型2

Installing jupyter notebook under Anaconda

深度学习——(2)几种常见的损失函数
![Halcon knowledge: regional topics [07]](/img/18/680997127047fb24b0ee4f19d8f2c5.png)
Halcon knowledge: regional topics [07]
![[Verilog quick start of Niuke online question series] ~ bit splitting and operation](/img/17/4b8f5607c4cba1596435233a6cf30a.png)
[Verilog quick start of Niuke online question series] ~ bit splitting and operation

Etcd tutorial - Chapter 9 etcd implementation of distributed locks

7 月 2 日邀你来TD Hero 线上发布会
随机推荐
2022蓝桥杯国赛B组-2022-(01背包求方案数)
牛客网:最小花费爬楼梯
Raft介绍
[demo] write file circularly
Mathematical modeling for war preparation 35 time series prediction model
Observation cloud reached in-depth cooperation with tdengine to optimize enterprise cloud experience
Jspreadsheet/ce JExcel: more data fields than the given fields (columns) will lead to blank columns. Solution
2020蓝桥杯国赛B组-搬砖-(贪心排序+01背包)
数据库系统概论习题册
In order to make remote work unaffected, I wrote an internal chat room | community essay
Lambda表达式_Stream流_File类
Multi terminal collaboration of Huawei accounts to create a better internet life
备战数学建模33-灰色预测模型2
聊聊遠程辦公那些事兒 | 社區征文
Lambda expression_ Stream stream_ File class
牛客网:有多少个不同的二叉搜索树
geo 读取单细胞csv表达矩阵 单细胞 改列名 seurat
Bidding announcement: Taizhou Unicom Oracle all in one machine and database maintenance service project in 2022
9: Chapter 3: e-commerce engineering analysis: 4: [general module]; (to be written...)
[wechat applet] basic use of common components (view/scroll-view/wiper, text/rich-text, button/image)





