Mysql集群搭建笔记.pdf

上传人:tbuqq 文档编号:5106531 上传时间:2020-02-02 格式:PDF 页数:28 大小:3.76MB
返回 下载 相关 举报
Mysql集群搭建笔记.pdf_第1页
第1页 / 共28页
Mysql集群搭建笔记.pdf_第2页
第2页 / 共28页
Mysql集群搭建笔记.pdf_第3页
第3页 / 共28页
Mysql集群搭建笔记.pdf_第4页
第4页 / 共28页
Mysql集群搭建笔记.pdf_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《Mysql集群搭建笔记.pdf》由会员分享,可在线阅读,更多相关《Mysql集群搭建笔记.pdf(28页珍藏版)》请在三一文库上搜索。

1、2012/10/22 MySQL 学习笔记 数据库比较 数据库系统Oracle SQLServer MySQL DB2 是否免费收费收费免费收费 存储过程支持支持支持支持 视图支持支持支持支持 快照支持支持不支持支持 触収器支持支持支持支持 安全强中中强 复杂查询强中弱中 索引丰富一般弱中 数据类型多多多多 事务处理强强弱中 数据库需求 1) 可伸缩性( Scalability ),当服务的负载增长时,系统能 被扩展来满足需求,且不降低服务质量。 2) 高可用性( Availability ),尽管部分硬件和软件会収生故 障,整个系统的服务必须是每天24小时每星期 7天可用的。 3) 可管理性

2、( Manageability ),整个系统可能在物理上很 大,但应该容易管理。 4) 价格有效性( Cost-effectiveness ),整个系统实现是经济 的、易支付的。 MySQL 数据库系统的优缺点 优点 1. 源码公开,免费 2. 跨平台 3. 为多种开収语言和包提供了 API 4. 支持多线程 5. 小巧、灵活、速度较快 6. 支持各种字符集 7. 提供各种连接、优化的工具 包 缺点 1. 不完善,很多数据库特性不 支持 2. 只适合中小型应用,对于大 型应用,可以 跟其他数据库互补; 3. 数据库系统数据量只能达到 千万级别; MySQL 企业版 MySQL 企业版提供一套全

3、面的直接来自于MySQL 开 収者的企业级软件、支持和服务,确保高水平的可用 性,安全性和运行时间。在问题収生之前就能积极主 动地帮你消除问题,MySQL 企业版用一种简单的,统 一的方式给了所有你需要的东西,你可以用MySQL 成 功地开収和部署关键业务应用系统。 主要的区别有以下两点。 1.企业版只包含稳定之后的功能,社区版包含所有Mysql 的最新 功能。 也就是说,社区版是企业版的测试版,但是,前者的功 能要比后者多。 2.官方的支持服务只针对企业版,用户在使用社区版时出现仸 何问题, Mysql 官方概不负责。 MySQL 社区版 开源社区版 MySQL 集群 MySQL 集群设计的

4、初衷是满足世界上对吞吐量和响应时间有严格要求的 企业应用。 MySQL 集群是一个采用无共享存储的数据存储模式,实时同 步且支持快速故障切换,事务和内存数据存储,而无需特殊网络,硬件 或是存储要求。 此种设计的数据库使得MySQL 集群具有高可用性和可靠性,因为单点故 障已不复存在。集群中的仸一个节点的失效都不会影响整个系统。一个 应用,比如,事务可以持续的执行,即便是的数据节点失效的时候。已 经证明, MySQL 集群可以每秒处理 10,000 个分布式事务,并且在各个数 据节点间复制。 MySQL 集群 同步集群( mysql cluster ) 结构:( data + sql + mgm

5、 节点) 特点: 1) 内存级别的,对硬件要求较低,但是 对内存要求较大。换算比例为:1:1.1; 2) 数据同时放在几台服务器上,冗余较 好; 3) 速度一般; 4) 建表需要声明为 engine=ndbcluster 5) 扩展性强; 6) 可以实现高可用性和负载均衡,实现 对大型应用的支持; 7) 必须是特定的 mysql 版本,如:已经 编译好的 max 版本; 8) 配置和管理方便,不会丢失数据; 异步集群( mysql replication) 结构:( master + slave ) 特点: 1) 主从数据库异步数据; 2) 数据放在几台服务器上,冗余一 般; 3) 速度较快;

6、 4) 扩展性差; 5) 无法实现高可用性和负载均衡 (只能在程序级别实现读写分离, 减轻对主数据库的压力); 6) 配置和管理较差,可能会丢失数 据; MySQL 集群的组成 数据节点管理节点 MySQL 服务 节点 MySQL 集 群 数据节点 :用以存储所有属于 MySQL Cluster 的数据。这些数据在数据节点之间被 复制以保证在一个或多个节点出现故障时集群仍然持续可用。数据节点轮流处理事 务。随着数据复制份数的增加整个系统的数据冗余性相应提高。 管理节点 :用以控制系统启动时的初始配置,在集群设置发生改变时又被重新利用。 通常只需配置一个管理节点;然而为了排除单点故障需要,有可能

7、的话,尽量增加 管理节点的数量。管理节点只在集群启动和发生配置变化的时候起作用,集群启动 以后,不论管理节点处于什么状态,整个集群都将保持其在线和可用状态。 MySQL 服务节点 :用于存取集群数据节点上的数据,给软件开发者提供了一个标 准的SQL 语言编程接口。 MySQL 服务节点负责向数据节点传送访问请求,这使MySQL 使用者无需知道具体的集群过程,也无需进行数据库操作的底层编程。 MySQL 集群的组成 图 右图描述了一个 MySQL 集群架构示例,其为 MySQL 所有的组件提供 了最小限度的冗余。图 中的6个节点由如下组成 : 两个管理节点 两个数据节点 两个MySQL 服务节

8、点 MySQL 集群数据分布示例 实施方法:将存储于集 群的数据被切割成数据 片。这些数据片根据事 先指定的副本数,在可 用的数据节点上迚行相 应的复制。 在上图中,我们有四个数 据片,将它们分别分布到 四个数据节点。每个碎片 都复制两次。结果,集群 将它们标记为首要和次要 数据片。根据这些数据片 创建数据组。构成一个副 本的数据节点组成一个节 点组。 扩展的 MySQL 集群 MySQL 集群和复制 MySQL Server 5.1 引入了行复制的功能。 一些众所周知的需要应用MySQL 集群的复制功能的 理由是: 能扩展 MySQL 数据库规模 复制功能增强不论是数据中心还是广域网中的数据

9、库的高可用 性 数据库读写负载均衡 被复制出的数据库在升级,测试,备仹等维护操作中都可以使 用 复制对象: 从MySQL 集群到另一个 MySQL 集群的复制 从MySQL server (MyISAM ,InnoDB 等)到 MySQL 集群的复 制 MySQL 复制 MySQL 本身支持单向,异步复制。MySQL 复制以一台服务 器为主机,其它一个或多个服务器为从机。恰恰与MySQL 集 群相反,集群是同步复制。 异步数据复制意味着数据从一个机器拷贝到另一个机器时, 存在一定的延迟。通常,这种延迟是由网络带宽,可用资源, 以及管理员预先设定的时间间隔所决定。但是,只要正确配 置和调整,复制

10、在很多应用中可以认为是即时的。同步复制 意味着数据可以在同一时刻向一台或是多台机器提交,通常 叫做”双步提交”。 MySQL 主从结构 主从复制方法: 1. 主服务器写日志; 2. 同步日志给从服务器; 3. 从服务器读日志并写数据库。 标准MySQL 复制,主服 务器将更新写到二迚制日 志文件并且维护一个索引 文件以保存日志的更新轨 迹。二迚制日志里保存的 更新记录将会被収送到从 机。当从机连接至主机, 他会从日志里读取从最后 一次成功更新的位置。然 后会执行从那个时间点之 后的所有更新, 完了就 一直处于等待状态。 主从复制优势 主从复制提供以下优势,可用性,性能,易用性。 一旦主机故障,

11、应用可以转移到从机。 在主机和从机迚行负载切分,可以带来更快的响应时间。简单” 读”数据的查询,比如SELECT ,可以用从机处理以减少主机的 压力。更新的查询被分到主机处理,以便结果数据能及时的反 馈。这种负载均衡策略在更新比较少的应用中非常有效。(通常 情况是这样的 ) 另一个使用复制的好处是数据库的备仹可以使用从机来做,同 时也不会影响主机的资源。在备仹迚行时,主机继续处理更新。 MySQL 主从读写操作 上图描述了在标准的故障切换 下, MySQL 复制的配置 MySQL 主从读写操作 主从复制拓扑图 MySQL 集群到 MySQL 集群复制 MySQL 使用共享存储 正常运行状态 故

12、障切换后状态 数据分布式拆分( Sharding ) 水平拆分 根据表中数据的逻辑关系,将同一个表中的数据按照某种条件 拆分到多台数据库(主机)上,这种切分称之为数据的水平) 横向)切分。 水平拆分是将同一个表中的不同数据拆分到不同的数据库中。 垂直拆分 按照不同的表(或 Schema)来切分到不同的数据库(主机)之 上,这种切分可以称之为数据的垂直(纵向)切分。 垂直切分的最大特点是规则简单,实时方便,尤其适合各业务 之间耦合度非常低、相互影响很小、业务逻辑非常清晰的系统。 将表分开到不同的数据库中。 应用:当某个(或某些)表的数据量和访问量特别大, 通过垂直切分将其放在独立的设备上后仍然无

13、法满足 垂直切分( vertical sharding ) 优点 数据库拆分简单明了,拆分规 则容易 应用程序模块清晰,容易整合 数据维护方便易行,容易定位 缺点 部分表关联无法在数据库级别 完成,要在程序中完成; 对于访问极其频繁且数据量超 大的表仍然存在性能瓶颈,不 一定能满足要求 事务处理相当复杂 切分达到一定程度后,扩展性 会受到限制 过多切分可能带来系统过于复 杂而难以维护 水平切分( Horizontal Sharding) 优点 表关联基本能在数据端全部完 成; 不会存在某些超大型数据量和 高负载的表遇到瓶颈的问题; 应用程序段整体架构改动相当 较小; 事务处理相对简单; 只要切

14、分规则定义好,基本上 难遇到扩展性问题。 缺点 切分规则相对复杂,很难抽象 出一个能够满足整个数据库的 切分规则; 后期数据的维护难度有所增加, 人为手工定位数据更困难; 应用系统各模块耦合度较高, 可能会对后面数据的迁移拆分 造成一定的困难。 MySQL 系统结构图 MySQL 存储引擎 MyISAM My sql的默认 数据库 ,最为常用。拥有较高的揑入,查询速度,但不支持事务 InnoDB 事务型数据库的首选引擎,支持ACID 事务,支持行级锁定 BDB源自Berkeley DB ,事务型数据库的另一种选择,支持COMMIT 和ROLLBACK 等其他事务特性 Memory 所有数据置于

15、内存的 存储引擎 ,拥有极高的揑入,更新和查询效率。但是会占用和数据量成正 比的内存空间。并且其内容会在Mysql 重新启动时丢失 Merge 将一定数量的 MyISAM 表联合而成一个整体,在超大规模数据存储时很有用 Archive 非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive 拥有高效 的揑入速度,但其对查询的支持相对较差 Federated将不同的 Mysql 服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用 Cluster/NDB 高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量 大,安全和性能要求高的应

16、用 CSV: 逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件。 这是一种普通文本文件,每个数据行占用一个文本行。CSV存储引擎不支持索引。 BlackHole :黑洞引擎,写入的仸何数据都会消失,一般用于记录binlog 做复制的中继 EXAMPLE 存储引擎是一个不做仸何事情的存根引擎。它的目的是作为MySQL 源代码中的一个例子,用 来演示如何开始编写一个新存储引擎。同样,它的主要兴趣是对开収者。EXAMPLE 存储引擎不支持编 索引。 另外, Mysql 的存储引擎接口定义良好。有兴趣的开収者可以通过阅读文档编写自己的存储引擎。 MySQL Prox

17、y 分布式数据库中间件产品 MySQL Proxy Amoeba Amoeba For MySQL Amoeba For Aladin HiveDB Alibaba-Cobar-Server 数据分布式需要还考虑的几个问题 引入分布式事务问题 MySQL 5.0 以上, InnoDB 支持分布式事务 分布式事务对系统的资源消耗大、 分布式事务的异常处理比较复杂 解决方法:事务拆分,分别控制 跨节点 Join 的问题 老的Join 语句不能继续使用 MySQL Federated 引擎提供支持 解决方法:先找一个表,然后在join 找另外一个表。 跨节点合并排序的问题 数据源分布到不同的节点中,query 分页无法正确运行

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1