hexeditor 复制二进制值_终于学完了阿里高级架构师整理MySQL复制技术与生产实践文档...

前言

MySQL在其3.23版本时就颇具前瞻性地推出主从复制(replication)特性,距今约有20年了。正是这一举措,使得MySQL赶上了互联网1.0时代的发展大势。利用复制特性可以很方便地实现数据库架构的扩展及读写分离功能,以提升架构承载的容量。

我想,从这个角度来说,复制是MySQL最主要的特性一点都不为过。

熟悉MySQL的人都知道,MySQL的复制技术是其核心技术之一,是灵活运用MySQL的基础。从3.23版本开始,MySQL推出了异步复制功能,之后不断进化,推出半同步复制、无损半同步复制,以及目前最新的组复制功能。其基本原理几乎是一致的——利用二进制日志文件在数据库服务器之间的传播和数据回放,实现多台数据库服务器之间的数据同步。一个合格的MySQL从业人员,必须掌握复制技术的基础知识,熟悉复制技术的各种解决方案,并灵活利用它们去满足生产系统中的各种需求。

686bd47e0c18bd0a21cc0b95d40ed646.png

MySQL能够成为“最流行的开源数据库”,其复制技术起了巨大的作用。Sharing Nothing架构、横向扩展、高可用、容灾、数据集成与聚合,这一系列名词所代表的架构和应用场景都与复制技术有关。多应用场景意味着与复制相关的技术灵活而复杂:异步复制、增强半同步复制、语句级复制、行级复制、按位点复制、GTID复制、多源复制、级联复制、多线程复制、双主架构、一主多从架构、延迟复制、读写分离等。不同的业务场景,使用不同的复制架构,该如何正确地构建MySQL复制拓扑、如何有效地监控和正确地维护,这些都是架构师和DBA要解决的问题。

f3d4b10c68cf50610f5a77064383ef89.png

随着国家加强对数据库技术安全可控的要求,使用开源的MySQL数据库已经成为一种趋势,开源代表着代码安全、数据库可控。各行各业不断地推进MySQL的部署,MySQL从业人员也由互联网行业扩散到传统行业。利用复制技术可以实现MySQL的高可用性及高扩展性,是保障MySQL数据安全和进行数据库扩展的必要技术。安全可控对于传统行业至关重要,因此极力推荐MySQL从业者,特别是传统行业的DBA阅读此文 。

目录

976360e9e022a517987098eeb78f9186.png

主要内容

全文共分为3篇:基础篇、方案篇和参考篇,总共38章的内容。

按照“基本原理”→“生产实践”→“更多参考”的逻辑顺序讲述,文中配了大量的原理与方案示意图,力求用通俗易懂的语言、直观明了的示意图、完整的知识涵盖面将MySQL复制技术讲透。

其中,基础篇侧重介绍主从复制的原理和复制技术的演进,方案篇侧重介绍主从复制技术在生产环境中的应用方案,参考篇侧重介绍二进制日志的基本组成及主从复制中常见对象复制的安全性等。

本文适用初、中、高级MySQL DBA、数据库架构师及相关开发人员阅读。

基础篇

第1章复制的概述;简单来说,“复制”就是将来自一个MySQL Server(这里指master角色,即主库)的数据变更,通过其逻辑的二进制日志(binlog)传输到其他的一个或多个MySQL Server(这里指slave角色,即从库)中,其他MySQL Server通过应用(回放)这些逻辑的二进制日志来完成数据的同步。这些MySQL Server之间的逻辑关系,我们称为“复制拓扑”(也可以称为“复制架构”)。

默认情况下,复制是异步的,即主库将二进制日志传输到从库之后,并不关心从库是否成功收到。从库是否收到这些二进制日志,不影响主库的任何读/写访问;而从库的复制线程也可以随意暂停或停止,并不影响主库的读/写访问。通常,异步模式能够发挥数据库的最高性能,但数据安全性却得不到很好的保证,如果对数据安全性的要求较高,可以考虑使用半同步复制。

另外,默认情况下,复制的数据是针对整个实例的(排除部分系统表),你可以根据自身需求选择是否需要复制整个实例的数据,是只复制某些库,还是只复制某些表的数据等。接下来将简要介绍MySQL中复制拓扑的一些适用场景,以及与复制相关的概念。

e2638cdf907ad675f0a8cd58f6f36fb1.png

第2章复制的基本原理;第1章简单介绍了MySQL复制(技术)相关的基本概念,本章将详细介绍其基本原理。MySQL的复制技术自诞生以来,随着各种各样的应用场景对数据安全性及复制性能的要求不断提高,也在不断迭代与优化。要深刻理解MySQL的复制技术,就要从它的基本原理说起,下面将对此展开介绍。

ad8a6219975246206bf8c5c2bf5b3b0e.png

第3章复制格式详解;通过前面的两章,我们了解了复制技术的使用场景及其基本原理与实现,知道复制是通过二进制日志记录在主从库之间的流转来实现的。第1章对二进制日志的记录格式做了简要的介绍,本章将详细阐述复制格式。

3f031ca00c7cb00d8c73d07c14ff13f7.png

第4章传统复制与GTID复制;MySQL 5.6之前的版本只支持传统复制,即“基于二进制日志文件(binlog file)和位置(binlog pos)的复制”。在该复制模式中,复制拓扑的初始化配置和变更、复制的高可用切换等操作都需要找到正确的二进制日志文件和位置,否则就无法正确复制。然而,寻找该位置信息的过程所涉及的操作步骤较为繁琐,于是在MySQL 5.6及其之后的版本中,出现了基于GTID的复制(为了表述上的方便,文中也简称为GTID复制)模式。它利用GTID自动定位的特性,不再需要二进制日志的位置信息,也就省去了寻找这些信息所需的繁琐步骤,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值