mysqlclustermysql cluster 中的数据节点具体是怎样存放数据的

mysqlcluster  时间:2021-09-07  阅读:()

如何在Windows系统中配置Mysql群集

MySQL 群集是一种技术,该技术允许在无共享的系统中部署“内存中”和“磁盘中”数据库的 Cluster 。

通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。

此外,由于每个组件有自己的内存和磁盘,不存在单点故障。

MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括 MySQL 服务器,NDB Cluster 的数据节点,管理服务器,以及(可能存在的)专门的数据访问程序。

  管理服务器(MGM节点)负责管理 Cluster 配置文件和 Cluster 日志。

Cluster 中的每个节点从管理服务器检索配置数据。

当数据节点内出现新的事件时,节点将关于这类事件的信息传输到管理服务器,然后,将这类信息写入 Cluster 日志。

  目前能够运行 MySQL Cluster 的操作系统有 Linux、Mac OS X 和 Solaris,最新的版本已经支持 Windows 操作系统。

  MySQL 群集的数据节点之间的通信是不加密的,并且需要高速的带宽,所以建议把群集建立在一个高速局域网内,不建议跨网段、跨公网的部署这种系统体系。

  MySQL 群集分为三种节点:管理节点,数据节点和SQL节点。

  管理节点:主要用于管理各个节点,能够通过命令对某个节点进行重启、关闭、启动等操作。

也能够监视全部节点的工作状态。

  数据节点:主要是对数据的存储,不提供其他的服务。

  SQL节点:主要是对外提供SQL功能,类似一台普通的 MySQL Server。

  而SQL节点和数据节点可以是同一台机器,也就是说这台机器即是SQL节点也是数据节点。

它们只是逻辑关系上的划分,实际部署时,甚至所有的阶段都可以位于同一台物理机器上,只是配置较复杂些。

  一、软件下载机器操作环境   配置 MySQL 群集必需使用其群集版本,注意和 MySQL Server 版本的区别。

本文以 Windows 平台下的 MySQL 群集版本 MySQL Cluster 7.1.3 为例(截至2010年6月初的最高版本),这是 MySQL Server 5.1 系列版本之一,添加了群集的功能。

选择 mysql-cluster-gpl-noinstall-7.1.3-win32.zip 文件,这是一个 for Windows 32位版本的、免安装的二进制版本。

  根据自己的操作系统的位数,也可以选择 64 位版本的。

还有一个 27.2M 的 Windows(x86, 32-bit) 版本,下载下来需要自己编译,有经验的高级用户可以选用。

  本实验在 2 台安装 Windows Server 2003(sp2) 的机器上进行。

节点分配及 IP 配置如下:   第一台机器,IP 为 10.0.0.201,作为管理节点(MGM),SQL节点1(SQL1),数据节点1(NDBD1)。

  第二台机器,IP 为 10.0.0.202,作为SQL节点2(SQL2),数据节点2(NDBD2)。

  管理节点最好不要与数据节点部署在同一台服务器上,否则可能会因为该数据节点服务器的当机,而导致管理节点服务器的问题,从而导致整个群集系统的崩溃。

  二,配置管理节点:   在第一台机器上,建文件夹 D:mysql-cluster,在其下建立文件 config.ini,内容如下:   [NDBD DEFAULT]   NoOfReplicas=1   [MYSQLD DEFAULT]   [NDB_MGMD DEFAULT]   [TCP DEFAULT]   # Managment Server   [NDB_MGMD]   hostname=10.0.0.201   # Storage Engines   [NDBD]   hostname=10.0.0.201   datadir= D:data   [NDBD]   hostname=10.0.0.202   datadir= D:data   # SQL Engines   [MYSQLD]   hostname=10.0.0.201   [MYSQLD]   hostname=10.0.0.202   Cluster 管理节点的默认端口是1186,数据节点的默认端口是 2202。

从 MySQL 5.0.3开始,该限制已被放宽,Cluster 能够根据空闲的端口自动地为数据节点分配端口。

如果你的版本低于5.0.22,请注意这个细节。

  Cluster 管理节点作为一个服务端(通过运行 db_mgmd.exe 程序读取本配置文件来启动),通过本机上的客户端 ndb_mgm.exe 来连接和操作。

  三、配置 MySQL 数据库服务器:   在2台机器上,分别依次操作。

  解压 mysql-cluster-gpl-noinstall-7.1.3-win32.zip 文件到 D:mysql-cluster-gpl-noinstall-7.1.3-win32 文件夹下,把 D:mysql-cluster-gpl-noinstall-7.1.3-win32in 加到 Windows 的系统 path 中。

  打开DOS命令行窗口(配置完系统path后,在再次打开新的命令行窗口),执行以下语句,让 MySQL 作为 Windows 服务运行:   mysqld.exe -install mysql   再在 Windows 服务管理界面里,配置 mysql 服务,手动启动(不要自动启动)。

  把 D:mysql-cluster-gpl-noinstall-7.1.3-win32 下的某个备用的配置文件(例如my-small.ini)复制为 my.ini 文件。

  建立 D: mp 文件夹。

  四、配置SQL节点和数据节点:   在2台机器上,分别依次操作。

  建立文件夹 D:data。

  编辑 NySQL 配置文件 D:mysql-cluster-gpl-noinstall-7.1.3-win32my.ini,在 [mysqld] 节末尾加语句:   #SQL群集节点   ndbcluster   ndb-connectstring=10.0.0.201   有了 ndbcluster 语句,mysql 服务将作为群集的 SQL 节点启动。

mysqld.exe 命令带参数 –ndbcluster 运行是一样的效果。

  mysql 服务连接到数据节点的 2202 默认端口,或自动分配的别的可用端口。

  (问题:SQL节点如何获得数据节点的IP地址?是否通过连接管理节点,取得所有数据节点的IP地址的列表?)   这里的连接字符串的值在 MySQL 服务启动时使用,用于连接到管理节点。

  在末尾加语句:   #NDB集群节点   [mysql_cluster]   ndb-connectstring=10.0.0.201   注:好像以下形式也可:   [ndbd]   ndb-connectstring=10.0.0.201   这里的连接字符串的值在数据节点启动时使用,用于连接到管理节点。

  五,启动群集各服务器   启动顺序依次是:管理节点、数据节点、SQL节点。

  1,启动管理节点   在第一台服务器的DOS窗口,运行命令:   C:>ndb_mgmd.exe -f d:mysql-cluster.confconfig.ini –configdir=d:mysql-cluster   注:如果不带 –configdir=d:mysql-cluster 参数,将默认为 C:mysqlmysql-cluster 文件夹。

  屏幕显示:   C:>ndb_mgmd.exe -f d:mysql-cluster.confconfig.ini –configdir=d:mysql-cluster   2010-06-10 01:16:57 [MgmtSrvr] INFO — NDB Cluster Management Server. mysql-5.1.44 ndb-7.1.3   2010-06-10 01:16:57 [MgmtSrvr] INFO — Reading cluster configuration from ‘d:mysql-cluster.confconfig.ini'   2010-06-10 01:16:57 [MgmtSrvr] INFO — Got initial configuration from ‘d:mysql-cluster.confconfig.ini', will try to set it when all ndb_mgmd(s) started   2010-06-10 01:16:57 [MgmtSrvr] INFO — Mgmt server state: nodeid 1 reserved for ip 10.0.0.201, m_reserved_nodes 1.   2010-06-10 01:16:57 [MgmtSrvr] INFO — Id: 1, Command port: *:1186   ==INITIAL==   2010-06-10 01:16:57 [MgmtSrvr] INFO — Starting initial configuration change   2010-06-10 01:16:57 [MgmtSrvr] INFO — Configuration mited   2010-06-10 01:16:57 [MgmtSrvr] INFO — Config pleted! New generation: 1   ==CONFIRMED==   2,启动数据节点   分别在2台服务器的DOS窗口运行命令。

  第一次,或初始化群集节点时,运行命令:   ndbd.exe –initial   初始化之后,只运行 ndbd.exe 即可。

若带参数 –initial 运行,将使正常运行的群集系统中,数据节点的数据全部丢失。

  数据节点依赖管理节点服务器,进行数据的自动复制和同步,使各个数据节点的数据保持一致,并在某个数据节点意外关闭又恢复后,进行数据的恢复重建。

  3,启动SQL节点   有了 ndbcluster 语句,启动 mysql 服务,就启动了SQL节点。

应在前2种节点启动后,分别在2台服务器上进行。

  六、群集管理   在所有的数据节点和SQL节点未启动之前,运行群集管理节点服务的客户端 ndb_mgm.exe,只能获得以下信息:   C:>ndb_mgm.exe   — NDB Cluster — Management Client –   ndb_mgm> show   Cluster Configuration   ———————   [ndbd(NDB)] 2 node(s)   id=2 (not connected, epting connect from 10.0.0.201)   id=3 (not connected, epting connect from 10.0.0.202)   [ndb_mgmd(MGM)] 1 node(s)   id=1 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3)   [mysqld(API)] 2 node(s)   id=4 (not connected, epting connect from 10.0.0.201)   id=5 (not connected, epting connect from 10.0.0.202)   ndb_mgm>   说明数据节点、SQL节点均未连接到管理节点服务。

  在所有的数据节点和SQL节点正确启动之后,将获得以下信息:   ndb_mgm> show   Cluster Configuration   ———————   [ndbd(NDB)] 2 node(s)   id=2 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3, Nodegroup: 0, Master)   id=3 @10.0.0.202 (mysql-5.1.44 ndb-7.1.3, Nodegroup: 1)   [ndb_mgmd(MGM)] 1 node(s)   id=1 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3)   [mysqld(API)] 2 node(s)   id=4 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3)   id=5 @10.0.0.202 (mysql-5.1.44 ndb-7.1.3)   ndb_mgm>   关闭群集的DOS命令:   ndb_mgm -e shutdown   或在 ndb_mgm 环境下执行 shutdown 命令。

  以上命令或关闭管理节点服务和所有的数据节点。

随意、强行关闭群集系统(关机或关闭进程),会导致数据没有全部写回磁盘而导致的数据丢失。

  关闭SQL节点的 mysqld 服务:   C:& mysql,或:   C:>mysqladmin -u root shutdown   七、测试   正常运行的 MySQL 群集系统,通过SQL节点可以对数据节点进行数据库操作,各数据节点可以自动进行数据同步。

某一个数据节点关闭后,不影响SQL节点的使用。

某些数据节点出错后,可以进行恢复。

需要注意的是,SQL节点建立数据库时,必须选择“ndbcluster”数据库引擎。

如果不选择“ndbcluster”引擎,建立的数据库将不会进入MySQL群集系统中,但是可以独立使用。

  另外,每个 NDB 表必须有一个主键。

如果在创建表时未定义主键,NDB Cluster 存储引擎将自动生成隐含的主键。

该隐含的键也将占用空间,就像任何其他的表索引一样。

由于没有足够的内存来容纳这些自动创建的键,出现问题并不罕见。

mysql集群的结构有几种

但似乎很多人推荐这个) DRBD+Heartbeat+MySQL(有一台机器空余?Heartbeat切换时间较长?有脑裂问题?) MySQL Proxy(不够成熟与稳定?使用了Lua?是不是用了他做分表则可以不用更改客户端逻辑?) MySQL Cluster (社区版不支持INNODB引擎?商用案例不足?稳定性欠佳?或者还有其他问题?又或者听说现在发展不错?) MySQL + MHA (如果配上异步复制,似乎是不错的选择,又和问题?) MySQL + MMM (似乎反映有很多问题,未实践过,谁能给个说法) 淘宝的Cola(似乎现在停止开发了?)?变形虫Amoeba(事务支持?) 或者,其他方案? 不管哪种方案都是有其场景限制 或说 规模限制,以及优缺点的。

1. 首先反对大家做读写分离,关于这方面的原因解释太多次数(增加技术复杂度、可能导致读到落后的数据等),只说一点:99.8%的业务场景没有必要做读写分离,只要做好数据库设计优化 和配置合适正确的主机即可。

2.Keepalived+MySQL --确实有脑裂的问题,还无法做到准确判断mysqld是否HANG的情况; 3.DRBD+Heartbeat+MySQL --同样有脑裂的问题,还无法做到准确判断mysqld是否HANG的情况,且DRDB是不需要的,增加反而会出问题; 3.MySQL Proxy -- 不错的项目,可惜官方半途夭折了,不建议用,无法高可用,是一个写分离; 4.MySQL Cluster -- 社区版本不支持NDB是错误的言论,商用案例确实不多,主要是跟其业务场景要求有关系、这几年发展有点乱不过现在已经上正规了、对网络要求高; 5.MySQL + MHA -- 可以解决脑裂的问题,需要的IP多,小集群是可以的,但是管理大的就麻烦,其次MySQL + MMM 的话且坑很多,有MHA就没必要采用MMM建议: 1.若是双主复制的模式,不用做数据拆分,那么就可以选择MHA或 Keepalive 或 heartbeat 2.若是双主复制,还做了数据的拆分,则可以考虑采用Cobar;

mysql cluster 中的数据节点具体是怎样存放数据的

问题1:数据节点实际就是单个的数据库实例而已,所以数据存储和一般实例没有太多区别,如果你的意思是怎么保证数据的存储一致性,那这个话就多了,不过,其实当做master-slave的高级模式来理解就好了,只是没有使用binlog的动态转换分发而已 问题2:关于集群的数据恢复,打字太费力了,这篇文章还算详细,你去看看好了 /share/detail/18131208 最后,其中还给出了实际成功操作时的所有详细软件配置和版本 更多集群信息,看官网和论坛吧,MySQL Cluster NDB 7.1貌似已经可以在Windows下跑了 /doc/mysql-cluster-excerpt/5.1/en/mysql-cluster.html

华纳云不限流量¥324/年,香港双向CN2(GIA)云服务器/1核1G/50G存储/2Mbps

华纳云(HNCloud Limited)是一家专业的全球数据中心基础服务提供商,总部在香港,隶属于香港联合通讯国际有限公司,拥有香港政府颁发的商业登记证明,保证用户的安全性和合规性。 华纳云是APNIC 和 ARIN 会员单位。主要提供香港和美国机房的VPS云服务器和独立服务器。商家支持支付宝、网银、Paypal付款。华纳云主要面向国内用户群,所以线路质量还是不错的,客户使用体验总体反响还是比较好...

傲游主机38.4元起,韩国CN2/荷兰VPS全场8折vps香港高防

傲游主机怎么样?傲游主机是一家成立于2010年的老牌国外VPS服务商,在澳大利亚及美国均注册公司,是由在澳洲留学的害羞哥、主机论坛知名版主组长等大佬创建,拥有多家海外直连线路机房资源,提供基于VPS主机和独立服务器租用等,其中VPS基于KVM或者XEN架构,可选机房包括中国香港、美国洛杉矶、韩国、日本、德国、荷兰等,均为CN2或者国内直连优秀线路。傲游主机提供8折优惠码:haixiuge,适用于全...

腾讯云轻量应用服务器关于多个实例套餐带宽

腾讯云轻量应用服务器又要免费升级配置了,之前已经免费升级过一次了(腾讯云轻量应用服务器套餐配置升级 轻量老用户专享免费升配!),这次在上次的基础上再次升级。也许这就是良心云吧,名不虚传。腾讯云怎么样?腾讯云好不好。腾讯云轻量应用服务器 Lighthouse 是一种易于使用和管理、适合承载轻量级业务负载的云服务器,能帮助个人和企业在云端快速构建网站、博客、电商、论坛等各类应用以及开发测试环境,并提供...

mysqlcluster为你推荐
推信求 毕业生就业推荐书“本人总结及自荐材料”范文阿里校园招聘阿里巴巴校园招聘内推有什么优势fast路由器FAST无线路由器要怎么设置什么是cookie电脑里的cookies是什么意思,什么中文意思?教育城域网关于学校局域网文件下载jsp源码在网上下的jsp源码怎么运行?有数据库的招行信用卡还款我是招行的信用卡!该怎么还款监控员工公司如何监控员工手机和微信网络购物的发展网络购物的发展对策主板说明书精英主板中文说明书
com域名注册 厦门域名注册 万网域名空间 最便宜的vps 企业域名备案 中国域名交易中心 免费cn域名 美国主机代购 京东云擎 gg广告 免费吧 安徽双线服务器 日本代理ip 防cc攻击 国外代理服务器 美国主机侦探 globalsign reboot hosts文件修改 中国域名根服务器 更多