MySQL Cluster部署文档

  1. 基本概念:
  2. NDB介绍

NDB” 是一种“内存中”的存储引擎,也是事务型存储引擎,具备ACID属性。

  1. 数据节点(Data Nodes)

用于存储集群的数据。实现底层数据存储的功能,保存Cluster 的数据。每一个NDB 节点保存完整数据的一部分(或者一份完整的数据,视节点数目和配置而定),在MySQL Cluster 里面叫做一个fragment。而每一个fragment,正常情况来讲都会在其他的主机上面有一份(或者多分)完全相同的镜像存在。这些都是通过配置来完成的,所以只要配置得当,MySQL Cluster 在存储层不会出现单点的问题。数据节点是用命令ndbd启动的。

  1. SQL节点(SQL Nodes)

向外提供一个标准的SQL语言编程接口。SQL节点负责向数据节点传送访问请求,具体集群过程以及数据库底层均对外透明。

SQL节点提供用户SQL指令请求,解析、连接管理,query优化和响、cache管理等、数据merge、sort,裁剪等功能,当SQL节点启动时,将向管理节点同步架构信息,用以数据查询路由。SQL节点作为查询入口,需要消耗大量cpu及内存资源,可使用分布式管理节点,并在SQL节点外封装一层请求分发及HA控制机制可解决单点及性能问题,其提供了线性扩展功能。SQL节点是使用命令mysqld -ndbcluster启动的,或将ndbcluster添加到“my.cnf”后使用“mysqld”启动。

  1. 管理节点(NDB Management Server)

负责整个Cluster 集群中各个节点的管理工作,包括集群的配置,启动关闭各节点,以及实施数据的备份恢复等。管理节点会获取整个Cluster 环境中各节点的状态和错误信息,并且将各Cluster 集群中各个节点的信息反馈给整个集群中其他的所有节点。通常只需配置一个管理节点;然而为了排除单点故障需要,有可能的话,尽量增加管理节点的数量。MGM节点是用命令ndb_mgm启动的。

  1. 集群配置概述

环境:

操作系统:centos 6.5 x86_64

软件:mysql-cluster-gpl-7.1.34-linux-x86_64-glibc23.tar.gz 具体版本可以去官网下载

管理节点:ip:192.168.100.20

sql节点-数据节点:ip:192.168.100.20

sql节点-数据节点:ip:192.168.100.30

安装mysql cluster和mysql基本一样只是配置文件和启动方式有所改变,所以基础还是mysql安装:

  1. Mysql安装
  2. 新建mysql用户

useradd -s /sbin/nologin  -M mysql

  1. 创建mysql数据目录

[[email protected] mysql]# mkdir -p /data/data

[[email protected] mysql]# chown -R mysql:mysql /data/mysql

  1. 初始化mysql

[[email protected] mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/msyql  #user指定mysql用户  datadir 数据存放目录

  1. 拷贝启动配置文件和启动脚本

cp support-files/my-small.cnf /etc/my.cnf

cp support-files/mysql.server /etc/init.d/mysqld

  1. 管理节点安装配置
  2. 解压并复制

cp -r mysql-cluster-gpl-7.1.34-linux-x86_64-glibc23 /usr/local/mysql-cluster

chown -R mysql:mysql mysql-cluster/

  1. 拷贝配置文件

cd mysql-cluster/support-files/

cp ndb-config-2-node.ini /etc/ndb-config.ini

配置文件内容:

[ndbd default]   #为所有的节点指定默认配置

NoOfReplicas= 1    #定义在Cluster环境中复制份数

MaxNoOfConcurrentOperations= 10000

DataMemory= 80M    #分配的数据内存大小,根据本机服务器内存适量来分配,实际运用中需要分配很大

IndexMemory= 24M  #设定用于存放索引(非主键)数据的内存段大小

TimeBetweenWatchDogCheck= 30000

DataDir= /usr/local/mysql-cluster/cluster-data  ##用于存放集群日志信息

MaxNoOfOrderedIndexes= 512

[ndb_mgmd default]    #管理节点的共用配置项:

DataDir= /usr/local/mysql-cluster/cluster-logs

[ndb_mgmd]

Id=1

HostName= 192.168.100.20

[ndbd]    #指定数据节点的配置,每个数据节点对应一个ndbd配置

Id= 2

HostName= 192.168.100.20    #管理服务器ip

datadir = /data/test

[ndbd]

Id= 3

HostName= 192.168.100.30

datadir = /data/test

[mysqld]     #指定SQL节点的配置,每个SQL节点对应一个配mysqld置

Id= 4

HostName= 192.168.100.20

[mysqld]

Id= 5

HostName= 192.168.100.30

[mysqld]

[mysqld]

[mysqld]

注:配置文件最好保留几个空的sql节点([mysqld])

  1. 启动管理服务

进入bin目录下

/usr/local/mysql-cluster/bin/ndb_mgmd --initial -f /etc/ndb-config.ini

注:管理节点实际只需要一个配置文件和bin目录下的ndb_mgmd、ndb_mgm等文件,其他并不需要

  1. 查看启动端口

[[email protected] bin]# netstat -taunlp |grep mgm

tcp        0      0 0.0.0.0:1186                0.0.0.0:*                   LISTEN      51274/./ndb_mgmd

tcp        0      0 127.0.0.1:38052             127.0.0.1:1186              ESTABLISHED 51274/./ndb_mgmd

tcp        0      0 127.0.0.1:1186              127.0.0.1:38052             ESTABLISHED 51274/./ndb_mgmd

  1. 数据节点和sql节点

数据节点安装

此处就和mysql安装一样,只是配置文件/etc/my.cnf要修改。而且只需要安装一个mysql即可,就可以完成数据节点的安装和sql节点的安装,只是启动方式不一样。

  1. 解压并复制

[[email protected] src]# cp -r mysql-cluster-gpl-7.1.34-linux-x86_64-glibc23 /usr/local/mysql-data

[[email protected] data]# mkdir test

[[email protected] data]# chown -R mysql.mysql test

  1. 初始化数据库

[[email protected] mysql-data]# ./scripts/mysql_install_db --user=mysql --datadir=/data/test

  1. 修改ndbd配置文件/etc/my.cnf

注:此配置文件也是sql节点配置文件

[mysqld]

ndbcluster

ndb-connectstring=192.168.100.20

[mysql_cluster]

ndb-connectstring=192.168.100.20

  1. 启动数据节点数据库ndbd服务

[[email protected] mysql-data]# /usr/local/mysql-data/bin/ndbd --initial

首次启动要使用--initial

[[email protected] mysql-data]# ./bin/ndbd --initial

2016-01-02 00:11:26 [ndbd] INFO     -- Angel connected to ‘192.168.100.20:1186‘

2016-01-02 00:11:26 [ndbd] INFO     -- Angel allocated nodeid: 2

  1. 启动sql节点

[[email protected] mysql-cluster]# /usr/local/mysql-data/bin/mysqld_safe --user=mysql &

或service mysqld start

注:从启动方式可以看出作为sql节点启动时就是一般的mysql服务,可以有启动脚本加入开机启动

对于管理节点、数据节点启动命令可以写入/etc/rc.d/rc.local中随系统启动

  1. 查看集群状态

[[email protected] local]# /usr/local/mysql-cluster/bin/ndb_mgm -e show

Connected to Management Server at: 192.168.100.20:1186

Cluster Configuration

---------------------

[ndbd(NDB)]     2 node(s)

id=2    @192.168.100.20  (mysql-5.1.73 ndb-7.1.34, Nodegroup: 0, *)

id=3    @192.168.100.30  (mysql-5.1.73 ndb-7.1.34, Nodegroup: 1)

[ndb_mgmd(MGM)] 1 node(s)

id=1    @192.168.100.20  (mysql-5.1.73 ndb-7.1.34)

[mysqld(API)]   5 node(s)

id=4    @192.168.100.20  (mysql-5.1.73 ndb-7.1.34)

id=5    @192.168.100.30  (mysql-5.1.73 ndb-7.1.34)

id=6 (not connected, accepting connect from any host)

id=7 (not connected, accepting connect from any host)

id=8 (not connected, accepting connect from any host)

  1. 查看集群内存使用情况:

ndb_mgm> all report memoryusage;

Node 2: Data usage is 0%(5 32K pages of total 2560)

Node 2: Index usage is 0%(8 8K pages of total 3104)

Node 3: Data usage is 0%(5 32K pages of total 2560)

Node 3: Index usage is 0%(8 8K pages of total 3104)

  1. 测试

# /usr/local/mysql-data/bin/mysql -uroot -p

mysql> show databases;

在一台上创建,另外台查看

或:

[[email protected] local]# ls /data/test/dbo/

db.opt

建立集群数据

mysql> create table t1(id 1);

mysql> show tables;

+---------------+

| Tables_in_dbo |

+---------------+

| t1            |

+---------------+

1 row in set (0.00 sec)

如果默认不指定引擎为ndbcluster则存储在本机

mysql> create table t2(id int ,name varchar(20)) engine ndbcluster;

Query OK, 0 rows affected (1.23 sec)

[[email protected] mysql-cluster]# ls /data/test/dbo/

db.opt  t1.frm  t1.MYD  t1.MYI  t2.frm  t2.ndb

[[email protected] mysql-cluster]# ls /data/test/dbo/

db.opt  t2.frm  t2.ndb

  1. 集群管理
  2. 各节点启动关闭
  3. 启动管理节点

/usr/local/mysql-cluster/bin/ndb_mgmd --initial -f /etc/ndb-config.ini

  1. 启动数据节点

[[email protected] mysql-data]# /usr/local/mysql-data/bin/ndbd --initial

首次启动要使用--initial

[[email protected] mysql-data]# ./bin/ndbd --initial

2016-01-02 00:11:26 [ndbd] INFO     -- Angel connected to ‘192.168.100.20:1186‘

2016-01-02 00:11:26 [ndbd] INFO     -- Angel allocated nodeid: 2

  1. 启动sql节点

[[email protected] mysql-cluster]# /usr/local/mysql-data/bin/mysqld_safe --user=mysql &

或service mysqld start

  1. 节点状态检查

[[email protected] local]# /usr/local/mysql-cluster/bin/ndb_mgm -e show

  1. 节点关闭

执行管理节点客户端ngb_mgm工具

ngb_mgm>shutdown

  1. 基本维护

ngb_mgm>show 查看集群状态

help 查看命令帮助

help start

关闭集群顺序:SQL节点->数据节点->管理节点 或者使用# ./ndb_mgm -e shutdown命令关闭集群

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

时间: 2024-08-30 00:51:22

MySQL Cluster部署文档的相关文章

Amoeba实现Mysql读写分离部署文档

以下所有理解纯属个人理解,如若有误欢迎指出,不胜感激--o(∩_∩)o 两台服务器配置MYSQL主从复制实现数据高可用,这时读与写操作都有由master服务器来完成的,而从服务器只是复制了mster服务器的数据,这时可以利用一台服务器配置Amoeba实现mysql读写分离, master负责写,slave负责读取,当然 也可以有多个salve-- 从而减轻master服务器的压力,实现负载分摊: 拓扑图: Mysql主从复制原理: 两台mysql服务器一个作为master一个为slave:mas

loganalyzer部署文档-(第一部分)

loganalyzer部署文档 环境准备: 简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取,所以LogAnalyzer不需要改变现有的记录架构.基于当前的日志数据,它可以处理syslog日志消息,Windows事件日志记录,支持故障排除,使用户能够快速查找日志数据中看出问题的解决方案. LogAnalyzer 获取客户端日志会有两种保存模式,一种是

Wcp知识管理系统部署文档

Wcp知识管理系统部署文档 环境 CentOS-6.5-x86_64-bin-DVD1.iso jdk-7u79-linux-x64.tar.gz apache-tomcat-7.0.72.tar.gz MySQL-5.6.33-1.el6.x86_64.rpm-bundle.tar WCP知识管理系统v3.2.0(免费版.开源) http://www.wcpdoc.com/webdoc/view/Pub8a2831b350e6b01f0150e6c1ad5a009f.html 下载地址:百度云

ElasticSearch部署文档(Ubuntu 14.04)

ElasticSearch部署文档(Ubuntu 14.04) 参考链接 https://www.elastic.co/guide/en/elasticsearch/guide/current/heap-sizing.html https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html#setup-configuration https://www.elastic.co/guid

zabbix监控安装部署文档

Zabbix监控部署文档 创建时间:2017.02.19          文档目的 安装部署Zabbix服务器和Zabbix客户端,监控客户端服务器的硬件状态 基础知识 zabbix(音同 zbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题. zabbix由2部分构成,zabbix server与可选组件zabbix agent. z

loganalyzer部署文档

loganalyzer部署文档   目录 一.         环境准备:... 3 二.         简介... 3 三.         系统环境... 3 四.         安装并设置LAMP环境... 3 4.1 安装LAMP环境... 3 4.2 启动服务并加入开机启动... 3 4.3 设置MySQL root 密码... 3 4.4 测试php运行环境... 3 五.         检查并安装服务器端软件... 4 5.1 检查是否安装了rsyslog软件... 4 5.

Redis集群部署文档(Ubuntu15.10系统)

Redis集群部署文档(Ubuntu15.10系统)(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下)127.0.0.1:7000127.0.0.1:7001127.0.0.1:7002127.0.0.1:7003127.0.0.1:7004127.0.0.1:7005 1:下载redis.官网下载3.0.0版本,之前2.几的版本不支持集群模式下载地址:http://download.redis

线上测试高可用集群部署文档【我的技术我做主】

线上测试高可用集群部署文档 目录: 目录:1 项目需求:2 实现方式:2 拓扑图:3 系统及软件版本:3 安装步骤:4 IP分配:4 LVS和keepalived的安装和配置:4 LVS主配置:4 LVS2备 配置:7 web服务器配置9 Mysql-MHA高可用:13 Mysql主配置:13 manager管理端操作:15 VIP切换:16 测试:26 下面是centos5.6的系统环境,如果是centos6版本,只需改动少许地方即可,步骤一致 . ---- by 金戈铁马行飞燕 项目需求:

redis多机集群部署文档

redis多机集群部署文档(centos6.2) (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) 10.168.32.116:6379 10.168.32.117:6379 10.168.32.118:6379 10.168.32.119:6379 10.168.32.120:6379 10.168.32.121:6379 在安装集群之前,需要在服务器上安装ruby环境, yum insta