Mysql:群集概念

摘要:
如果可能,管理节点和mysqld节点的范围在49-63之间。更进一步地说,MySQL集群比使用共享存储的SQL server集群和oracle集群更灵活和强大。设置此值可以覆盖ndb connectstring中指定的nodeid和集群配置文件中指定的节点id,并防止管理服务自动将nodeid分配给mysqld节点。

一 概述:

  • mysql的群集是个比较另类的东西,它本质上只是标准Mysql服务器的一种存储引擎而已——名称叫 ndb 或者 ndbcluster。该引擎必须显式的编译进mysqld服务器中才可以使用
  • ndb支持较为广泛的平台及操作系统,且经过多年的发展,已经可以应用于生产环境
  • ndb引擎通过tcp协议交换群集数据
  • ndb不需要传统的共享存储设备,而是通过 专门的 ndbd数据存储引擎 来模拟共享存储
  • ndbd存储引擎支持 自动配置、多个数据复本、数据分区、自动分组等功能
  • ndb提供专门的管理工具集

二 ndb群集构架

Mysql:群集概念第1张

  • 管理节点:ndb_mgmd  群集的心脏
  • 管理界面:ndb_mgm  群集的管理接口
  • 数据节点:ndbd  虚拟共享存储引擎
  • sql节点:mysqld 支持ndb引擎的mysqld服务器
  • 客户端:任何的客户端、如mysql、sqlyog等等, 无特殊要求

三 ndb群集中的逻辑概念和组件

  • nodeid:节点id号——唯一标识 群集内各种部件的 唯一 id 。注意:对于数据节点 范围为:1-48;对于管理节点:范围为:1-63。可能的话,管理节点和mysqld节点在:49-63的范围内。控制参数为:[ndbd] [ndbd_mgmd] nodeid
  • replicas:复件——数据的冗余度,可以理解为数据的副本个数。从数据安全和群集可用上来说,replicas越大越好,但终归要考虑性能、网络通信量、数据安全性要求等因素,mysql给出的默认值即一般的推荐值为2。控制参数为:[nbdb default] noofreplicas 。说的远一点,mysql群集这点比使用共享存储的 sqlserver群集和orace群集灵活、强大多了。
  • nodegroup:数据节点组——服务于replicas的逻辑概念和实现机制1,目的是实现组内的各节点的 复件 功能, 同时实现 组间的 复件功能。通过组 将数据的 复制 简化、明细化、可靠化。一般 组号 是动态计算的,也可以明确指定。控制参数为:[nbdb] nodegroup
  • partition:数据的的一个逻辑部分——服务于replicas的逻辑概念和实现机制2,细化逻辑数据片段,应该是复件 功能的最小逻辑单元
  • mysqld:使用和支持ndb的容器——当mysqld识别到ndb引擎的表时,就调用ndb存储引擎插件 进而使用 ndb群集访问功能。必须注意:ndb对mysqld来说只是一个插件存储引擎而已,其他mysqld必须的东西 和原来一样!!

四 群集管理节点配置文件和配置参数

mysql在这一点上真的不错。所有的程序——无论是客户端、服务器、还是各组件程序——都遵循同样的规则:识别同样的参数、读取同样的配置文件、依照同样的规则进行扩展!

  • 必须注意程序读取配置文件的 次序、路径
  • 可以通过命令行选项覆盖默认的行为
  • 每种程序都读取特定的节,注意通用节

群集配置文件:--config-file=filename, -f filename :默认为 "./config.ini"

群集管理节点读取的节有很多很多,很多参数可以用在不同的节,某些参数只能用在特定的节。注意如果executeoncomputer 和 hostname 参数都不配置,则认为是 localhost

[computer]

  • id=n #注意:此处的id仅仅就是id而不是其他节中 nodeid的别名,所以,不能写成nodeid。该值用在 [ndbd] 和 [ndbd_mgmd] 的 executeoncomputer的值中
  • hostname=name_or_ip

[mgm] [ndbd_mgmd]

  • nodeid={1-63}
  • executeoncomputer=id #不能用在 [??? default] 中
  • hostname={localhost|hostname or ip}[:port] #不能用在 [??? default] 中
  • datadir={.|path}  #注意不用使用引号括起来的字符串
  • logdestination={FILE:filename=ndb_%nodeid%_cluster.log,maxsize=1000000,maxfile=6|[CONSOLE,{SYSLOG:{[auth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, syslog, user, uucp, local0, local1, local2, local3, local4, local5, local6, local7]}},FILE]...} #日志目标可以用多种和多个;FILE目标可以使用绝对路径;SYSLOG有很多的系统日志目的的!

[ndbd default] [ndbd]

  • noofreplicas={2|n} #必须在[ndbd default]中
  • nodegroup=n #只是第一次启动节点是会用到,主要用来向现有的群集添加新的数据节点用。通常ndb会自动计算分配该值
  • nodeid=n #只能用于[ndbd]
  • hostname=string  #只能用于[ndbd]
  • serverport={动态|1-64K} #通常用于有防火墙的os中
  • datadir=path #指示trace files, log files, pid files and error logs 的位置。默认是节点进程的工作目录。
  • filesystempath=path # 指示 metadata, REDO logs, UNDO logs (for Disk Data tables), and data files 的位置,默认是 DataDir。该目录必须是os存在的!在该目录下,节点文件夹会自动建立,形如: ndb_2_fs.
  • backupdatadir=path #指示数据节点备份的目录 ,默认 同 FileSystemPath 
  • datamemory={80M|1M-1024G}
  • -----其他内存、元数据等参数

[mysqld] [api]

  • nodeid
  • hostname

[tcp default] [tcp]

[sci]

五 数据节点配置文件和配置参数

使用标准的my.ini或my.cnf文件

bind-address=hostname or specified ip address

ndb-connectstring={ localhost:1186 | [nodeid=id,] {hostname_or_ip [:port]}  [,....n]}

ndb-nodeid=n

initial

initial-start

nowait-nodes=node_id_1 [,.....n]

六 mysqld节点配置文件和配置参数

使用标准的my.ini或my.cnf文件

读取节:[mysqd]

ndbcluster | ndbcluster={on | yes | no | off} #默认是关闭的,相当于指定了 skip-ndbcluster参数

skip-ndbcluster #显式的关闭ndb引擎,这是默认的

ndb-nodeid={1-63} #如果设置,必须在ndb-connectstring前面。设置该值 可以 覆盖 ndb-connectstring中的指定的nodeid、可以覆盖群集配置文件中指定的nodeid、可以禁止管理服务自动为该mysqld节点自动分配nodeid。注意:ndb-nodeid 不能和 ndb-connectstring中指定 nodeid=n同时设置;该值 必须和config指定了点nodeid相匹配、或者config中没有指定nodeid而是让管理服务自动分配nodeid;当然该值不能和群集中已经分配的nodeid冲突!!

ndb-connectstring={ localhost:1186 | [nodeid=id,] {hostname_or_ip [:port]}  [,....n]}

七 待续............... 还有很多未尽的事宜,不断更新补充中......

 

免责声明:文章转载自《Mysql:群集概念》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Graylog日志管理系统---搜索查询方法使用简介centos 7 安装 恢复windows引导项下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysql负载飙高原因分析

某些进程/服务消耗更多CPU资源(服务响应更多请求或存在某些应用瓶颈);发生比较严重的swap(可用物理内存不足);发生比较严重的中断(因为SSD或网络的原因发生中断);磁盘I/O比较慢(会导致CPU一直等待磁盘I/O请求); 绝对不要因表数据量小,sql语句随便写都行,随便join都不会出现性能瓶颈,决不能有这种思想。尽量避免join表 join表笛卡尔...

linux中查看nginx、apache、php、mysql配置文件路径

linux高效、稳定,但是也带来维护上的一些问题。配置文件究竟在哪里?????       如何在linux中查看nginx、apache、php、mysql配置文件路径了,如果你接收一个别人配置过的环境,但没留下相关文档。这时该怎么判断找到正确的加载文件路径了。可以通过以下来判断1、判断apache 首先执行命令找到httpd路径 ps aux | gr...

CDH搭建Hadoop分布式服务器集群(java新手小白)

1首先对于一个java还白的小白,先理解CDH与Hadoop的关系 一、Hadoop版本选择。 Hadoop大致可分为Apache Hadoop和第三方发行第三方发行版Hadoop,考虑到Hadoop集群部署的高效,集群的稳定性, 以及后期集中的配置管理,业界多使用Cloudera公司的发行版,简称为CDH。 下面是转载的Hadoop社区版本与第三方发行版...

单表60亿记录等大数据场景的MySQL优化和运维之道

前言 MySQL数据库大家应该都很熟悉,而且随着前几年的阿里的去IOE,MySQL逐渐引起更多人的重视。 MySQL历史 1979年,Monty Widenius写了最初的版本,96年发布1.0 1995-2000年,MySQL AB成立,引入BDB 2000年4月,集成MyISAM和replication 2001年,Heikki Tuuri向M...

linux下安装zabbix服务器

1、lnmp环境安装(linux、nginx、mysql、php) 2、安装php所需模块以及其他模块 yum install -y php-bcmath yum install -y php-mbstring yum install -y php-mysql yum install -y php-xml yum install -y php-gd yum...

Flink RichSourceFunction应用,读关系型数据(mysql)数据写入关系型数据库(mysql)

1. 写在前面 Flink被誉为第四代大数据计算引擎组件,即可以用作基于离线分布式计算,也可以应用于实时计算。Flink的核心是转化为流进行计算。Flink三个核心:Source,Transformation,Sink。其中Source即为Flink计算的数据源,Transformation即为进行分布式流式计算的算子,也是计算的核心,Sink即为计算后的...