SQL Server運維之道
林勇樺
相關主題
商品描述
"《SQL Server運維之道》從一位擁有多年數據庫運維經驗的“老司機”視角出發,循序漸進地介紹SQL Server數據庫。《SQL Server運維之道》分為4篇,共9章,內容涵蓋數據庫基礎、性能優化、開發、架構高可用性與運維等多個方面。基礎篇(第1章和第2章)從安裝部署講起,探討SQL Server在容器化和雲原生環境下的安裝部署,以及Linux平臺上的架構設計與性能表現。性能篇(第3~6章)聚焦數據庫性能優化,內容包括新特性加速數據庫恢復、事務與鎖、索引優化以及數據庫自動駕駛能力等。開發篇(第7章和第8章)重點介紹數據庫安全性及多模態能力,著重講解區塊鏈技術在數據庫安全方面的創新應用,以及圖數據、JSON數據和空間地理數據等多模態數據的支持。架構與運維篇(第9章)圍繞數據庫高可用性和運維展開,詳細講解AlwaysOn高可用性集群的搭建與高級功能。《SQL Server運維之道》結合實際生產案例,旨在幫助讀者學以致用,解決數據庫運維中的痛點。 《SQL Server運維之道》既適合數據庫初學者,也適合有一定基礎的開發人員,還適合作為培訓機構和大中專院校的教學用書。"
作者簡介
"林勇樺13年數據庫領域深耕經驗,中國 DBA 聯盟(ACDU)成員,三屆微軟 SQLServer 方向MVP。專註於MySQL、Redis、SQL Server.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 2022最新TPC-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