MySQL高可用性解决方案—Percona XtraDB Cluster

MySQL的历史演变:

1985 年,瑞典的几位志同道合小伙子成立了一家公司,这就是MySQL AB 的前身

1996年年初,MySQL 1.0发布

1996年10月,MySQL 3.11.1发布了,中间没有2.x版本。

1999-2000年,有一家公司在瑞典成立了,叫MySQL AB。

在2000 年的时候,MySQL 公布了自己的源代码,并采用GPL(GNU General Public License)许可协议,正式进入开源世界。

2000年4月,MySQL对旧的存储引擎进行了整理,命名为MyISAM。

2005年10月,有发布了里程碑的一个版本,MySQL 5.0. 在5.0中加入了游标,存储过程,触发器,视图和事务的支持。

2008年1月16号 MySQL被Sun公司收购。

2009年04月20日Oracle收购Sun 公司,MySQL 转入Oracle 门下。

Oracle 对MySQL版本重新进行了划分,分成了社区版和企业版,企业版是需要收费的,当然收费的就会提供更多的功能。

MySQL分支产生的背景:

MySQL在Oracle下将如何发展仍不太确定。Oracle控制MySQL产品本身,并领导社区开发新的成品。由于Oracle已经有了一个商业数据库,因此人们担心他们可能没有足够的资源来使MySQL保持其领先地位。因此,许多分支也是这些潜在担心所产生的结果,他们担心MySQL作为领先的免费开源数据库提供的功能可能太少、发布周期太慢并且支持费用更昂贵。

目前为止有三个久经考验的主流分支:

  • Percona Server
  • MariaDB MariaDB使用Percona的XtraDB引擎
  • Drizzle

存储引擎:

  • InnoDB
  • MyISAM
  • XtraDB
  • Memory
  • CSV

支持事务:

  • InnoDB
  • XtraDB

XtraDB存储引擎介绍:

XtraDB是由Percona开发的一款MySQL数据库的高性能存储引擎,其目的是用来代替InnoDB存储引擎,可用于需要更高性能的环境。XtraDB可以看作是InnoDB存储引擎的增强版本,它在InnoDB上进行了大量的修改和补丁,它完全兼容InnoDB,且提供了很多InnoDB不具备的有用的功能。

Percona Server 介绍:

Percona Server由领先的MySQL咨询公司Percona发布。Percona Server声称可以完全与MySQL兼容,因此从理论上讲,您无需更改软件中的任何代码。这确实是一个很大的优势,适合在您寻找快速性能改进时控制质量。因此,采用Percona Server的一个很好的理由是,利用XtraDB引擎来尽可能地减少代码更改。

此外,他们是XtraDB存储引擎的原作者。Percona将此代码用作开源代码,因此您可以在其他产品中找到它,引擎的最初创建者与编写此产品的是同一个人,所以您可以随心所欲地使用此信息。

Percona Server 与 MySQL 的比较:

Percona XtraDB Cluster简介:

  • Percona XtraDB Cluster是开源的、 免费的MySQL高可用性和可扩展性的解决方案。
  • 群集由节点组成。推荐配置至少3个节点,但是也可以运行在2个节点上。
  • 每个节点都是普通的服务器,可以将现有的数据库服务器组成集群,反之,也可以将集群拆分成单独的服务器。
  • 每个节点都包含完整的数据副本。

Percona XtraDB Cluster特性:

  • 同步复制,事务要么在所有节点提交或不提交。
  • 多主复制,可以在任意节点进行写操作。
  • 在从服务器上并行应用事件,真正意义上的并行复制。
  • 节点自动配置。
  • 数据一致性,不再是异步复制。

Percona XtraDB Cluster架构图:

Percona XtraDB Cluster的优势:

  • 当执行一个查询时,在本地节点上执行。因为所有数据都在本地,无需远程访问。
  • 无需集中管理。可以在任何时间点失去任何节点,但是集群将照常工作。
  • 良好的读负载扩展,任意节点都可以查询。

PXC与MySQL Replication区别:

分布式系统的CAP理论:

  • C—一致性,所有节点的数据一致。
  • A—可用性,一个或多个节点失效,不影响服务请求。
  • P—分区容忍性,节点间的连接失效,仍然可以处理请求。

任何一个分布式系统,需要满足这三个中的两个。

  • MySQL Replication: 可用性和分区容忍性(单线程)
  • Percona XtraDB Cluster: 一致性和可用性(多线程,而且是可控的)

因此MySQL Replication并不保证数据的一致性,而Percona XtraDB Cluster提供数据一致性。

Percona XtraDB Cluster的限制:

  • 整个群集的写吞吐量受限制于最弱节点。如果一个节点变得缓慢,整个群集是缓慢的。如果你有稳定的高性能要求,则应通过相应的硬件支持。
  • 集群节点建议最少3个。

PXC事务处理流程图:

Percona XtraDB Cluster重要参数:

  • binlog格式为:row

binlog_format = ROW

  • 表空间文件大小

innodb_data_file_path = ibdata1:1024M:autoextend

  • InnoDB搜索和索引扫描中关闭next-key lock

innodb_locks_unsafe_for_binlog = 1

  • 自增键锁模式。 0:全部使用表锁 1:可预判行数时使用新方式,不可时使用表锁 2:全部使用新方式,不安全,不适合replication

innodb_autoinc_lock_mode = 2

  • 集群名

wsrep_cluster_name = MySQL_Cluster

  • 集群连接的地址。即各节点IP

wsrep_cluster_address = gcomm://192.168.1.101,192.168.1.102

  • 当前节点IP。即本机IP

wsrep_node_address = 192.168.1.100

  • Galera库路径

wsrep_provider = /usr/lib64/libgalera_smm.so

  • sst方法

wsrep_sst_method = xtrabackup-v2

  • sst方法用户名和密码

wsrep_sst_auth = sstuser:secret

  • 指定线程数量

wsrep_slave_threads = 8

Percona的优势产品:

  • Percona XtraBackup

开源,免费。支持热备份,增量备份

  • Percona Toolkit

开源,免费。现有的32个命令,可以分为7大类:开发,性能,配置,监控,复制,系统,实用

  • Percona Monitorning Plugins

nagios,cacti,zabbix

  • Percona Data Recovery Tool

InnoDB 数据库的数据恢复工具

原文发布于微信公众号 - MYSQL轻松学(learnmysql)

原文发表时间:2017-11-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java技术栈

Java 11 发布计划来了,已确定 3个 新特性!!

1762
来自专栏james大数据架构

我是如何处理大并发量订单处理的 KafKa部署总结

  今天要介绍的是消息中间件KafKa,应该说是一个很牛的中间件吧,背靠Apache 与很多有名的中间件搭配起来用效果更好哦 ,为什么不用RabbitMQ,因为...

2779
来自专栏Hadoop实操

如何部署active-active的Hadoop集群

1483
来自专栏Albert陈凯

Hadoop离线数据分析平台实战——380MapReduce程序优化Hadoop离线数据分析平台实战——380MapReduce程序优化

Hadoop离线数据分析平台实战——380MapReduce程序优化 项目进度 模块名称 完成情况 用户基本信息分析(MR)� 完成 浏览器信...

3128
来自专栏linux驱动个人学习

硬盘写到一半时断电,文件系统里会发生什么?

知乎问题: 断电时文件系统发生了什么?硬盘又发生了什么?下一次开机时写到一半的文件在系统层面还在吗?在底层还在吗? 更进一步的, 文件系统如何保证事务性, 会不...

2694
来自专栏wannshan(javaer,RPC)

zookeepr--概览

zk 一个分布式应用协调服务 zk是一个分布式,开源的,分布式协调服务,他提供了一组简单的原生接口,分布式应用可以基于它实现,高水准的同步,集群,配置管理和命名...

3508
来自专栏数据和云

【全局出发,追根溯源】一则集群故障案例分析

作者简介: ? 董冰,混迹DBA圈子十余载的闲云野鹤,曾服务过政府行业、银行数据中心、互联网游戏上市公司,辗转蛰伏于中国铁塔,励志做一个社会主义的螺丝钉。 故...

3306
来自专栏华章科技

Java 10新特性解密

请注意,本文中所包含的信息在写本文时是准确的。但是到发布时,JDK 10特性组预计将会增加。

562
来自专栏北京马哥教育

Ext3 和 ext4 文件系统在线调整大小内幕

磁盘布局 为了更好的理解在线调整大小工作机制,我们首先需要理解 ext3 和 ext4 文件系统的磁盘布局,对于该功能的实现来说,这两个文件系统在磁盘上的结构是...

2806
来自专栏更流畅、简洁的软件开发方式

利用虚拟硬盘(把内存当作硬盘)来提高数据库的效率 续

续 上一篇引起了大家的讨论,看着讨论我是比较晕的,这也怪我没有说清楚,所以再补一个续把问题说清楚吧。 笔记本配置 CPU:Core 2 7250 2.0G ...

1859

扫码关注云+社区