DBA 攻堅指南:左手 Oracle,右手 MySQL
內容描述
本書是美創科技資深Oracle、MySQL技術專家嘔心瀝血之作,匯集作者多年的經驗和最佳實踐,也是目前市場上為數不多的Oracle和MySQL相結合的數據庫技術圖書。
書中內容主要分為Oracle和MySQL兩大部分。第一部分介紹Oracle的日常運維,該部分內容由淺入深逐步展開,包括生產環境搭建、上線前的壓力測試、日常運維以及故障處理、遷移升級、SQL的優化技巧等;第二部分是MySQL的運維實戰,主要介紹MySQL常用的運維操作及最佳實踐,包括軟件安裝、備份恢復、遷移升級、架構設計、監控和性能優化等。書中提供了全面、實用的建議及具體的操作案例,以幫助讀者在復雜的核心生產環境中可靠且高效地運行Oracle和MySQL數據庫。
目錄大綱
前言
第一部分 Oracle實戰攻略
第1章 Oracle安裝最佳實踐2
1.1 正確安裝數據庫軟件2
1.1.1 安裝過程中容易忽視的點2
1.1.2 常見安裝問題的處理7
1.1.3 集群安裝最佳實踐9
1.2 上線前的壓力測試19
1.2.1 I/O測試19
1.2.2 RDBMS層I/O測試21
1.2.3 模擬應用程序層測試25
1.3 本章小結30
第2章 Oracle故障診斷31
2.1 日常維護31
2.1.1 TX鎖處理31
2.1.2 高峰期謹慎編譯業務對象35
2.1.3 數據誤刪恢復37
2.2 數據庫連接故障診斷38
2.2.1 數據庫連接緩慢44
2.2.2 間接性連接報錯49
2.3 數據庫日常案例精析52
2.3.1 存儲鏈路引起的性能問題52
2.3.2 操作系統內存泄漏的案例56
2.3.3 詳解log file sync等待62
2.3.4 10053跟蹤診斷69
2.4 集群故障診斷75
2.4.1 集群軟件權限修復75
2.4.2 RAC節點驅逐分析77
2.4.3 DRM特性引起的RAC節點宕機79
2.4.4 row cache lock性能診斷85
2.5 本章小結89
第3章 數據庫遷移升級90
3.1 如何選擇遷移方式91
3.2 邏輯遷移升級91
3.2.1 使用數據泵的註意事項92
3.2.2 數據泵常用參數93
3.2.3 參數使用案例93
3.3 邏輯DataGuard滾動升級96
3.3.1 生產端前期準備97
3.3.2 備端前期準備98
3.3.3 將邏輯DG升級至Oracle 12c99
3.3.4 第一次主備切換102
3.3.5 升級原生產庫103
3.3.6 升級失敗回退措施104
3.4 XTTS遷移升級技術104
3.4.1 環境說明104
3.4.2 源端環境準備105
3.4.3 目標端環境準備114
3.4.4 數據同步116
3.4.5 正式遷移117
3.4.6 遷移失敗回退122
3.4.7 遷移備忘錄122
3.5 OGG的遷移升級案例122
3.5.1 源端環境準備123
3.5.2 目標端環境準備128
3.5.3 數據比對安裝配置130
3.5.4 正式遷移前的準備134
3.5.5 正式遷移138
3.5.6 遷移失敗的回退措施140
3.6 如何保證數據一致性140
3.7 遷移前後如何保證性能146
3.7.1 數據庫重放146
3.7.2 SQL性能分析157
3.8 本章小結163
第4章 SQL性能優化164
4.1 讀懂執行計劃164
4.1.1 獲取執行計劃165
4.1.2 讀懂執行計劃171
4.2 收集統計信息176
4.3 訪問路徑190
4.3.1 全表掃描190
4.3.2 ROWID掃描191
4.3.3 索引唯一掃描191
4.3.4 索引範圍掃描192
4.3.5 索引跳躍掃描192
4.3.6 全索引掃描193
4.3.7 快速全索引掃描195
4.4 連接方式196
4.4.1 嵌套循環連接196
4.4.2 哈希連接198
4.4.3 排序合並連接199
4.4.4 笛卡兒連接201
4.5 查詢轉換201
4.5.1 視圖合並202
4.5.2 謂詞推入203
4.5.3 子查詢展開205
4.5.4 物化視圖查詢重寫207
4.6 異常SQL處理209
4.6.1 定位問題SQL209
4.6.2 SQL健康檢查210
4.6.3 SQL PROFILE212
4.6.4 SQL 計劃管理213
4.7 SQL優化案例集216
4.7.1 常用索引優化方法216
4.7.2 隱式轉換無法使用索引220
4.7.3 直方圖引起執行計劃偏差221
4.7.4 驅動表選擇優化224
4.7.5 聯合索引優化228
4.7.6 謂詞推入優化231
4.7.7 大型表格更新刪除優化237
4.7.8 程序不足SQL來湊240
4.8 本章小結244
第二部分 MySQL實戰之旅
第5章 MySQL安裝最佳實踐246
5.1 幾種常見的安裝方式246
5.1.1 操作系統基礎配置248
5.1.2 RPM包安裝與介紹251
5.1.3 二進制包安裝與介紹255
5.1.4 源碼編譯安裝與介紹258
5.1.5 安裝最佳實踐263
5.2 常用的連接方式277
5.2.1 建立MySQL連接277
5.2.2 簡化MySQL連接279
5.3 數據庫系統賬戶改密的幾種方法285
5.3.1 兩階段認證285
5.3.2 系統賬戶密碼重置287
5.4 SSL與RSA實踐291
5.4.1 創建SSL、RSA證書和密鑰291
5.4.2 配置加密連接294
5.5 本章小結297
第6章 MySQL備份與恢復技術298
6.1 備份與恢復概述298
6.2 企業級MEB物理備份與恢復299
6.2.1 MEB軟件介紹299
6.2.2 MEB備份與恢復示例301
6.3 開源級PXB物理備份與恢復317
6.3.1 PXB軟件介紹317
6.3.2 PXB工作原理概述318
6.3.3 PXB備份與恢復示例320
6.4 MySQLDUMP邏輯備份與恢復330
6.4.1 MySQLDUMP軟件介紹331
6.4.2 SQL格式轉儲與加載332
6.4.3 分隔文本格式轉儲與加載340
6.5 MySQLPUMP邏輯備份與恢復343
6.5.1 MySQLPUMP軟件介紹343
6.5.2 MySQLPUMP並行處理344
6.5.3 MySQLPUMP轉儲特定對象346
6.5.4 MySQLPUMP壓縮轉儲347
6.6 本章小結348
第7章 MySQL遷移與升級技術349
7.1 MySQL遷移概述349
7.2 使用MEB實現零RPO遷移350
7.2.1 MEB全量與增量遷移350
7.2.2 MEB全量與復制遷移351
7.2.3 遷移小結353
7.3 使用PXB實現零RPO遷移354
7.3.1 PXB全量與增量遷移354
7.3.2 PXB全量與復制遷移356
7.3.3 遷移小結357
7.4 使用MySQLDUMP遷移357
7.4.1 MySQLDUMP全量遷移357
7.4.2 MySQLDUMP全量遷移與Binlog增量遷移359
7.4.3 MySQLDUMP全量與復制遷移361
7.4.4 遷移小結362
7.5 使用MySQLPUMP遷移363
7.5.1 MySQLPUMP全量遷移363
7.5.2 MySQLPUMP全量與復制遷移366
7.5.3 遷移小結367
7.6 使用MyDumper遷移367
7.6.1 安裝MyDumper軟件367
7.6.2 MyDumper全量遷移368
7.6.3 遷移小結372
7.7 MySQL版本升級實戰373
7.7.1 MySQL升級概述373
7.7.2 確認升級路徑373
7.7.3 升級前的準備工作373
7.7.4 原地升級方式374
7.7.5 邏輯升級方式377
7.8 本章小結378
第8章 MySQL經典復制架構379
8.1 復制介紹379
8.1.1 MySQL復制線程380
8.1.2 MySQL復製版本兼容性382
8.2 基於傳統模式部署復制382
8.3 基於GTID模式部署復制388
8.3.1 離線啟用GTID模式388
8.3.2 在線設置GTID模式390
8.3.3 GTID復制模式的限制394
8.4 多源復制395
8.5 SBR和RBR的特點398
8.5.1 SBR的優勢與劣勢398
8.5.2 RBR的優勢與劣勢399
8.6 復制過濾規則400
8.7 延遲復制406
8.8 復制報錯處理流程407
8.9 復制切換409
8.9.1 復制拓撲手動切換409
8.9.2 復制拓撲自動切換414
8.10 優化復制延遲424
8.11 本章小結428
第9章 MySQL組復制實踐429
9.1 組復制技術介紹429
9.1.1 傳統復制429
9.1.2 組復制430
9.2 組復制要求和限制432
9.2.1 組復制實例要求432
9.2.2 組復制限制434
9.3 部署單主模式組復制436
9.3.1 跨主機部署MGR436
9.3.2 同主機部署MGR445
9.4 單主模式切換成多主模式447
9.5 故障檢測與處理449
9.5.1 檢測分區449
9.5.2 丟失仲裁450
9.5.3 解鎖分區451
9.5.4 重啟新復制組452
9.6 組復制調優453
9.6.1 優化組復制恢復453
9.6.2 微調組通信線程454
9.6.3 消息壓縮454
9.6.4 流量控制455
9.7 本章小結457
第10章 MySQL監控與可視化458
10.1 部署Zabbix Server458
10.2 部署Zabbix Agent2462
10.3 創建自定義Keys464
10.4 創建自定義項與觸發器476
10.5 啟用Zabbix告警通知492
10.6 創建Zabbix自定義模板494
10.7 自定義資產發現規則496
10.8 部署Grafana可視化軟件498
10.9 定製MySQL監控大屏499
10.10 本章小結510
作者介紹
葉樺、徐浩、張夢穎、應以峰著:
葉樺,Oracle OCM,MySQL認證專家,超10年乙方數據庫維護經驗,美創科技運維服務團隊負責人。
具備豐富的行業經驗與技術積累,所服務的對象包括大型運營商、金融機構、政府機關以及製造業等多個行業客戶,對於數據庫技術具有深刻的理解。
精通Oracle和MySQL數據庫內核原理、架構規劃和調優診斷,擅長Shell和Python自動化運維開發。
徐浩,美創科技運維部經理,Oracle、MySQL、雲數據庫高級認證專家。
擁有8年以上的數據庫領域從業經驗,TB級高並發數據庫與中大型項目的管理經驗。
對於分佈式高可用架構和性能調優有著豐富的實戰經驗,擅長故障診斷及數據災難挽救,服務的行業包括運營商、製造業、金融、醫療、政府等。目前,主要負責Oracle、MySQL、阿里雲等技術的研究和運維管理,以及數據庫智能運維平台的設計開發等工作。