新書推薦:

《
故宫还可以这么看
》
售價:NT$
924.0

《
高句丽渤海研究论集
》
售價:NT$
704.0

《
德国民法总论:法律行为理论(第二版)
》
售價:NT$
1023.0

《
权利之辩:哲学探赜
》
售價:NT$
440.0

《
生活就是反抗:葛兰西传(社会思想丛书)
》
售價:NT$
594.0

《
文治天下:宋朝政治文化漫谈
》
售價:NT$
380.0

《
丝与茶:18世纪亚洲商品在斯堪的纳维亚
》
售價:NT$
490.0

《
不可思议的树:一本可触摸的纸上年轮博物馆
》
售價:NT$
429.0
|
編輯推薦: |
《SQLServer运维之道》是一本针对数据库管理员、运维工程师和开发人员的全面参考书。它深入探讨了SQLServer2022的各项核心功能,包括跨平台的安装、配置及优化技巧,精细解读内存优化、智能查询处理和高可用性技术。书中不仅涵盖了从基础知识到高级技术的全方位内容,还通过丰富的实操示例和实践,帮助读者提高管理效率和系统性能。无论是日常运维还是系统优化,这本书都将成为您不可或缺的实用工具。
|
內容簡介: |
《SQLServer运维之道》从一位拥有多年数据库运维经验的“老司机”视角出发,循序渐进地介绍SQLServer数据库。《SQLServer运维之道》分为4篇,共9章,内容涵盖数据库基础、性能优化、开发、架构高可用性与运维等多个方面。基础篇(第1章和第2章)从安装部署讲起,探讨SQLServer在容器化和云原生环境下的安装部署,以及Linux平台上的架构设计与性能表现。性能篇(第3~6章)聚焦数据库性能优化,内容包括新特性加速数据库恢复、事务与锁、索引优化以及数据库自动驾驶能力等。开发篇(第7章和第8章)重点介绍数据库安全性及多模态能力,着重讲解区块链技术在数据库安全方面的创新应用,以及图数据、JSON数据和空间地理数据等多模态数据的支持。架构与运维篇(第9章)围绕数据库高可用性和运维展开,详细讲解AlwaysOn高可用性集群的搭建与高级功能。《SQLServer运维之道》结合实际生产案例,旨在帮助读者学以致用,解决数据库运维中的痛点。《SQLServer运维之道》既适合数据库初学者,也适合有一定基础的开发人员,还适合作为培训机构和大中专院校的教学用书。
|
關於作者: |
林勇桦13年数据库领域深耕经验,中国DBA联盟(ACDU)成员,三届微软SQLServer方向MVP。专注于MySQL、Redis、SQLServer.MongoDB等数据库技术,具备人工智能专业硕士背景,曾任大型网络游戏公司数据库负责人,深谙企业级数据库架构设计与性能调优。长期活跃于技术社区,致力于分享实战经验推动数据库技术在高并发、大数据场景中的落地实践。
|
目錄:
|
目 录
第1篇 基础篇
第1章 数据库的安装与配置 2
1.1 SQL Server概述 2
1.1.1 SQL Server简介 2
1.1.2 SQL Server的发展历史 2
1.2 安装前的准备 5
1.3 Windows平台部署 6
1.3.1 安装包上的改进 6
1.3.2 SQL Server安装向导详解 8
1.3.3 验证安装 17
1.3.4 静默安装 19
1.4 Linux平台部署 21
1.4.1 使用CentOS Stream 9部署SQL Server 22
1.4.2 正式部署Linux上的SQL Server 22
1.4.3 安装阶段 23
1.4.4 与MySQL安装包的对比 30
1.4.5 配置阶段 31
1.5 容器平台部署 38
1.5.1 使用Docker部署SQL Server 39
1.5.2 在Kubernetes上部署SQL Server 41
1.5.3 部署Minikube单机版 42
1.6 安装过程中的常见问题 45
1.6.1 Windows平台 45
1.6.2 Linux平台 46
1.6.3 容器平台 47
1.7 安装示例数据库 47
1.7.1 下载和安装示例数据库 47
1.7.2 使用示例数据库进行测试和学习 49
第2章 Linux平台上的架构与优化 51
2.1 Linux平台上的进程模型 51
2.2 Linux平台上的整体架构 53
2.2.1 SQL PAL的内部结构 54
2.2.2 系统底层屏蔽神器 56
2.2.3 容器化架构 56
2.3 Linux平台上的功能演进 58
2.4 Linux平台上的性能表现 59
2.4.1 TPC-C/TPC-E基准测试榜单 59
2.4.2 Linux平台性能测试报告 61
2.4.3 SQL Server 2022TPC-H性能表现 65
2.4.4 自测Linux平台上数据库 TPC-H 性能 65
2.5 数据库补丁模型 66
2.5.1 数据库补丁版本确认 68
2.5.2 Linux平台上部署补丁包 69
第2篇 性能篇
第3章 性能优化新特性 74
3.1 加速数据库恢复 74
3.1.1 问题背景 74
3.1.2 加速数据库恢复介绍 80
3.1.3 解决方案 81
3.1.4 技术原理 82
3.1.5 ADR收益验证 90
3.1.6 ADR迭代改进 94
3.1.7 单库48TB的ADR应用案例 95
3.2 TempDB元数据优化 97
3.2.1 问题背景 98
3.2.2 问题痛点 98
3.2.3 解决方案 99
3.2.4 功能收益 100
3.3 Buffer Pool缓冲池并行扫描 100
3.3.1 问题背景 100
3.3.2 问题痛点 101
3.3.3 解决方案 101
3.3.4 使用场景 102
3.4 事务日志并行重做 102
3.4.1 问题背景 102
3.4.2 问题痛点 103
3.4.3 解决方案 105
3.4.4 事务日志上的其他改进 108
第4章 数据库事务、锁和等待 110
4.1 事务与ACID 110
4.2 事务的隔离级别和数据一致性 111
4.3 数据库锁 115
4.3.1 锁粒度 115
4.3.2 锁类型 115
4.3.3 锁兼容性 116
4.3.4 轻量级锁:闩锁 116
4.3.5 列存储索引的事务隔离级别 117
4.4 慢查询日志记录阻塞和死锁 127
4.4.1 阻塞 127
4.4.2 死锁 129
4.4.3 扩展事件记录历史阻塞和死锁 132
4.5 数据库等待 137
4.5.1 从CPU的角度看等待 137
4.5.2 数据库执行SQL语句的机制 138
4.5.3 等待类型 139
4.5.4 并行等待 141
4.5.5 多任务等待 142
4.5.6 数据库日志等待 143
4.5.7 锁定等待 144
4.5.8 各类I/O等待 145
4.5.9 其他等待 146
4.5.10 扩展事件记录历史等待 148
4.6 创新硬件持久内存 151
4.6.1 技术特点 151
4.6.2 性能参数对比 151
4.6.3 数据库支持 152
第5章 索引优化 154
5.1 索引简介 154
5.2 索引组织和分类 154
5.3 传统B树索引 157
5.3.1 相关术语 157
5.3.2 堆表 158
5.3.3 聚集索引表和非聚集索引 159
5.3.4 数据访问方式 160
5.3.5 数据同步方式 167
5.3.6 B树索引的维护和建议 168
5.4 列存储索引和集中式架构HTAP数据库 172
5.4.1 HTAP数据库简介 172
5.4.2 在OLAP领域的发展 172
5.4.3 列存储索引上的演进 173
5.4.4 列存储索引原理 176
5.4.5 列存储索引维护和建议 183
5.4.6 聚集列存储索引分区表 187
5.4.7 双11期间30TB业务数据实时分析案例 192
5.5 内存优化索引 192
5.5.1 混合存储引擎架构 194
5.5.2 内存优化索引维护和建议 195
5.5.3 内存优化表犄角旮旯 197
第6章 数据库自动驾驶 199
6.1 智能数据库概述 199
6.2 智能查询处理演进 202
6.3 智能查询优化底座 205
6.3.1 查询存储内部原理 209
6.3.2 查询存储中的关键数据 210
6.3.3 查询存储的使用场景 212
6.4 近似优质值计数 218
6.4.1 近似优质值计数概述 218
6.4.2 近似优质值计数使用示例 219
6.5 行模式内存授予反馈 221
6.5.1 内存授予反馈概述 222
6.5.2 内存授予反馈使用示例 222
6.5.3 内存授予反馈注意事项 229
6.6 参数敏感执行计划优化 229
6.6.1 参数敏感执行计划优化概述 230
6.6.2 参数敏感执行计划优化使用示例 230
6.6.3 参数敏感执行计划优化注意事项 234
第3篇 开发篇
第7章 数据库安全性 236
7.1 数据库安全功能演进 236
7.2 动态数据掩码 238
7.2.1 DDM屏蔽规则 239
7.2.2 DDM的工作方式 240
7.2.3 DDM使用示例 241
7.3 行级安全性 243
7.3.1 RLS的工作方式 244
7.3.2 RLS使用示例 244
7.4 始终加密 247
7.4.1 始终加密使用示例 247
7.4.2 取消始终加密 253
7.5 时态表 254
7.5.1 时态表的工作方式 254
7.5.2 时态表使用示例 256
7.5.3 时态表注意问题 258
7.6 账本表 259
7.6.1 账本表的工作方式 259
7.6.2 账本表使用示例 261
7.6.3 数据库验证 264
第8章 多模态数据库 268
8.1 多模态数据库功能演进 268
8.2 图数据 269
8.2.1 图数据库概述 270
8.2.2 图数据功能使用示例 270
8.2.3 图数据的新特性 276
8.3 时间序列数据 277
8.3.1 时间序列数据概述 277
8.3.2 时间序列函数使用示例 277
8.4 JSON数据 281
8.4.1 JSON函数使用示例 282
8.4.2 JSON索引 286
8.4.3 原生JSON数据类型 287
第4篇 架构与运维篇
第9章 数据库高可用性 290
9.1 数据库高可用性概述 290
9.2 高可用性集群方案 291
9.3 Always On可用性组的演进 295
9.4 Always On可用性组架构与性能优化 297
9.4.1 基本架构和可用性模式 297
9.4.2 数据同步原理 299
9.4.3 数据同步延迟 301
9.4.4 仅配置模式辅助副本 303
9.5 Linux平台上的Always On可用性组 303
9.5.1 Pacemaker集群管理器概述 304
9.5.2 Pacemaker集群上的Always On架构 305
9.5.3 部署DNS服务 307
9.5.4 Linux平台上的Always On集群搭建 310
9.5.5 集群故障转移测试和维护建议 322
9.6 Always On可用性组的高级功能和新特性 326
9.6.1 包含可用性组 327
9.6.2 跨平台仅读取缩放可用性组 329
9.6.3 损坏数据页自动修复 330
9.6.4 辅助副本使用快照隔离级别 333
|
內容試閱:
|
前 言
大学时,我就开始接触SQL Server,而将其真正用于工作中已有12年多。不论大家对它的评价如何,我依然深爱着它。从大学开始算起,我大约有16年的SQL Server使用经验。进入职场后,我最早开始使用的是SQL Server 2000版本,可以说从当初的SQL Server“菜鸟”,逐渐成长为现在的“老鸟”。工作后,接触到的SQL Server性能问题日益增多,数据库数据量也越来越大(我曾接触过最大单库为48TB的数据量)。SQL Server面对这些棘手的问题都能迎刃而解,这让我对SQL Server的能力愈发着迷。2014年,我成为一名专职的SQL Server DBA,数据库性能和高可用问题的探索和实践也从兴趣转变为工作职责。成为专职DBA后,我逐渐完善了自己的数据库知识结构,为本书的写作提供了坚实的基础。
之前,我在某互联网游戏公司带领DBA团队运维TB级的业务数据库,运维的数据库种类繁多,包括MySQL、MongoDB、Redis、SQL Server和PostgreSQL等。平时的工作涉及存储、高可用性和灾备的设计方案,还主导了内部数据库运维平台的研发。参加工作后,我习惯在博客园写技术博客,至今已有14年,坚持写原创技术博客的目的是分享在数据库运维过程中遇到的各种问题和解决方案,并对技术问题进行知识沉淀。没想到,因为这些分享,我三次获得了微软SQL Server方向最有价值的称号和博客园推荐博客的荣誉,同时还结识了数据库领域的许多技术大师。
SQL Server作为微软公司著名的数据库管理产品,多年来稳居DB-Engines数据库排行榜前三。SQL Server最初由图灵奖得主James Nicholas Gray主导开发,并基于另一位图灵奖得主Michael Stonebraker开发的Ingres系统发展起来。经过30多年的锤炼,SQL Server已得到业内的广泛认可和应用。
随着.NET、Visual Studio、Office和PowerShell等微软的商业产品逐步实现跨操作系统平台应用,SQL Server也在2017年正式支持主流的Linux平台(包括Red Hat Enterprise Linux/CentOS、Ubuntu和SUSE)。随着SQL Server 2017的发布,SQL Server不仅实现了跨平台的能力,还引入了大量新功能,这些功能大幅提升了数据库性能与管理效率,并加速了SQL Server与大数据和人工智能领域的整合。在SQL Server支持Linux后,部署量显著上升,因为用户无须再支付Windows系统的商业授权费用,且可以统一公司的技术栈,不需要再维护Windows系统。在当前“降本增效”的大环境下,这一效益尤为显著。此外,Linux平台下的SQL Server安装包也进行了优化(瘦身显著),部署数据库的过程更加便捷。可以说,微软使自家的商业产品实现跨操作系统平台运行的决定是非常明智的。
鉴于国内目前缺乏关于SQL Server新版本的图书,且网上资料零散,我结合近一年的实践、资料整合以及16年的使用经验,编写了本书。
本书的目的是帮助读者了解当前SQL Server新版本的功能和发展状况。特别是如何利用功能做好SQL Server数据库管理和性能优化,尤其是在超大型TB级甚至PB级数据库管理方面。
本书分为4篇,分别是基础篇、性能篇、开发篇和架构与运维篇。
基础篇(第1、2章)介绍SQL Server的基础安装及环境准备,并详细讲解在Linux平台上的架构设计和性能表现。
性能篇(第3~6章)分别介绍SQL Server性能优化的新特性、索引方面的新功能(包括列存储索引和内存优化索引),以及SQL Server的自动驾驶能力,该能力在数据库领域可谓遥遥。
开发篇(第7、8章)介绍SQL Server的安全和多模态方面的内容。在安全方面,SQL Server引入了不可篡改的区块链技术,提供了比Oracle数据库还要强的安全能力,甚至在SQL Server 2022的宣传资料中提到,SQL Server是过去10年最安全的数据库。此外,本书还独具一格地介绍了SQL Server的多模态能力,包括图数据、JSON数据和空间地理数据等数据类型,功能强大。
架构与运维篇(第9章)专门介绍SQL Server的高可用性,包括高可用性的发展、Linux平台上AlwaysOn集群的搭建以及AlwaysOn集群的高级功能。
配套资源下载
本书配套源代码和示例数据库,请读者用微信扫描下面的二维码下载。如果学习本书的过程中发现问题或疑问,可发送邮件至booksaga@126.com,邮件主题为“SQL Server运维之道”。
本书能够顺利出版,首先要感谢清华大学出版社的编辑老师们。在这一年多的时间里,他们一直支持我的写作,正是他们的鼓励和帮助,才让我顺利完成了整本书稿。
作 者
2025年6月
|
|