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存储引擎与其他存储引擎相比性能不会更好

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/69448.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GPT转换工具:轻松将MBR转换为GPT磁盘

为什么需要将MBR转换为GPT? 众所周知,Windows 11已经发布很长时间了。在此期间,许多老用户已经从Windows 10升级到Windows 11。但有些用户仍在运行Windows 10。对于那些想要升级到Win 11的用户来说,他们可能不确定Win 11应该使…

LeetCode 热题 100——找到字符串中所有字母异位词(滑动窗口)

题目链接 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 题目解析 该题目的意思简而言之就是说,从s字符串中寻找与p字符串含有相同字符(次数和种类均相同)的子串,并且将他们的首字符下标集合进数组中进行返回。 滑动窗口解…

QT 5.8

QT与Qt Creator,前者是框架,类似与MFC,而后者是QT的编译器,也可以使用Visual studio编辑,编译需要其他的 Index of /new_archive/qt/5.8/5.8.0

大数据Flink(七十三):SQL的滚动窗口(TUMBLE)

文章目录 SQL的滚动窗口(TUMBLE) SQL的滚动窗口(TUMBLE) 滚动窗口定义:滚动窗口将每个元素指定给指定窗口大小的窗口。滚动窗口具有固定大小,且不重叠。例如,指定一个大小为 5 分钟的滚动窗口。在这种情况下,Flink 将每隔 5 分钟开启一个新的窗口,其中每一条数都会划…

如何使用蚂蚁集团自动化混沌工程 ChaosMeta 做 OceanBase 攻防演练?

当前,业界主流的混沌工程项目基本只关注如何制造故障的问题,而经常做演练相关工作的工程师应该明白,每次演练时还会遇到以下痛点: 检测当前环境是否符合演练预设条件(演练准入); 业务流量是否满…

jupyter notebook内核启动报错:ImportError: DLL load failed while importing _device

1.报错信息 File “D:\Programs\Programming\Anaconda3\envs\pytorch_mis\lib\site-packages\zmq\backend\cython_init_.py”, line 6, in from . import ( ImportError: DLL load failed while importing _device: 找不到指定的模块。 2.解决方案 pyzmq版本冲突&#xff0…

Vue基础1:生命周期汇总(vue2)

Description 生命周期图: 可以理解vue生命周期就是指vue实例从创建到销毁的过程,在vue中分为9个阶段:创建前/后,载入前/后,更新前/后,销毁前/后,其他;常用的有:created&…

C#常用多线程(线程同步,事件触发,信号量,互斥锁,共享内存,消息队列)

using System; using System.Threading; using System.Windows.Forms; using UtilForm.Util;namespace UtilForm {// 线程同步,事件触发,信号量,互斥锁,共享内存,消息队列public partial class frmUIThread : Form{ Sy…

【RapidAI】P1 中文文本切割程序

中文文本切割程序 基本信息代码解析相关包获取 yaml 关键文件类的构造函数切分语句部分特殊处理 PDF重点切分去除数组中空字符串再度切分后长度 附录附录一:完整代码附录二:可继续思考问题 基本信息 文件名: chinese_text_splitter.py 文件地…

Linux查看内存大小、CPU版本

查看cpu 第一种方法:top命令法 1、首先执行top命令; 2、在top命令的显示界面,按数据键1,即可查看到当前系统中的总cpu数; 第二种方法:通过proc文件系统,直接获取cpu总数量,具体执行…

autojs修改顶部标题栏颜色

顶部标题栏的名字是statusBarColor 不是toolbar。难怪我搜索半天搜不到 修改之后变成这样了 代码如下: "ui"; importClass(android.view.View); importClass(android.graphics.Color); ui.statusBarColor(Color.parseColor("#ffffff")); ui.…

一个月能做什么?成长感悟分享

一个月做了什么? 八月做了些什么? 单词打卡 第一件事情就是单词打卡 英语很差的我,一样继续打卡,今天是第736天 当你还在纠结扇贝和不背、可可英语哪一个好的时候,别人已经同时使用了 当你还在咨询学编程、敲代码需…

Pygame中Trivia游戏解析6-1

1 Trivia游戏简介 Trivia的含义是“智力测验比赛中的各种知识”。Trivia游戏类似智力竞赛,由电脑出题,玩家进行作答,之后电脑对玩家的答案进行判断,给出结果并进行评分。该游戏的界面如图1所示。 图1 Trivia游戏界面 2 游戏流程 …

MATLAB算法实战应用案例精讲-【数模应用】特征工程

目录 前言 几个高频面试题目 特征值的范围是什么? 特征转换方法有哪些?

git 后悔药

前言 自上而下,撤销可以分为从远程库撤销,从本地库撤销,从暂存库撤销。 例子:代码已经提交了三个记录到远程库,分别对应了记录1,内容1,记录2,内容2,记录3,内…

QTday5(QT连接TCP通信)

一、Xmind整理&#xff1a; C语言中的通信协议&#xff1a; 二、上课笔记整理&#xff1a; 1.QT中的服务器端的操作&#xff1a; .pro文件&#xff1a; 头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> //服务…

npm install依赖冲突解决办法

今天npm的时候发现报错&#xff0c;原来是依赖冲突了 npm后面加上这个指令就可以顺利的安装依赖了。问题主因就是不同开发用了不同版本node导致依赖版本不同&#xff0c;出现了成功冲突&#xff0c;这是段指令&#xff1b;它告诉npm忽略项目中引入的各个依赖模块之间依赖相同但…

和AI聊天:动态规划

动态规划 动态规划&#xff08;Dynamic Programming&#xff0c;简称 DP&#xff09;是一种常用于优化问题的算法。它解决的问题通常具有重叠子问题和最优子结构性质&#xff0c;可以通过将问题分解成相互依赖的子问题来求解整个问题的最优解。 动态规划算法主要分为以下几个步…

Java数组(未完待续)

诸神缄默不语-个人CSDN博文目录 我写Java的一天&#xff0c;是复健的一天。 很难想象我本科考96分的一门课&#xff0c;在区区5年之后&#xff0c;我就忘得这么彻彻底底。 数组Array&#xff1a;用来存储固定大小的同类型元素 文章目录 1. 创建数组2. 数组转字符串其他本文撰…

layui 新增tab标签页

// $("#fjyj").click(function () {// //window.location.href "/sysconfig/SuperVisorEdit";// navigateToTeamPersonModule(/CollectData/GradeWarning/EduIndex, 分级预警);// });function navigateToTeamPersonModule(url, name) {var ids n…