【高效能MySQL】讀書筆記
第9章:
MySQL需要的四種基本資源:cpu、記憶體、硬碟以及網路資源,傾向於很多快速的cpu
合理做法:不要超過兩個插槽;記憶體方面 經濟的伺服器記憶體:18個DIMM槽,單條8GB(會變)
持久化儲存選擇:SAN、傳統硬碟、固態儲存裝置(以提供效能的次序排序)
- 需要功能和純粹容量時,SAN;昂貴、小的隨機I/O很大延遲(慢的互聯方式、工作集太大)
- 傳統硬碟很大、便宜,隨機讀慢,best 伺服器硬碟組成RAID 10卷,帶有電池保護單元的RAID控制器,設定寫快取未writeBack
- 固態小且昂貴,隨機I/O快 ;SSD便宜更慢缺可靠性驗證:做RAID提升;PCIe昂貴容量有限,非常快且可靠不需要RAID
作業系統:儲存、網路、虛擬記憶體管理
使用GNU/Linux,採用XFS檔案系統,且為伺服器頁面交換傾向率 硬碟佇列排程器設定恰當的值
10、複製
2種方式:通主庫記錄二進位制日誌,備庫重放日誌來非同步複製
推薦配置:
1、明確指定二進位制日誌名字:保證二進位制日誌名在all伺服器上一致 log_bin
2、備庫:為中繼日誌指定絕對路徑
11章
構建高可擴充套件性系統原則:
1、在系統內儘量避免序列化和互動
2、避免不同節點間的互動
2、助規劃可擴充套件性:
應用的功能完成了多少?預期的最大負載是?某個系統失效會發生什麼
資料分片最大挑戰:查詢和獲取資料:如何查詢資料取決於如何分片
負載均衡:伺服器前端設定一個負載均衡器,將請求路由至最空閒的可用伺服器
實現應用所明確需要的,為可能的快速增長做好預先規劃
12高可用性
在宕機造成的損失與降低宕機時間所花費的成本間取一個平衡
宕機:
執行環境:裁判空間耗盡
效能:執行糟糕的SQL,伺服器bug、錯誤行為,糟糕的schema 索引設計
複製:主備資料不一致
資料丟失或損壞:DROP TABLE誤操作,缺少可用備份
其他:……
實現高可用性:
1、適當配置、監控、規範或安全保障措施避免人為失誤
2、系統中造冗餘,且具備故障轉移能力
提升平均失效時間MTBF
使用innodb並進行適當配置、skip_name_resolve禁止DNS
備庫只讀,不讓複製自啟動、定期審查查詢語句、歸檔清理不需要的資料
禁用查詢快取(除非能證明有效)、避免使用複雜特性(複製過濾 觸發器)
監控重要元件和功能,儘量記錄伺服器狀態和效能指數、定期檢查複製完整性
為檔案系統保留一些空間,養成習慣、評估管理系統的改變、狀態及效能資訊
測試恢復工具和流程(含從備份中恢復資料)、最小許可權原則、系統乾淨 整潔
好的命名和組織約定、謹慎安排升級資料庫伺服器、升級前使用諸如Percona Toolkit的pt-upgrade類工具檢查系統
降低平局恢復時間MTTR
一個能夠提供冗餘和故障轉移能力的系統架構
團隊成員是最重要的高可用性資產
14 應用層優化
快取:
找到正確的粒度和快取過期策略組合
決定哪些內容適合快取,快取在哪裡
被動快取:除了儲存和返回資料不做其他事情 memcached
主動快取:快取未命中做額外工作,將請求轉發給應用的其他辦部分生成請求結果,儲存並返回 squid
測量:剖析每一層問題;檢查web伺服器配置和快取
15備份與恢復
還原:從備份檔案獲取資料
恢復:當異常發生後對一個系統或其部分的拯救
邏輯備份:匯出;物理備份:複製原始檔案
先使用物理複製,以此資料啟動MySQL伺服器例項執行mysqlcheck,週期性使用mysqldump執行邏輯備份
1、備份二進位制日誌:備份後使用flush logs開始新的二進位制日誌(只需備份新的二進位制日誌)
2、不備份沒有改變的表,MyISAM記錄每個表的最後修改時間,通過檢視磁碟上的檔案執行show table status檢視時間,使用innodb 利用觸發器記錄最後修改時間
3、不備份無改變的行,某些資料不需要備份,至少一週一次全備份
資料一致性:資料指定時間點一致;檔案一致性
innodb每次啟動檢測資料和日誌檔案,是否需要恢復過程:據日誌檔案將事務應用到資料檔案,回滾未提交變更
恢復損壞的InnoDB資料:
optimize table修復損壞的二級索引;聚簇索引:innodb_force_recovery匯出表;
小結:
無侵入式二進位制原始資料備份:
從檔案系統或SAN快照中直接複製資料檔案;使用percona xtraBackup熱備份
備份二進位制日誌,儘可能久地儲存多份備份的資料和二進位制檔案
16、MySQL使用者工具
介面工具
幫助執行查詢,建立表和使用者,執行其他日常任務等
命令列工具集
Percona Toolkit:日誌分析、複製完整性檢測、資料同步、模式和索引分析、查詢建議和資料歸檔目的
SQL實用集
common_schema:針對伺服器指令碼化和管理的程式碼和檢視
開源監控工具
nagios:問題檢測和告警系統,檔案:週期性檢測伺服器,將結果與預設 自定義閾值比較 發給聯絡人 難維護
zabbix:同時支援監控和指標收集的完整系統,資料庫;配置簡單、靈活、可擴充套件,圖形