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

相关文章

来自专栏沃趣科技

buffer busy waits引起的会话突增

某天,客户反映其监控平台发现其一套数据库7月20日及24日在早晨7:03分和8:09分两个时间段节点1出现会话数突增情况,持续时间较短,问题时间段应用并未受到影...

942
来自专栏实用工具入门教程

如何部署 MediaWiki

MediaWiki是一个流行的免费wiki软件包。它与维基百科使用的软件相同,是完全动态的,可以在LAMP堆栈上运行,利用PHP语言和MySQL数据库后端。通过...

2182
来自专栏黑泽君的专栏

bookStore商城开发文档

用户通过访问http://www.bookStore.com页面可能访问到书城首面。

1231
来自专栏腾讯数据库技术

深度解析auto-increment自增列"Duliplicate key"问题

提示:公众号展示代码会自动折行,建议横屏阅读 问题描述 近期,线上有个重要Mysql客户的表在从5.6升级到5.7后master上插入过程中出现"Duplic...

1202
来自专栏后端技术探索

MySQL 数据库优化(运维角度)

一个成熟的数据库架构并不是一开始设计就具备高可用、高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善。这篇博文主要谈MySQL数据库发展周期中所面临的问题...

1751
来自专栏数据库

Github推荐:MySQL DBA不可错过的五大开源管理工具!

对于数据库管理员(DBA)来说,保持数据库运行在最佳状态需要具备敏捷,专注,快速反应的能力以及一颗冷静的头脑。数据库几乎是所有应用程序成功运行的核心,由于DBA...

51810
来自专栏Java架构沉思录

数据库分库分表如何避免“过度设计”和“过早优化”

关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引...

1342
来自专栏腾讯大讲堂的专栏

InnoDB 列压缩,提升 DB 性能

十年来腾讯游戏致力于带给玩家最好的快乐体验,腾讯游戏的后台数据库一直守护着亿万玩家的数据,提供稳定透明的服务。 腾讯后台数据库大部分使用的是MySQL数据库,现...

1899
来自专栏Linyb极客之路

掌握MySQL数据库这些优化技巧,事半功倍!

一个成熟的数据库架构并不是一开始设计就具备高可用、高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善。这篇文章主要谈谈MySQL数据库在发展周期中所面临的...

1453
来自专栏MYSQL轻松学

MYSQL高性能优化总结

在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已。

1233

扫码关注云+社区