mysql percona 集群_MySQL高可用性解决方案—Percona XtraDB Cluster
MySQL数据库的性能是服务器运维中不可缺少的部分,需要不断的优化数据库的性能,寻找出系统的瓶颈。今天就来分享一款提高数据库高可用性的解决方案。Percona XtraDB Cluster---MySQL高可用性解决方案。
一、介绍
项目地址: http://www.percona.com/doc/percona-xtradb-cluster/intro.html
Percona XtraDB Cluster是MySQL高可用性和可扩展性的解决方案。
Percona XtraDB Cluster提供的特性有:1.同步复制,事务要么在所有节点提交或不提交。
2.多主复制,可以在任意节点进行写操作。
3.在从服务器上并行应用事件,真正意义上的并行复制。
4.节点自动配置。
5.数据一致性,不再是异步复制。
Percona XtraDB Cluster完全兼容MySQL和Percona Server,表现在:1.数据的兼容性
2.应用程序的兼容性:无需更改应用程序
1.集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上。
2.每个节点都是普通的mysql/percona服务器,可以将现有的数据库服务器组成集群,反之,也可以将集群拆分成单独的服务器。
3.每个节点都包含完整的数据副本。
优点如下:1.当执行一个查询时,在本地节点上执行。因为所有数据都在本地,无需远程访问。
2.无需集中管理。可以在任何时间点失去任何节点,但是集群将照常工作。
3.良好的读负载扩展,任意节点都可以查询。
缺点如下:1.加入新节点,开销大。需要复制完整的数据。
2.不能有效的解决写缩放问题,所有的写操作都将发生在所有节点上。
3.有多少个节点就有多少重复的数据。
架构图如下:
mysql
Percona XtraDB Cluster与MySQL Replication区别在于:
分布式系统的CAP理论。C---一致性,所有节点的数据一致。
A---可用性,一个或多个节点失效,不影响服务请求。
P---分区容忍性,节点间的连接失效,仍然可以处理请求。
任何一个分布式系统,需要满足这三个中的两个。
MySQL Replication: 可用性和分区容忍性
Percona XtraDB Cluster: 一致性和可用性
因此MySQL Replication并不保证数据的一致性,而Percona XtraDB Cluster提供数据一致性。
Percona XtraDB Cluster组件:
Percona XtraDB Cluster基于XtraDB的Percona Server以及包含写复制集补丁。使用Galera 2.x library,事务型应用下的通用的多主同步复制插件。
Galera 2.x新特性有:1.IST(Incremental State Transfer)增量状态传输。对于WAN特别有用。
2.RSU(Rolling Schema Update)旋转更新架构。不会阻止对表进行操作。
二、安装配置
1.RHEL or CentOS系统rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm
yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr bison libtool ncurses5-devel
yum install Percona-XtraDB-Cluster-server Percona-XtraDB-Cluster-client xtrabackup
2.Debian or ubuntu系统gpg --keyserver hkp://keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
gpg -a --export CD2EFD2A | sudo apt-key add -
apt-get update
apt-get install build-essential flex bison automake autoconf bzr libtool cmake libaio-dev mysql-client libncurses-dev zlib1g-dev
sudo apt-get install percona-xtradb-cluster-client-5.5 percona-xtradb-cluster-server-5.5 percona-xtrabackup
3.初始配置
为了使用XtraDB集群,需要在my.cnf文件中配置以下选项:wsrep_provider -- a path to Galera library.
wsrep_cluster_address -- cluster connection URL.
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
innodb_locks_unsafe_for_binlog=1
# 额外的参数有:wsrep_slave_threads #指定线程数量
wsrep_sst_method
4.安装XtraBackup SST方法
为了使用Percona XtraBackup的State Transfer method(节点间数据的快照副本拷贝)。可以使用支持Galera信息的脚本的正式的xtrabackup包,可以从innobackupex源码包中得到innobackupex脚本。同时在my.cnf文件中制定:wsrep_sst_method=xtrabackup
三、局限性
1.目前的复制仅仅支持InnoDB存储引擎。任何写入其他引擎的表,包括mysql.*表将不会复制。但是DDL语句会被复制的,因此创建用户将会被复制,但是insert into mysql.user...将不会被复制的。
2.DELETE操作不支持没有主键的表。没有主键的表在不同的节点顺序将不同,如果执行SELECT...LIMIT... 将出现不同的结果集。
3.在多主环境下LOCK/UNLOCK TABLES不支持。以及锁函数GET_LOCK(), RELEASE_LOCK()...
4.查询日志不能保存在表中。如果开启查询日志,只能保存到文件中。
5.允许最大的事务大小由wsrep_max_ws_rows和wsrep_max_ws_size定义。任何大型操作将被拒绝。如大型的LOAD DATA操作。
6.由于集群是乐观的并发控制,事务commit可能在该阶段中止。如果有两个事务向在集群中不同的节点向同一行写入并提交,失败的节点将中止。对于集群级别的中止,集群返回死锁错误代码(Error: 1213 SQLSTATE: 40001 (ER_LOCK_DEADLOCK)).
7.XA事务不支持,由于在提交上可能回滚。
8.整个集群的写入吞吐量是由最弱的节点限制,如果有一个节点变得缓慢,那么整个集群将是缓慢的。为了稳定的高性能要求,所有的节点应使用统一的硬件。
9.集群节点建议最少3个。
10.如果DDL语句有问题将破坏集群。
本文来自投稿,不代表访得立场,如若转载,请注明出处:http://www.found5.com//view/697.html
mysql percona 集群_MySQL高可用性解决方案—Percona XtraDB Cluster相关推荐
- 初探mysql innodb集群_MySQL InnoDB Cluster搭建
MySQL的高可用架构无论是社区还是官方,一直在技术上进行探索,这么多年提出了多种解决方案,比如MMM, MHA, NDB Cluster, Galera Cluster, InnoDB Cluste ...
- mysql windows集群_Mysql集群windows服务器版搭建过程
此文就聊聊在windows服务器上搭建集群遇到的一些问题,具体的安装和配置解释我就不赘述了.供后续遇到问题的朋友们可以更快的找到问题所在,直接搞定以便避免占用太多不必要的时间. 服务器版本winsev ...
- mysql mongodb 集群_MySQL与MongoDB
MySQL与MongoDB 声明: MySQL与MongoDB都是开源的常用数据库, 但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库. ...
- mysql数据库 集群_mysql数据库集群
mysql用来开发中小型项目还是挺好用的,从节约成本的方面来考虑的确是个不错的选择,但是开发并发了比较大的项目显然还是有些吃力的,前几 年解决这种问题通常是通过读写分离来优化数据库,因此出现了amoe ...
- mysql搭建集群_Mysql搭建集群Mysql Cluster
MySQL集群技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单个MySQL服务器故障不会对系统产生巨大的负面效应,系统的稳定性得到保障. mysql集群和主从复制的区别: 集 ...
- mysql双机集群_mysql双机集群
MYSQL集群服务配置 篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群.并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行. 注意! 虽然这是基于2台服务器的MySQL集群,但 ...
- 京东如何基于Vitess管理大型MySQL实例集群
本文根据dbaplus社群第203期线上分享整理而成 讲师介绍 王云博 京东数据库高级研发工程师 2014年加入京东,一直致力于数据库运维自动化的发展: 2018年专注于京东弹性数据库研发.运维工作. ...
- MySQL集群:高可用性DBMS
翻译&转载:https://opensourceforu.com/2016/04/mysql-cluster-a-high-availability-dbms/ MySQL集群:高可用性DBM ...
- innodb 集群_部署MySQL InnoDB集群以实现高可用性
innodb 集群 In this article, I am going to explain how we can deploy the MySQL InnoDB cluster. InnoDB ...
最新文章
- java 类的执行顺序_java类加载的顺序
- 从tomcat下载文件的配置方法(很全呢)
- linux shell 获取字符串最后一个字符 去掉字符串最后一个字符 去掉末尾一个字符 去掉末尾两个字符
- SharePoint场管理-PowerShell(一)
- JZOJ 5956. 【NOIP2018模拟11.7A组】easy LCA
- 零基础学Python(第七章 while循环)
- Redis添加从节点
- JavaScript 对象所有API解析【2020版】
- C++之STL种类及实现
- pip 批量完全卸载包
- PHP swoole解密,[讨论]php7.3如何解密swoole
- 苹果4创建id显示服务器错误,苹果无法创建账户是什么意思
- 0013-图像的阈值化-OTSU、固定阈值法、基于局部的阈值化
- 基于Paddlehub与Wechaty的微信小助手--懂懂
- 视差贴图(Parallax Mapping)
- 计算机管理-磁盘管理中进行扩展卷操作,管理磁盘diskpart命令
- 求三角形的外接圆圆心个半径
- 利用libxml2解析xml文件
- Java学习笔记17:Java_Set集合_TreeSet集合_二叉树_HashSet集合
- 江苏2021年新高考八省联考成绩查询,江苏2021八省联考分数、位次汇总!