第 1篇 基础篇
第 1章 SQL Server On Linux简介 2
1.1 为何选择Linux平台的SQL Server 2
1.2 SQL Server关键组件简介 4
1.3 SQL Server On Linux新特性简介 6
1.3.1 数据库引擎 6
1.3.2 SQL Server Integration Services 8
1.3.3 机器学习 8
1.3.4 兼容Linux平台 9
1.3.5 其他 9
1.4 SQL Server On Linux新玩法 9
1.5 SQL Platform Abstraction Layer 10
1.5.1 PAL简介 10
1.5.2 进程模型 12
1.5.3 小结 12
1.6 本书结构 13
1.7 总结 14
第 2章 Linux基础及安装部署 15
2.1 背景介绍 15
2.2 前期规划 17
2.3 基础框架 19
2.4 部署 20
2.4.1 服务器命名及配置 21
2.4.2 安装过程 21
2.5 预配置 43
2.5.1 查看当前IP地址 44
2.5.2 检查网络连通性 45
2.5.3 远程登录 46
2.6 总结 48
第3章 安装配置SQL Server On Linux 49
3.1 安装前的准备工作 49
3.2 安装攻略 50
3.2.1 操作系统环境检查 51
3.2.2 安装SQL Server 53
3.2.3 验证安装 55
3.2.4 安装SQL Server命令行工具 56
3.2.5 尝试使用 58
3.3 环境配置 59
3.3.1 更新/卸载/重装SQL Server 60
3.3.2 检查配置存储库信息 65
3.3.3 安装SQL Server代理 67
3.3.4 SQL Server实例配置 68
3.4 注意事项 78
3.5 安装示例数据库 79
3.5.1 下载备份文件 79
3.5.2 移动文件 82
3.6 总结 83
第 2篇 管理篇
第4章 Linux基础运维 86
4.1 常用指令 86
4.1.1 文件或目录 86
4.1.2 编辑或查看指令 88
4.1.3 网络相关 95
4.1.4 系统层面 98
4.1.5 其他杂项 104
4.2 基础运维 106
4.2.1 服务部署 106
4.2.2 指标 115
4.2.3 安全 122
4.2.4 调优 130
4.2.5 Shell入门 135
4.3 总结 143
第5章 Linux基础监控 144
5.1 分布式监控系统Zabbix 145
5.1.1 安装服务端 145
5.1.2 安装配置客户端 149
5.1.3 告警设置 154
5.2 Grafana展现 162
5.2.1 部署 162
5.2.2 数据源选择 163
5.2.3 丰富的面板 167
5.2.4 定制 170
5.3 SQL Server监控 175
5.4 总结 180
第6章 服务及空间管理 181
6.1 服务器的服务及空间管理 181
6.1.1 Windows服务及空间管理 181
6.1.2 Linux服务及空间管理 184
6.1.3 小结 187
6.2 SQL Server服务及空间管理 188
6.2.1 SQL Server服务管理 188
6.2.2 SQL Server空间管理 191
6.3 SQL On Linux备份还原 198
6.3.1 数据库备份 199
6.3.2 数据库还原 203
6.3.3 数据库备份还原新用法 207
6.4 总结 207
第7章 SQL Server On Linux数据库安全 208
7.1 安全概念 208
7.2 始终加密 209
7.2.1 AE简介 209
7.2.2 AE演示 209
7.2.3 创建密钥 214
7.2.4 小结 216
7.3 动态数据屏蔽 216
7.3.1 DDM简介 217
7.3.2 DDM屏蔽规则 217
7.3.3 DDM演示 217
7.3.4 DDM性能与安全 219
7.4 行级安全性 221
7.4.1 RLS演示 221
7.4.2 小结 223
7.5 时态表 223
7.5.1 SQL Server时态表 224
7.5.2 SQL Server时态表的演示 224
7.6 总结 228
第8章 Linux自动化运维演示 229
8.1 expect 229
8.1.1 Shell中的expect 229
8.1.2 Python模块中的pexpect 231
8.1.3 Python模块中的paramiko 233
8.1.4 小结 234
8.2 Ansible入门 234
8.2.1 安装部署 234
8.2.2 基本操作 237
8.2.3 进阶 238
8.2.4 架构图及架构说明 239
8.3 总结 240
第9章 数据库监控 241
9.1 监控理论 241
9.1.1 监控的内容和目的 242
9.1.2 监控的方法/流程 244
9.1.3 监控的意义 245
9.1.4 小结 246
9.2 监控工具 246
9.2.1 SQL跟踪 247
9.2.2 扩展事件 248
9.2.3 动态管理视图/动态管理函数 248
9.2.4 性能计数器及数据收集器集 248
9.2.5 SQL Server新工具 254
9.2.6 专家工具 255
9.2.7 传统工具 257
9.2.8 使用方法 257
9.3 监控分析 258
9.4 监控展示 258
9.5 总结 260
第3篇 性能篇
第 10章 SQL Server性能优化方法论 262
10.1 性能简介 262
10.2 性能优化的误区 263
10.3 常见影响因素 265
10.3.1 应用程序的体系结构 265
10.3.2 应用程序设计 265
10.3.3 数据库设计 266
10.3.4 事务和隔离级别 266
10.3.5 T-SQL编码 266
10.3.6 硬件资源及部署 267
10.3.7 SQL Server配置 267
10.4 常规性能优化流程 269
10.5 扩充阅读 270
10.6 优化Checklist 271
10.6.1 数据库设计 271
10.6.2 语句设计 271
10.6.3 配置 272
10.7 总结 272
第 11章 SQL Server On Linux故障侦测 273
11.1 SQL Server查询生命周期 273
11.1.1 查询优化和执行 273
11.1.2 小结 282
11.2 常用故障侦测手段 282
11.2.1 扩展事件 282
11.2.2 常规侦测手段 288
11.2.3 查询存储 289
11.3 总结 294
第 12章 SQL Server性能优化新工具 295
12.1 简介 295
12.2 查询存储 295
12.2.1 查询存储中的信息 296
12.2.2 查询存储包含的内容 296
12.2.3 何时使用查询存储 299
12.2.4 查询存储最佳实践 302
12.3 自动优化 303
12.3.1 自动优化的工作原理 303
12.3.2 自动计划更正 304
12.3.3 自动优化的演示 304
12.4 自适应查询处理 308
12.4.1 旧式优化行为 308
12.4.2 新式优化行为 308
12.5 实时查询统计信息 316
12.6 总结 318
第 13章 SQL Server索引优化 319
13.1 简介 319
13.2 索引基础 320
13.2.1 索引目标 320
13.2.2 索引组织和分类 320
13.2.3 索引术语 322
13.2.4 索引访问方式 322
13.2.5 SARG 323
13.2.6 列存储索引 324
13.3 统计信息基础 329
13.3.1 查找关于索引的信息 329
13.3.2 简要说明 331
13.3.3 常规建议 331
13.4 索引种类 332
13.4.1 堆表 332
13.4.2 聚集索引 332
13.4.3 非聚集索引 332
13.4.4 其他索引类型 332
13.4.5 索引变种 332
13.5 索引分析与优化 333
13.5.1 问题隔离 333
13.5.2 索引问题分类 334
13.5.3 索引优化 335
13.6 索引建议 346
13.6.1 索引误区 346
13.6.2 索引维护建议 347
13.7 总结 347
第 14章 SQL Server等待信息 348
14.1 我们在等待什么 348
14.2 简介 349
14.2.1 等待的含义 349
14.2.2 需要等待信息的原因 350
14.2.3 保存等待信息 350
14.3 等待信息元数据 351
14.4 并行执行 351
14.4.1 CXPACKET 352
14.4.2 CXPACKET的潜在问题 353
14.4.3 降低CXPACKET等待 353
14.4.4 CXPACKET深度分析 354
14.4.5 CXPACKET建议 354
14.5 多任务等待 355
14.5.1 SOS_SCHEDULER_YIELD 355
14.5.2 多任务类型 357
14.5.3 多任务潜在问题 358
14.5.4 降低多任务等待 358
14.6 I/O等待 358
14.7 备份和还原等待 362
14.8 锁定等待 362
14.9 数据库日志等待 364
14.9.1 WRITELOG等待 364
14.9.2 降低WRITELOG等待 364
14.9.3 扩充说明 364
14.9.4 Logbuffer等待 365
14.9.5 Logbuffer的潜在问题 365
14.9.6 降低Logbuffer等待 366
14.10 外部资源等待 366
14.10.1 MSSQL_XP等待 366
14.10.2 降低MSSQL_XP等待 366
14.10.3 OLEDB链接服务器等待 366
14.10.4 降低OLEDB等待 366
14.10.5 OLEDB扩展说明 367
14.11 其他常见等待类型 367
14.11.1 RESOURCE_SEMAPHORE 367
14.11.2 THREADPOOL 367
14.11.3 PAGELATCH_XX 367
14.11.4 ACCESS_METHOD_XX 367
14.11.5 FGCB_ADD_REMOVE闩锁 368
14.11.6 DBCC_XX 368
14.11.7 Miscellaneous 368
14.12 案例 368
14.13 总结 369
第 15章 事务与阻塞 370
15.1 环境准备和术语介绍 370
15.1.1 环境准备 370
15.1.2 术语 371
15.2 事务与ACID 371
15.2.1 事务隔离级别和数据一致性 372
15.2.2 锁类型 373
15.2.3 锁演示 374
15.3 阻塞 378
15.3.1 阻塞演示 378
15.3.2 阻塞侦测方法 378
15.3.3 阻塞信息实时侦测 379
15.3.4 阻塞信息收集 383
15.4 死锁 385
15.4.1 死锁演示 386
15.4.2 死锁侦测 388
15.4.3 降低死锁概率 389
15.5 锁升级 389
15.5.1 锁升级概述 389
15.5.2 锁升级侦测 390
15.6 事务设计建议 392
15.7 总结 394
第 16章 In-Memory OLTP简介 395
16.1 案例演示 395
16.2 技术简介 398
16.2.1 术语简介 398
16.2.2 In-Memory的目标 398
16.2.3 体系结构 399
16.2.4 内存优化表索引 400
16.3 快速上手 401
16.3.1 创建数据库 401
16.3.2 创建表 402
16.3.3 Natively Compiled存储过程 403
16.3.4 Interpreted T-SQL 404
16.4 注意事项 405
16.5 最佳实践 407
16.5.1 索引优化 407
16.5.2 其他建议 408
16.6 总结 408
第4篇 架构篇
第 17章 SQL Server On Linux高可用介绍 410
17.1 简介 410
17.1.1 使用AlwaysON的优点 410
17.1.2 Linux上的AlwaysON可用性组 411
17.1.3 环境准备 412
17.2 安装过程 413
17.2.1 创建AG 413
17.2.2 配置集群管理器Pacemaker 422
17.3 警报 427
17.4 读写分离 432
17.5 常见故障侦测手段 435
17.5.1 AlwaysON的常见问题 435
17.5.2 参考工具 436
17.6 总结 438
第5篇 案例篇
第 18章 Linux运维案例 440
18.1 被黑 440
18.2 内存溢出 445
18.3 打开过多文件 446
18.4 从删库到“跑路” 448
18.5 总结 450
第 19章 数据库运维案例 451
19.1 简介 451
19.2 案例分享 451
19.3 其他案例 456
19.4 总结 458
附录
附录A SQL Server DBA及Linux管理员面试题分析 460
附录B DBA与Linux管理Checklist 464
附录C SQL Server表关联细节 468
附录D Linux内核参数说明 471
· · · · · · (
收起)