《数据生态--MySQL复制技术与生产实践》新鲜出炉

  • 首先,先给咋们《数据生态--MySQL复制技术与生产实践》这本书来爆个照,它大概长这样!如需购买,可扫描文末的二维码快速直达! html

  • 接下来,借助这本书的对话窗口,我想向你们分享一些我在MySQL的学习成长之路上的一些体会与感想,但愿或多或少对你们的学习和工做有所帮助!程序员

1. 写这本书的出发点

  • 2019年11月,咱们出版了《千金良方——MySQL性能优化金字塔法则》一书。从那之后,身边不断有人问我一个问题:“写技术类的书不怎么赚钱,为何还要写?”刚开始,我还认真回答,但提问者听到回答以后大多仍然表示不解,后来问的人多了,我索性回答:“为了赚名气!”这个答案简单、粗暴、有效!的确,经过《千金良方——MySQL性能优化金字塔法则》一书,咱们小“赚”了些名气,不过对于为何写书的问题,这不是个人所有答案。如今,借新书发售的机会,我将本身所有的想法写出来,但愿能完整、全面地回答这个问题。数据库

督促本身有计划地学习

  • 2018年12月,咱们有幸参加了电子工业出版社在北京举办的做译者聚会。聚会上有两位嘉宾的话令我印象深入:一位来自阿里的安全专家说,他已经出版十余本书了;另外一位来自美团的某团队负责人说,他规划要写十余本书。“听君一席话,胜读十年书”,这彻底颠覆了我以前对于写书这件事的见解。在此以前,我一直觉得,技术图书是写做者不断沉淀工做中所学的知识,量变产生质变的产物。能写出一本书,说明知识的积累已经达到必定厚度,很是不易。在那一刻,我才知道,原来写书这件事,还能够刻意规划,也难怪大拿们可以作到连续数十载一年出一本新书!因而,从那时开始,咱们也开始尝试有计划地学习、有计划地写书。安全

化解繁重的工做和技能精进之间的矛盾

  • 在2018年12月的做译者聚会以后不久,咱们再次受邀参加电子工业出版社在杭州举办的做译者聚会。此次聚会上一位嘉宾的话又让我获益匪浅,他说“视野的高度决定了作事的高度”。后来,在他的影响下,我阅读了吴军博士的《见识》一书,其中“西瓜与芝麻”和“不作伪工做者”的故事使人印象深入。这让我联想到本身以及身边的同事、朋友们,也何尝不是常常作着捡芝麻的事情,沉迷于低效率勤奋而没法自拔,但因为工做时长问题,至关多的人缺乏精进的时间和精力。性能优化

  • 很多朋友曾经问过我,要如何从零开始学习MySQL,这些人中有刚出校园的实习生、有程序员,也有想从其余数据库开发转向MySQL的。对于这一问题,我一时间也不知如何做答,但问的人多了,一来我很差意思老说本身也不知道如何学习MySQL,二来忽然发觉这或许是一个须要有人站出来解决的问题。因而我开始思考,站在MySQL小白的角度,想象须要如何解决他们提出的问题。服务器

  • 通过不断的思考,我慢慢有了一些答案。例如,能够尝试着系统性地研究某个知识点,将其研究透彻,而后分享出来供你们一块儿学习,以便帮助那些没有足够精力和时间精进的朋友们快速进步,让那些可能走弯路的朋友们少走弯路。或许这就像吴军博士在《文明之光》中所描述的那样,当农耕文明发展到必定阶段,赖以生存的食物再也不短缺的时候,就可以腾出一部分人力再也不从事农耕劳做,转而专门从事知足新需求的工做,如此这般,人类文明即可以不断向前进步。架构

系统性地学习和研究某个课题

  • 借用吴军博士的话说,一本书能够看做为系统性学习和研究某个课题的答卷,就比如在大学里写论文同样。它可以证实你学习和研究的课题是否有成效,让你们均可以看见、分享你的学习和研究成果。app

锻炼写做能力

  • 写做是一项技能,须要反复地刻意练习,而写书的过程一般是一个高要求、长周期的写做过程,这是一个很是好的练习机会。框架

2. 掌握正确的学习和研究方法

  • 要系统性地学习和研究一个课题,按照由浅入深的顺序,咱们能够将学习和研究的过程大体分为以下三个阶段:性能

第一阶段:总体认识

  • 当面对一个复杂课题时,能够先从总体上搞清楚它的知识体系组成框架,搞清楚知识体系中各个组成部分(知识模块)的大体脉络,从而对一个复杂课题从全局上创建起一个初步认知,以便为下一阶段选择什么样的知识模块进行深刻研究作好铺垫。

第二阶段:逐一深刻

  • 基于第一阶段的总体认识,能够优先选择一些工做中须要用到的知识模块、或者感兴趣的知识模块,做为一个个的子课题逐一进行深刻的系统性研究。

第三阶段:回归总体

  • 因为人的精力有限,在第二阶段,深刻研究各个部分期间,一些知识模块可能会被淡忘,所以,须要回归总体,结合本身的验证与理解,造成稳固的知识体系。

  • 在学习和研究过程当中要勤动手记录,后续可整理为博客文章,积累到必定数量以后亦可整理为图书,持续积累,直到造成完善的知识体系为止,往后可供本身与他人反复复用。

  • 2019年11月出版的《千金良方——MySQL性能优化金字塔法则》,能够认为是咱们在第二阶段中对一个子课题(关于MySQL性能优化)的答卷,而本书也能够认为是咱们对另外一个子课题题(关于MySQL主从复制)的答卷。对于MySQL来讲,主从复制是一个很是重要的知识模块,并且,据我所知,还有很是多从事MySQL相关工做的同行们,对MySQL主从复制的原理、应用场景等知识掌握得并不够全面,甚至对其只知其一;不知其二的人也不在少数。所以,在本书中,咱们将其做为重点展开介绍。不过,很抱歉的是,在学习和研究的第一阶段中,咱们缺乏相似的成果,但咱们正在积极筹备中,在不久的未来会为广大的读者朋友们交上一份满意的“答卷”!

3. MySQL的数据生态

  • MySQL的二进制日志记录了一个数据库实例内数据的变动,这些内容是按照时间的前后顺序记录的。根据具体的二进制日志格式选项设置,能够记录数据库实例内执行的原始SQL语句文本,也能够记录数据库实例内执行SQL时产生的数据变动的行记录值。二进制日志能够知足相似以下一些应用场景:

MySQL Server执行崩溃以后的恢复时,做为事务的协调者

  • 一个未完成提交的事务,在MySQL Server执行崩溃以后的恢复时,会在二进制日志中检查是否存在对应的内容,若是存在,则事务能够从新执行提交,若是不存在(或没有启用二进制日志记录功能),则必须回滚事务,将该事务修改的记录进行回滚。

在不一样实例间进行数据同步(主从复制、组复制)

  • 主库中的数据变动被记录到二进制日志中,而后主库将二进制日志发送给从库,从库使用这些二进制日志进行回放,模拟主库中执行的操做,从而实现主从之间的数据同步。

数据异地容灾

  • 能够在异地数据中心增长一台服务器,将其配置为新的从库,从主库中获取二进制日志进行回放,达到数据异地容灾的目的;也能够由应用程序模拟一个从库,从主库中获取二进制日志,进行解析、处理,而后将数据存放在容灾专用的系统中。

数据被误删除后的恢复(一般被称为"数据闪回")

  • 一般,对于未提交的事务,事务的ACID特性可以保证数据的一致性,直接使用事务提供的回滚功能便可实现对误删除数据的恢复,不受事务控制的修改语句除外,由于不受事务控制的语句修改的数据没法执行回滚。但事务一旦完成提交,则没法再对数据进行回滚,这时能够对二进制日志中记录的值与条件进行反转,生成新的SQL语句(要求二进制日志以row格式记录,必须记录全镜像,且只支持增/删/改语句的反向操做),而后从新在数据库实例中执行新的SQL语句,从而恢复被误删除的数据。

异构数据库之间的数据流转

  • 二进制日志中记录的是数据的逻辑变动,能够从中提取出数据的纯文本和字段的顺序,而后经过应用程序作一些处理,数据就能够在异构数据库之间流转,这一点是其余大多数数据库软件不具有的特性。

  • 二进制日志独有的特性造成了MySQL数据流动的与循环的基石,在不一样应用场景下造成了独特的“数据生态”,这也是本书名字的由来。

4. 读者对象

  • 不管你是MySQL的初学者、数据库架构师及其相关开发人员、非MySQL数据库DBA,仍是中高级的MySQL DBA,认真阅读此书,我相信或多或少都能有所收获。

    • 若是你是MySQL的初学者、MySQL相关开发人员、非MySQL数据库的DBA,能够从头开始完整学习MySQL的复制技术。

    • 若是你是数据库架构师、中高级MySQL DBA,能够借助本书对MySQL复制技术查漏补缺、扫除盲点。

5. 如何阅读本书

  • 全书分为“基础篇”、“方案篇”、“参考篇”,其中:

    • “基础篇”对MySQL主从复制技术的用途、概念、基本原理以及演进等进行了全方位的介绍。

    • “方案篇”对MySQL主从复制技术在生产中的应用场景、复制拓扑的生命管理周期、高可用切换与主库故障转移等进行了全方位的介绍。

    • “参考篇”对MySQL二进制日志的基本组成结构、常见的复制对象在主从复制拓扑中的流转过程等进行了全方位的介绍。

  • 对于初学者、MySQL相关开发人员、非MySQL数据库的DBA,若是时间充足,建议从头至尾依次学习。

  • 对于数据库架构师、中高级MySQL DBA,须要进行查漏补缺、扫除知识盲点,或者在工做上须要查阅资料以快速解决问题,则能够经过目录快速查找所需内容。

  • 若是你具有必定MySQL源码阅读能力,或者想要挑战更高难度,能够结合简书平台高鹏的专栏《深刻理解主从原理32讲》进行学习。对该专栏中的内容,高鹏也进行了整理,并出版为《深刻理解MySQL主从原理》一书,有须要的读者朋友可自行购买。

6. 致谢

  • 首先,很是感谢给本书做序的大拿:叶金荣老师、熊军、徐轶韬。感谢撰写封底推荐语的大拿:林晓斌(丁奇)、高鹏(八怪)、温正湖、杨奇龙、熊中哲、李春。感谢他们的承认与支持!

  • 其次,很是感谢给本书校稿的朋友们:刘云、董红禹、高鹏。感谢他们的任劳任怨,反复咀嚼文字,努力寻找书稿中的纰漏,帮助提高阅读体验!

  • 再次,很是感谢参与本书命名讨论的朋友们:李春、董红禹、徐婷、杜蓉、符隆美、孙黎!

  • 最后,很是感谢帮忙为本书推广宣传的叶金荣老师、杨奇龙、田帅萌,以及大力配合咱们推进图书出版事宜的电子工业出版社编辑符隆美,以及社里其余负责内容审核、校对、排版的编辑们!

7. 购买连接信息

* 购买链

  https://item.jd.com/12743119.html

  戳文末“阅读原文”亦可直达

* 购买二维码:

做者介绍

    罗小波:《千金良方——MySQL性能优化金字塔法则》做者之一。

熟悉MySQL体系结构,擅长数据库的总体调优,喜爱专研开源技术,并热衷于开源技术的推广,在线上线下作过屡次公开的数据库专题分享,发表过近100篇数据库相关的研究文章。现任 ScaleFlux staff application enginner

    沈刚:熟悉 MySQL 数据库运行机制,丰富的数据库及复制架构故障诊断、性能调优、数据库备份恢复及迁移经验,为银行、证券以及互联网用户提供数据库方面架构设计、故障诊断、性能调优等服务,现任 PingCAP TiDB 技术支持工程师

相关文章
相关标签/搜索