MySQL Cluster部署文档
2016-09-18 10:43
429 查看
基本概念:
NDB介绍
NDB” 是一种“内存中”的存储引擎,也是事务型存储引擎,具备ACID属性。数据节点(Data Nodes)
用于存储集群的数据。实现底层数据存储的功能,保存Cluster 的数据。每一个NDB 节点保存完整数据的一部分(或者一份完整的数据,视节点数目和配置而定),在MySQL Cluster 里面叫做一个fragment。而每一个fragment,正常情况来讲都会在其他的主机上面有一份(或者多分)完全相同的镜像存在。这些都是通过配置来完成的,所以只要配置得当,MySQL Cluster 在存储层不会出现单点的问题。数据节点是用命令ndbd启动的。SQL节点(SQL Nodes)
向外提供一个标准的SQL语言编程接口。SQL节点负责向数据节点传送访问请求,具体集群过程以及数据库底层均对外透明。SQL节点提供用户SQL指令请求,解析、连接管理,query优化和响、cache管理等、数据merge、sort,裁剪等功能,当SQL节点启动时,将向管理节点同步架构信息,用以数据查询路由。SQL节点作为查询入口,需要消耗大量cpu及内存资源,可使用分布式管理节点,并在SQL节点外封装一层请求分发及HA控制机制可解决单点及性能问题,其提供了线性扩展功能。SQL节点是使用命令mysqld -ndbcluster启动的,或将ndbcluster添加到“my.cnf”后使用“mysqld”启动。管理节点(NDB Management Server)
负责整个Cluster 集群中各个节点的管理工作,包括集群的配置,启动关闭各节点,以及实施数据的备份恢复等。管理节点会获取整个Cluster 环境中各节点的状态和错误信息,并且将各Cluster 集群中各个节点的信息反馈给整个集群中其他的所有节点。通常只需配置一个管理节点;然而为了排除单点故障需要,有可能的话,尽量增加管理节点的数量。MGM节点是用命令ndb_mgm启动的。 集群配置概述
环境:操作系统:centos 6.5 x86_64软件:mysql-cluster-gpl-7.1.34-linux-x86_64-glibc23.tar.gz 具体版本可以去官网下载管理节点:ip:192.168.100.20sql节点-数据节点:ip:192.168.100.20sql节点-数据节点:ip:192.168.100.30 安装mysql cluster和mysql基本一样只是配置文件和启动方式有所改变,所以基础还是mysql安装:Mysql安装
新建mysql用户
useradd -s /sbin/nologin -M mysql创建mysql数据目录
[root@rs2 mysql]# mkdir -p /data/data[root@rs2 mysql]# chown -R mysql:mysql /data/mysql初始化mysql
[root@rs2 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/msyql #user指定mysql用户 datadir 数据存放目录拷贝启动配置文件和启动脚本
cp support-files/my-small.cnf /etc/my.cnfcp support-files/mysql.server /etc/init.d/mysqld 管理节点安装配置
解压并复制
cp -r mysql-cluster-gpl-7.1.34-linux-x86_64-glibc23 /usr/local/mysql-clusterchown -R mysql:mysql mysql-cluster/拷贝配置文件
cd mysql-cluster/support-files/cp ndb-config-2-node.ini /etc/ndb-config.ini 配置文件内容:[ndbd default] #为所有的节点指定默认配置NoOfReplicas= 1 #定义在Cluster环境中复制份数MaxNoOfConcurrentOperations= 10000DataMemory= 80M #分配的数据内存大小,根据本机服务器内存适量来分配,实际运用中需要分配很大IndexMemory= 24M #设定用于存放索引(非主键)数据的内存段大小TimeBetweenWatchDogCheck= 30000DataDir= /usr/local/mysql-cluster/cluster-data ##用于存放集群日志信息MaxNoOfOrderedIndexes= 512 [ndb_mgmd default] #管理节点的共用配置项:DataDir= /usr/local/mysql-cluster/cluster-logs [ndb_mgmd]Id=1HostName= 192.168.100.20 [ndbd] #指定数据节点的配置,每个数据节点对应一个ndbd配置Id= 2HostName= 192.168.100.20 #管理服务器ipdatadir = /data/test[ndbd]Id= 3HostName= 192.168.100.30datadir = /data/test[mysqld] #指定SQL节点的配置,每个SQL节点对应一个配mysqld置Id= 4HostName= 192.168.100.20 [mysqld]Id= 5HostName= 192.168.100.30 [mysqld] [mysqld] [mysqld]注:配置文件最好保留几个空的sql节点([mysqld])启动管理服务
进入bin目录下/usr/local/mysql-cluster/bin/ndb_mgmd --initial -f /etc/ndb-config.ini 注:管理节点实际只需要一个配置文件和bin目录下的ndb_mgmd、ndb_mgm等文件,其他并不需要查看启动端口
[root@master bin]# netstat -taunlp |grep mgmtcp 0 0 0.0.0.0:1186 0.0.0.0:* LISTEN 51274/./ndb_mgmdtcp 0 0 127.0.0.1:38052 127.0.0.1:1186 ESTABLISHED 51274/./ndb_mgmdtcp 0 0 127.0.0.1:1186 127.0.0.1:38052 ESTABLISHED 51274/./ndb_mgmd 数据节点和sql节点
数据节点安装此处就和mysql安装一样,只是配置文件/etc/my.cnf要修改。而且只需要安装一个mysql即可,就可以完成数据节点的安装和sql节点的安装,只是启动方式不一样。解压并复制
[root@master src]# cp -r mysql-cluster-gpl-7.1.34-linux-x86_64-glibc23 /usr/local/mysql-data[root@master data]# mkdir test[root@master data]# chown -R mysql.mysql test初始化数据库
[root@master mysql-data]# ./scripts/mysql_install_db --user=mysql --datadir=/data/test 修改ndbd配置文件/etc/my.cnf
注:此配置文件也是sql节点配置文件[mysqld]ndbclusterndb-connectstring=192.168.100.20[mysql_cluster]ndb-connectstring=192.168.100.20启动数据节点数据库ndbd服务
[root@master mysql-data]# /usr/local/mysql-data/bin/ndbd --initial首次启动要使用--initial[root@master mysql-data]# ./bin/ndbd --initial2016-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 启动sql节点
[root@master mysql-cluster]# /usr/local/mysql-data/bin/mysqld_safe --user=mysql &或service mysqld start 注:从启动方式可以看出作为sql节点启动时就是一般的mysql服务,可以有启动脚本加入开机启动对于管理节点、数据节点启动命令可以写入/etc/rc.d/rc.local中随系统启动查看集群状态
[root@master local]# /usr/local/mysql-cluster/bin/ndb_mgm -e showConnected to Management Server at: 192.168.100.20:1186Cluster 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) 查看集群内存使用情况:
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) 测试
# /usr/local/mysql-data/bin/mysql -uroot -pmysql> show databases;在一台上创建,另外台查看或:[root@master 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)[root@master mysql-cluster]# ls /data/test/dbo/db.opt t1.frm t1.MYD t1.MYI t2.frm t2.ndb [root@slave mysql-cluster]# ls /data/test/dbo/db.opt t2.frm t2.ndb 集群管理
各节点启动关闭
启动管理节点
/usr/local/mysql-cluster/bin/ndb_mgmd --initial -f /etc/ndb-config.ini启动数据节点
[root@master mysql-data]# /usr/local/mysql-data/bin/ndbd --initial首次启动要使用--initial[root@master mysql-data]# ./bin/ndbd --initial2016-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 启动sql节点
[root@master mysql-cluster]# /usr/local/mysql-data/bin/mysqld_safe --user=mysql &或service mysqld start节点状态检查
[root@master local]# /usr/local/mysql-cluster/bin/ndb_mgm -e show节点关闭
执行管理节点客户端ngb_mgm工具ngb_mgm>shutdown基本维护
ngb_mgm>show 查看集群状态help 查看命令帮助help start关闭集群顺序:SQL节点->数据节点->管理节点 或者使用# ./ndb_mgm -e shutdown命令关闭集群启动集群顺序: 管理节点->数据节点->SQL节点
NDB介绍
NDB” 是一种“内存中”的存储引擎,也是事务型存储引擎,具备ACID属性。数据节点(Data Nodes)
用于存储集群的数据。实现底层数据存储的功能,保存Cluster 的数据。每一个NDB 节点保存完整数据的一部分(或者一份完整的数据,视节点数目和配置而定),在MySQL Cluster 里面叫做一个fragment。而每一个fragment,正常情况来讲都会在其他的主机上面有一份(或者多分)完全相同的镜像存在。这些都是通过配置来完成的,所以只要配置得当,MySQL Cluster 在存储层不会出现单点的问题。数据节点是用命令ndbd启动的。SQL节点(SQL Nodes)
向外提供一个标准的SQL语言编程接口。SQL节点负责向数据节点传送访问请求,具体集群过程以及数据库底层均对外透明。SQL节点提供用户SQL指令请求,解析、连接管理,query优化和响、cache管理等、数据merge、sort,裁剪等功能,当SQL节点启动时,将向管理节点同步架构信息,用以数据查询路由。SQL节点作为查询入口,需要消耗大量cpu及内存资源,可使用分布式管理节点,并在SQL节点外封装一层请求分发及HA控制机制可解决单点及性能问题,其提供了线性扩展功能。SQL节点是使用命令mysqld -ndbcluster启动的,或将ndbcluster添加到“my.cnf”后使用“mysqld”启动。管理节点(NDB Management Server)
负责整个Cluster 集群中各个节点的管理工作,包括集群的配置,启动关闭各节点,以及实施数据的备份恢复等。管理节点会获取整个Cluster 环境中各节点的状态和错误信息,并且将各Cluster 集群中各个节点的信息反馈给整个集群中其他的所有节点。通常只需配置一个管理节点;然而为了排除单点故障需要,有可能的话,尽量增加管理节点的数量。MGM节点是用命令ndb_mgm启动的。 集群配置概述
环境:操作系统:centos 6.5 x86_64软件:mysql-cluster-gpl-7.1.34-linux-x86_64-glibc23.tar.gz 具体版本可以去官网下载管理节点:ip:192.168.100.20sql节点-数据节点:ip:192.168.100.20sql节点-数据节点:ip:192.168.100.30 安装mysql cluster和mysql基本一样只是配置文件和启动方式有所改变,所以基础还是mysql安装:Mysql安装
新建mysql用户
useradd -s /sbin/nologin -M mysql创建mysql数据目录
[root@rs2 mysql]# mkdir -p /data/data[root@rs2 mysql]# chown -R mysql:mysql /data/mysql初始化mysql
[root@rs2 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/msyql #user指定mysql用户 datadir 数据存放目录拷贝启动配置文件和启动脚本
cp support-files/my-small.cnf /etc/my.cnfcp support-files/mysql.server /etc/init.d/mysqld 管理节点安装配置
解压并复制
cp -r mysql-cluster-gpl-7.1.34-linux-x86_64-glibc23 /usr/local/mysql-clusterchown -R mysql:mysql mysql-cluster/拷贝配置文件
cd mysql-cluster/support-files/cp ndb-config-2-node.ini /etc/ndb-config.ini 配置文件内容:[ndbd default] #为所有的节点指定默认配置NoOfReplicas= 1 #定义在Cluster环境中复制份数MaxNoOfConcurrentOperations= 10000DataMemory= 80M #分配的数据内存大小,根据本机服务器内存适量来分配,实际运用中需要分配很大IndexMemory= 24M #设定用于存放索引(非主键)数据的内存段大小TimeBetweenWatchDogCheck= 30000DataDir= /usr/local/mysql-cluster/cluster-data ##用于存放集群日志信息MaxNoOfOrderedIndexes= 512 [ndb_mgmd default] #管理节点的共用配置项:DataDir= /usr/local/mysql-cluster/cluster-logs [ndb_mgmd]Id=1HostName= 192.168.100.20 [ndbd] #指定数据节点的配置,每个数据节点对应一个ndbd配置Id= 2HostName= 192.168.100.20 #管理服务器ipdatadir = /data/test[ndbd]Id= 3HostName= 192.168.100.30datadir = /data/test[mysqld] #指定SQL节点的配置,每个SQL节点对应一个配mysqld置Id= 4HostName= 192.168.100.20 [mysqld]Id= 5HostName= 192.168.100.30 [mysqld] [mysqld] [mysqld]注:配置文件最好保留几个空的sql节点([mysqld])启动管理服务
进入bin目录下/usr/local/mysql-cluster/bin/ndb_mgmd --initial -f /etc/ndb-config.ini 注:管理节点实际只需要一个配置文件和bin目录下的ndb_mgmd、ndb_mgm等文件,其他并不需要查看启动端口
[root@master bin]# netstat -taunlp |grep mgmtcp 0 0 0.0.0.0:1186 0.0.0.0:* LISTEN 51274/./ndb_mgmdtcp 0 0 127.0.0.1:38052 127.0.0.1:1186 ESTABLISHED 51274/./ndb_mgmdtcp 0 0 127.0.0.1:1186 127.0.0.1:38052 ESTABLISHED 51274/./ndb_mgmd 数据节点和sql节点
数据节点安装此处就和mysql安装一样,只是配置文件/etc/my.cnf要修改。而且只需要安装一个mysql即可,就可以完成数据节点的安装和sql节点的安装,只是启动方式不一样。解压并复制
[root@master src]# cp -r mysql-cluster-gpl-7.1.34-linux-x86_64-glibc23 /usr/local/mysql-data[root@master data]# mkdir test[root@master data]# chown -R mysql.mysql test初始化数据库
[root@master mysql-data]# ./scripts/mysql_install_db --user=mysql --datadir=/data/test 修改ndbd配置文件/etc/my.cnf
注:此配置文件也是sql节点配置文件[mysqld]ndbclusterndb-connectstring=192.168.100.20[mysql_cluster]ndb-connectstring=192.168.100.20启动数据节点数据库ndbd服务
[root@master mysql-data]# /usr/local/mysql-data/bin/ndbd --initial首次启动要使用--initial[root@master mysql-data]# ./bin/ndbd --initial2016-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 启动sql节点
[root@master mysql-cluster]# /usr/local/mysql-data/bin/mysqld_safe --user=mysql &或service mysqld start 注:从启动方式可以看出作为sql节点启动时就是一般的mysql服务,可以有启动脚本加入开机启动对于管理节点、数据节点启动命令可以写入/etc/rc.d/rc.local中随系统启动查看集群状态
[root@master local]# /usr/local/mysql-cluster/bin/ndb_mgm -e showConnected to Management Server at: 192.168.100.20:1186Cluster 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) 查看集群内存使用情况:
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) 测试
# /usr/local/mysql-data/bin/mysql -uroot -pmysql> show databases;在一台上创建,另外台查看或:[root@master 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)[root@master mysql-cluster]# ls /data/test/dbo/db.opt t1.frm t1.MYD t1.MYI t2.frm t2.ndb [root@slave mysql-cluster]# ls /data/test/dbo/db.opt t2.frm t2.ndb 集群管理
各节点启动关闭
启动管理节点
/usr/local/mysql-cluster/bin/ndb_mgmd --initial -f /etc/ndb-config.ini启动数据节点
[root@master mysql-data]# /usr/local/mysql-data/bin/ndbd --initial首次启动要使用--initial[root@master mysql-data]# ./bin/ndbd --initial2016-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 启动sql节点
[root@master mysql-cluster]# /usr/local/mysql-data/bin/mysqld_safe --user=mysql &或service mysqld start节点状态检查
[root@master local]# /usr/local/mysql-cluster/bin/ndb_mgm -e show节点关闭
执行管理节点客户端ngb_mgm工具ngb_mgm>shutdown基本维护
ngb_mgm>show 查看集群状态help 查看命令帮助help start关闭集群顺序:SQL节点->数据节点->管理节点 或者使用# ./ndb_mgm -e shutdown命令关闭集群启动集群顺序: 管理节点->数据节点->SQL节点
相关文章推荐
- MySQL Cluster的简易部署文档
- Redis集群部署文档(centos6系统)
- dojo文档工具rstwiki windows环境部署及使用
- Redis集群部署文档(centos6系统)
- CDH4.1(hadoop-2.0.0-cdh4.1.2)安装部署文档
- Maven使用site-deploy(site:deploy)部署通过site生成的文档(Tomcat-WebDAV)
- mysql cluster 部署实战
- 延云YDB&&YA100安装部署文档
- RHCS之高可用性集群(MYSQL)部署文档
- dns-dlz 部署文档
- iSCSI服务部署文档
- Node.JS安装部署文档
- solr文档部署参考网址记录
- 一步一步跟着官方文档安装部署Openstack(icehouse)三
- loganalyzer部署文档(第二部分)
- CentOS中mysql cluster安装部署教程
- CentOS中mysql cluster安装部署教程
- Onlyoffice部署文档
- cockroach官方文档翻译---3.1 部署一个测试集群
- 使用Ant在Weblogic部署的官方文档