MySQL MHA应用实践(基础知识)

一、MHA概述
MHA(Mater High Availability)是一套非常流行和实用的MySQL高可用解决方案软件,保证MySQL主从复制集群中主库的高可用性,保证集群业务不受影响。当master异常宕机后,MHA能够保证在1~30s的时间内实现故障转移,选择一个最优slave升为最新master,同时保持数据一致性的状态,以及将整个集群的所有数据损失降到最低。因此MHA方案十分受欢迎。
二、MHA架构
MHA由Manager(管理节点)和Node(数据节点)组成。Manager服务可以运行在一台独立服务器(虚拟机)上管理多个主从集群,也可以是某一个从节点或者应用服务器节点,而Node服务需要运行在每一个MySQL服务器上。Manager会定时通过主库上的Node服务监控主库,确保主库出现故障时可自动(或指定)将最优从库升为新主库,让所有从库与最新master保持正常。
三、MHA原理

1、选择新主库
    MHA选择最优从库升为主库(根据其他从库binlog位置点最新的或半同步的从库)
2、数据一致性
     如果主库可进行ssh连接MHA会将主库内的所有binlog日志保存下来,若连接不上直接放弃。
     以选择好的新主库binlog位置点为基准,通过relay log 进行补全,使其它从库与主库一致。
     宕机主库的binlog日志恢复到所有数据库节点上。
3、角色切换
    选择最优从库提升为正式主库。
    保证完整的主从复制状态
    注释:应用访数据集群时可以采用keepalived 。

三、MySQL复制

异步复制(Asynchronous replication)
     MySQL默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已经接收并处理,这样就会有一个问题,主如果crash掉了,此时主上已经提交的事务可能并没有传到从上,如果此时,强行将从提升为主,可能导致新主上的数据不完整。
全同步复制(Fully synchronousreplication)
    指当主库执行完一个事务,所有的从库都执行了该事务才返回给客户端。因为需要等待所有从库执行完该事务才能返回,所以全同步复制的性能必然会收到严重的影响。
半同步复制(Semisynchronous replication)
    介于异步复制和全同步复制之间,主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relay log中才返回给客户端。相对于异步复制,半同步复制提高了数据的安全性,同时它也造成了一定程度的延迟,这个延迟最少是一个TCP/IP往返的时间。所以,半同步复制最好在低延时的网络中使用。

异步复制

MySQL—MHA架构图

原文地址:https://blog.51cto.com/11298469/2421578

时间: 2024-08-29 13:09:16

MySQL MHA应用实践(基础知识)的相关文章

MYSQL注入天书之基础知识

第一部分/page-1 Basic Challenges Background-1 基础知识 此处介绍一些mysql注入的一些基础知识. (1)注入的分类---仁者见仁,智者见智. 下面这个是阿德玛表哥的一段话,个人认为分类已经是够全面了.理解不了跳过,当你完全看完整个学习过程后再回头看这段.能完全理解下面的这些每个分类,对每个分类有属于你的认知和了解的时候,你就算是小有成就了,当然仅仅是sql注入上. 基于从服务器接收到的响应? ▲基于错误的SQL注入 ▲联合查询的类型 ▲堆查询注射 ▲SQL

MySQL增删改查基础知识

前几天学习了MySQL数据库的一些基础知识,了解了后台数据库的一些基础的数据操作:增删改查,对于项目前后台的数据传递有了些概念,总结了一些MySQL的基础语法. 一.数据存储形式发展和数据库作用 根据时间先后:层次模型,网状模型,传统层次模型,和关系模型. 数据库作用:1.存储大量数据,访问和检索数据:2.保证数据的完整性:3.安全与共享:4.数据可以进行组合,产生新的数据 二.关系模型 关系模型是实体,和联系组成的关系网,所谓实体就是指现实世界中客观存在并可相互区别的实物.实体具有属性,属性用

MySQL MHA应用实践(方案实战)

1.环境与条件已存在主从架构环境 主机名 IP地址 主从角色 MHA角色 leo1 192.168.3.2 Master MHA-node leo2 192.168.3.3 slave MHA-node leo3 192.168.3.4 slave MHA-node,MHA-manager vip 192.168.3.6 主从确保主从状态正常 mysql>show slave status\G; IO与SQL进程为YES 参数更改 relay_log_purge = 0 #不自动删除relay

MySQL 常用语句以及基础知识

RHEL7安装MariaDBYum install –y mariadb mariadb-serverMysql_installdb //初始化数据库? 可以为root帐户设置密码.? 可以删除root可从本地主机以外访问的帐户.? 可以删除匿名用户帐户.? 可以删除test数据库(默认情况下,所有用户甚至匿名用户都可以访问该数据库)以及允许任何人访问以名称开头的数据库的权限 test.如果不初始化数据库,mysql可以匿名登陆,会生成test数据库.....Mysqld_safe & //平滑

Python编程从入门到实践(基础入门) 򝻨

原文: http://blog.gqylpy.com/gqy/468 置顶:来自一名75后老程序员的武林秘籍--必读(博主推荐) 来,先呈上武林秘籍链接:http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

[python] 专题九.Mysql数据库编程基础知识

在Python网络爬虫中,通常是通过TXT纯文本方式存储,其实也是可以存储在数据库中的:同时在WAMP(Windows.Apache.MySQL.PHP或Python)开发网站中,也可以通过Python构建网页的,所以这篇文章主要讲述Python调用MySQL数据库相关编程知识.从以下几个方面进行讲解: 1.配置MySLQ 2.SQL语句基础知识 3.Python操作MySQL基础知识 4.Python调用MySQL示例 一. 配置MySQL 首先下载mysql-5.0.96-winx64,安装

mysql基础知识之增删查改使用介绍

 mysql基础知识之增删查改使用介绍 本文主要介绍mysql常用的SELECT.INSERT.UPDATE.DELETE语句的使用,数据库的安装这里不做介绍,并且事先已经准备好相关数据. 本文中使用的student表中的数据如下: mysql> SELECT * FROM student; 一.SELECT语句的使用 1.单表查询 语法格式: SELECT culom1,culom2,culom3 FROM TABLE_NAME; 可以改变字段显示顺序 2.WHERE子句查询 语法格式: SE

MySQL基础知识

MySQL基础知识: 一. 知识点:        1. SQL分类:按照其功能不同,分为3中类别           DDL(Data Defintion Language):数据定义语句,用于定义不同的数据段.数据库.表.列.索引等.常用的语句关键字包括create.drop.alter等;             DML(Data Manipulation Language):数据操纵语句,用于添加.删除.更新和查询数据库记录,并检查数据的完整性.常用的语句关键字主要包括insert.de