SQL Server On Linux 運維實戰

SQL Server On Linux 運維實戰

作者: 黃釗吉 熊章立
出版社: 人民郵電
出版在: 2019-02-01
ISBN-13: 9787115502421
ISBN-10: 7115502420
裝訂格式: 平裝
總頁數: 473 頁





內容描述


隨著微軟公司的開源策略逐步深化,其數據庫拳頭產品SQL Server不僅能運行在Windows平臺上,經過一系列產品迭代,還能穩定地運行在主流的Linux平臺中,並且越來越受到企業的認同。為了跟上時代的步伐,從業者有必要盡快掌握Linux上的SQL Server的使用方法。
本書屬於入門級別的技術圖書,主要面向對微軟SQL Server有初步認識,並且希望掌握在Linux上的SQL Server運維及性能優化的數據庫從業人員。當然,本書也適合在校學生學習使用,以便為後續就業打下良好的基礎。
本書以實操為主,講解了在Linux上SQL Server的安裝、配置、監控及高可用搭建等內容,同時融入了作者10年工作經歷中總結的Linux及SQL Server性能優化的經驗,以協助讀者更快入門。
本書包括基礎篇、管理篇、性能篇、架構篇、案例篇共計5大板塊,每個板塊包括若乾章內容,每章力求講清楚、講透一個技術點。在寫作本書時,作者不僅關註本書的系統性,同時還關註本書的實用性,力求使本書能成為大家經常翻閱的工具書。書中的案例均來自實踐,希望對讀者學習書中的知識點及體會作者的運維、優化思想有所幫助。


目錄大綱


第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


作者介紹


黃釗吉
10年SQL Server開發和運維經驗,從事過電子商務網站後台開發、銀行績效系統數據庫開發,以及服飾類ERP系統、信用卡系統(基於AWS)和大型電商倉儲系統數據庫的運維工作。6屆微軟數據平台MVP(2013-2018),前CSDN論壇SQL Server大版版主,CSDN博客專家,博客訪問量超過228萬。個人創作圖書《SQL Server性能優化與管理的藝術》,與人聯合翻譯《Windows PowerShell實戰指南(第2版)》。擁有MCTIP Database Administrator 2008、MCSE Data Management and Analytics等多個技術認證證書。
熊章立
9年Linux和MySQL專職運維經驗,曾獨立設計運維自動化平台方案並負責實施,擁有高達900台服務器的運維經驗,從事過汽車租賃、遊戲、物流等多個行業,目前是WMS、 OMS物流行業的DBA,負責數據庫運維管理、設計及基於Python開發相關的功能組件,並關注第三方開源監控軟件的落地及後續開發工作。




相關書籍

Oracle Database 12c基礎教程

作者 周法國

2019-02-01

動態網頁程式開發精粹:Java + JSP +SQL Server 2017

作者 余顯強

2019-02-01

數據庫系統概念, 7/e (Database System Concepts, 7/e)

作者 Abraham Silberschatz Henry F. Korth S. Sudarshan

2019-02-01