作者介绍

王松磊,现任职于UCloud,从事MySQL数据库内核研发工作。主要负责UCloud云数据库udb的内核故障排查工作以及数据库新特性的研发工作。

一、概述

我们在考虑MySQL数据库的高可用架构时,主要考虑如下几方面:

如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少停机时间,保证业务不会因为数据库的故障而中断。

用作备份、只读副本等功能的非主节点的数据应该和主节点的数据实时或者最终保持一致。

当业务发生数据库切换时,切换前后的数据库内容应当一致,不会因为数据缺失或者数据不一致而影响业务。

关于对高可用的分级我们暂不做详细的讨论,这里只讨论常用高可用方案的优缺点以及选型。

二、高可用方案

1、主从或主主半同步复制

使用双节点数据库,搭建单向或者双向的半同步复制。在5.7以后的版本中,由于lossless replication、logical多线程复制等一些列新特性的引入,使得MySQL原生半同步复制更加可靠。

常见架构如下:

通常会和Proxy、Keepalived等第三方软件同时使用,即可以用来监控数据库的健康,又可以执行一系列管理命令。如果主库发生故障,切换到备库后仍然可以继续使用数据库。

优点:

架构比较简单,使用原生半同步复制作为数据同步的依据

双节点,没有主机宕机后的选主问题,直接切换即可

双节点,需求资源少,部署简单

缺点:

完全依赖于半同步复制,如果半同步复制退化为异步复制,数据一致性无法得到保证

需要额外考虑HAProxy、Keepalived的高可用机制

mysql跨机房高可用方案_10款常见MySQL高可用方案选型解读相关推荐

  1. 10款常见MySQL高可用方案选型解读

    作者介绍: 王松磊,现任职于UCloud,从事MySQL数据库内核研发工作.主要负责UCloud云数据库udb的内核故障排查工作以及数据库新特性的研发工作. 原文链接:https://yq.aliyu ...

  2. 服务器维护简单的备份方案,几种常见的数据备份方案分享

    原标题:几种常见的数据备份方案分享 常见的数据备份系统主要有Host-Base.LAN-Base和基于SAN结构的LAN-Free.Server-Free等多种结构. Host-Based备份方式: ...

  3. Mysql跨机房同步方案

    2019独角兽企业重金招聘Python工程师标准>>> 假设现有两个机房,需要做到数据同步. 以下是架构图(实际架构图根据现有机房架构和实际会比下图复杂,但整体思路不变): Myca ...

  4. MySQL跨机房集群方案_Mysql跨机房同步方案

    随着用户量的不断累积,Mysql从单实例单节点发展到多实例多节点的主备,再到一个机房几十台Myql实例,但是现在,一个机房也开始慢慢无法承受庞大的数据吞吐,多机房的理念开始构建. 假设现有两个机房,需 ...

  5. mysql 事物状态有几种_10分钟梳理MySQL核心知识点

    数据库的使用,是开发人员的基本功,对它掌握越清晰越深入,你能做的事情就越多. 做业务,要懂基本的SQL语句: 做性能优化,要懂索引,懂引擎: 做分库分表,要懂主从,懂读写分离... 今天我们用10分钟 ...

  6. mysql php 封装类_市面上几款常见的微信开发框架对比(PHP和JAVA)

    正在学习微信开发或者正在开发微信项目的程序猿们看过来,小编为你们整理了几款目前知名度较高的微信开发框架平台,希望能对大家有所帮助! 小编分别从两种(PHP和java)不同语言分别给大家介绍了几款微信开 ...

  7. 洗地性价比高的是哪款?性价比高的洗地机推荐

    在如今人工智能随处可见的时代,洗地机已经成为了我们家庭清洁的得力助手,它用高效便捷的清洁方式,对于地面的灰尘或者地板之间的缝隙里的细小垃圾,能够快速清理,省时省力.然而,对于很多消费者来说,如何选择一 ...

  8. 洗地机性价比高的是哪款?性价比高适合入手的洗地机介绍

    对于近年来非常火热的懒人清洁神器洗地机,很多小伙伴表示很好奇很想体验.在此我想说的是,洗地机清洁卫生确实是能够解放双手.轻松省力,但也并不是所有洗地机都那么好用,如果在选购的时候不好好参考一下选购因素 ...

  9. 贝壳金服 TiDB 在线跨机房迁移实践

    2019独角兽企业重金招聘Python工程师标准>>> 作者介绍 : 李振环,贝壳金服数据基础架构负责人,目前负责数据平台和企业级数据仓库开发. 公司介绍 贝壳金服是专注居住场景的金 ...

最新文章

  1. 满足实时人工智能的计算需求
  2. python职能-Python岗位职责
  3. 修改注册表添加信任站点及启用Activex控件(转载)
  4. 批处理中setlocal enabledelayedexpansion的作用详细整理
  5. Django视图(三)
  6. 工作245:vue的注意规范之v-if 与 v-for 一起使用
  7. 【CTF WEB】反序列化
  8. jquery插入第一个元素? [问题点数:20分,结帖人zsw19909001]
  9. python多核多线程编程实例_Python多线程
  10. 吴恩达“旗下”Drive.ai无人出租车来了!新硬件成本更低,外挂4块屏幕
  11. Redis 安装与简单示例 第一篇
  12. 开发中常用日志搜索技巧
  13. matlab中的m-file,MATLAB m-file帮助格式化
  14. mac打开软件显示没有权限不能打开
  15. 虚拟机VMware16安装教程
  16. Linux中查看文件夹大小的命令
  17. web测试,APP测试和小程序测试特点
  18. 14个免费的 GIS 软件:以开源的方式绘制地图
  19. 电脑xlsx文件格式打不开怎么办
  20. python3抓取aqi

热门文章

  1. 蓝桥杯单片机比赛准备程序
  2. Ruby的辛酸历程【一】
  3. pytorch:深入理解 reshape(), view(), transpose(), permute() 函数
  4. mysql 联合索引结构与索引匹配原则
  5. 叶脉图案以及藤蔓生长算法在houdini里面的实现 Leaf Venation
  6. 28岁退休的非典型程序员:我的人生不需要别人来设计
  7. Linux移动文件与目录-mv命令的10个实用例子
  8. QDBus和Glib-dbus使用
  9. 人大男生:找工作时 我觉得自己是条丧家之犬
  10. 浙江2022农民丰收节 国稻种芯:主场东阳活动农民群众联欢