码迷,mamicode.com
首页 > 数据库 > 详细

Mysql Cluster

时间:2016-07-06 18:28:47      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:配置文件   服务器   service   操作系统   start   

十、Mysql集群

1.基本概念:

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

a.管理(MGM)节点:负责管理MySQL Cluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。MGM节点是用命令“ndb_mgmd”启动的。

b.数据节点:用于保存 Cluster的数据。数据节点的数目与副本的数目相关,是片段的倍数。数据节点是用命令“ndbd”启动的。

c.SQL节点:用来访问 Cluster数据的节点。也就是Mysql服务,可以使用service mysqld start启动。

管理服务器(MGM节点)负责管理 Cluster配置文件和 Cluster日志。 Cluster中的每个节点从管理服务器检索配置数据,并请求确定管理服务器所在位置的方式。当数据节点内出现新的事件时,节点将关于这类事件的信息传输到管理服务器,然后,将这类信息写入 Cluster日志。

技术分享技术分享

■2.集群配置概述

环境:
操作系统:centos 6.5 x86_64
软件:mysql-cluster-gpl-7.3.12-linux-glibc2.5-x86_64.tar.gz 具体版本可以去官网下载
管理节点:ip:192.168.1.201
sql节点-数据节点:ip:192.168.1.202
sql节点-数据节点:ip:192.168.1.203

安装依赖包:yum install  libaio-devel  glibc perl  –y

x32位系统要安装兼容库组:yum groupinstall “Compatibility libraries”

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

关闭SElinux及IPtables:

/etc/init.d/iptables stop  && setenforce 0 && sed –I ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config


■3.管理节点安装

groupadd mysql
useradd -g mysql -s /sbin/nologin  -M mysql
tar xf mysql-cluster-gpl-7.3.12-linux-glibc2.5-x86_64.tar.gz
cp -r mysql-cluster-gpl-7.3.12-linux-glibc2.5-x86_64 /usr/local/mysql
chown -R root:mysql /usr/local/mysql/
chown -R  mysql:mysql /usr/local/mysql/data/
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
cp -rf /usr/local/mysql/bin/ndb_mgm* /usr/local/bin/

■4.修改mysql主配置文件

vim /etc/my.cnf 
[MYSQLD]
 user = mysql
 socket = /tmp/mysql.sock
 basedir = /usr/local/mysql #安装目录
 datadir = /usr/local/mysql/data #数据库存放目录
 character-set-server=UTF8
 ndbcluster #运行NDB存储引擎
 lower_case_table_names=1 #表名是否区分大小写1为不区分,不然linux下表名是区分大小写的
[mysqld_safe] 
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid 
[MYSQL_CLUSTER]
ndb-connectstring=192.168.0.202 #Mysql Cluster管理节点IP

■5.创建mysql集群配置文件

mkdir /var/lib/mysql-cluster
vi /var/lib/mysql-cluster/config.ini
[ndbd default]
NoOfReplicas=2 #定义在Cluster环境中相同数据的份数,最大为4
DataMemory=80M #分配的数据内存大小,根据本机服务器内存适量来分配
IndexMemory=18M #设定用于存放索引(非主键)数据的内存段大小
#一个NDB节点能存放的数据量是会受到DataMemory和IndexMemory两个参数设置的约束,两者任何一个达到限制数量后,都无法再增加能存储的数据量。如果继续存入数据系统会报错“table is full”。
[ndb_mgmd]
nodeid=1
hostname=192.168.1.201
datadir=/var/lib/mysql-cluster/
[ndbd]
nodeid=2
hostname=192.168.1.202
datadir=/usr/local/mysql/data
[ndbd]
nodeid=3
hostname=192.168.0.203
datadir=/usr/local/mysql/data
[mysqld]
nodeid=4
hostname=192.168.0.202
[mysqld]
nodeid=5
hostname=192.168.0.203
[mysqld]
[mysqld]

#一定要留一个空的,以备扩展使用,否则会出现Failed to allocate nodeid No free node id found for ndbd(NDB)错误

#配置时, []右边的注释不要加上,否则系统不认

chown mysql.mysql /var/lib/mysql-cluster/config.ini



■6.两台数据节点和sql节点配置

tar xf mysql-cluster-gpl-7.3.12-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.3.12-linux-glibc2.5-x86_64 /usr/local/mysql
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
chown -R root.mysql /usr/local/mysql
chown -R mysql.mysql /usr/local/mysql/data
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql & #初始化数据库
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
cp /usr/local/mysql/support-files/medium.cnf /etc/my.cnf
chmod +x /etc/init.d/mysqld


■7.修改其mysql配置文件

vi /etc/my.cnf
[MYSQLD]
user=mysql
character_set_server=utf8
port=3306
default-storage-engine=ndbcluster #设置默认是NDB存储引擎
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
[MYSQL_CLUSTER]
ndb-connectstring=192.168.1.201 #mysql cluster 管理节点IP

■8.测试

a.启动管理节点

ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial    #启动管理节点
netstat -tulnp | grep 1186    #查看启动端口
tcp        0      0 0.0.0.0:1186                0.0.0.0:*                   LISTEN      1451/ndb_mgmd

#--initial:第一次启动时加上,其它时候不要加,不然会数据清空,除非是在备份、恢复或配置变化后重启时。

如果启动出现报错:把config.ini里设置的nodeid都给删除即可!

b.查看集群状态
 /usr/local/mysql-cluster/bin/ndb_mgm -e show

c.查看集群内存使用情况

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)



d.测试数据库是否同步

# /usr/local/mysql-data/bin/mysql -uroot -p
mysql> show databases;
在一台上创建,另外台查看
或:
 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)
 ls /data/test/dbo/
db.opt  t1.frm  t1.MYD  t1.MYI  t2.frm  t2.ndb
 ls /data/test/dbo/
db.opt  t2.frm  t2.ndb

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


本文出自 “抚琴煮酒” 博客,请务必保留此出处http://szk5043.blog.51cto.com/8456440/1811597

Mysql Cluster

标签:配置文件   服务器   service   操作系统   start   

原文地址:http://szk5043.blog.51cto.com/8456440/1811597

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!