设为首页 收藏本站
查看: 524|回复: 0

[经验分享] mysql学习笔记-mysql cluster(2)

[复制链接]

尚未签到

发表于 2018-10-2 12:48:49 | 显示全部楼层 |阅读模式
mysql cluster 是一个基于NDBcluster存储引擎的完整的分布式数据库系统;它不仅有高可用性,还有自动切分数据、冗余数据等高级功能。和oralce real cluster application 不太一样的是,mysql cluster 是一个share nothing的架构,各个mysql server之间并不共享任何数据,高度可扩展性及可用性的突出表现是其最大的特色。  mysql cluster实际上是在无共享存储设备的情况下实现的一种完全分布式的数据库系统,,它主要通过NDBcluster (简称NDB)存储引擎来实现,mysql cluster刚诞生时是一个能对数据库进行持久化的内存数据库,所有数据和索引都必须装载在内存中才能够正常运行,但最新的mysql cluster版本已经有所改进,去掉了部分限制。
  一、概念整理
  一个mysql cluster 的环境主要由以下三部分组成:
  1、sql层的sql 服务器节点 (简称sql节点)即通常所说的 msyql server
  sql 节点主要负责实现一个数据库在存储层上的所有事情,如连接管理,query优化和响、cache管理等,只有存储层的工作交给NDB数据节点去处理。也就是说在纯粹的 mysql cluster 环境中的 sql 节点,可以被认为是一个不须要提供任何非系统表使用的存储引擎的mysql 服务器,因为它的存储引擎由cluster 中的ndb 节点来担任。所以SQL层各MYSQL服务器的启动与普通MYSQL server的启动也有一定的区别,必须添加ndbcluster参数项才行。可以将其添加在my.cnf配置文件中,也可以通过启动命令来指定;
  2、storage 层的NDB数据节点,也就是上面所说的NDB cluster
  最初的NDB是一个内存式存储引擎,当然也会将数据持久化到存储设备上,但是最新的NDBcluster 存储引擎已经改进了这一点,可以选择数据是全部加载到内存中,还是仅仅加载索引。NDB节点主要实现底层数据存储功能,来保存cluster的数据。每一个cluster 节点保存完整数据的一个fragment ,也就是一个数据分片;(或者一份完整的数据,视节点数目和配置而定);所以只要配置的当,mysql cluster在存储层不会出现单点的问题。一般来说,DNB节点被组织成一个一个的NDB group,一个NDG group 实际上是一组有完全相同物理数据的NDB节点群;
  NDB各个节点对数据的组织,可能每个节点都保存全部数据也可能只保存一部分,主要由节点数目和参数来控制。首先在 mysql cluster主配置文件(在管理节点上一般为config.ini )中,有一个非常重要的参数 NoOfReplicas ,该参数指定了每一份数据被冗余存储在不同节点上的份数,一般至少被设置成2.也只须要设置成2,一般来说,两个互为冗余的节点同时出现故障的概率是非常小的。如果机器和内存足够多的话,也可以设置大一点进一步减少出现故障的概率,此外一个节点上面是否保存所有数据还受到存储节点数目的限制。NDB存储引擎首先保证按no or replicas 参数配置的要求使用存储节点,对数据惊醒冗余,在根据节点数目将数据分段来继续使用多余的NDB节点。分段的数目为节点总数除以NO of replicas;
  3、负责管理各个节点的manage节点主机
  管理节点负责整个cluster集群中各个节点的管理工作,包括集群的配置,启动关闭各节点,对节点进行常规维护,以及实施数据的备份和恢复等。管理节点会获取整个cluster环境中节点的状态和错误信息,并将各个cluster集群中各个节点的信息反馈给整个集群中其他的所有节点。由于管理节点上保存了整个cluster的环境配置,同时担任了集群中各个节点的沟通工作,所以它必须是最先被启动的节点。
  二、环境搭建
  搭建mysql cluster 首先需要至少一个管理节点主机来实现管理功能,一个sql节点来实现mysql功能,以及两个NDB节点实现DNB cluster功能,我们采用双sql节点来搭建测试环境:
  1、硬件准备:
  1)、mysql 节点1     192.168.0.11
  2)、mysql 节点2     192.168.0.12
  3)、NDB   节点1     192.168.0.13
  4)、NDB   节点1     192.168.0.14
  5)、管理节点        192.168.0.15


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-607576-1-1.html 上篇帖子: heartbeat+drbd+mysql实现MySQL高可用 下篇帖子: mysql 提示找不到mysql.sock文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表