
几种MySQL Cluster方案的实战体验.docx
5星
- 浏览量: 0
- 大小:None
- 文件类型:DOCX
简介:
本文档分享了几种不同的MySQL集群部署和优化策略的实际操作经验与性能测试结果,为数据库管理员提供实用参考。
MySQL 集群方案详解
MySQL Cluster 是 MySQL 官方提供的集群部署解决方案,并且有着较长的历史背景。它支持通过自动分片来扩展读写性能,并提供实时备份以确保数据冗余,从而实现高可用性,声称可以达到 99.999% 的可靠性。
MySQL Cluster 的架构和实现原理主要由以下三种服务组成:
1. NDB Management Server:该管理服务器用于控制集群中的其他类型节点(包括 Data Node 和 SQL Node)。通过它能够配置各节点信息,并进行启动或停止操作。
2. SQL Node:在 MySQL Cluster 中,SQL 节点实际上是一个使用了 NDB 引擎的 mysql server 进程。它的主要作用是为外部应用程序提供访问集群数据的入口。
3. Data Node:用于存储集群中的实际数据;系统会尽可能地将这些数据保存于内存中。
MySQL Cluster 的缺点和限制如下:
* 对需要进行分片处理的表,必须将其引擎从 Innodb 更改为 NDB。对于不需要分片操作的数据,则无需更改其引擎类型。
* 在 NDB 中仅支持 Read Committed 事务隔离级别(即一个事务在提交前看不到该事务所做的修改)。而 InnoDB 引擎则支持所有标准的事务隔离级别,默认使用 Repeatable Read,不存在上述限制问题。
* 外键的支持:虽然 MySQL Cluster 的最新版本已经实现了对外键的支持,但由于外键关联记录可能位于其他分片节点中,因此建议移除所有的外键定义以提高性能表现。
* Data Node 节点的数据会尽可能存储在内存中,对系统内存的要求较高。
MySQL Fabric 是 Oracle 在 2014 年推出的一项用于管理 MySQL 服务的工具。它旨在提供扩展性和易于使用的特性,当前实现了高可用性及通过数据分片实现可伸缩性的功能,并且这两者可以单独使用或结合应用。
MySQL Fabric 的架构和工作原理如下:
* 高可用性:Fabric 使用 HA 组来构建系统结构,在每个组中有一个主服务器和其他备用服务器。这些备份节点之间会保持同步复制以确保数据冗余。
* 负载均衡与扩展性:通过使用多个 HA 组实现分片,各组间负责不同的数据片段(同组内的数据是冗余的)。应用程序只需向 Fabric 的 Connector 发送查询或插入等请求,Connector 会自动将这些操作分配到相应的组中执行。
* 当主服务器发生故障时,Fabric 的 Connector 能够立即识别并切换至一个备用节点作为新的主服务端,而不需要对应用代码进行任何修改。
MySQL Fabric 的缺点和限制如下:
* 自动增长字段不能被用作分片键;
* 事务及查询仅限于同一分片内完成;如果事务中更新的数据跨越多个片段,则会导致错误。同样地,在执行跨片段的查询时,结果集也可能不完整或出现异常。
数据库系统通常提供四种不同的事务隔离级别:
A. Serializable(串行化):在事务执行期间完全阻止其他并发事务对数据进行修改。
B. Repeatable Read(可重复读取):允许一个事务看到其他已提交的插入操作,但不允许其看到更新过的现有记录内容。
C. Read Committed(读已提交的数据):使一个事务能够查看到所有已经由其他已完成的事务所作出的新数据变更。
D. Read Uncommitted(未提交即读取):允许一个事务访问还未被任何其它事务正式确认或回滚掉的数据修改。
全部评论 (0)


