您的位置 首页 技术

MySQL – Cluster MySQL 集群

MySQL Cluster MySQL集群 基本概念: “NDB” 是一种“内存中”的存储引擎,它具有可用性高和数据一致性好的特点。 MySQL Cluster 能够使用多种故障切…

MySQL Cluster MySQL集群

基本概念:

“NDB” 是一种“内存中”的存储引擎,它具有可用性高和数据一致性好的特点。

MySQL Cluster 能够使用多种故障切换和负载平衡选项配置NDB存储引擎,但在 Cluster 级别上的存储引擎上做这个最简单。MySQL Cluster的NDB存储引擎包含完整的数据集,仅取决于 Cluster本身内的其他数据。

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

数据节点:这类节点用于保存 Cluster的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。不过没有必要设置多个副本。数据节点是用命令“ndbd”启动的。

SQL节点:这是用来访问 Cluster数据的节点。对于MySQL Cluster,客户端节点是使用NDB Cluster存储引擎的传统MySQL服务器。通常,SQL节点是使用命令“mysqld -ndbcluster”启动的,或将“ndbcluster”添加到“my.cnf”后使用“mysqld”启动。

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

集群配置概述:

安装版本:mysql cluster 7.3.2

操作系统 :centos6.3(X64)

软件名称 :mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64.tar.gz (通用版)

管理节点IP:192.168.0.202

数据节点-SQL节点IP:192.168.0.203

数据节点-SQL节点IP:192.168.0.204

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

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

一、管理节点安装配置

1、安装mysql-cluster

groupadd mysqluseradd  -g mysql -s  /sbin/nologin  mysqltar  -zxvf mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64. tar .gzmv  mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64  /usr/local/mysql-clusterchown  -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  -rf  /usr/local/mysql/bin/ndb_mgm *  /usr/local/bin/  #复制ndb节点管理命令到本地,方便使用

2、修改mysql主配置文件

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

3、创建mysql集群配置文件

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

保存退出!

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

二、两台数据节点和SQL节点配置相同

1、安装mysql-cluster

tar  -zxvf mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64. tar .gzmv  mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64  /usr/local/mysqlgroupadd mysqluseradd  -g mysql -s  /sbin/nologin  mysqlchown  -R root.mysql  /usr/local/mysqlchown  -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 /mysqldcp  /usr/local/mysql/support-files/medium .cnf  /etc/my .cnfchmod  +x /etc/init .d /mysqld

2、修改mysql配置文件

vi  /etc/my .cnf[MYSQLD]user=mysqlcharacter_set_server=utf8ndbclusterndb-connectstring=192.168.0.202default-storage-engine=ndbcluster  #设置默认是NDB存储引擎datadir= /usr/local/mysql/databasedir= /usr/local/mysql[MYSQL_CLUSTER]ndb-connectstring=192.168.0.202  #mysql cluster 管理节点IP

三、测试(先关闭三台服务器的防火墙(IPTABLES)与 Selinux)

1、启动管理节点

ndb_mgmd -f  /var/lib/mysql-cluster/config .ini --initialnetstat  -tuplna |  grep  1186  #默认连接端口1186,启动成功tcp 0 0 0.0.0.0:1186 0.0.0.0:* LISTEN 1369 /ndb_mgmd#--initial:第一次启动时加上,其它时候不要加,不然会数据清空,除非是在备份、恢复或配置变化后重启时。

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

2、启动两台数据节点和SQL节点

数据节点:/usr/local/mysql/bin/ndbd –initial

SQL节点:bin/mysqld_safe –user=mysql & 或 service mysqld start

3、查看集群状态

ndb_mgm -e show #显示管理节点和数据节点则配置成功

4、创建一个数据库验证是否同步

mysql -u root -p

Mysql>create database test ;

Mysql>use test ;

Mysql>create table abc ( id int) engine=ndbcluster; #指定数据库表的引擎为NDB,否则同步失败

Mysql>Insert into abc ()values (1);

Mysql> select * from abc;

#此时看两个数据是否数据一致,如果一致说明集群已经成功!

注意事项:

1.在建表的时候一定要用ENGINE=NDB或ENGINE=NDBCLUSTER指定使用NDB集群存储引擎,或用ALTER TABLE选项更改表的存储引擎。

2.NDB表必须有一个主键,因此创建表的时候必须定义主键,否则NDB存储引擎将自动生成隐含的主键。

3.Sql节点的用户权限表仍然采用MYISAM存储引擎保存的,所以在一个Sql节点创建的MySql用户只能访问这个节点,如果要用同样的用户访问别的Sql节点,需要在对应的Sql节点追加用户。

四、管理和维护命令

关闭mysql集群:ndb_mgm -e shutdown

重启mysql集群:ndb_mgmd -f /var/lib/mysql-cluster/config.ini

重启数据节点:/usr/local/mysql/bin/ndbd

启动SQL节点:/usr/local/mysql/bin/mysqld_safe –user=mysql & 或 service mysqld restart

查看mysql状态:ndb_mgm -e show

启动顺序:

管理节点 -> 数据节点 -> SQL节点

关闭顺序:

SQL节点 -> 数据节点 -> 管理节点

推荐教程:《MySQL教程》

以上就是MySQL – Cluster MySQL 集群的详细内容,更多请关注24课堂在线网其它相关文章!

本文来自网络,不代表24小时课堂在线立场,转载请注明出处:https://www.24ketang.cn/65479.html

为您推荐

返回顶部