新到貨2本75折
MySQL實戰

MySQL實戰

  • 定價:899
  • 優惠價:87782
  • 運送方式:
  • 臺灣與離島
  • 海外
  • 可配送點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
  • 可取貨點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
載入中...
  • 分享
 

內容簡介

本書以MySQL 8.0為主,全面系統地闡述了MySQL日常使用及管理過程中的一些常用知識點:安裝、複製、binlog、備份、監控、DDL、執行緒池、中介軟體、常用工具、組複製、InnoDB Cluster、JSON、MySQL 8.0的新特性。
    
本書定位於實戰,目的是讓讀者拿來即用,快速上手MySQL。除了實戰,本書還花費了大量的篇幅來講解MySQL中一些常見操作、常用工具的實現原理。
    
組複製是MySQL官方推薦的高可用方案,本書會從源碼角度分析組複製的一些核心模組的實現細節,包括分散式恢復、衝突檢測、事務一致性以及流量控制機制等。

 

作者介紹

陳臣
甲骨文(Oracle)公司首席工程師,前vivo互聯網資料庫專家,有超過10年的資料庫管理和架構經驗,擅長MySQL資料庫日常操作的原理剖析。公眾號“MySQL實戰”作者,博客園推薦博客博主iVictor,博客全網閱讀量超300萬。

 

目錄

第1章 MySQL入門、安裝與服務的管理 1
1.1 MySQL的歷史 1
1.2 MySQL的安裝 2
1.2.1 下載MySQL 3
1.2.2 基於二進位包的安裝 8
1.2.3 基於源碼包的安裝 14
1.2.4 設定檔的讀取順序 19
1.3 MySQL服務的管理 21
1.3.1 使用etcinit.dmysqld管理MySQL服務 22
1.3.2 使用systemd管理MySQL服務 27
1.4 本章總結 33

第2章 複製 34
2.1 複製的原理及搭建 35
2.1.1 複製的搭建 36
2.1.2 參考資料 41
2.2 GTID複製 41
2.2.1 GTID出現的背景 41
2.2.2 GTID的搭建 42
2.2.3 GTID的原理 42
2.2.4 GTID的相關參數 44
2.2.5 GTID的相關函數 50
2.2.6 線上修改複製模式 51
2.2.7 設置@@GLOBAL.GTID_PURGED時的注意事項 54
2.2.8 參考資料 55
2.3 半同步複製 55
2.3.1 事務的兩階段提交協定 56
2.3.2 半同步複製的原理 57
2.3.3 半同步複製的安裝 58
2.3.4 半同步複製的注意事項 60
2.3.5 半同步複製的常用參數 60
2.4 並行複製 63
2.4.1 並行複製方案 63
2.4.2 如何開啟並行複製 71
2.4.3 參考資料 71
2.5 多源複製 72
2.5.1 多源複製的搭建 72
2.5.2 多源複製搭建過程中的注意事項 73
2.5.3 多源複製的管理 74
2.6 延遲複製 74
2.6.1 如何開啟延遲複製 75
2.6.2 如何使用延遲複製恢復誤刪的表 75
2.6.3 延遲複製的總結 77
2.7 本章總結 77

第3章 深入解析binlog 79
3.1 binlog的格式 79
3.1.1 STATEMENT 79
3.1.2 ROW 80
3.1.3 MIXED 81
3.2 如何解讀binlog的內容 82
3.2.1 解析STATEMENT格式的二進位日誌 82
3.2.2 解析ROW格式的二進位日誌 88
3.3 如何解讀 relay log 的內容 92
3.4 binlog 中的事件類型 94
3.5 基於 python-mysql-replication 打造一個 binlog解析器 101
3.6 本章總結 109

第4章 深入MySQL的複製管理 110
4.1 常見的管理操作 110
4.1.1 查看主庫的狀態 110
4.1.2 查看從庫複製的狀態 111
4.1.3 搭建複製 113
4.1.4 開啟複製 115
4.1.5 停止複製 117
4.1.6 在主庫上查看從庫IP和埠資訊 117
4.1.7 查看實例當前擁有的binlog 118
4.1.8 刪除binlog 118
4.1.9 查看binlog的內容 118
4.1.10 RESET MASTER、RESET SLAVE和RESET SLAVE ALL的區別 119
4.1.11 跳過 事務 120
4.1.12 操作不寫入binlog 121
4.1.13 判斷主庫的某個操作是否已經在從庫上執行 121
4.1.14 線上設置複製的過濾規則 122
4.2 複製的監控 123
4.2.1 連接 123
4.2.2 事務重放 125
4.2.3 多執行緒複製 126
4.2.4 過濾規則 128
4.2.5 組複製 129
4.3 主從延遲 129
4.3.1 如何分析主從延遲 129
4.3.2 主從延遲的常見原因及解決方法 132
4.3.3 如何解讀Seconds_Behind_Master 134
4.3.4 參考資料 142
4.4 複製中的常見問題及解決方法 142
4.4.1 IO執行緒連接不上主庫 142
4.4.2 server_id重複 143
4.4.3 包的大小超過slave_max_allowed_packet的限制 143
4.4.4 從庫需要的binlog在主庫上不存在 144
4.4.5 從庫的GTID多於主庫的 147
4.4.6 在執行插入操作時,提示 鍵衝突 149
4.4.7 在執行刪除或 新操作時,提示記錄不存在 150
4.4.8 主從資料不一致 150
4.5 本章總結 150

第5章 備份 152
5.1 mysqldump 155
5.1.1 mysqldump的實現原理 155
5.1.2 mysqldump的常用選項 160
5.1.3 mysqldump的常見用法 165
5.1.4 總結 166
5.2 mydumper 166
5.2.1 mydumper的安裝 167
5.2.2 mydumper的實現原理 167
5.2.3 mydumper的參數解析 170
5.2.4 myloader的參數解析 177
5.2.5 mydumper和myloader的常見用法 179
5.2.6 總結 180
5.3 XtraBackup 180
5.3.1 XtraBackup的安裝 181
5.3.2 基於源碼分析XtraBackup的實現原理 182
5.3.3 XtraBackup的常見用法 192
5.3.4 Xtrabackup的重要參數 205
5.3.5 XtraBackup的注意事項 206
5.3.6 備份使用者需要的許可權 207
5.3.7 參考資料 208
5.4 克隆外掛程式 208
5.4.1 克隆外掛程式的安裝 209
5.4.2 克隆外掛程式的使用 209
5.4.3 查看克隆操作的進度 212
5.4.4 基於克隆資料搭建從庫 214
5.4.5 克隆外掛程式的實現細節 214
5.4.6 克隆外掛程式的限制 215
5.4.7 克隆外掛程式與XtraBackup的異同 216
5.4.8 克隆外掛程式的參數解析 216
5.4.9 參考資料 217
5.5 MySQL Shell Dump & Load 217
5.5.1 MySQL Shell Dump & Load的用法 218
5.5.2 MySQL Shell Dump & Load的關鍵特性 221
5.5.3 util.dumpInstance的實現原理 221
5.5.4 util.dumpInstance的參數解析 222
5.5.5 util.loadDump的參數解析 224
5.5.6 MySQL Shell Dump & Load的注意事項 226
5.5.7 參考資料 226
5.6 使用XtraBackup搭建從庫 226
5.6.1 使用XtraBackup搭建從庫的基本步驟 227
5.6.2 基於從庫備份搭建從庫的注意事項 230
5.6.3 設置GTID_PURGED的注意事項 230
5.6.4 使用XtraBackup 8.0搭建從庫的注意事項 231
5.6.5 總結 233
5.7  時間點(位置點)的恢復 234
5.8 搭建binlog server 236
5.8.1 基於mysqlbinlog搭建binlog server 236
5.8.2 參考資料 238
5.9 檢測備份的有效性 238
5.10 本章總結 239

第6章 監控 241
6.1 Zabbix 242
6.1.1 安裝Zabbix Server 242
6.1.2 安裝Zabbix Agent 250
6.2 安裝MySQL監控外掛程式PMP 251
6.3 深入理解PMP 256
6.3.1 ss_get_mysql_stats.php源碼分析 258
6.3.2 基於ss_get_mysql_stats.php自訂監控項 263
6.4 Zabbix常見問題定位及性能優化 266
6.4.1 定位監控項的狀態Not supported 266
6.4.2 分區表 268
6.4.3 Zabbix Server的參數優化 270
6.4.4 Zabbix API 273
6.4.5 參考資料 278
6.5 PMM 278
6.5.1 PMM的體系架構 279
6.5.2 安裝PMM Server 280
6.5.3 安裝PMM Client 283
6.5.4 添加MySQL服務 288
6.5.5 Query Analytics 290
6.5.6 深入理解PMM Server 292
6.5.7 設置告警 297
6.5.8 PMM的常見問題 299
6.5.9 參考資料 305
6.6 MySQL中常用的監控指標 306
6.6.1 連接相關 306
6.6.2 Com相關 307
6.6.3 Handler相關 308
6.6.4 臨時表相關 309
6.6.5 Table Cache相關 310
6.6.6 檔相關 311
6.6.7 主從複製相關 312
6.6.8 緩衝集區相關 312
6.6.9 redo log相關 313
6.6.10 鎖相關 314
6.6.11 排序相關 315
6.6.12 查詢相關 316
6.6.13 其他重要指標 316
6.7 本章總結 317

第7章 DDL 318
7.1 Online DDL 319
7.1.1 Online DDL的分類 320
7.1.2 Online DDL的實現原理 324
7.1.3 如何檢查DDL的進度 325
7.1.4 MySQL 8.0.12引入的秒級加列特性 327
7.1.5 Online DDL的優缺點 329
7.1.6 Online DDL的注意事項 329
7.1.7 參考資料 331
7.2 pt-online-schema-change 331
7.2.1 pt-online-schema-change的實現原理 331
7.2.2 pt-online-schema-change的參數解析 337
7.2.3 pt-online-schema-change的優缺點 345
7.2.4 pt-online-schema-change的注意事項 345
7.3 gh-ost 346
7.3.1 gh-ost的實現原理 346
7.3.2 gh-ost的參數解析 354
7.3.3 與gh-ost進行交互 358
7.3.4 gh-ost的優缺點 359
7.4 中繼資料鎖 360
7.4.1 中繼資料鎖引入的背景 360
7.4.2 中繼資料鎖的基本概念 362
7.4.3 在MySQL 5.7和8.0中如何定位DDL被阻塞的問題 363
7.4.4 在MySQL 5.6中如何定位DDL被阻塞的問題 365
7.5 本章總結 367

第8章 連接池和執行緒池 369
8.1 連接池 369
8.1.1 連接池的運行原理 369
8.1.2 常用的JDBC連接池 370
8.1.3 c3p0連接池 371
8.1.4 DBCP連接池 374
8.1.5 參考配置 377
8.1.6 總結 378
8.2 MySQL執行緒池 378
8.2.1 執行緒池的實現原理 379
8.2.2 如何開啟執行緒池功能 380
8.2.3 MySQL企業版執行緒池參數解析 380
8.2.4 Percona Server執行緒池參數解析 381
8.2.5 MySQL企業版執行緒池和Percona Server執行緒池的對比 382
8.2.6 執行緒池的適用場景 384
8.2.7 執行緒池的壓測結果 384
8.2.8 執行緒池的監控 385
8.2.9 參考資料 389
8.3 MySQL server has gone away深度解析 389
8.3.1 出現MySQL server has gone away錯誤的常見原因 389
8.3.2 interactive_timeout和wait_timeout的區別 390
8.3.3 wait_timeout設置為多大比較合適 393
8.4 本章總結 395

第9章 MySQL的常用工具 396
9.1 sysbench 398
9.1.1 安裝sysbench 398
9.1.2 sysbench用法講解 399
9.1.3 對MySQL進行基準測試的基本步驟 399
9.1.4 如何分析MySQL的基準測試結果 401
9.1.5 如何使用sysbench對伺服器性能進行測試 402
9.1.6 MySQL常見的測試場景及對應的SQL語句 404
9.1.7 如何自訂sysbench測試腳本 407
9.1.8 總結 411
9.2 pt-archiver 411
9.2.1 安裝 411
9.2.2 實現原理 411
9.2.3 常見用法 413
9.2.4 常用參數 416
9.2.5 總結 418
9.3 pt-config-diff 418
9.4 pt-ioprofile 419
9.5 pt-kill 420
9.5.1 實現原理 420
9.5.2 過濾邏輯 422
9.5.3 常見用法 424
9.6 pt-pmp 425
9.7 pt-query-digest 426
9.7.1 常見用法 426
9.7.2 常用參數 429
9.8 pt-show-grants 430
9.9 pt-slave-restart 431
9.10 pt-stalk 433
9.11 pt-table-checksum 435
9.11.1 實現原理 435
9.11.2 常見用法 440
9.11.3 常用參數 440
9.12 pt-table-sync 443
9.12.1 實現原理 443
9.12.2 常見用法 446
9.12.3 常用參數 446
9.13 pt-upgrade 448
9.14 本章總結 453

第10章 中介軟體 455
10.1 ProxySQL的安裝 458
10.2 ProxySQL入門 458
10.3 多層配置系統 460
10.4 讀寫分離 463
10.5 深入理解ProxySQL表 470
10.6 ProxySQL的 特性 475
10.6.1 計時器 475
10.6.2 SQL審計 476
10.6.3 查詢重寫 477
10.6.4 mirroring 479
10.6.5 SQL黑名單 481
10.7 ProxySQL連接池 482
10.8 ProxySQL Cluster 490
10.8.1 搭建ProxySQL Cluster 491
10.8.2 添加一個新的節點 493
10.9 ProxySQL的常見參數 494
10.9.1 管理參數 495
10.9.2 監控參數 496
10.9.3 MySQL參數 498
10.9.4 如何修改參數 501
10.10 ProxySQL中的常見問題 501
10.10.1 如何自訂ProxySQL的資料目錄 501
10.10.2 通過USE DBNAME切換資料庫 502
10.10.3 ProxySQL的高可用性 502
10.11 本章總結 502

第11章 組複製 504
11.1 部署組複製 506
11.1.1 準備安裝環境 506
11.1.2 初始化MySQL實例 507
11.1.3 啟動組複製 510
11.1.4 添加節點 511
11.2 單主模式和多主模式 512
11.2.1 單主模式和多主模式的區別 512
11.2.2 單主模式和多主模式的線上切換 515
11.3 監控組複製 516
11.3.1 replication_group_members 516
11.3.2 replication_group_member_stats 517
11.4 組複製的要求和限制 518
11.5 組複製的常見管理操作 521
11.5.1 強制組成員的重新配置 521
11.5.2 如何設置IP白名單 523
11.5.3 如何查找單主模式下的Primary節點 524
11.5.4 新主選舉演算法 524
11.5.5 如何查看Secondary節點的延遲情況 529
11.5.6 大事務 530
11.5.7 查看組複製的記憶體使用 531
11.6 組複製的實現原理 533
11.6.1 資料庫狀態機 533
11.6.2 事務在組複製中的處理流程 533
11.6.3 參考資料 535
11.7 組複製的實現細節 536
11.8 組複製的分散式恢復 545
11.8.1 分散式恢復的實現原理 545
11.8.2 分散式恢復的相關參數 552
11.9 組複製的衝突檢測 553
11.9.1 write_set 553
11.9.2 衝突檢測資料庫 556
11.9.3 衝突檢測的實現細節 557
11.9.4 衝突檢測資料庫的清理邏輯 560
11.10 組複製的故障檢測 562
11.10.1 模擬網路磁碟分割 562
11.10.2 故障檢測流程 566
11.10.3 XCom Cache 567
11.10.4 注意事項 569
11.10.5 參考資料 569
11.11 組複製的事務一致性 569
11.11.1 group_replication_consistency 570
11.11.2 總結 573
11.11.3 參考資料 573
11.12 組複製的流量控制機制 573
11.12.1 觸發流控的條件 574
11.12.2 配額的計算邏輯 576
11.12.3 配額的作用時機 581
11.12.4 流控的相關參數 583
11.12.5 總結 584
11.12.6 參考資料 585
11.13 組複製的重點參數 585
11.14 本章總結 588

第12章 InnoDB Cluster 590
12.1 MySQL Shell 591
12.1.1 MySQL Shell的安裝 592
12.1.2 MySQL Shell的使用 592
12.1.3 X DevAPI的關鍵特性 595
12.1.4 MySQL Shell工具集 598
12.1.5 MySQL Shell的使用技巧 605
12.2 MySQL Router 605
12.2.1 MySQL Router的安裝 606
12.2.2 MySQL Router的使用 606
12.2.3 啟動MySQL Router 612
12.2.4 測試MySQL Router 612
12.2.5 MySQL Router的注意事項 613
12.3 InnoDB Cluster的搭建 614
12.3.1 準備安裝環境 614
12.3.2 初始化MySQL實例 614
12.3.3 創建 管理員帳號 616
12.3.4 配置實例 616
12.3.5 創建InnoDB Cluster 618
12.3.6 添加節點 619
12.3.7 查看集群的狀態 622
12.3.8 部署MySQL Router 623
12.4 InnoDB Cluster的管理操作 624
12.4.1 dba物件支援的操作 624
12.4.2 cluster物件支援的操作 630
12.5 本章總結 643
附錄A JSON 645
附錄B MySQL 8.0的新特性 672
 

詳細資料

  • ISBN:9787115610089
  • 規格:平裝 / 695頁 / 19 x 26 x 3.48 cm / 普通級 / 1-1
  • 出版地:中國

最近瀏覽商品

 

相關活動

  • 【科普、飲食、電腦】高寶電子書暢銷書展:人生就是選擇的總和,全展75折起
 

購物說明

溫馨提醒您:若您訂單中有購買簡體館無庫存/預售書或庫存於海外廠商的書籍,建議與其他商品分開下單,以避免等待時間過長,謝謝。

大陸出版品書況:因裝幀品質及貨運條件未臻完善,書況與台灣出版品落差甚大,封面老舊、出現磨痕、凹痕等均屬常態,故簡體字館除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。 

 

請注意,部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

調貨時間:若您購買海外庫存之商品,於您完成訂購後,商品原則上約45個工作天內抵台(若有將延遲另行告知)。為了縮短等待的時間,建議您將簡體書與其它商品分開訂購,以利一般商品快速出貨。 

若您具有法人身份為常態性且大量購書者,或有特殊作業需求,建議您可洽詢「企業採購」。 

退換貨說明 

會員所購買的商品均享有到貨十天的猶豫期(含例假日)。退回之商品必須於猶豫期內寄回。 

辦理退換貨時,商品必須是全新狀態與完整包裝(請注意保持商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性,切勿缺漏任何配件或損毀原廠外盒)。退回商品無法回復原狀者,恐將影響退貨權益或需負擔部分費用。 

訂購本商品前請務必詳閱商品退換貨原則

  • 翦商作者新作79折
  • 針灸匠張寶旬
  • 浪漫小說精選3本72折