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 条评论
登录 后参与评论

相关文章

来自专栏代码世界

初识数据库

一、数据库概念 数据库(Database,简称DB)   数据库技术是计算机应用领域中非常重要的技术,它产生于20世纪60年代末,是数据管理的最新技术,也是软件...

3377
来自专栏架构师之路

数据库中间件TDDL调研笔记

前篇: 《数据库中间件cobar调研笔记》 13年底负责数据库中间件设计时的调研笔记,拿出来和大家分享,轻拍。 一,TDDL是什么 TDDL是Taobao Di...

3759
来自专栏携程技术中心

干货 | 高吞吐消息网关的探索与思考

作者简介 刘惊惊,唯品会业务架构部高级架构师。主要负责用户线,营销线的业务架构,也参与库存系统的重构改造。 一、背景介绍 唯品会是一家立足于“全球精选,正品特卖...

2604
来自专栏数据库

MongoDB距“干掉”MySQL登上王位还有多远

【IT168 资讯】几十年来,关系型数据库已经成为企业应用程序的基础,自从MySQL在1995年发布以来,深受企业的偏爱。然而随着近年来数据量和数据的不断激增,...

1786
来自专栏云加新鲜事儿

腾讯云多Kubernetes的多维度监控实践

本次分享的主要内容涉及腾讯云容器的顶层整体设计,包括产品功能,及提供的附加能力。同时会介绍我们现在Master集群化部署的整体方案。

7050
来自专栏java达人

Percona5.6.15线程池压力测试

http://www.mysqlperformanceblog.com/2013/03/16/simcity-outages-traffic-control-a...

17810
来自专栏李跃森的专栏

微信支付商户系统架构背后的故事

本文将以腾讯 PostgreSQL-XZ 为代表介绍腾讯自研 PostgreSQL 所做的优化和改进。

92.6K8
来自专栏F-Stack的专栏

F-Stack 全用户态 (Kernel Bypass) 服务开发套件

F-Stack 是一个全用户态的高性能的网络接入开发包,基于 DPDK、FreeBSD 协议栈、微线程接口等,用户只需要关注业务逻辑,简单的接入 F-Stack...

5K1
来自专栏数据库新发现

Oracle 数据库一体机:zData Light - 分布式存储管理平台

Oracle RAC是当前主流的Oracle数据库高可用架构,被众多用户用于核心系统,然而,RAC架构在提供高可用的同时,也面临数据库性能压力这一巨大挑战。性...

511
来自专栏后端技术探索

Facebook 宣布开源 Katran,高性能第4层负载平衡器

为了管理Facebook的流量,他们部署了一个分布式PoP服务器作为数据中心的代理。鉴于极高的请求量,PoP和数据中心都面临着巨大挑战,比如如何将大量的后端服务...

642

扫描关注云+社区