高可用MySQL:構建健壯的數據中心

《高可用MySQL:構建健壯的數據中心》是電子工業出版社2011年10月1日出版的圖書。

基本信息

內容簡介

本書是“MySQL High Availability”的中文翻譯版,主要講解真實環境下如何使用M

高可用MySQL:構建健壯的數據中心高可用MySQL:構建健壯的數據中心
ySQL的複製、集群和監控特性,揭示MySQL可靠性和高可用性的方方面面。本書由MySQL開發團隊親自執筆,定位於解決MySQL資料庫的常見套用瓶頸,在保持MySQL的持續可用性的前提下,挖潛各種提高性能的解決方案。本書分為三個部分。第一部分講述MySQL複製,包括高可用性和橫向擴展,第二部分介紹構建健壯的數據中心時監控和性能方面的問題,第三部分給出其他MySQL相關內容,包括雲計算和MySQL集群。

目錄

目錄

Table of Contents

前言 i

第一部分 複製

第1章 引言 3

到底什麼是複製 5

那么,是否需要備份 6

什麼是監控 7

還有什麼我可以閱讀的 7

小結 8

第2章 MySQL複製原理 9

複製的基本步驟 10

配置Master 11

配置Slave 12

連線Master和Slave 13

二進制日誌簡介 14

二進制日誌記錄了什麼 15

觀察複製的動作 16

二進制日誌的結構和內容 17

使用Python管理複製 20

viii | 目錄

基本類及函式 22

作業系統 23

伺服器類 23

伺服器角色 25

建立新Slave 26

克隆Master 27

克隆Slave 29

克隆操作的腳本 31

執行常見的複製任務 33

報表 33

小結 39

第3章 二進制日誌 41

二進制日誌的結構 42

Binlog事件的結構 44

記錄語句 45

記錄數據操作語言 46

記錄數據定義語言 46

記錄查詢 47

LOAD DATA INFILE語句 52

二進制日誌過濾器 54

觸發器、事件和存儲程式 56

存儲過程 61

存儲函式 64

Events 66

特殊結構 66

非事務性的變化和錯誤處理 67

記錄事務 70

事務快取 71

使用XA進行分散式事務處理 74

目錄 | ix

二進制日誌管理 76

二進制日誌和系統崩潰安全 77

Binlog檔案輪換(Rotation) 78

事故(incident) 79

清除binlog檔案 80

mysqlbinlog實用工具 81

基本用法 81

解釋事件(Interpreting Events) 88

二進制日誌選項和變數 92

小結 94

第4章 基於複製的資料庫高可用技術 95

冗餘 96

計畫 98

Slave故障 98

Master故障 98

中繼伺服器故障 99

災難恢復 99

程式 99

熱備份 102

雙Master 107

半同步複製 116

Slave的提升 119

循環複製 134

小結 138

第5章 MySQL集群的橫向擴展 139

讀操作的橫向擴展 141

異步複製的價值 142

管理複製拓撲144

x | 目錄

套用層負載均衡器示例 147

級聯複製(Hierarchal Replication) 150

中繼伺服器的設定 151

使用Python添加中繼伺服器 152

專用Slave 153

過濾複製事件 154

使用過濾將事件分配給Slave 155

數據分片 157

分片的表示 159

數據分區 160

分片之間的均衡 161

一個分片的例子 163

數據的一致性管理 174

非級聯部署中的一致性 174

級聯部署中的一致性 176

小結 182

第6章 高級複製 183

複製架構基礎 184

中繼日誌的結構 185

複製執行緒 187

Slave執行緒的啟動和停止 188

通過Internet運行複製 189

使用內置支持建立安全複製 191

使用stunnel建立安全複製 192

細粒度控制複製 194

關於複製狀態的信息 194

處理下線的參數 201

Slave是如何處理事件的 202

管理I/O執行緒 202

目錄 | xi

SQL執行緒的處理 203

Slave的安全和恢復 208

同步,事務和資料庫崩潰問題 209

保護非事務性語句的規則 210

多源複製 211

基於行的複製 214

基於行的複製參數 215

混合模式的複製 215

處理基於行複製的事件 216

事件的執行 220

事件和觸發器 222

過濾 223

小結 225

第二部分 監控和災難恢復

第7章 監控入門 229

監控方法 230

監控的好處 231

監控系統組件 231

處理器 231

記憶體 233

磁碟 233

網路子系統 234

監控方法 235

Linux和UNIX監控 236

進程活動 237

記憶體利用率 241

磁碟利用率 243

網路活動 246

xii | 目錄

常見系統統計信息 248

使用cron自動監控 249

Mac OS X 監控 249

System profile 250

控制台(console) 252

Activity Monitor 253

Microsoft Windows監控 257

Windows Experience 257

System health report 259

Event Viewer(事件查看器) 261

Reliability Monitor 263

The Task Manager(任務管理器) 264

Performance Monitor 266

預防性維護監控 267

小結 268

第8章 監控MySQL 269

什麼是性能 270

MySQL伺服器監控 270

如何顯示MySQL性能 271

性能監控 271

SQL命令 272

mysqladmin實用工具 278

MySQL GUI工具 279

MySQL管理器 280

MySQL查詢瀏覽器 289

伺服器日誌 290

第三方工具 293

MySQL Benchmark套件 295

目錄 | xiii

資料庫性能 296

測量資料庫性能 297

資料庫最佳化的最佳實踐 308

提高性能的最佳實踐 315

一切都慢 316

慢查詢316

慢套用 316

慢複製 317

小結 317

第9章 監控存儲引擎 319

MyISAM 320

最佳化磁碟存儲 320

最佳化資料庫表 320

使用MyISAM實用工具 321

按索引順序存儲表 323

壓縮表 323

對數據表進行碎片整理 323

監控Key Cache 324

預載入Key Cache 325

使用多個Key Cache 325

其他需要考慮的參數 326

innodb328

使用SHOW ENGINE命令 329

使用InnoDB監控器 332

監控日誌檔案 335

監控緩衝池 336

監控表空間 338

使用INFORMATION_SCHEMA表 338

xiv | 目錄

其他需要考慮的參數 339

小結 340

第10章 複製監控 341

開始 341

安裝伺服器 342

包容性和排他性複製 342

複製執行緒 344

監控Master 346

Master的監控命令 346

Master狀態變數 349

監控Slave 350

Slave的監控命令 350

Slave的狀態變數 353

使用MySQL管理器監控複製 354

其他需要考慮的項 356

網路 356

監控和管理Slave滯後 356

Slave延遲的原因和預防措施 357

小結 358

第11章 複製的故障排除 361

什麼導致錯誤發生 362

Master上的問題 362

Slave上的問題 366

高級複製問題 371

排除複製故障的工具 372

最佳實踐 374

了解你的拓撲結構 374

查詢所有伺服器的狀態 376

目錄 | xv

查看日誌 376

檢查配置信息 377

有序執行系統關閉 377

在遇到錯誤後按序執行重啟 377

手動執行失敗查詢 378

常用程式 378

報告複製故障 379

小結 380

第12章 保護你的投資 383

什麼是信息保障 384

信息保障的三個套用 384

信息保障為什麼重要 385

信息完整性、災難恢復及備份的職責 385

高可用性與災難恢復 386

災難恢復 386

數據恢復的重要性 391

備份和恢復 392

備份實用程式和作業系統級的解決方案 396

InnoDB Hot Backup套用 397

物理檔案的複製 400

mysqldump工具 402

XtraBackup404

邏輯卷管理器快照 404

備份方法的比較 409

備份和MySQL複製 410

使用複製進行備份和恢復 410

PITR 411

自動備份 418

xvi | 目錄

小結 421

第13章 MySQL企業版 423

MySQL企業版入門 424

訂閱級別 425

安裝概述 426

MySQL企業組件 427

MySQL企業伺服器 427

MEM 427

MySQL產品支持 431

MySQL企業版的使用 431

安裝 432

修復監控代理問題 433

監控 434

查詢分析器 440

更多信息 443

小結 443

第三部分 高可用性環境

第14章 雲計算解決方案 447

什麼是雲計算 448

雲架構 450

雲計算是一種經濟的選擇嗎 453

雲計算實例 454

雲計算的好處 454

雲計算供應商 455

AWS 456

技術簡要概述 457

它是如何工作的 461

目錄 | xvii

Amazon Cloud工具 461

入門 465

使用磁碟 479

接下來怎么做 484

雲中的MySQL 484

MySQL複製和EC2 485

EC2中使用MySQL的最佳實踐 488

開源雲計算 490

小結 491

第15章 MySQL集群 493

什麼是MySQL集群 494

術語和組件 494

MySQL集群和MySQL有何不同 495

典型配置 495

MySQL集群的特點 496

局部和全局冗餘 497

日誌處理 498

冗餘和分散式數據 498

MySQL集群的架構 499

如何存儲數據 501

分區 504

事務管理 504

在線上操作 505

配置實例 506

入門 507

啟動MySQL集群 508

集群測試 513

關閉集群 514

xviii | 目錄

達到高可用性 514

系統恢復 517

節點恢復 518

複製 518

獲得高性能 523

高性能的注意事項 523

高性能的最佳實踐 524

小結 527

附錄A 複製建議和竅門 529

Slave停機了,怎么辦 529

檢查冗長的二進制日誌 530

利用複製在表中重建數據 530

基於語句的日誌 530

基於行的日誌 531

使用MySQL Proxy來完成多Master的複製 531

使用默認的存儲引擎 532

MySQL Cluster 多源(Multisource)複製 532

多路(Multichannel)複製故障轉移 533

使用當前資料庫來過濾 533

Slave上的列比Master上多 534

Slave上的列比Master上少 535

選擇某幾列複製到Slave 536

複製心跳 537

在環形複製中忽略伺服器 538

功能預覽:延時複製 538

功能預覽:腳本式複製 539

功能預覽:Oracle算法 540

索引 541

相關詞條

相關搜尋

熱門詞條

聯絡我們