目前, 眾多大型互聯(lián)網(wǎng)、 電信、 制造業(yè)等用戶已經(jīng)普遍使用 MySQL 構(gòu)建其業(yè)務(wù), 國內(nèi)眾多能源、 廣電、 高科技、 軟件開發(fā)企業(yè)也漸漸將 MySQL 作為數(shù)據(jù)庫平臺的優(yōu)先選擇。
本書從專業(yè)技術(shù)視角入手講解 MySQL 系統(tǒng)性的相關(guān)知識, 內(nèi)容涵蓋 MySQL8.0 版本內(nèi)容的安裝部署、 基礎(chǔ)運(yùn)維、 體系架構(gòu)以及高可用等。 學(xué)習(xí)本書可幫助相關(guān)人員快速掌握 MySQL 數(shù)據(jù)庫技術(shù)知識, 提高處理實(shí)際問題的能力。
本書注重實(shí)用性、 可操作性, 特別適合數(shù)據(jù)庫優(yōu)化、DBA 開發(fā)、DBA 運(yùn)維、IT 管理等人員使用, 另外, 缺乏現(xiàn)場實(shí)施經(jīng)驗(yàn)、 想要體系化掌握 MySQL、 考取 MySQL OCP 的讀者, 也可參考閱。
本書實(shí)戰(zhàn)內(nèi)容大多源自企業(yè)日常運(yùn)維, 客戶實(shí)施案例, 不做特殊說明, 均為MySQL8 版本。本書使用不同的底色區(qū)分代碼和一般正文內(nèi)容, 對于重要的概念也采用了加粗處理。作者從實(shí)際工作問題出發(fā), 由易到難進(jìn)行講解, 為讀者構(gòu)建了完整的 MySQL 架構(gòu)體系。
學(xué)習(xí)數(shù)據(jù)庫,這本書值得你擁有!
MySQL 是一種可靠、 可擴(kuò)展且易于使用的開源關(guān)系數(shù)據(jù)庫系統(tǒng), 其功能包括SQL 標(biāo)準(zhǔn)命令以及事務(wù)和 ACID 合規(guī)性( 代表原子性、 一致性、 隔離性和持久性) 。MySQL 一直引領(lǐng)著開源數(shù)據(jù)庫的發(fā)展。
MySQL 的具體優(yōu)勢如下:
(1) 運(yùn)行速度快: MySQL 中使用了極快的 B 樹磁盤表( MyISAM) 和索引壓縮,通過使用優(yōu)化的單掃描多連接, 能夠極快地實(shí)現(xiàn)連接。 SQL 的函數(shù)使用高度優(yōu)化的類庫實(shí)現(xiàn), 運(yùn)行速度極快。 MYSQL 在innodb 引擎出來后, 事務(wù)處理方面可滿足大部分場景。
(2) 高靈活性: MySQL 既可以嵌入式應(yīng)用于程序中, 也可支持?jǐn)?shù)據(jù)倉庫、 內(nèi)容索引和部署軟件、 高可用的冗余系統(tǒng)、 在線事務(wù)處理系統(tǒng)(OLTP) 等各類應(yīng)用類型。
(3) 成本低: MySQL 是開源的, 無版權(quán)制約, 使用方便, 這使得 MySQL 可以更加靈活地滿足各種需求, 降低使用成本。
(4) 優(yōu)異的性能: MySQL 的存儲引擎架構(gòu)將查詢處理和其他系統(tǒng)任務(wù)、 數(shù)據(jù)的存儲提取相分離。 這種處理和存儲分離的設(shè)計(jì)可以在使用時根據(jù)性能以及其他需求來選擇數(shù)據(jù)存儲的方式, 使得 MySQL 在處理大量數(shù)據(jù)時更加高效。
DBA 屬于運(yùn)維范疇, 涉獵范圍廣泛: DB(Oracle、 MySQL、PG) 、Linux、 硬件、 網(wǎng)絡(luò)、 腳本(Python、Shell) 、 監(jiān)控(Zabbix、Prometheus) 等, 誰掌握了數(shù)據(jù), 確保了數(shù)據(jù)的安全, 就會在快速發(fā)展的信息化中獨(dú)占鰲頭,DBA 工作會讓你永遠(yuǎn)保持清醒的思維。 作者積累的10 余年 MySQL 數(shù)據(jù)庫運(yùn)維工作經(jīng)驗(yàn)都在本書中有詳細(xì)的介紹和說明。
由于作者的水平有限, 書中難免會出現(xiàn)一些錯誤或者不準(zhǔn)確的地方, 懇請廣大讀者批評指正, 。
本書約定
本書實(shí)戰(zhàn)內(nèi) 容 大 多 源 自 企 業(yè) 日 常 運(yùn) 維, 客 戶 實(shí) 施 案 例, 不 做 特 殊 說 明, 均 為MySQL8 版本。本書使用不同的底色區(qū)分代碼和一般正文內(nèi)容, 對于重要的概念也采用了加粗處理。作者從實(shí)際工作問題出發(fā), 由易到難進(jìn)行講解, 為讀者構(gòu)建完整的 MySQL 架構(gòu)體系。
在本書的最后, 作者對所有的內(nèi)容做了歸納總結(jié), 形成了一個 完 善 體 系 化 的MySQL 技能樹幫助讀者掌握技能。
致謝
感謝我的愛人, 是她在背后默默地支持我順利完成了本書的創(chuàng)作。
感謝我的 ACE 的朋友們, 他們以專業(yè)的視角幫忙審稿, 提出了許多寶貴的意見。
感謝北京航空航天大學(xué)出版社的大力支持和幫助, 使我的作品得以出版。
感謝廣大讀者朋友的厚愛和支持。
編者
Part1基礎(chǔ)篇
第1 章 數(shù)據(jù)庫基本概念
1.1數(shù)據(jù)庫三大范式
1.2事務(wù)的 ACID
1.3存儲引擎
1.4 MySQL的優(yōu)勢
第2 章 MySQL 服務(wù)概述
2.1 MySQL發(fā)行版
2.2 MySQL發(fā)展史
2.3 MySQL安裝簡介
第3 章 MySQL 安裝及卸載
3.1 Windows環(huán)境 MSI 圖形安裝
3.2 Windows環(huán)境二進(jìn)制安裝
3.3 Linux PRM包安裝 MySQL
3.4 Linux二進(jìn)制多版本部署 MySQL
3.5 Linux源碼安裝 MySQL
3.6 MySQL版本升級
3.7 MySQL客戶端工具
Part2運(yùn)維篇
第4 章 DBMS 基本管理
4.1數(shù)據(jù)類型
4.2數(shù)據(jù)庫管理
4.3表的管理
4.4用戶管理
4.5 SQL實(shí)戰(zhàn)
4.6函數(shù)的用法
4.7約 束
4.8存儲過程
4.9觸發(fā)器
4.10事件(event)
4.11 Prometheus監(jiān)控
4.12 Zabbix監(jiān)控
Part3體系架構(gòu)篇
第5 章 物理結(jié)構(gòu)
5.1參數(shù)文件
5.2日志文件
5.3 MySQL表結(jié)構(gòu)文件
5.4其他文件
第6 章 存儲引擎結(jié)構(gòu)
6.1內(nèi)存結(jié)構(gòu)
6.2磁盤結(jié)構(gòu)
6.3 MySQL邏輯存儲
6.4表空間運(yùn)維
6.5分區(qū)表
6.6線程結(jié)構(gòu)
Part4備份恢復(fù)篇
第7 章 邏輯備份
7.1 MySQL導(dǎo)入導(dǎo)出
7.2 Mysqldump邏輯備份恢復(fù)
7.3 Mysqlpump
第8 章 物理備份
8.1 PXB介紹及部署
8.2 PXB備份恢復(fù)
第9 章 MySQL 誤操作恢復(fù)
9.1 Mysqlbinlog恢復(fù)誤刪除
9.2第三方工具
Part5高可用
第10 章 主從復(fù)制
10.1主從復(fù)制簡介
10.2主從復(fù)制優(yōu)點(diǎn)
10.3主從復(fù)制原理
10.4主從復(fù)制方式
10.5傳統(tǒng)異步主從復(fù)制部署
10.6主從復(fù)制維護(hù)
10.7單主2 從 GTID 復(fù)制
第11 章 MySQL Router 讀寫分離及負(fù)載均衡
11.1 MySQL Router簡介
11.2 MySQL Router工作流程
11.3讀寫分離 負(fù)載均衡
第12 章 高可用 MHA 架構(gòu)
第13 章 高可用之多源復(fù)制
第14 章 高可用之 MGR 架構(gòu)
第15 章 雙主 Keepalived 單點(diǎn)故障切換
第16 章 高可用之PXC 架構(gòu)
第17 章 高可用之分庫分表