《DBA攻堅指南:左手Oracle,右手MySQL》由機械工業出版社出版,Oracle、MySQL里程碑之作,數年工作經驗結晶。
基本介紹
- 中文名:DBA攻堅指南:左手Oracle,右手MySQ
- 作者:葉樺、徐浩、張夢穎、應以峰
- 出版社:機械工業出版社
- 出版時間:2021年
- ISBN:9787111684336
內容簡介,圖書目錄,作者簡介,
內容簡介
本書是美創科技資深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、阿里雲等技術的研究和運維管理,以及資料庫智慧型運維平台的設計開發等工作。
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、阿里雲等技術的研究和運維管理,以及資料庫智慧型運維平台的設計開發等工作。