`
yuexiaodong
  • 浏览: 70361 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql分布式存储-NDB存储引擎

阅读更多
NDB 存储引擎也叫NDB Cluster 存储引擎,主要用于MySQL Cluster 分布式集群环境,Cluster 是MySQL 从5.0 版本才开始提供的新功能。这部分我们可能并不仅仅只是介绍NDB存储引擎,因为离开了MySQL CLuster 整个环境,NDB 存储引擎也将失去太多意义。简单的说,MysqlCluster 实际上就是在无共享存储设备的情况下实现的一种内存数据库Cluster 环境,其主要是通过NDB Cluster(简称NDB)存储引擎来实现的。
一般来说,一个Mysql Cluster 的环境主要由以下三部分组成:
a) 负责管理各个节点的Manage 节点主机:管理节点负责整个Cluster 集群中各个节点的管理工作,包括集群的配置,启动关闭各节点,以及实施数据的备份恢复等。管理节点会获取整个Cluster 环境中各节点的状态和错误信息,并且将各Cluster 集群中各个节点的信息反馈给整个集群中其他的所有节点。由于管理节点上保存在整个Cluster 环境的配置,同时担任了集群中各节点的基本沟通工作,所以他必须是最先被启动的节点。
b) SQL 层的SQL 服务器节点(后面简称为SQL 节点),也就是我们常说的Mysql Server:主要负责实现一个数据库在存储层之上的所有事情,比如连接管理,query 优化和响应,cache 管理等等,只有存储层的工作交给了NDB 数据节点去处理了。也就是说,在纯粹的Mysql Cluster 境中的SQL 节点,可以被认为是一个不需要提供任何存储引擎的Mysql服务器,因为他的存储引擎有Cluster 环境中的NDB 节来担任。所以,SQL 层各Mysql 服务器的启动与普通的Mysql 启动有一定的区别,必须要添加ndbcluster 项,可以添加在my.cnf 配置文件中,也可以通过启动命令行来指定。
c) Storage 层的NDB 数据节点,也就是上面说的NDB Cluster:NDB 是一个内存式存储引擎也就是说,他会将所有的数据和索引数据都load 到内存中,但也会将数据持久化到存储设备上。不过,最新版本,已经支持用户自己选择数据可以不全部Load 到内存中了,这对于有些数据量太大或者基于成本考虑而没有足够内存空间来存放所有数据的用户来说的确是一个大好消息。NDB 节点主要是实现底层数据存储的功能,保存Cluster 的数据。每一个NDB 节点保存完整数据的一部分(或者一份完整的数据,视节点数目和配置而定),在MySQL CLuster 里面叫做fragment。而每一个fragment,正常情况来讲都会在其他的主机上面有一份(或者多分)完全相同的镜像存在。这些都是通过配置来完成的,所以只要配置得当,MysqlCluster 在存储层不会出现单点的问题。一般来说,NDB 节点被组织成一个一个的NDB Group,一个NDB Group 实际上就是一组存有完全相同的物理数据的NDB 节点群。
上面提到了NDB 各个节点对数据的组织,可能每个节点都存有全部的数据也可能只保存一部分数据,主要是受节点数目和参数来控制的。首先在Mysql Cluster 主配置文件(在管理节点上面,一般为config.ini)中,有一个非常重要的参数叫NoOfReplicas,这个参数指定了每一份数据被冗余存储在不同节点上面的份数,该参数一般至少应该被设置成2,也只需要设置成2 就可以了。因为正常来说,两个互为冗余的节点同时出现故障的概率还是非常小的,当然如果机器和内存足够多的话,也可以继续增大。一个节点上面是保存所有的数据还是一部分数据,还受到存储节点数目的限制。NDB 存储引擎首先保证NoOfReplicas 参数配置的要求对数据冗余,来使用存储节点,然后再根据节点数目将数据分段来继续使用多余的NDB 节点,分段的数目为节点总数除以NoOfReplicas 所得。
分享到:
评论

相关推荐

    mysql-cluster-8.0.20-winx64.zip

    这种分区策略称为数据分区或NDB存储引擎。 4. **实时事务处理**:由于数据分布在网络中的多个节点上,MySQL Cluster支持ACID(原子性、一致性、隔离性、持久性)事务,特别适合需要高度一致性和低延迟的应用场景。 ...

    mysql-cluster-gpl-7.2.4-win32

    5. SQL接口:MySQL Cluster不仅支持NDB存储引擎,还保留了传统的InnoDB和MyISAM等存储引擎,用户可以通过标准SQL接口访问和操作数据,降低了学习和使用成本。 6. 资源效率:由于数据分布在整个集群中,MySQL ...

    MySQL Cluster 8.0.27(mysql-cluster-8.0.27-winx64.zip)

    MySQL Cluster采用分布式共享无单点故障的设计,由三部分组成:管理节点(NDP),数据节点(Data Node)和SQL节点(SQL Node)。管理节点负责集群的配置和监控,数据节点存储实际数据并执行数据分区,SQL节点处理...

    mysql分布式集群安装

    其中,MySQL Cluster(MySQL集群)是一种基于NDB(Network Database)存储引擎的解决方案,能够实现数据复制、负载均衡等功能,有效提高系统的稳定性和性能。 本文将详细介绍MySQL Cluster 7.5.6版本的安装配置过程...

    mysql-8.0-en.pdf

    - 存储引擎:重点讲解InnoDB(支持ACID事务)和MyISAM(非事务性)引擎,以及NDB Cluster,它是为高可用性和分布式事务设计的存储引擎。 - 安全与认证:涵盖用户权限管理、加密和身份验证机制,以及如何进行安全配置...

    MySQL NDB集群部署与维护

    它使用ndbcluster存储引擎,并在启动时需要指定--ndbcluster参数。 - 节点组(Nodegroup):是一组存储分区数据或副本集合的节点。节点组中的节点数量等于数据分区数量除以副本数量。 - 分区(Partition):由一个...

    mysql-cluster-gpl-7.2.8.tar.gz

    MySQL Cluster是MySQL数据库的一个版本,它采用分布式内存架构,将数据分布在多个节点上,以实现数据的冗余和负载均衡。在7.2.8这个版本中,用户可以期待以下关键特性: 1. **分布式事务处理**:MySQL Cluster支持...

    MySQL Cluster NDB 7.3 and MySQL Cluster NDB 7.4 官方说明翻译

    MySQL Cluster 使用 NDB 存储引擎(也称为 NDB 引擎),允许多台计算机以集群方式协同工作,以实现数据的分散存储和处理。 **18.1 MySQL Cluster 概述** MySQL Cluster 是一种分布式事务处理系统,它通过将数据分布...

    MySQL 8.0 参考手册- 2021-12-25.pdf

    手册详细阐述了MySQL 8.0的各种特性,例如增强的性能优化、新的数据类型、改进的查询优化器、窗口函数、JSON字段支持、更好的安全性和权限管理、在线DDL(数据定义语言)操作以及InnoDB存储引擎的增强。此外,还可能...

    MySQL-Cluster-server-gpl-7.3.7-1.el6.x86_64

    MySQL Cluster是MySQL适合于分布式计算...MySQL Cluster 使用了一个专用的基于内存的存储引擎——NDB引擎,这样做的好处是速度快, 没有磁盘I/O的瓶颈,但是由于是基于内存的,所以数据库的规模受系统总内存的限制。

    MySQL存储引擎简介

    如MEMORY存储引擎适合用于创建临时表,MERGE存储引擎适用于多个MyISAM表合并成为一个表,NDB存储引擎则适用于构建分布式数据库。 在未来的版本中,MySQL持续优化其存储引擎的特性,开发者需要关注新的特性更新,...

    MySQL-Cluster-test-gpl-7.2.4-1.sles11.x86_64.rar

    5. **NDB存储引擎**:MySQL Cluster使用NDB存储引擎,专为分布式事务处理设计,支持ACID属性(原子性、一致性、隔离性和持久性)。 6. **高可扩展性**:MySQL Cluster可以通过添加更多的节点轻松地进行水平扩展,以...

    mysql分布式解决方案.pdf

    MySQL分布式解决方案是针对大型互联网应用的数据存储需求而设计的一种架构,它可以提高数据库系统的可扩展性、可用性和性能。以下是对MySQL分布式解决方案的详细说明: ### 分布式架构基础 MySQL分布式解决方案...

    MySQL课程之MySQL存储引擎入门

    - **Cluster/NDB**:提供高可用性和分布式存储。 - **CSV**:存储数据为CSV格式,方便导入导出。 - **BLACKHOLE**:接收所有写入但不存储,常用于日志或复制的中继。 - **Example**:示例引擎,用于演示如何创建...

    MySQL分布式实战宝典 视频教程 下载 因为太大存百度云盘3.zip

    学生将学习到如何设置和管理MySQL集群,理解NDB存储引擎的工作原理,以及如何确保数据的强一致性。 在性能优化方面,课程会讲解InnoDB存储引擎的特性,如行级锁定和事务处理,以及如何通过索引优化、查询优化和内存...

    CentOS8部署Mysql NDB Cluster8+Mysql Router8方案及应用.pdf

    MySQL NDB Cluster是一种高可用性和高性能的数据库解决方案,尤其适合需要数据复制和分布式事务处理的场景。在CentOS8上部署MySQL NDB Cluster 8及Mysql Router 8,需要经过一系列详细步骤,包括MySQL的卸载、统一...

    mysql分布式思维(十一)- MySQL Cluster

    MySQL Cluster是一种高可用、高性能的分布式数据库解决方案,它在MySQL服务器的基础上增加了数据的冗余和分布处理能力。本文将深入探讨MySQL Cluster的核心概念、架构、工作原理以及如何使用。 一、MySQL Cluster...

    MySQL Cluster 3台机器搭建集群环境

    在`/etc/my.cnf`配置文件中,通过`ndbcluster`选项启用NDB存储引擎,并设置`ndb-connectstring`指向管理节点的IP地址。 集群的搭建过程涉及以下步骤: 1. 在所有节点上安装MySQL Cluster软件,创建用户和组,并...

    mysql-cluster-excerpt-5.1-en.a4.pdf

    NDB存储引擎确保了数据在多个节点之间的分布,并提供了数据复制以提高可用性和容错能力。 2. **数据分布**:在MySQL Cluster中,数据被均匀地分布在不同的节点上,每个节点都存储着数据的子集。这种分布策略不仅...

Global site tag (gtag.js) - Google Analytics