MySQL DBA 工作筆記:數據庫管理、架構優化與運維開發
內容描述
本書是來自一線MySQL DBA的技能進階筆記,凝結了作者多年數據庫管理心得。
全書從運維管理、架構優化和運維開發三個層面娓娓道來,精心篩選了作者在實際工作
中總結的技巧、對常見問題的處理方法以及對於運維體系的思考和實踐;尤其是運維開
發章節從0 到1 構建運維體系,能夠對DBA已有知識體系和技能棧做到全新梳理。
目錄大綱
第1 章 MySQL 發展和技術選型
1.1 如何看待MySQL ..............................................................................................................1
1.1.1 MySQL 始出...........................................................................................................1
1.1.2 MySQL 學習週期和難度........................................................................................1
1.1.3 解讀DB-Engines 的正確姿勢................................................................................2
1.1.4 MySQL 主要的一些分支........................................................................................3
1.1.5 如何看待MySQL 的技術發展...............................................................................3
1.2 如何看待MySQL 存儲引擎..............................................................................................5
1.2.1 InnoDB 發展時間線...............................................................................................6
1.2.2 存儲引擎之戰.........................................................................................................7
1.2.3 存儲引擎矩陣圖.....................................................................................................7
1.3 MySQL 軟件和版本選型...................................................................................................8
1.3.1 選擇官方版的原因.................................................................................................9
1.3.2 Percona 分支的優劣對比........................................................................................9
1.3.3 選擇MariaDB 的原因.......................................................................................... 10
1.3.4 MySQL 版本選型................................................................................................. 10
1.3.5 分支選擇的參考和標準........................................................................................ 11
1.3.6 初步結論............................................................................................................... 13
1.4 MySQL 常用工具選擇和建議......................................................................................... 13
1.4.1 運維管理類工具................................................................................................... 14
- 主流運維管理工具........................................................................................... 14
- 數據備份恢復工具........................................................................................... 14
- MySQL 審計插件............................................................................................ 15
1.4.2 應用工具............................................................................................................... 15 - 客戶端工具...................................................................................................... 15
- 數據庫版本管理工具....................................................................................... 15
1.4.3 監控管理類工具................................................................................................... 16 - 操作系統監控.................................................................................................. 16
- 性能監控工具.................................................................................................. 16
1.4.4 診斷和優化工具................................................................................................... 16 - 診斷工具.......................................................................................................... 16
- 性能測試工具.................................................................................................. 18
- 慢日誌分析工具.............................................................................................. 18
1.4.5 初步結論............................................................................................................... 18
1.5 MySQL 安裝.................................................................................................................... 19
1.5.1 常見的三種安裝方式............................................................................................ 19
1.5.2 MySQL 安裝規範................................................................................................. 20
1.5.3 MySQL 5.7 安裝部署實踐與總結........................................................................ 20
1.5.4 搭建從庫............................................................................................................... 23
案例1-1:MySQL 頻繁停庫的問題分析........................................................................ 25
第2 章 理解MySQL 體系結構
2.1 通過文件來瞭解MySQL 體系結構................................................................................. 29
2.1.1 從例子來理解MySQL 存儲結構......................................................................... 32
2.1.2 慢日誌診斷........................................................................................................... 32
案例2-1:MySQL 日誌故障的處理和分析.................................................................... 35
2.2 玩轉MySQL 數據字典.................................................................................................... 38
2.2.1 MySQL 巡檢模塊:Sys Schema 的設計.............................................................. 39
2.2.2 解惑:MySQL 關於數據字典的一個疑問........................................................... 47
2.3 InnoDB 體系結構............................................................................................................ 50
2.3.1 InnoDB 體系結構圖............................................................................................. 51
2.3.2 查看InnoDB 狀態的小技巧................................................................................. 52
2.3.3 InnoDB 的多線程技術.......................................................................................... 53
2.3.4 InnoDB 的緩存池管理技術.................................................................................. 55
2.3.5 InnoDB 中的髒頁管理.......................................................................................... 58
2.3.6 InnoDB 的日誌管理............................................................................................. 60
2.3.7 InnoDB 中的檢查機制.......................................................................................... 62
2.3.8 MySQL 是如何保證數據完整性的...................................................................... 63
2.4 換個角度看MySQL......................................................................................................... 66
2.4.1 MySQL 裡的一些極限值...................................................................................... 66
案例2-2:關於MySQL 中的一些極限值的初步驗證糾錯............................................. 67
2.4.2 mysql. service 啟動腳本淺析................................................................................ 68
2.4.3 MySQL 待改進的一些問題.................................................................................. 71
2.5 MySQL 參數解析............................................................................................................ 72
2.5.1 MySQL 參數變化分析.......................................................................................... 73
2.5.2 MySQL 5.7 參數解析............................................................................................ 74
第3 章 MySQL 基礎運維面面觀
3.1 環境部署和構建.............................................................................................................. 76
3.1.1 源碼安裝MySQL ................................................................................................. 76
3.1.2 在eclipse 中配置MySQL 源碼環境.................................................................... 80
3.1.3 分分鐘搭建MySQL 一主多從環境...................................................................... 87
3.2 MySQL 服務管理............................................................................................................ 88
3.2.1 Socket 連接........................................................................................................... 88
3.2.2 TCP/IP 連接.......................................................................................................... 89
3.2.3 MySQL 訪問模式的演進...................................................................................... 89
3.2.4 無密碼登錄........................................................................................................... 90
案例3-1:通過shell 腳本檢測MySQL 服務信息.......................................................... 91
案例3-2:MySQL 密碼加密認證的簡單腳本................................................................. 93
案例3-3:MySQL 中如何得到權限信息........................................................................ 94
方法1:重新導出導入整個數據庫...................................................................... 94
方法2:導出mysql 的權限配置.......................................................................... 94
方法3:pt 工具導出............................................................................................ 95