第 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
· · · · · · (
收起)