MySQL運維內參:MySQL、Galera、Inception核心原理與最佳實踐 pdf epub mobi txt 電子書 下載 2024
編輯推薦
適讀人群 :DBA、數據開發人員及相關技術學習者 √去哪兒DBA老大|ACEDirector|MySQL用戶組主席周彥偉領銜打造
√源碼專傢強勢加盟,集三大主流開源項目源碼剖析與實戰於一書
√一呼百應,MySQL官方指定專傢NoSQL|Replication內幕
√DBA案頭必備,覆蓋服務器性能|集群高可用|自動化運維高級話題
內容簡介
本書是一本介紹MySQL數據庫知識的專業書籍,從核心原理到實踐,深入淺齣、抽絲剝繭地進行講解,不僅從源碼和運維兩個角度介紹瞭MySQL大部分重要概念和運維要點,還講述瞭MySQL極為優秀的集群組件Galera的實現原理和運維經驗,同時,也介紹瞭作者獨立開發的MySQL審核係統Inception的設計、實現與功能。
本書也得到瞭MySQL官方研發團隊的大力支持,兩位資深專傢分彆介紹瞭MySQL的支持NoSQL的組件MySQL Document Store,以及集群化組件MySQL Group Replication的實現原理和運維要點。
本書不僅可以作為技術管理者和架構師在設計MySQL相關應用和係統時的參考,還適閤MySQL應用開發者更深入地瞭解和使用MySQL。作為MySQL DBA的必備參考,希望本書能在實際工作中對讀者有所幫助。
作者簡介
周彥偉,去哪兒網數據庫總監,OracleMySQLACEDirector,ACMUG主席
在去哪兒網負責數據庫平颱的管理和維護工作。工作範圍包括MySQL、Redis、HBase平颱的架構設計、性能調優、日常運維及自動化運維平颱設計。長期奮戰於互聯網行業,曆經酷訊網、人人網(校內網)和去哪兒網。曾經擔任人人網MySQL技術主管,負責數韆規模的MySQL數據庫實例的運維管理。中國MySQL用戶組(ACMUG)創始人兼主席,領導和組織中國MySQL社區活動。
王竹峰,去哪兒網數據庫專傢
擅長數據庫開發、數據庫管理及維護,一直緻力於MySQL數據庫源碼的研究與探索,對數據庫原理及實現具有深刻的理解。曾就職於達夢數據庫,多年從事數據庫內核開發的工作,後轉戰人人網,任職高級數據庫工程師,目前在去哪兒網負責MySQL源碼研究與運維、數據庫管理和自動化運維平颱設計開發及實踐工作,是Inception開源項目的作者。
強昌金,去哪兒網高級DBA
先後就職於陌陌、去哪兒網。目前擔任去哪兒網DBA,主要負責去哪兒網數據庫管理平颱的開發、MySQL和Redis的運維。在數據庫方麵,具有豐富的數據庫運維和性能優化經驗。
精彩書評
中國君子,“窮則獨善其身,達則兼善天下”。中國互聯網技術從業者,也應當有這般胸懷,研習新舊技術,總結成敗經驗,繼承開源思想,傳播創新文化。很慶幸,彥偉的團隊就是這樣一個典型,從點滴做起,與社區共生,先做好自己,再澤被四鄰。從來沒有一個行業的技術趨勢,如互聯網這樣,發展狂飆突進,門派星羅棋布,更迭日新月異。從業者要從其中海選齣適閤自己的方案,已是大費周章,更彆說精通此道風尚。所以,要想跟上時代,不僅需要慧眼,更需要妙手。這本書的問世,歸功於彥偉、竹峰和昌金這三位數據庫老司機,不但車技嫻熟,慧眼妙手,能幫他人排憂解難,而且更兼濟世仁心,願天下從業者都有醫者之能。最後,衷心祝願本書能給各位讀者的職業生涯,送上一個漂亮的神助攻。
——劉啓榮京東金融數據庫總監
本書是理論和實踐的完美結閤,是去哪兒網DB團隊知識和技術纍積的結晶,有關鍵的理論知識,還有豐富的實踐案例,同時還從源碼角度來進行說明確認,使MySQL的愛好者知其然,更能知其所以然,在MySQL運維世界裏是一本不可多得的好書。我受益匪淺,也希望廣大讀者有更大的收獲。更實在的是,在去哪兒網DB團隊負責人周彥偉先生的積極推動下,InceptionSQL審核係統在去哪兒網的生産環境上得到瞭洗禮和考驗,而且本書齣版前該係統已開源多時,MySQL愛好者亦可參考本書內容,然後根據自身實際的業務情況,更好地去建立或改善自有的MySQL自動化運維平颱,方便數據庫上綫,減少齣現錯誤的概率,提升運維與開發人員工作效率,解放齣DBA,使其做更有價值的事情。此外,近幾年來,開源社區組織ACMUG(中國MySQL用戶組)在周彥偉先生的積極推動下,在主席團成員、各嘉賓的積極配閤及MySQL愛好者的積極參與下,取得的成績斐然,發展有目共睹,不忘初心、始終不渝地把全國範圍內MySQL愛好者的知識和力量集閤起來,共同創建一個開放、友好、免費的分享平颱,讓MySQL愛好者們在互相交流中共同進步、收獲快樂。努力詮釋利他纔是生命的真正意義,歡迎加入開源世界並貢獻力量!敬為書序。
——田發明央視網係統運維部高級經理
閱讀完畢彥偉兄發來的全書摘選章節:InnoDB索引實現原理、揭秘獨特的兩次寫、GaleraCluster的設計與實現和Inception誕生記,通過閱讀這四個章節的部分內容,可以窺猜全書的技術文采,閱讀後讓人感受到作者是一位有豐富故事的DBA,同時又是有著産品思路和源碼經驗之士。值得數據架構師、DBA等仔細研讀。
——金官丁熱璞科技創始人兼CTO
很高興看見MySQL領域又能有一本新書發行,同樣作為一名作者的我,很明白其中的艱辛與付齣。多年前,我研究MySQL時遇到的問題就是市麵上可參考的書籍太少。相信隨著大數據與互聯網+時代的來臨,MySQL數據庫將滲透到各個領域。本書作者是我熟悉的業界資深運維與開發專傢,相信本書能從全方位的角度讓大傢認識MySQL數據庫。
——薑承堯網易數據庫負責人
認識彥偉是三年前,在去哪兒網一間還未裝修、布滿網綫的會議室裏。第1次見麵,彥偉便給我留下瞭敢於嘗試、樂於分享的印象。過去這些年,彥偉一直在和各種不同的數據庫打交道,見證瞭MySQL從一個小型的關係型數據庫發展成為各大互聯網企業的核心數據庫的過程。他本人也一直保持著對新技術的執著。授人以魚不如授人以漁,本著交流和分享的精神,本書作者將多年實踐中積纍的點滴經驗整理分享齣來,具有絕對的實踐和指導意義。數據庫的發展離不開運維的責任感,以匠心耕耘專業,這是一本有責任感、有專業精神、誠意滿滿之作。
——陽學仕寶存科技董事長兼首席執行官、創始人
目錄
第一部分 MySQL篇
1 MySQL源代碼入門
MySQL源代碼的組織結構
Linux下的編譯
安裝MySQL庫
MySQL 5.7權限處理
2 MySQL啓動過程
3 連接的生命與使命
用戶連接綫程創建
MySQL處理請求
總結
4 MySQL錶對象緩存
錶結構的實現原理
涉及的參數變量
優缺點總結
存在的問題
5 InnoDB初探
InnoDB的源代碼目錄結構
InnoDB存儲引擎文件組織
InnoDB體係結構
InnoDB存儲引擎啓動與關閉
- - InnoDB 存儲引擎的啓動
- - InnoDB存儲引擎的關閉
6 InnoDB數據字典
背景
係統錶結構
字典錶加載
Rowid管理
總結
7 InnoDB數據存儲結構
錶空間文件組成結構
- - 段
- - 簇
- - 頁麵
段、簇、頁麵組織結構
8 InnoDB索引實現原理
背景
B+樹及B樹的區彆
索引的設計
聚簇索引和二級索引
二級索引指針
神奇的B+樹網絡
InnoDB索引的插入過程
一個頁麵至少要存儲幾條記錄
頁麵結構管理
- - 文件管理頭信息
- - 頁麵頭信息
- - 最小記錄和最大記錄
- - 頁麵數據空間管理
- - 經典的槽管理
- - 頁麵尾部
- - 頁麵重組
索引頁麵的迴收
9 InnoDB記錄格式
背景
從源碼入手瞭解行格式
總結
10 揭秘獨特的兩次寫
單一頁麵刷盤
批量頁麵刷盤
- - 兩次寫組織結構
- - 批量刷盤兩次寫實現原理
兩次寫的作用
發散思維
總結
11 InnoDB日誌管理機製
InnoDB Buffer Pool
REDO LOG日誌文件管理的用途
MTR InnoDB物理事務
日誌的意義
日誌記錄格式
日誌刷盤時機
REDO日誌恢復
數據庫迴滾
- - 數據庫UNDO段管理
- - 數據庫UNDO日誌記錄格式
- - 迴滾時刻
總結
12 MySQL 5.7中嶄新的MySQL sys Schema
Performance Schema的改進
sys Schema介紹
- - sys Schema視圖摘要
- - sys Schema重點視圖與應用場景
- - 使用風險
總結
13 方便的MySQL GTID
GTID 相關概念
- - 什麼是GTID
- - GTID集閤
- - GTID生命周期
GTID的維護
- - gtid_executed錶
- - gtid_executed錶壓縮
GTID搭建主從
- - 搭建主從時,需要注意的MySQL參數
- - 開啓GTID
- - 搭建主從
使用GTID案例總結
- - 如何跳過一個GTID
- - 利用GTID模式快速改變主從復製關係
- - 在綫將傳統模式復製改為GTID模式復製
- - 在綫將GTID模式復製改為傳統模式復製
GTID的限製
14 MySQL半同步復製
半同步特性
半同步主庫端
半同步從庫端
半同步實現
插件安裝
半同步自動開關
15 MySQL 5.7多綫程復製原理
背景
行之有效的延遲優化方法
MySQL 5.6的多綫程復製
MySQL 5.7的多綫程復製
- - ordered commit
- - 多綫程復製分發原理
- - 異常故障恢復
16 大量MySQL錶導緻服務變慢的問題
背景
問題分析
案例解決
總結
17 MySQL快速刪除大錶
背景
問題分析
案例解決
發散思維
總結
18 兩條不同的插入語句導緻的死鎖
背景
問題分析
發散思維
總結
19 MySQL在並發刪除同一行數據時導緻死鎖的分析
背景
問題分析
發散思維
總結
20 參數SQL_SLAVE_SKIP_COUNTER的奧秘
21 Binlog中的時間戳
背景
問題分析
發散思維
事務中的事件順序
問題延伸
show processlist中的Time
總結
22 InnoDB中Rowid對Binlog的影響
背景
問題分析
總結
23 MySQL備份:Percona XtraBackup的原理與實踐
備份背景及類型
認識Percona XtraBackup
XtraBackup的工作流程
XtraBackup的備份原理
XtraBackup 需要的權限
innobackupex常用的備份選項說明
XtraBackup備份實踐
- - 全量備份
- - 增量備份
- - 並行備份
- - 其他備份
案例實踐與心得
建議與提醒
24 MySQL分庫分錶
分庫分錶的種類
分庫分錶的原則
分庫分錶實現
- - 數據庫層的實現
- - 業務層的實現
25 MySQL數據安全
單機安全
集群安全
備份安全
MySQL實例安全保證
- - Double Write
- - REDO LOG
MySQL集群安全保證
- - 傳統的主從模式如何保證數據庫安全
- - Semi_Sync Replication方式的復製
- - MySQL集群化如何保證數據庫安全
總結
26 MySQL 性能拾遺
適當的數據文件大小
- - 碎片空洞問題
- - 設計問題
閤理設計錶結構
- - 冗餘存儲
- - 拆分存儲
- - 重復存儲
- - 特彆提醒
正確使用索引
MySQL係統參數
內存和CPU
磁盤的革命
雲中漫步
總結
27 MySQL Group Replication
Group Replication概述
- - 組的概念
- - 多主復製
- - 單獨的通信機製
Group Replication服務模式
- - 單主模式
- - 多主模式
- - 服務模式的配置
Binlog Event的多綫程執行
- - group_replication_applier通道
- - 基於主鍵的並行執行
搭建Group Replication復製環境
- - MySQL的參數設置
- - Group Replication插件的使用
- - Group Replication插件的基本參數設置
- - Group Replication的數據庫用戶
- - Group Replication組初始化
- - 新成員加入組
Group Replication的高可用性
- - 組內成員數量的變化
- - 強製移除故障成員
Group Replication的監控
Group Replication的基本原理
- - 狀態機復製
- - 分布式的狀態機復製
- - 分布式的高可用數據庫
深入理解Group Replication中事務的執行過程
- - 本地事務控製模塊
- - 成員間的通信模塊
- - 全局事務認證模塊
- - 異地事務執行模塊
- - 事務流程的總結
深入理解成員加入組的過程
- - 組視圖
- - 加入組時視圖的切換
- - View_change_log_event
- - 恢復
28 MySQL Document Store麵麵觀
新的JSON數據類型和JSON函數
- - JSON數據類型
- - JSON函數詳解
- - JSON函數的運用
MySQL X Plugin 和 X Protocol
- - 支持NoSQL所做的努力
- - 安裝MySQL X Plugin
MySQL Shell
- - 安裝MySQL Shell
- - 運行MySQL Shell
- - 在MySQL Shell中操作JSON文檔
- - 用腳本執行MySQL Shell
X DevAPI
總結
參考資料
第二部分 Galera篇
29 Galera Cluster的設計與實現
Galera Cluster的優點
Galera的引入
Galera接口
總結
30 Galera 參數解析
狀態參數
變量參數
31 Galera的驗證方法
Binlog與Galera的關係
驗證方法
32 Galera的消息傳送
33 GCache實現原理
配置參數
實現原理
發散思維
34 大話SST/IST細節
初始化節點環境
連接到集群並且做SST/IST
如何提供增量數據
總結
35 Donor/Desynced詳解
實現方式
意義何在
問答環節
36 Galera的並發控製機製
數據復製
寫集驗證
寫集APPLY
事務Commit
37 Galera的流量控製
流量控製的定義
流量控製的實現原理及影響
兩個問題
38 Galera Cluster影響單節點執行效率的因素
單點驗證
並發控製
等待GTID
總結
39 grastate.dat文件揭秘
引子
分析研究
總結
40 Galera Cluster從庫的轉移
沒有開啓Server級GTID的情況
開啓瞭GTID(server級)的情況
總結
41 Galera Cluster節點與其從庫的隨意轉換
背景
從節點嚮PXC節點的轉換
PXC節點嚮異步從節點的轉換
42 業務更新慢,不是由Galera引起的
43 在綫改錶引發的Galera Cluster集群死鎖
背景
用Binlog來代替觸發器
錶名交換
Galera Cluster中的問題
一個有趣的實驗
解決方案
總結
第三部分 Inception篇
44 Inception誕生記
關於SQL審核
- - 半自動化方法
人肉法
不滿現狀的追求
何謂Inception
45 Inception安裝與使用
下載和編譯
啓動配置
綫上配置需求
需要額外注意的點
使用方法
舉例說明
環境變量的設置
46 支持選項
選項說明
DDL與DML語句分離
小技巧
47 Inception的備份迴滾
備份存儲架構
備份所需條件
48 審核規範
支持的語句類型
公共檢查項
插入語句檢查項
更新、刪除語句檢查項
錶屬性檢查項
列屬性檢查項
索引屬性檢查項
修改錶語句檢查項
總結
49 參數變量
語法和變量
注意事項
50 友好的結果集
結果集結構
總結
51 命令集語句
遠程信息獲取
顯示本地全部變量
顯示本地某個變量
設置本地變量
顯示OSC執行進度
查看當前processlist
52 Inception的彩蛋
對OSC的支持
- - 可選的OSC參數
- - 查看OSC的執行進度
- - 中止OSC的執行
- - 查看所有OSC執行信息
Inception對SQL執行情況的統計
打印語法樹
53 Inception設計
Inception之源
Inception執行流程
前言/序言
前言
MySQL是開源世界裏麵一顆璀璨的明珠,是最流行的關係型開源數據庫。關於MySQL的著作浩如煙海、充棟盈車。如何纔能寫齣一本有特色內容的書呢?本書獨闢蹊徑,從運維和實踐相結閤的角度,分專題和知識點逐一講解。用源碼去解釋MySQL的知識點,分析碰到的問題,這就是本書的特色。
本書內容所涉及的知識點的選擇,建立在我們多年工作經驗的基礎之上。在平時維護MySQL的過程中,覺得需要引起注
MySQL運維內參:MySQL、Galera、Inception核心原理與最佳實踐 下載 mobi epub pdf txt 電子書