出版時間:2011-10 出版社:電子工業(yè)出版社 作者:)Charles Bell Mats Kindahl Lars Thalmann 頁數(shù):604 譯者:寧青,唐李洋 諸云萍
Tag標簽:無
內(nèi)容概要
本書是“MySQL High
Availability”的中文翻譯版,主要講解真實環(huán)境下如何使用MySQL的復(fù)制、集群和監(jiān)控特性,揭示MySQL可靠性和高可用性的方方面面。本書由MySQL開發(fā)團隊親自執(zhí)筆,定位于解決MySQL數(shù)據(jù)庫的常見應(yīng)用瓶頸,在保持MySQL的持續(xù)可用性的前提下,挖潛各種提高性能的解決方案。本書分為三個部分。第一部分講述MySQL復(fù)制,包括高可用性和橫向擴展,第二部分介紹構(gòu)建健壯的數(shù)據(jù)中心時監(jiān)控和性能方面的問題,第三部分給出其他MySQL相關(guān)內(nèi)容,包括云計算和MySQL集群。
作者簡介
作者:(美國)查理斯·貝爾 (Bell.C.) (美國)邁茨·肯德爾 (Kindahl.M.) (美國)拉爾斯·塞爾曼 (Thalann.L.) 譯者:寧青 唐李洋 諸云萍寧青,工作過幾年,由一家小公司轉(zhuǎn)戰(zhàn)Cisco WebEx,現(xiàn)在淘寶數(shù)據(jù)平臺部架構(gòu)組下討生活。做過幾年Java,并會點Perl,Python。現(xiàn)專注于數(shù)據(jù)這塊,搞過Oracle和MySQL,順帶還考了個OCP認證,但絕大多數(shù)時間是在Hive,Hadoop這塊瞎搞。唐李洋,合肥工業(yè)大學(xué)在讀博士,研究方向為云計算、并行計算、數(shù)據(jù)挖掘與分析等。曾經(jīng)在Cisco WebEx實習(xí),主要從事數(shù)據(jù)架構(gòu)方面的設(shè)計與分析工作。諸云萍,合肥工業(yè)大學(xué)計算機專業(yè)學(xué)士,中國科學(xué)技術(shù)大學(xué)工商管理碩士(MBA),Oracle認證OCP。從事數(shù)據(jù)庫開發(fā)、測試與管理工作5年以上,具有豐富的MySQL,Oracle,Sybase等關(guān)系型數(shù)據(jù)庫項目實踐經(jīng)驗。曾在神州數(shù)碼安徽移動BOSS項目組負責報表開發(fā)工作,現(xiàn)就職于Cisco-WebEx合肥分公司,從事Oracle,Mysql數(shù)據(jù)庫以及ETL的測試與管理工作。
書籍目錄
Table of Contents
前言 i
第一部分 復(fù)制
第1章 引言
到底什么是復(fù)制
那么,是否需要備份
什么是監(jiān)控
還有什么我可以閱讀的
小結(jié)
第2章 MySQL復(fù)制原理
復(fù)制的基本步驟
配置Master
配置Slave
連接Master和Slave
二進制日志簡介
二進制日志記錄了什么
觀察復(fù)制的動作
二進制日志的結(jié)構(gòu)和內(nèi)容
使用Python管理復(fù)制
viii | 目錄
基本類及函數(shù)
操作系統(tǒng)
服務(wù)器類
服務(wù)器角色
建立新Slave
克隆Master
克隆Slave
克隆操作的腳本
執(zhí)行常見的復(fù)制任務(wù)
報表
小結(jié)
第3章 二進制日志
二進制日志的結(jié)構(gòu)
Binlog事件的結(jié)構(gòu)
記錄語句
記錄數(shù)據(jù)操作語言
記錄數(shù)據(jù)定義語言
記錄查詢
LOAD DATA INFILE語句
二進制日志過濾器
觸發(fā)器、事件和存儲程序
存儲過程
存儲函數(shù)
Events
特殊結(jié)構(gòu)
非事務(wù)性的變化和錯誤處理
記錄事務(wù)
事務(wù)緩存
使用XA進行分布式事務(wù)處理
目錄 | ix
二進制日志管理
二進制日志和系統(tǒng)崩潰安全
Binlog文件輪換(Rotation)
事故(incident)
清除binlog文件
mysqlbinlog實用工具
基本用法
解釋事件(Interpreting Events)
二進制日志選項和變量
小結(jié)
第4章 基于復(fù)制的數(shù)據(jù)庫高可用技術(shù)
冗余
計劃
Slave故障
Master故障
中繼服務(wù)器故障
災(zāi)難恢復(fù)
程序
熱備份
雙Master
半同步復(fù)制
Slave的提升
循環(huán)復(fù)制
小結(jié)
第5章 MySQL集群的橫向擴展
讀操作的橫向擴展
異步復(fù)制的價值
管理復(fù)制拓撲
x | 目錄
應(yīng)用層負載均衡器示例
級聯(lián)復(fù)制(Hierarchal Replication)
中繼服務(wù)器的設(shè)置
使用Python添加中繼服務(wù)器
專用Slave
過濾復(fù)制事件
使用過濾將事件分配給Slave
數(shù)據(jù)分片
分片的表示
數(shù)據(jù)分區(qū)
分片之間的均衡
一個分片的例子
數(shù)據(jù)的一致性管理
非級聯(lián)部署中的一致性
級聯(lián)部署中的一致性
小結(jié)
第6章 高級復(fù)制
復(fù)制架構(gòu)基礎(chǔ)
中繼日志的結(jié)構(gòu)
復(fù)制線程
Slave線程的啟動和停止
通過Internet運行復(fù)制
使用內(nèi)置支持建立安全復(fù)制
使用Stunnel建立安全復(fù)制
細粒度控制復(fù)制
關(guān)于復(fù)制狀態(tài)的信息
處理斷開連接的參數(shù)
Slave是如何處理事件的
管理I/O線程
目錄 | xi
SQL線程的處理
Slave的安全和恢復(fù)
同步,事務(wù)和數(shù)據(jù)庫崩潰問題
保護非事務(wù)性語句的規(guī)則
多源復(fù)制
基于行的復(fù)制
基于行的復(fù)制參數(shù)
混合模式的復(fù)制
處理基于行復(fù)制的事件
事件的執(zhí)行
事件和觸發(fā)器
過濾
小結(jié)
第二部分 監(jiān)控和災(zāi)難恢復(fù)
第7章 監(jiān)控入門
監(jiān)控方法
監(jiān)控的好處
監(jiān)控系統(tǒng)組件
處理器
內(nèi)存
磁盤
網(wǎng)絡(luò)子系統(tǒng)
監(jiān)控方法
Linux和UNIX監(jiān)控
進程活動
內(nèi)存利用率
磁盤利用率
網(wǎng)絡(luò)活動
xii | 目錄
常見系統(tǒng)統(tǒng)計信息
使用cron自動監(jiān)控
Mac OS X 監(jiān)控
System profile
控制臺(console)
Activity Monitor
Microsoft Windows監(jiān)控
Windows Experience
System health report
Event Viewer(事件查看器)
Reliability Monitor
The Task Manager(任務(wù)管理器)
Performance Monitor
預(yù)防性維護監(jiān)控
小結(jié)
第8章 監(jiān)控MySQL
什么是性能
MySQL服務(wù)器監(jiān)控
如何顯示MySQL性能
性能監(jiān)控
SQL命令
mysqladmin實用工具
MySQL GUI工具
MySQL管理器
MySQL查詢?yōu)g覽器
服務(wù)器日志
第三方工具
MySQL Benchmark套件
目錄 | xiii
數(shù)據(jù)庫性能
測量數(shù)據(jù)庫性能
數(shù)據(jù)庫優(yōu)化的最佳實踐
提高性能的最佳實踐
一切都慢
慢查詢
慢應(yīng)用
慢復(fù)制
小結(jié)
第9章 監(jiān)控存儲引擎
MyISAM
優(yōu)化磁盤存儲
優(yōu)化數(shù)據(jù)庫表
使用MyISAM實用工具
按索引順序存儲表
壓縮表
對數(shù)據(jù)表進行碎片整理
監(jiān)控Key Cache
預(yù)加載Key Cache
使用多個Key Cache
其他需要考慮的參數(shù)
InnoDB
使用SHOW ENGINE命令
使用InnoDB監(jiān)控器
監(jiān)控日志文件
監(jiān)控緩沖池
監(jiān)控表空間
使用INFORMATION_SCHEMA表
xiv | 目錄
其他需要考慮的參數(shù)
小結(jié)
第10章 復(fù)制監(jiān)控
開始
安裝服務(wù)器
包容性和排他性復(fù)制
復(fù)制線程
監(jiān)控Master
Master的監(jiān)控命令
Master狀態(tài)變量
監(jiān)控Slave
Slave的監(jiān)控命令
Slave的狀態(tài)變量
使用MySQL管理器監(jiān)控復(fù)制
其他需要考慮的項
網(wǎng)絡(luò)
監(jiān)控和管理Slave滯后
Slave延遲的原因和預(yù)防措施
小結(jié)
第11章 復(fù)制的故障排除
什么導(dǎo)致錯誤發(fā)生
Master上的問題
Slave上的問題
高級復(fù)制問題
排除復(fù)制故障的工具
最佳實踐
了解你的拓撲結(jié)構(gòu)
查詢所有服務(wù)器的狀態(tài)
目錄 | xv
查看日志
檢查配置信息
有序執(zhí)行系統(tǒng)關(guān)閉
在遇到錯誤后按序執(zhí)行重啟
手動執(zhí)行失敗查詢
常用程序
報告復(fù)制故障
小結(jié)
第12章 保護你的投資
什么是信息保障
信息保障的三個應(yīng)用
信息保障為什么重要
信息完整性、災(zāi)難恢復(fù)及備份的職責
高可用性與災(zāi)難恢復(fù)
災(zāi)難恢復(fù)
數(shù)據(jù)恢復(fù)的重要性
備份和恢復(fù)
備份實用程序和操作系統(tǒng)級的解決方案
InnoDB Hot Backup應(yīng)用
物理文件的復(fù)制
mysqldump工具
XtraBackup
邏輯卷管理器快照
備份方法的比較
備份和MySQL復(fù)制
使用復(fù)制進行備份和恢復(fù)
PITR
自動備份
xvi | 目錄
小結(jié)
第13章 MySQL企業(yè)版
MySQL企業(yè)版入門
訂閱級別
安裝概述
MySQL企業(yè)組件
MySQL企業(yè)服務(wù)器
MEM
MySQL產(chǎn)品支持
MySQL企業(yè)版的使用
安裝
修復(fù)監(jiān)控代理問題
監(jiān)控
查詢分析器
更多信息
小結(jié)
第三部分 高可用性環(huán)境
第14章 云計算解決方案
什么是云計算
云架構(gòu)
云計算是一種經(jīng)濟的選擇嗎
云計算實例
云計算的好處
云計算供應(yīng)商
AWS
技術(shù)簡要概述
它是如何工作的
目錄 | xvii
Amazon Cloud工具
入門
使用磁盤
接下來怎么做
云中的MySQL
MySQL復(fù)制和EC2
EC2中使用MySQL的最佳實踐
開源云計算
小結(jié)
第15章 MySQL集群
什么是MySQL集群
術(shù)語和組件
MySQL集群和MySQL有何不同
典型配置
MySQL集群的特點
局部和全局冗余
日志處理
冗余和分布式數(shù)據(jù)
MySQL集群的架構(gòu)
如何存儲數(shù)據(jù)
分區(qū)
事務(wù)管理
聯(lián)機操作
配置實例
入門
啟動MySQL集群
集群測試
關(guān)閉集群
達到高可用性
系統(tǒng)恢復(fù)
節(jié)點恢復(fù)
復(fù)制
獲得高性能
高性能的注意事項
高性能的最佳實踐
小結(jié)
附錄A 復(fù)制建議和竅門
Slave停機了,怎么辦
檢查冗長的二進制日志
利用復(fù)制在表中重建數(shù)據(jù)
基于語句的日志
基于行的日志
使用MySQL Proxy來完成多Master的復(fù)制
使用默認的存儲引擎
MySQL Cluster 多源(Multisource)復(fù)制
多路(Multichannel)復(fù)制故障轉(zhuǎn)移
使用當前數(shù)據(jù)庫來過濾
Slave上的列比Master上多
Slave上的列比Master上少
選擇某幾列復(fù)制到Slave
復(fù)制心跳
在環(huán)形復(fù)制中忽略服務(wù)器
功能預(yù)覽:延時復(fù)制
功能預(yù)覽:腳本式復(fù)制
功能預(yù)覽:Oracle算法
索引
章節(jié)摘錄
版權(quán)頁:插圖:事務(wù)計算數(shù)據(jù)庫用戶都比較熟悉事務(wù)計算:多個數(shù)據(jù)段可以在單個事務(wù)中被同時處理,并和其他數(shù)據(jù)相互關(guān)聯(lián)。這種想法就是定義了一個job,它包含特定數(shù)據(jù)并在這些數(shù)據(jù)上單步地(即事務(wù))執(zhí)行一些操作。最好的網(wǎng)格計算解決方案使用這種概念來保證結(jié)果的正確交付。然而,云計算稍微有點復(fù)雜。具體來說,大型事務(wù)應(yīng)用要運行很長一段時間,而網(wǎng)格解決方案只需很少的執(zhí)行時間。幸好在云計算環(huán)境中構(gòu)建一個事務(wù)計算系統(tǒng)是有可能的。為此,我們必須要保證計算資源長壽,并提供允許數(shù)據(jù)分段和并行處理的機制。如果你在想“嘿,這聽起來似乎像服務(wù)器農(nóng)場”,那么你是對的。大多數(shù)云計算供應(yīng)商提供虛擬資源來支持事務(wù)計算解決方案,包括負載均衡器、持久化實例和網(wǎng)絡(luò)資源的永久分配。彈性我們用術(shù)語“彈性”來描述已經(jīng)成為商品的抽象網(wǎng)絡(luò)或系統(tǒng)資源。例如,Amazon允許你將給定的IP地址應(yīng)用到它的云環(huán)境中的任何服務(wù)器實例上。這在事務(wù)系統(tǒng)中是很重要的,你需要一個回應(yīng)特定地址的服務(wù)器池。這是很好的服務(wù)器虛擬化,所以它們可以在云中的任何地方運行,而你必須有一個方法來保證IP地址保持不變。在這種情況下,IP地址就成為一個彈性資源,你可以將它分配到任何實例,而不是擁綁在一個特定的機器上。同樣,磁盤資源也是彈性的,你可以在一個磁盤資源上存儲數(shù)據(jù),云中的任何正在運行的實例都可以訪問它。彈性解決了正在運行的虛擬機器的硬件配置問題。機器可以真正做到即插即用,你可以輕易地創(chuàng)建和毀掉它們。例如,可以從一個運行某種操作系統(tǒng)的機器切換到另一個開發(fā)過程中的機器上(可能有一些細微的改變),并仍然可以訪問同樣的數(shù)據(jù)而不需要重新創(chuàng)建一個新的數(shù)據(jù)庫。
媒體關(guān)注與評論
“MySQL復(fù)制被廣泛部署,但卻從未得到充分的解釋。這本書將改變這種狀況?!薄 狹ark Callaghan MySQL貢獻者,同時是一些世界級Internet公司的MySQL工程領(lǐng)導(dǎo)
編輯推薦
《高可用MySQL:構(gòu)建健壯的數(shù)據(jù)中心》:服務(wù)器瓶頸和故障是數(shù)據(jù)庫部署中的常見問題,但并不是沒有解決的辦法。MySQL的一些特性能夠保證,無論系統(tǒng)運行在硬件、虛擬機,還是云環(huán)境,系統(tǒng)都不停機。《高可用My SQL》一書講解了真實環(huán)境下如何使用這些復(fù)制、集群和監(jiān)控特性。《高可用MySQL:構(gòu)建健壯的數(shù)據(jù)中心》由設(shè)計這些工具的工程師們所編寫,揭示了My SQL可靠性和高可用性一些難以發(fā)現(xiàn)的方方面面,這些知識對使用該數(shù)據(jù)庫系統(tǒng)的組織來說非常重要。探究二進制日志,這是在災(zāi)難恢復(fù)和故障滲斷的時候需要復(fù)制的文件;掌握改善響應(yīng)時間和處理大數(shù)據(jù)集的技術(shù);學(xué)習(xí)如何使用復(fù)制橫向擴展服務(wù)器,監(jiān)控數(shù)據(jù)庫活動和性能,以及主要的操作系統(tǒng)參數(shù);跟蹤master和slave,處理故障、重啟、崩潰及其他事故,使用作者寫的開源庫實現(xiàn)關(guān)鍵任務(wù)的自動化,學(xué)習(xí)虛擬化環(huán)境下的My SQL技術(shù),如Amazonweb Services.使用My SQL集群實現(xiàn)高可用性。Charles Bell博士是復(fù)制和備份領(lǐng)域的高級開發(fā)人員,興趣包括數(shù)據(jù)庫理論,軟件工程及敏捷開發(fā)實踐。Mats Kindahl博士是MySQL復(fù)制和備份小組的首席開發(fā)者。Lars Thalmann博士是MySQL復(fù)制和備份小組的開發(fā)經(jīng)理和技術(shù)領(lǐng)導(dǎo),設(shè)計了很多復(fù)制和備份特性。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載