windowsxp下的mysql集群技术
1、准备工作
a、系统环境为:Windows Xp系统
b、mysql版本为:MySQL Server 5.5
c、mysql cluster版本为:mysql-cluster-gpl-noinstall-7.1.10-win32.zip
d、计算机3台
Node
IP Address
Management (MGMD) node
192.168.18.8
MySQL server (SQL) node “A”
192.168.18.11
MySQL server (SQL) node “B”
192.168.18.17
Data (NDBD) node "A"
192.168.18.11
Data (NDBD) node "B"
192.168.18.17
(注)截至到2011年3月23日最新版本,官方网站有下载
下载地址:http://www.mysql.com/downloads/cluster/
2、安装软件
a、解压mysql-cluster-gpl-noinstall-7.1.10-win32.zip包
b、Management node的安装配置。
Management node一定要安装在C盘下,并且是以下的目录(这是在运行
此节点时报错,说找不到相对应的目录)。在IP为192.168.18.8的机子上
生成c:/mysql/bin、C:/mysql/mysql-cluster(第一次启动后在这个文件
夹会生成类似ndb_1_config.bin.1的文件,好像是为了以后启动加载的配
置)和c:/mysql/bin/cluster-logs目录,在下载解压的文件目录mysql
/bin中将ndb_mgmd.exe和ndb_mgm.exe复制到192.168.18.8的c:/mysql
/bin目录下。在192.168.18.8的c:/mysql/bin下生成两个文件,my.ini和
config.ini,my.ini的内容为:
[mysql_cluster]
# Options for management node process
config-file=C:/mysql/bin/config.ini
config.ini的内容:
[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Managment Server
[NDB_MGMD]
HostName=192.168.18.8 #管理节点服务器的IP地址
# Storage Engines
DataDir=C:/mysql/bin/cluster-logs
[NDBD]
HostName=192.168.18.11 #MySQL集群的IP地址
DataDir= D:/Program Files/mysqlcluster/datanode/mysql
/bin/cluster-data
#如果不存在就创建一个(可以自己任意指点地址)
[NDBD]
HostName=192.168.18.17 #MySQL集群的IP地址
DataDir= D:/Program Files/mysqlcluster/datanode/mysql
/bin/cluster-data
#如果不存在就创建一个(可以自己任意指点地址)
[MYSQLD]
HostName=192.168.18.11
[MYSQLD]
HostName=192.168.18.17
c、Data nodes的安装配置
在IP为192.168.18.17 的机子上生成D:/Program Files/mysqlcluster
/datanode/mysql/bin、D:/Program Files/mysqlcluster/datanode/mysql
/cluster-data、D:/Program Files/mysqlcluster/datanode/mysql/bin
/cluster-data.在下载的的解压文件夹/bin中将ndbd.exe复制到
192.168.18.17 机子的D:/Program Files/mysqlcluster/datanode/mysql
/bin目录下,并在D:/Program Files/mysqlcluster/datanode/mysql/bin
目录下生成my.ini文件,文件的内容为:
[mysql_cluster]
# Options for data node process:
ndb-connectstring=192.168.18.8 # location of management server
同理在192.168.18.11机子上配置相同的配置,也可以直接复制到
192.168.18.11机子上。
d、SQL node的安装配置
在IP为192.168.18.17的机子上生成D:/Program Files/mysqlcluster
/sqlnode目录,将下载的解压文件夹直接整个复制到D:/Program
Files/mysqlcluster/sqlnode/mysql目录下,在D:/Program
Files/mysqlcluster/sqlnode/mysql下生成my.ini文件,文件内容为:
[mysqld]
# Options for mysqld process:
ndbcluster # run NDB storage engine
ndb-connectstring=192.168.18.8
# location of management server
同理,将D:/Program Files/mysqlcluster/sqlnode整个文件夹复制到
192.168.18.11机子的相同目录下。
3、启动集群
启动各个节点是有顺序的,先是Management node,然后是Data
nodes,最后是SQL nodes。
a、启动Management node
在192.168.18.8机子下进入命令行,转到c:/mysql/bin目录下,输入:
ndb_mgmd -f config.ini
b、启动Data node
在192.168.18.17机子下进入命令行,转到D:/Program
Files/mysqlcluster/datanode/mysql/bin目录下,输入:
ndbd --connect-string="nodeid1;host=192.168.18.8:1186"
同理启动192.168.18.11机子,nodeid1是根据管理节点的配置文件
config.ini中的id决定的,如果id为2,则为nodeid2,配置文件中未指定
id,则按顺序执行。
(注)此时可通过在Management node中新开一命令行,转到
c:/mysql/bin目录下输入命令:
ndb_mgm
启动ndb_mgm.exe,之后输入命令:
ALL STATUS
查看到Data node连接是否成功.之后启动正常之后才能继续启动
SQLnode
c、启动SQL node
在192.168.18.17机子下进入命令行,转到D:/Program
Files/mysqlcluster/sqlnode/mysql/bin目录下,输入:
mysqld --console
按相同方式启动192.168.18.11下的SQL node。
(注):可通过在Management node节点的机器下,转到c:/mysql/bin目录
下输入命令:
ndb_mgm
启动ndb_mgm.exe,之后输入命令:
SHOW
即可查看到各个节点的连接情况。
正确显示应该为:
ndb_mgm> show
Cluster Configuration
———————
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.18.8 (mysql-5.5 ndb-7.1.10)
[ndbd(NDB)] 2 node(s)
id=2 @192.168.18.17 (mysql-5.5 ndb-7.1.10, Nodegroup: 0,
Master)
id=3 @192.168.18.11 (mysql-5.5 ndb-7.1.10, Nodegroup: 1)
[mysqld(API)] 2 node(s)
id=4 @192.168.18.17 (mysql-5.5 ndb-7.1.10)
id=5 @192.168.18.11 (mysql-5.5 ndb-7.1.10)
4、测试
C:\>mysql -u root test
mysql>create table city (nId mediumint unsigned not null
auto_increment primary key, sName varchar(20) not null)
engine = ndbcluster default charset utf8;
mysql>insert city values(1, ‘city-1′);
mysql>insert city values(1, ‘city-2′);
在另一台 SQL 节点上登录 mysql,从表 city 里得到记录:
C:\>mysql -u root test
mysql>select * from city;
在群集系统正常工作的情况下,应当能取到先前插入的所有记录。
另外的测试(单点故障测试):
1,还可以人为停止某一个数据节点(Ctrl+C中断DOS命令ndbd.exe,停止该服务),看看所有的 SQL 节点是不是能正常工作。
2,在某一个数据节点停止后,进行数据库操作。然后重新开启该数据节 点,看看群集中的所有的 SQL 节点能不能得到完整的数据。
5、关闭
ndb_mgm -e shutdown
或在 ndb_mgm 环境下执行 shutdown 命令。
以上命令或关闭管理节点服务和所有的数据节点。随意、强行关闭群集系统
(关机或关闭进程),会导致数据没有全部写回磁盘而导致的数据丢失。
6、常见问题及扩展
配置和管理 MySQL 群集系统并不是一件简单的事情。由于不合理的配置导致
的系统问题非常常见,比如网络故障、内存限制等,会导致仲裁体统强制关
闭数据节点。
如果机器上原来已经安装过 MySQL Server,则一定要卸载干净原来的数据库
系统。注意群集系统中的 mysql.exe 程序与非群集系统的管理 Client 是不
同的。
还可以与负载均衡系统结合,以提供更强的可用性和数据存取效率。
可能由于未知的Bug或别的原因,导致群集系统出现一些意外故障。所以建议
选取版本时,选择已经得到大多数人认可的版本,不一定选取最新的版本,
最新的版本往往不太稳定。当然也不要选用太陈旧的功能有限制的版本。
7、mysql的优势和劣势分析
1、可扩展性
mysql cluster在五个不同的级别提供可扩展性
如果需要更多的存储或者是容量,你们可以在不影响服务的情况下动态地添加数据节点可以动态的添加应用节点来提升性能和并行处理的能力连接至应
用节点的客户端可以动态的添加数据节点上额外的CPU,核,线程可通过使用
多线程的NDB进程来得到充分利用数据库可以复制到其他的数据库以用于读操
作或者是用于生成复杂报表
2、性能
mysql cluster在五个不同的级别提供可扩展性,在与一下特征相结合时,可
得到极大的性能的提升:
NDB API或是NDB/J
主键查找
与之分布应用设计
用户自定义区分
并行化
批量事务
高性能的网络接口(SCI)
3、高可用性
数据节点可以故障,但是可以自动重新同步,而不影响服务或者是强制应用
节点重新连接。再者,可以添加多个管理节点和应用节点以提供最大限度的
服务。亦可以在不同的地理未知上进行集群间的复制。
4、mysql集群的应用程序通过一些修改后,可以比使用其他数据库更快捷
mysql cluster劣势:
1、mysql cluster,数据节点,管理服务器、客户端必须运行于支持集群的
LINUX或者UNIX操作系统。MYSQL集群7.0开始在开发系统(而不是生产系统)
中提供对windows平台的支持。
2、集群中的所有机器必须要有相同的架构。
3、数据的存储
如:没有经过索引的数据可以存于磁盘,但是索引过的列必须存于内存中。
数据库越大,就意味着你需要更多的内存和硬件。
4、应用程序使用完整的JOIN或是全表扫描极有可能遭遇极差的性能。
因为在集群中数据是分区并分布于多个数据节点的。使用主键查找方法的应
用程序可以从集群的分布式数据中获取最大的效益。
5、NDB存储引擎不支持外键
6、NDB存储引擎不支持全文检索
7、NDB存储引擎与其他存储引擎相比性能不会更好
windowsxp下的mysql集群技术的更多相关文章
- Windows下搭建Mysql集群
Mysql集群的基本架构如下: 基本原理参考:[转]MySQL Cluster (集群)基本原理 这里采用最小配置,用两台机器来分别部署一个management 节点,2个data node, 2个s ...
- 170711、Linux下搭建MySQL集群
一.MySQL集群简介 1.什么是MySQL集群 MySQL集群是一个无共享的(shared-nothing).分布式节点架构的存储方案,其目的是提供容错性和高性能. 数据更新使用读已提交隔离级别(r ...
- windows+mysql集群搭建-三分钟搞定集群
注:本文来源: 陈晓婵 < windows+mysql集群搭建-三分钟搞定集群 > 一:mysql集群搭建教程-基础篇 计算机一级考试系统要用集群,目标是把集群搭建起来,保证一 ...
- mysql集群搭建教程-基础篇
计算机一级考试系统要用集群,目标是把集群搭建起来,保证一个库dang了,不会影响程序的运行.于是在孟海滨师哥的带领下开始了我的第一次搭建mysql集群,首先看了一些关于集群的资料,然后根 ...
- MySQL 集群历史版本信息
MySQL 集群有两种命名方式,在Mysql5.1版本之前,MySQL 集群是以MySQL版本号命名:MySQL5.1(包括)之后开始以 mysql-mysql_server_version-ndb- ...
- Docker环境下的前后端分离项目部署与运维(六)搭建MySQL集群
单节点数据库的弊病 大型互联网程序用户群体庞大,所以架构必须要特殊设计 单节点的数据库无法满足性能上的要求 单节点的数据库没有冗余设计,无法满足高可用 单节点MySQL的性能瓶领颈 2016年春节微信 ...
- 集群技术(三)MySQL集群深度解析
什么是MySQL集群 MySQL集群是一个无共享的(shared-nothing).分布式节点架构的存储方案,其目的是提供容错性和高性能. 数据更新使用读已提交隔离级别(read-committedi ...
- 1.Mysql集群------Docker下的Mysql主从复制
前言: 实话说,我想做的是Mysql集群架构. 我的计划是: 1.实现Docker下的Mysql主从复制 2.实现MyCat基于Mysql的读写分离 3.实现MyCat的分库分表 4.实现pxc集群 ...
- 在Docker下进行MyCAT管理双主双从MySQL集群
前言 在Docker下双主双从MySQL集群模拟 https://www.cnblogs.com/yumq/p/14259964.html 本文实验配置文件 Docker拉取MyCAT镜像 如果没启动 ...
随机推荐
- UML中的6大关系(关联、依赖、聚合、组合、泛化、实现)
UML定义的关系主要有六种:依赖.类属.关联.实现.聚合和组合.这些类间关系的理解和使用是掌握和应用UML的关键,而也就是这几种关系,往往会让初学者迷惑.这里给出这六种主要UML关系的说明和类图描述, ...
- SQL group 分组查询
1.使用group by进行分组查询 在使用group by关键字时,在select列表中可以指定的项目是有限制的,select语句中仅许以下几项: 被分组的列 为每个分组返回一个值得表达式,例如 ...
- Spring Boot数据库交互
在上篇文件的基础上进行开发,简单实现一下增.查操作,删除和修改类似,作为一个demo就暂时不做重复工作了,实现原理类似 IDEA创建Spring Boot项目 项目结构 新建MySQL数据库相关信息 ...
- 【BZOJ】1336: [Balkan2002]Alien最小圆覆盖
题解 我们先把所有点random_shuffle一下 然后对前i - 1个点计算一个最小圆覆盖,然后第i个点如果不在这个圆里,那么我们把这个点当成一个新的点,作为圆心,半径为0 从头枚举1 - i - ...
- Kafka/Metaq设计思想学习笔记
http://my.oschina.net/geecoodeer/blog/194829
- SQL_异化
select a.pk_accasoa from bd_accasoa a; --下级科目原来主键: 0001Z0100000000001A2 --执行该语句后下级科目异化了(替换的意思) , '@@ ...
- 深度学习---手写字体识别程序分析(python)
我想大部分程序员的第一个程序应该都是“hello world”,在深度学习领域,这个“hello world”程序就是手写字体识别程序. 这次我们详细的分析下手写字体识别程序,从而可以对深度学习建立一 ...
- oneDay
难受过 迷茫过 失望过 耍脾气过 开心过 伤心过 疼过 走了这么久的路: 我只想说 程序的道路上 很难走: 本来准备都放弃了: 自己逼自己了很久想明白了: 不能什么时候都想着靠外力 自己的不足就是自己 ...
- Django小知识点整理
一.Django中Choices字段显示中文的两种方式 1.get_xxxx_display():这种方式只能针对对象来使用 {% for row in server_list %} <li&g ...
- uoj407 【IOI2018】狼人
link 题意: 给一张n个点m条边的无向图,有q个询问,每次询问给出s,t,l,r,问你能否从s走到t,并且初始为人形,结束时必须为狼形,你是人形的时候必须避开$[1,l)$的节点,狼形的时候必须避 ...