高可用 MySQL, 2/e (MySQL High Availability: Tools for Building Robust Data Centers, 2/e)
內容描述
<內容介紹>
本書主要講解真實環境下如何使用MySQL的複制、集群和監控特性,揭示MySQL可靠性和高可用性的方方面面。本書定位於解決MySQL數據庫的常見應用瓶頸,在保持MySQL的持續可用性的前提下,挖潛各種提高性能的解決方案。本書描述了很多MySQL工具的變化。涵蓋了5.5版本的知識,以及若乾5.6版本的功能。本書的作者正是書中介紹的很多工具的設計師,本書揭示了MySQL可靠性和高可用性的許多不為人知的方面。
<章節目錄>
前言
第1章引言2
到底什麼是複制4
那麼,是否需要備份5
什麼是監控6
其他閱讀材料6
小結7
第2章MySQL.Replicant庫8
基本類和函數12
對各種操作系統的支持13
服務器13
服務器角色15
小結17
第3章MySQL複製原理18
複製的基本步驟19
配置master 20
配置slave 21
連接master和slave 22
二進制日誌簡介23
二進制日誌記錄了什麼24
觀察複製的動作25
二進制日誌的結構和內容27
建立新slave 30
克隆master 31
克隆slave 33
克隆操作的腳本35
執行常見的複制任務37
報表37
小結43
第4章二進制日誌45
二進制日誌的結構46
binlog事件的結構48
事件校驗50
將語句寫入日誌51
寫入DML語句52
寫入DDL語句52
寫入查詢52
LOAD DATA INFILE語句58
二進制日誌過濾器60
觸發器、事件和存儲例程62
存儲過程68
存儲函數70
事件74
特殊結構75
非事務型變更和錯誤處理75
將事務寫入日誌78
使用XA進行分佈式事務處理83
二進制日誌的組提交86
基於行的複制88
啟用基於行的複制89
使用混合模式90
二進制日誌管理90
二進制日誌和系統崩潰安全91
binlog文件輪換92
事故94
清除binlog文件94
mysqlbinlog實用工具95
基本用法96
解釋事件104
二進制日誌的選項和變量108
基於行的複制參數110
小結111
第5章面向高可用性的複制112
冗餘113
計劃114
slave故障115
master故障115
relay故障116
災難恢復116
方法116
熱備份118
雙主結構122
提升slave 131
環形複製135
小結137
第6章面向橫向擴展的MySQL複製138
橫向擴展讀操作,而不是寫操作140
異步複製的價值141
管理複製拓撲142
應用層的負載均衡145
級聯複製153
配置relay 154
使用Python添加relay 155
專用slave 156
過濾複製事件157
使用過濾將事件分配給slave 159
數據的一致性管理160
非級聯部署的一致性161
級聯部署的一致性163
小結169
第7章數據分片171
什麼是數據分片172
為什麼要分片173
分片的局限性174
分片方案的要素176
高層分片架構177
數據分區178
分配分片182
映射分片關鍵字186
分片方案186
分片映射函數190
處理查詢和事務調度194
處理事務195
分配查詢197
分片管理199
將分片遷移到其他節點199
分割分片203
小結203
第8章深入複製204
複製架構基礎205
中繼日誌的結構206
複製線程209
啟動和停止slave線程210
通過Internet運行複制211
使用內置支持建立安全複製212
使用Stunnel建立安全複製213
細粒度控制複製215
關於復制狀態的信息215
處理斷開連接的選項223
slave如何處理事件224
管理I/O線程224
SQL線程的處理225
半同步複製231
配置半同步複製232
監控半同步複製234
全局事務標識符234
使用GTID配置複製235
使用GTID進行故障轉移237
使用GTID提升slave 238
GTID的複制240
slave的安全和恢復242
同步、事務以及數據庫崩潰問題242
事務型複制244
保護非事務型語句的規則248
多源複製248
基於行的複制的細節251
Table_map事件253
行事件的結構255
行事件的執行256
事件和觸發器257
基於行的複制中的過濾259
部分行複制260
小結261
第9章MySQL集群263
什麼是MySQL集群264
術語和組件264
MySQL集群和MySQL有何不同265
典型配置265
MySQL集群的特點266
本地和全局冗餘268
日誌處理268
冗餘和分佈式數據269
MySQL集群的架構269
如何存儲數據271
分區274
事務管理275
聯機操作275
配置實例276
入門277
啟動MySQL集群279
測試集群283
關閉集群284
獲得高可用性284
系統恢復287
節點恢復288
複製289
獲得高性能293
高性能的註意事項294
高性能的最佳實踐295
小結297
第10章監控入門300
監控方法301
監控的好處301
監控系統組件302
處理器302
內存304
磁盤304
網絡子系統306
監控方案306
Linux和UNIX監控307
進程活動308
內存利用率312
磁盤利用率314
網絡活動317
常見系統統計信息318
使用cron自動監控319
Mac OS X監控320
System Profiler 320
控制台322
Activity Monitor 324
Microsoft Windows監控327
Windows體驗327
系統健康報告329
事件查看器331
可靠性監視器333
任務管理器334
性能監視器335
預防性維護監控337
小結337
第11章監控MySQL 339
什麼是性能340
MySQL服務器監控340
如何顯示MySQL性能341
性能監控342
SQL命令342
mysqladmin實用工具348
MySQL工作台350
第三方工具360
MySQL基準測試套件362
服務器日誌364
性能模式366
概念367
入門369
使用性能模式診斷性能問題377
MySQL的監控分類378
數據庫性能380
衡量數據庫的性能380
數據庫優化的最佳實踐392
提高性能的最佳實踐400
一切都很慢400
查詢慢400
應用慢401
複製慢401
小結401
第12章監控存儲引擎403
InnoDB 403
使用SHOW ENGINE命令406
使用InnoDB監視器409
監控日誌文件413
監控緩衝池414
監控表空間416
使用INFORMATION_SCHEMA表417
使用PERFORMANCE_SCHEMA表418
其他需要考慮的參數419
InnoDB故障排除的技巧420
MyISAM 422
優化磁盤存儲423
修復表423
使用MyISAM實用工具424
按索引順序存儲表425
壓縮表426
對數據表進行碎片整理426
監控key cache 426
預加載key cache 427
使用多個key cache 428
其他需要考慮的參數429
小結430
第13章監控複製432
入門432
服務器設置433
包容性和排他性複制433
複製線程435
監控master 437
master的監控命令437
master的狀態變量441
監控slave 441
slave的監控命令442
slave的狀態變量446
使用MySQL工作台監控複製447
其他需要考慮的問題449
網絡449
監控和管理slave滯後450
slave滯後的原因和預防措施450
使用GTID 452
小結453
第14章複製的故障排除454
哪裡出錯了455
master上的問題455
master崩潰及Memory表被佔用455
master崩潰及二進制日誌事件丟失456
master上查詢正常但在slave上出錯457
崩潰之後表損壞458
master上的二進制日誌損壞459
殺死非事務型表上長時間運行的查詢459
不安全的語句460
slave上的問題462
slave服務器崩潰及復制無法啟動462
slave連接超時及反復重新連接463
slave上的查詢結果與master上的不同463
當嘗試重啟SSL時slave出錯464
內存表數據丟失465
slave崩潰後臨時表丟失465
slave運行慢而且與master不同步465
slave崩潰後數據丟失466
崩潰後表損壞466
slave上中繼日誌損壞467
slave重啟時的多個錯誤467
slave上事務失敗的後果467
I/O線程的問題467
SQL線程的問題:不一致468
slave上的錯誤不一樣468
高級複製問題469
變更沒有在拓撲中復制469
環形複製的問題469
多master的問題470
HA_ERR_KEY_NOT_FOUND錯誤470
GTID問題470
複製的故障排除工具471
最佳實踐472
瞭解你的拓撲結構472
檢查所有服務器的狀態475
檢查日誌475
檢查配置475
有序地執行關閉操作475
有序地執行故障後的重啟操作476
手動執行失敗的查詢476
不要混合使用事務型表和非事務型表477
一般步驟477
報告複製錯誤478
小結479
第15章保護你的資產481
什麼是信息保護482
信息保障的三個實踐482
信息保障為什麼重要483
信息完整性、災難恢復及備份的職責483
高可用性與災難恢復484
災難恢復484
數據恢復的重要性489
備份和恢復490
備份實用程序和操作系統層的解決方案494
MySQL企業備份495
使用MySQL實用工具集進行數據庫的導出和導入507
mysqldump工具507
物理文件複製510
邏輯捲管理器快照511
XtraBackup 516
備份方法的比較516
備份和MySQL複製517
使用複制進行備份和恢復518
PITR 518
自動備份526
小結528
第16章MySQL企業版監控530
MySQL企業版監控入門531
產品532
剖析MySQL企業監控器532
安裝概述533
MySQL企業監控組件537
Dashboard 537
監控代理539
advisor 539
查詢分析器541
MySQL產品支持542
使用MySQL企業版監控542
監控544
查詢分析器549
更多信息551
小結551
第17章使用MySQL實用工具管理MySQL複製553
常見的MySQL複製任務554
狀態檢查554
停止複制557
添加slave 558
MySQL實用工具560
入門560
不通過工作台使用實用工具560
通過工作台使用實用工具560
常用工具562
比較數據庫的一致性: mysqldbcompare 562
複製數據庫: mysqldbcopy 565
導出數據庫: mysqldbexport 566
導入數據庫: mysqldbimport 569
發現不同: mysqldiff 570
顯示磁盤使用情況: mysqldiskusage 574
檢查表的索引: mysqlindexcheck 577
查找元數據: mysqlmetagrep 578
查找進程: mysqlprocgrep 579
克隆服務器: mysqlserverclone 581
顯示服務器信息: mysqlserverinfo 583
克隆用戶: mysqluserclone 584
實用工具客戶端: mysqluc 585
複製的實用工具586
配置複製: mysqlreplicate 586
檢查復制的配置: mysqlrplcheck 588
顯示拓撲結構: mysqlrplshow 591
高可用的實用工具592
概念592
mysqlrpladmin 593
mysqlfailover 598
創建自己的實用工具606
MySQL實用工具的結構606
自定義工具的示例607
小結616
附錄A複製的提示和技巧617
附錄B一個GTID的實現634
索引645