MySQL NDB 集群常见问题解答
» MySQL NDB 集群数据库
一般
- 什么是 MySQL NDB 集群?
- 什么是 MySQL NDB 集群运营商级版?
- MySQL NDB 集群的客户案例有哪些?
- MySQL NDB 集群的当前版本是什么?
- MySQL NDB 集群是否需要任何特殊的硬件或软件?
- MySQL NDB 集群的推荐系统要求是什么?
- 如何判断一个工作负载是否适合 MySQL NDB 集群?
- MySQL NDB 集群最理想的应用场景是什么?
- MySQL NDB 集群是否支持虚拟机环境?
技术
- MySQL NDB 集群的典型性能指标是什么?
- 创建最小集群配置需要多少台物理服务器?
- 数据节点可以分散到不同的地理位置吗?
- MySQL NDB 集群有哪些数据访问 API?
- 32 位应用程序的接口与 64 位应用程序的接口不同吗?
- MySQL NDB 集群是否适合作为嵌入式数据库?
- MySQL NDB 集群的地理复制是什么?
- 复制是双向的吗?
- 当使用 MySQL NDB 集群作为内存数据库时,是否会存在数据丢失的风险?
- MySQL NDB 集群是否包含无磁盘选项?
» MySQL NDB 集群管理器
- MySQL NDB 集群管理器是开源软件吗?
- 什么是 MySQL NDB 集群管理器?
- MySQL NDB 集群管理器的优势是什么?
- 你能举一个实际的例子,说明 MySQL NDB 集群管理器如何在提高生产效率和降低停机风险方面提供帮助吗?
- MySQL NDB 集群管理器提供哪些管理功能?
- MySQL NDB 集群管理器是管理整个集群还是只管理集群中的单个节点?
- MySQL NDB 集群管理器提供哪些监控功能?
- MySQL NDB 集群管理器的许多功能已经可用或可以通过脚本实现,那么它的优势在哪里?
- MySQL NDB 集群管理器可以恢复集群中失败的节点吗?
- 因此,MySQL NDB 集群管理器可以管理、监控和恢复集群中的所有节点?
- MySQL NDB 集群管理器的代理程序故障会影响 MySQL NDB 集群数据库的可用性吗?
- MySQL NDB 集群管理器如何与 MySQL NDB 集群数据库实现集成?
- MySQL NDB 集群管理器如何影响之前管理 MySQL NDB 集群的方法?
- 我仍然需要在集群中使用管理节点吗?
- MySQL NDB 集群管理器可以自动重启失败的代理程序吗?
- 恢复的 MySQL NDB 集群管理器代理程序可以自动与其他代理程序同步吗?
- MySQL NDB 集群管理器可以跨重启持久化配置数据吗?
- MySQL NDB 集群管理器如何确保集群配置在集群中的所有节点上保持一致?
- MySQL NDB 集群管理器支持哪些平台?
- MySQL NDB 集群管理器支持 MySQL NDB 集群数据库的哪些版本?
- 在哪里可以了解更多关于 MySQL NDB 集群管理器的信息?
MySQL NDB 集群数据库常见问题解答 - 一般
1. 什么是 MySQL NDB 集群?
A: MySQL NDB 集群建立在 NDB 存储引擎之上,提供了一个高度可扩展、实时、符合 ACID 规范的事务型数据库,将 99.999% 的可用性与开源的低 TCO 相结合。MySQL NDB 集群围绕分布式、多主架构设计,没有单点故障,可在商品硬件上横向扩展,以服务读写密集型工作负载,可以通过 SQL 和 NoSQL 接口访问。
MySQL NDB 集群的实时设计提供可预测的毫秒级响应时间,并能够每秒处理数百万次操作。对内存和磁盘数据的支持、带有负载均衡的自动数据分区(分片)以及在运行的集群中添加节点而无需停机,使得数据库能够线性扩展,以处理最不可预测的基于 Web 的工作负载。
2. 什么是 MySQL NDB 集群运营商级版?
A: MySQL NDB 集群运营商级版 (CGE) 包含用于管理、监控、安全性和审计 MySQL NDB 集群数据库的工具,以及对 Oracle Premier Support 的访问权限。MySQL NDB 集群运营商级版可通过订阅或商业许可和支持获得。
- 了解更多关于 MySQL NDB 集群运营商级版
3. MySQL NDB 集群的客户案例有哪些?
4. MySQL NDB 集群的当前版本是什么?
A: 当前 GA 版本为 MySQL NDB 集群 8.0。MySQL 8.0 与 MySQL NDB 集群集成并捆绑在一起。
5. MySQL NDB 集群是否需要任何特殊的硬件或软件?
A: 不需要。MySQL NDB 集群旨在运行在商品硬件上。使用专门的硬件,例如 Infiniband 网络互连,可以实现更高的性能水平,尤其是在具有许多节点的大型集群中。
6. MySQL NDB 集群的推荐系统要求是什么?
A | 操作系统 | 查看当前支持平台列表 » |
CPU | Intel Xeon E5-2600 v4(每个插槽 16 个或更多核心) | |
内存 | 64GB RAM | |
存储 | 512GB SSD | |
网络 | 1 个或更多节点(千兆以太网 - TCP/IP) |
7. 如何判断一个工作负载是否适合 MySQL NDB 集群?
A: 如果你对以下任何问题回答“是”,那么你应该考虑将 MySQL NDB 集群作为应用程序数据库的选项。
- 你需要对数据库进行分片以满足不断增长的写操作(UPDATE、INSERT、DELETE)量吗?
- 你需要确保从 SELECT 操作返回的结果一致,无论它们是从哪个节点返回的?
- 数据库故障会导致应用程序停机,从而造成业务中断,包括收入损失、信誉损失等吗?
- 在故障转移期间数据丢失(即使只是几秒钟)会导致业务中断吗?
- 用户的体验对响应时间敏感吗?
- 你需要将数据库复制到不同的地理区域,每个区域都提供读写操作?
- 你是否运行各种应用程序,这些应用程序可以从直接访问数据中获益,而不总是依赖于 SQL(例如使用 node.js 的 JavaScript、memcached API、Java 和 JPA 应用程序、HTTP/REST Web 服务和 C++ 应用程序)?
- 你的应用程序主要由并行执行的“短”事务(例如每个事务 10 次操作而不是 1000 次)组成吗?
- 你的应用程序主要由以下操作组成吗?
- 主键数据库访问,以及一些 JOIN 操作
- 与
- 定期执行完整表扫描和 JOIN 操作,返回数万行?
8. MySQL NDB 集群最理想的应用场景是什么?
A: 理想的应用程序包括:
- 高容量 OLTP
- 实时分析
- 具有欺诈检测功能的电子商务和金融交易
- 移动和微支付
- 会话管理和缓存
- 馈送流、分析和推荐
- 内容管理和交付
- 大型多人在线游戏
- 通信和存在服务
- 用户配置文件管理和授权
查看完整的 MySQL NDB 集群用户案例研究和应用程序列表.
9. MySQL NDB 集群是否支持虚拟机环境?
A: 是的。MySQL NDB 集群已在 Oracle VM 上经过测试和认证。
10. MySQL NDB 集群的典型性能指标是什么?
A
- 可用性
- 99.999%(每年不到 5 分钟的停机时间)
- 性能
- 响应时间:低于 5 毫秒(使用同步复制和通过 SQL 访问)。使用 NoSQL 访问方法之一可以实现更快的响应时间。
- 吞吐量:在一台配备 64GB RAM 的双路 Intel 服务器上,每秒 600,000 次以上复制的 UPDATE 操作。在一个包含 30 台 Intel 服务器的集群中,每分钟 10 亿次 UPDATE 操作。
- 故障转移
- 亚秒级故障转移使你能够不间断地提供服务
- 可扩展性
- 横向扩展、纵向扩展和动态扩展
- 为了实现经济高效的横向扩展
- 每个集群添加更多应用程序和数据节点,或者
- 每个数据节点添加更多 CPU 线程(16、32、64 等),或者
- 每个数据节点添加更多内存(32GB、64GB 等)
11. 创建最小集群配置需要多少台物理服务器?
A: 为了评估和开发目的,你可以在一台主机上运行所有节点。为了获得完整的冗余性和容错性,你需要至少 6 台物理主机。
- 2 个数据节点
- 2 个 SQL/NoSQL 应用程序节点
- 2 个管理节点
许多用户会将管理节点和应用程序节点共置,这会将节点数量减少到 4 个。
12. 数据节点可以分散到不同的地理位置吗?
A: 是的
MySQL NDB 集群长期以来一直提供地理复制,将集群分布到远程数据中心,通过将数据推送到用户附近以减少地理位置延迟的影响,以及提供灾难恢复功能。
地理复制是异步的,可以实现为主动/主动或主动/被动集群。
地理复制是跨数据中心部署的推荐部署模式。
13. MySQL NDB 集群有哪些数据访问 API?
A: 应用程序可以使用任何 MySQL 连接器进行开发。MySQL NDB 集群还通过 JavaScript、Memcached、C++、Java、JPA 和 HTTP/REST 提供原生 NoSQL 连接。
14. 32 位应用程序的接口与 64 位应用程序的接口不同吗?
A: 不,接口是相同的。
15. MySQL NDB 集群是否适合作为嵌入式数据库?
A: 是的。MySQL NDB 集群经常被 ISV 和网络设备提供商 (NEP) 用作嵌入式数据库。 客户列表 »
16. MySQL NDB 集群的地理复制是什么?
A: 地理复制支持在主动/主动地理位置分离的集群之间进行异步复制。这通常用于扩展全球服务、数据本地化和灾难恢复。
17. 复制是双向的吗?
A: 是的,MySQL NDB 集群支持单向和双向复制。使用双向地理复制时,会提供事务冲突检测和解决功能。
18. 当使用 MySQL NDB 集群作为内存数据库时,是否会存在数据丢失的风险?
A: MySQL NDB 集群配置通常会在不同的主机上至少保存 2 个数据副本。为了覆盖整个系统故障,事务日志和检查点文件会以可配置的频率持久化到磁盘。此外,非索引数据可能会存储在磁盘上。
19. MySQL NDB 集群是否包含无磁盘选项?
A: MySQL NDB Cluster 同时提供无盘选项和无日志选项。
对于无盘选项,以下限制适用:
- 无磁盘数据
- 集群故障时数据丢失
- 无备份
对于无日志选项,集群仍然会创建日志文件,但数据不会被检查点到磁盘。
MySQL NDB Cluster Manager 常见问题解答
20. MySQL NDB Cluster Manager 是开源软件吗?
A: 否。MySQL NDB Cluster Manager 仅作为商业版 MySQL NDB Cluster Carrier Grade Edition (CGE) 数据库的一部分提供。要购买 MySQL NDB Cluster CGE 的订阅或许可证,请联系 MySQL 销售团队。
21. 什么是 MySQL NDB Cluster Manager?
A: MySQL NDB Cluster Manager 是一种软件,通过自动化常见的管理任务,简化了 MySQL NDB Cluster 数据库的创建和管理。
22. MySQL NDB Cluster Manager 的优势是什么?
A: 通过使用 MySQL NDB Cluster Manager,数据库管理员 (DBA) 和系统管理员能够提高工作效率,使他们能够专注于战略性 IT 举措并更快地响应不断变化的用户需求。同时,以前由于手动配置错误导致的数据库停机风险也大大降低。
23. 您能提供一个实际的例子来说明 MySQL NDB Cluster Manager 如何提高工作效率并降低停机风险吗?
A: 例如,以前需要 46 个手动命令1 并消耗 DBA 2.5 小时2 的时间的 MySQL NDB Cluster 数据库滚动重启管理操作现在可以通过单个命令执行,并且使用 MySQL NDB Cluster Manager 实现完全自动化,从而降低
- 管理复杂性和开销;
- 通过配置和变更管理流程的自动化降低停机风险;
- 管理命令的自定义脚本编写或内部管理工具的开发和维护。
24. MySQL NDB Cluster Manager 提供哪些管理功能?
A: 管理员能够使用单个命令创建和删除整个集群,启动、停止和重启集群,以及在线添加节点。因此,管理员不再需要按顺序手动重启每个数据节点,也不需要创建自定义脚本来自动化此过程。
MySQL NDB Cluster Manager 自动执行在线管理操作,包括升级、降级和重新配置运行中的集群,而不会中断访问数据库的应用程序或客户端。管理员不再需要手动编辑配置文件并将其分发到所有其他集群节点,也不需要确定是否需要滚动重启。MySQL NDB Cluster Manager 处理所有这些任务,从而强制执行最佳实践,使在线操作变得更加简单、快速和不易出错。
25. MySQL NDB Cluster Manager 是管理整个集群还是集群中的单个节点?
A: 两者都可以。MySQL NDB Cluster Manager 提供了将整个集群视为单个实体进行控制的能力,同时还支持非常细粒度的控制,直至集群本身内的单个进程。
26. MySQL NDB Cluster Manager 提供哪些监控功能?
A: MySQL NDB Cluster Manager 能够通过自动轮询集群中的每个节点,在操作系统和每个进程级别监控集群运行状况。它可以检测进程或服务器主机是存活、死亡还是挂起,从而更快地进行问题检测、解决和恢复。
27. MySQL NDB Cluster Manager 的许多功能已经可用或可以通过脚本编写,那么它的优势是什么?
A: MySQL NDB Cluster Manager 通过自动化以前由管理员手动执行的任务,集成了并扩展了现有的管理功能。如上例所示,以前需要 46 个手动命令的过程现在减少到一个命令,每个过程步骤都实现完全自动化。
在脚本编写甚至开发自定义管理系统方面,手动开发、测试和维护此类项目非常耗时、成本高且容易出错。对于许多维护活动,使用 MySQL NDB Cluster Manager 可以消除对这种类型活动的需要。
通过自动化,MySQL NDB Cluster Manager 简化了集群管理,同时降低了成本、风险和工作量。
28. MySQL NDB Cluster Manager 可以恢复集群中失败的节点吗?
A: 是的。MySQL NDB Cluster 本身具有自我修复功能,通过自动重启失败的数据节点,无需手动干预。MySQL NDB Cluster Manager 通过监控和自动恢复 SQL 和管理节点扩展了此功能。这支持对集群进行更无缝、更完整的自我修复,以完全恢复应用程序的运行和容量。
29. 所以 MySQL NDB Cluster Manager 可以管理、监控和恢复集群中的所有节点吗?
A: 是的,但使用原生 NDB API 的应用程序节点除外(即通过 C++、Cluster Connector for Java、OpenLDAP 等直接接口访问集群的节点)。
30. MySQL NDB Cluster Manager 代理的失败会影响 MySQL NDB Cluster 数据库的可用性吗?
A: 不会。为了确保高可用性操作,MySQL NDB Cluster Manager 与实际数据库进程分离,因此,如果管理代理停止或升级,它不会以任何方式影响正在运行的数据库。当任何给定代理或关联的主机不可用时,MySQL NDB Cluster Manager 继续在剩余节点上运行。
31. MySQL NDB Cluster Manager 如何与 MySQL NDB Cluster 数据库一起实施?
A: MySQL NDB Cluster Manager 实施为一组代理,每个代理都在将包含要管理的 MySQL NDB Cluster 节点(进程)的每个物理主机上运行。管理员将常规 mysql 客户端连接到这些代理中的任何一个,然后每个代理相互通信并协同工作,以跨组成集群的节点执行操作。
32. MySQL NDB Cluster Manager 如何影响以前管理 MySQL NDB Cluster 的方法?
A: 使用 MySQL NDB Cluster Manager 管理 MySQL NDB Cluster 部署时,管理员不再编辑配置文件(例如 config.ini 和 my.cnf);相反,这些文件由代理创建和维护。实际上,如果手动编辑这些文件,更改将被代理中保存的配置信息覆盖。
组成 MySQL NDB Cluster 部署的所有进程都由 MySQL NDB Cluster Manager 启动、重启和停止。这包括数据节点、管理节点和 MySQL Server 节点。
类似地,使用 MySQL NDB Cluster Manager 时,管理员不得使用 ndb_mgm 命令执行管理操作(该命令直接连接到管理节点,这意味着代理本身无法看到使用该命令执行的任何操作)。
33. 我还需要集群中的管理节点吗?
A: MySQL NDB Cluster Manager 的引入并没有消除对管理节点的需求;特别地,它们继续执行许多关键角色
- 当数据节点启动(或重启)时,它们连接到管理节点以检索其配置数据(管理节点反过来从代理创建的配置文件中获取该数据);
- 通过 MySQL NDB Cluster Manager 停止或重启数据节点时,状态更改实际上是由管理节点执行的;
- 管理节点可以继续充当仲裁器(避免脑裂场景)。因此,重要的是继续在与数据节点不同的主机上运行这些进程;
- 一些报告信息(例如,内存使用情况)在 MySQL NDB Cluster Manager 中尚不可用,仍然可以使用 ndb_mgm 工具执行。
34. MySQL NDB Cluster Manager 可以自动重启失败的代理吗?
A: 代理本身没有守护进程,因此,为了获得最高级别的可用性,管理员可以选择使用进程监控器来检测代理的失败并自动重启它;例如,通过在 /etc/init.d 中创建脚本
35. 恢复的 MySQL NDB Cluster Manager 代理可以自动与其他代理重新同步吗?
A: 是的。当管理代理重启时,它们会自动与其他正在运行的管理代理重新同步,以确保整个集群的配置一致性,无需管理员干预。
36. MySQL NDB Cluster Manager 可以跨重启持久化配置数据吗?
A: 是的。所有 MySQL NDB Cluster 配置信息和进程标识符都持久化到磁盘,使它们能够在系统故障或 MySQL NDB Cluster Manager 的重启中幸存。
37. MySQL NDB Cluster Manager 如何确保集群配置在集群中的所有节点上保持一致?
A: MySQL NDB Cluster Manager 支持每个管理代理之间的异步通信,以便可靠地传播重新配置请求。因此,配置在集群中的所有节点上保持一致。
任何更改只有在所有节点确认已收到重新配置请求后才会提交。如果一个或多个节点未能收到请求,则会向客户端报告错误。通过自动协调重新配置请求,消除了由于手动分发配置文件而导致的错误机会。
38. MySQL NDB Cluster Manager 支持哪些平台?
A: 请参阅 支持平台页面。
39. MySQL NDB Cluster Manager 支持哪些版本的 MySQL NDB Cluster 数据库?
A: MySQL NDB Cluster 6.3 及更高版本。
40. 我在哪里可以了解更多关于 MySQL NDB Cluster Manager 的信息?
A: 从以下资源中获取: