阿里云数字新基建系列包括5本书,涉及Kubernetes、混合云架构、云数据库、CDN原理与流媒体技术、云服务器运维(Windows),囊括了领先的云技术知识与阿里云技术团队独到的实践经验,是国内IT技术图书又一重磅作品。
数据库技术,被称为计算机三驾马车之一,几十年来,持续支持着全球亿万数字业务的运行,而云计算的出现,赋予了数据库新的能力。云数据库按引擎能力,可以分为关系型数据库、非关系型数据库、数据仓库和分布式新型数据库。本书从技术原理入手,讲解各种数据库的特点,分析不同场景的架构选型和数据库优化,继而展开到云数据库的迁移、云数据库的运维工作,期望能帮助读者了解和掌握云数据库相关知识与技能。
遨游海域的座头鲸、成群结队的角马、群聚飞翔的火烈鸟……构成了一幅幅壮美的生存画面,迁徙是自然界令人叹为观止的景观。
数智时代的上云与自然界的迁徙何其相似啊!
2021年伊始,我们博文视点的编辑团队联合阿里云技术团队,为广大IT技术人员奉上阿里云数字新基建系列。这个系列包括5本书,题材涉及Kubernetes、混合云架构、云数据库、CDN原理与流媒体技术、云服务器运维(Windows),囊括了领先的云技术知识与阿里云技术团队独到的实践经验,是国内IT技术图书中又一套重磅作品!
关于本书《云数据库架构》:
(1)阿里云数据库产品事业部总裁、达摩院数据库与存储实验室负责人李飞飞力荐,全彩印刷,厚352页。
(2)详解云数据库领域各种引擎的特点与原理,助你理解数据库架构的选型要点!阿里云数据库专家朱明李森许文科江厚顺王超郭宁余从佳王海忠聚力撰写!
为什么要写这本书
数据库技术,经过几十年的发展,不仅没有被淘汰,反而随着时间的推移,数据库引擎的高精尖程度、架构的复杂度、市场的普及度,都达到了计算机领域非常领先的程度,与操作系统、网络并称为计算机三驾马车。
我还记得读大学时,数据库市场正是Oracle数据库一家独大,那个时候,学校的图书馆里收藏着盖国强老师的Oracle系列丛书,它们成为我的数据库启蒙图书。但技术的演进日新月异,互联网的兴起带来了新的生机,从我工作开始,越来越多的数据库出现在我的面前,有传统的商业数据库,如Oracle、SQL Server、DB2;也有开源数据库,如MySQL、PostgreSQL;后来又出现了一种新的数据库,即NoSQL数据库,MongoDB、Redis接踵而来;没过几年,又出现了分布式数据库、新型数据库,等等。
除此之外,越来越复杂的高可用方案,充斥在各种技术博客中;五花八门的Bug和错误代码,拥挤在搜索引擎里;越来越多的新名词、新概念,堆砌在招聘简介中。BBS里一整页的分区板块;微信交流群、钉钉分享群永远都有1000人,加不进去,有些群名赫然写着1群、2群、3群,俨然有一种知识大爆炸的感觉,既让人为这种繁荣热闹的场面而兴奋,又让人为这些快速迭代的变化而焦虑。
我在学习Oracle的时候,以为一招鲜,可以吃遍天,但工作后发现这个想法是十分幼稚的,在找工作时,越来越多的公司要求有多种数据库经验;随着云数据库的兴起,业务更快速地接入多种数据库的难度也在大大降低。于是,我又萌生了另外一个幼稚的想法如果能学会所有数据库就好了。
经过九年的时间磨砺,我没有想到,我正在逐渐接近这个幼稚的想法;我也没有想到,会为了这个幼稚的想法,组织了一群相信我的人,一起来撰写这么一本书,希望能把纷繁变化的云数据库世界展现给广大读者。
不同的时代,会有不同的背景。在今天这个时代,有两个大背景:
- 去IOE运动风行多年,国产数据库如雨后春笋,百家争鸣,被收录的国产数据库多达上百种;其中阿里云作为国产数据库厂商代表,首次代表中国公司,进入Gartner全球数据库领导者象限,这是国内厂商在数据库领域的历史性突破。
- 21世纪以来,互联网兴盛蓬勃,云计算逐渐成为互联网时代的新型基础设施,阿里云作为国内领先的云计算厂商,有幸参与到这个历史使命中,对数据库的架构选型和深度使用,也注定在历史上留下自己的脚印。
如此百花齐放、波澜壮阔的浪潮,不禁让我想起我们常说的那句话:澎湃算力,世界动力。
关于本书
本书从数据库的技术基础要素、架构、实践等多个方面出发,分层次展开介绍了云数据库的内核、管控、高可用、云化、国产设计等特点,从技术到工程实践,凝聚了阿里云技术专家们多年的努力与总结。我们期望本书可以给正在上云、即将上云以及期望了解云数据库的决策者和技术人员一些帮助,同时也希望本书可以给已经在使用云数据库的专家、技术人员带来一些新的全局认识,帮助他们更好地使用云数据库。
本书内容安排如下:
- 第1章和第2章,重点讲解了关系型数据库的种种设计,尤其是它们的特点和区别;非关系型数据库究竟是什么,能解决什么问题;新型数据仓库的出发点和优势在哪里,以及新型数据库(NewSQL)到底新在哪里,方向又在何处。各章节除了讲解社区版的设计,还对比了阿里云数据库在云化设计上的创新和优势。
- 第3章,结合前两章介绍的原理知识,讲解了一些常见问题的架构选型思路;还结合各行各业的案例,介绍了在不同场景下,如何使用不同的数据库组合解决业务难题。
- 第4章,重点讲解了如何将数据库从本地迁移到云上,按数据库种类,分别讲解了各种同步工具,并结合不同业务,分别介绍了在不同切换需求下如何进行业务割接。
- 第5章,重点讲解了阿里云数据库的一些特殊概念,方便读者理解阿里云在云数据库管控方面的设计以及必要知识。
- 第6章至第9章,从运维管理的角度出发,介绍了阿里云数据库的配套组件,它们分别是DMS,用于安全生产和多类型数据库管理访问平台;DAS,自治化数据库优化平台;DBS,备份恢复管理平台;CMS,配套云监控平台。
致谢
首先,感谢阿里云数字新基建系列丛书的编委会,感谢各位专家,包括:李津、李飞飞、张卓、黄贵、李圣陶、万谊平,他们在图书编写中给予了我们许多方向上的指导;感谢所有在图书编写过程中给予我们帮助的同事,包括:李广望、沈乘黄、胡中泉、潘文宇、王勇猛、陈宗志、何雷、王若、童家旺、杨成虎、王佳毅、朱国云、王宇辉、李德坤、周建平、崔屿、张雯、江冉、李一帅、秦扬。没有你们的帮助和支持,我们无法完成这本书。
其次,感谢电子工业出版社博文视点的张彦红、葛娜、刘博、高丽阳、李玲等老师,感谢你们在图书的编辑和推进中给予我们诸多帮助,没有你们,这本书也不会以此形式和广大读者见面。
后,感谢我的Mentor,段凌,来自微软中国的数据库资深专家,以及阿里巴巴的师兄,田杰,来自阿里云数据库事业部的高级专家。没有你们的教导和培养,我亦无法担此角色来统筹撰写这本书。同时感谢我的家人,对我的鼓励与慰藉。
希望本书能够让所有对云数据库感兴趣的朋友都有所收获,或有所感悟。因水平有限,书中难免有笔误、差错或遗漏等问题,希望广大读者能把发现的错误告诉我们,我们将不胜感激。
- 朱明·
微软原工程师,现担任阿里云数据库高级技术专家,擅长关系型、非关系型、分布式等多种数据库技术。从事数据库工作9年,有丰富的从业经验,擅长各类疑难杂症的排查和架构设计。
·李森·
现担任阿里云售后技术专家,从事数据库相关工作8年,主要负责阿里云数据库产品线技术支持工作,擅长关系型、分布式等多种数据库技术,擅长设计与实施复杂数据库系统的搬迁方案。
·许文科·
阿里云技术专家,从事数据库相关工作12年,为多家上市公司、政企提供数据库顾问咨询、培训和方案设计、技术支持服务。目前就职于阿里巴巴,专注于阿里云数据库售后技术支持工作。
·江厚顺·
长期从事数据库方面的工作,对数据库原理有深入的理解,技术支持经验丰富。曾在IBM从事DB2数据库售后技术支持多年,2019年加入阿里云,担任数据库售后技术专家。
·王超·
网易原工程师,现担任阿里云高级技术经理,长期从事互联网行业相关数据库项目支持工作,负责游戏、泛娱乐等行业客户的技术项目方案设计、架构优化、业务保障以及技术支持工作。
·郭宁·
阿里云技术专家,深耕于互联网行业并从事数据库相关工作近11年,擅长关系型数据库和分布式数据库的性能诊断优化、架构设计及数据库运维生态开发。
·余从佳·
现担任阿里云数据库交付与架构工程师,擅长关系型、分布式、非关系型等多种数据库技术,先后多次参与游戏、金融、能源等行业头部客户数据库技术支持、国产化架构方案设计与迁云交付。
·王海忠·
搜狐集团原DBA,现担任阿里云数据库高级技术专家,拥有多年的互联网行业数据库工作经验,参与阿里巴巴集团多年双十一保障工作,有丰富的数据库优化、保障经验。
第1章 关系型云数据库技术特点
1.1 RDS for MySQL
1.1.1 SQL语句在MySQL服务层的执行过程
1.1.2 优化器与优化器追踪(Optimizer Trace)
1.1.3 slowlog 与 binlog
1.1.4 InnoDB的MVCC
1.1.5 InnoDB redo日志
1.1.6 InnoDB Mini-Transaction
1.1.7 InnoDB undo日志
1.1.8 内部XA二阶段提交
1.1.9 半同步复制
1.1.10 线程池
1.1.11 X-Engine
1.1.12 RDS三节点企业版
1.2 RDS for SQL Server
1.2.1 SQL Server的架构
1.2.2 SQLOS
1.2.3 SQL Server的并发
1.2.4 SQL Server的优化器
1.2.5 RDS for SQL Server高可用实现
1.3 RDS for PostgreSQL
1.3.1 PGSQL的优化器
1.3.2 PGSQL MVCC与锁
1.3.3 PGSQL 复制与高可用
第2章 非关系型及新型云数据库技术特点
2.1 非关系型数据库
2.1.1 Redis & Memcached 缓存型数据库
2.1.2 MongoDB
2.2 数据仓库
2.2.1 AnalyticDB for MySQL
2.2.2 HBase & Lindorm
2.3 分布式和其他新型数据库
2.3.1 以PolarDB-X为代表的Share Nothing分布式集群
2.3.2 以PolarDB-M为代表的Share Everything集群
第3章 云数据库技术选型与场景实践
3.1 扩容的技术实践
3.1.1 业务请求量膨胀
3.1.2 数据容量膨胀
3.2 换代的技术实践
3.2.1 同系列升级
3.2.2 跨系列升级
3.3 热点访问的技术优化
3.4 场景实践
3.4.1 在线教育数据库选择
3.4.2 线上游戏数据库选择
3.4.3 工业/ IoT数据库选择
3.4.4 金融数据库选择
3.4.5 交通物流配送
第4章 数据库迁移的实现和方案
4.1 数据库迁移的类型和方式
4.2 逻辑数据迁移的实现
4.2.1 逻辑数据迁移的步骤与风险
4.3 云上的数据库迁移的工具
4.3.1 数据传输服务DTS
4.3.2 数据库和应用迁移服务ADAM
4.3.3 数据集成
4.3.4 BDS
4.3.5 其他迁移工具
4.4 不同场景下的数据迁移方案
4.4.1 场景1:一对一迁移
4.4.2 场景2:一对多高耦合业务迁移
4.4.3 场景3:多对一异构迁移
第5章 云上数据库运维指南与实践
5.1 快速入门使用云数据库
5.1.1 创建RDS实例
5.1.2 设置白名单
5.1.3 设置连接地址
5.1.4 创建数据库和账号
5.1.5 常见运维管理
5.2 主备切换(HA)
5.2.1 HA健康检测机制
5.2.2 临时关闭主备自动切换
5.3 主动运维
5.3.1 消息接收管理
5.3.2 设置可维护时间段
5.3.3 待处理事件
5.4 使用Open API
5.4.1 API通信协议
5.4.2 API签名机制
5.4.3 OpenAPI Explorer
5.4.4 API问题诊断
第6章 安全管理DMS
6.1 产品介绍
6.1.1 什么是数据管理DMS
6.1.2 基础架构
6.1.3 DMS优势
6.2 使用指南
6.2.1 系统管理
6.2.2 实例管理
6.3 DMS实践
6.3.1 权限管理
6.3.2 基于ADB和DMS企业版周期生成报表数据
6.3.3 自定义审批流程
6.3.4 不锁表变更-回收碎片空间
第7章 数据库自治服务DAS
7.1 初识数据库自治服务DAS
7.1.1 数据库运维与管理的挑战
7.1.2 解决方案自治服务DAS
7.2 从实战案例认识自治服务DAS
7.2.1 使用DAS分析优化慢SQL
7.2.2 使用DAS分析RDS实例CPU打满/打高现象
7.2.3 RDS实例活跃Session监控
7.2.4 10秒SQL分析
7.2.5 SQL自动限流
7.2.6 DAS如何分析RDS实例不同时段业务差异
7.2.7 异常检测
7.2.8 RDS实例情况整体分析
第8章 运维备份服务DBS
8.1 产品介绍
8.1.1 什么是DBS
8.1.2 产品优势
8.1.3 备份方式
8.2 使用指南
8.2.1 DBS与RDS备份的区别
8.3 DBS实践
8.3.1 备份集自动下载到本地
8.3.2 快速恢复
8.3.3 数据库异地备份
第9章 监控利器之云监控
9.1 什么是云监控
9.1.1 产品构架
9.1.2 功能特性
9.2 产品优势
9.3 应用场景
9.4 使用指南和实践
9.4.1 报警模板实践
9.4.2 使用报警模板的操作步骤
9.4.3 通过钉钉群接收报警通知 P331
9.4.4 内网监控实践 P333