前言
第一篇 基礎篇
第1章 Linux下的Oracle2
1.1 Linux簡介2
1.2 Oracle簡介3
1.3 Linux內存體系的優(yōu)勢3
1.4 Linux內存體系與Oracle內存空間5
1.4.1 Linux用戶空間與內核空間5
1.4.2 Linux下的Oracle內存體系結構5
1.4.3 Linux下的Oracle內存分配6
1.5 小結9
第2章 Oracle內存體系結構10
2.1 閂(Latch)10
2.1.1 Latch簡介10
2.1.2 Latch Level11
2.1.3 Latch獲取模式12
2.1.4 Latch獲取等待13
2.1.5 Latch資源清理回收15
2.2 隊列鎖(Enqueue Lock)16
2.2.1 Lock與Latch的區(qū)別16
2.2.2 常見的Lock17
2.2.3 Lock相關參數18
2.2.4 Lock先請求先服務機制18
2.3 Library Cache21
2.3.1 Library Cache與SQL游標21
2.3.2 Library Cache內存結構28
2.3.3 Library Cache Lock(Pin)31
2.4 Buffer Cache34
2.4.1 Buffer(Cache)Pool34
2.4.2 Cache Buffer Chain(Latch)37
2.4.3 Cache Buffer Pin40
2.4.4 Buffer Cache等待與優(yōu)化44
2.5 小結47
第3章 Oracle重做日志(Redo)48
3.1 Redo功能用途48
3.2 Redo組成結構49
3.2.1 Redo Header49
3.2.2 Redo Record49
3.3 Redo產生場景53
3.3.1 Redo與DML事務53
3.3.2 Redo與Block Cleanout55
3.3.3 Redo與Block Write56
3.3.4 Redo與Hot Backup56
3.3.5 Redo與Direct Load56
3.3.6 Redo與Nologging57
3.4 Redo優(yōu)化58
3.5 小結61
第4章 Oracle事務與回滾段62
4.1 Oracle事務62
4.1.1 Oracle事務概覽62
4.1.2 Oracle事務ACID原則63
4.1.3 Oracle事務與回滾段運行機制64
4.2 Oracle回滾段70
4.2.1 回滾段與一致性讀70
4.2.2 回滾段與事務鎖定71
4.2.3 回滾段與塊清除72
4.3 Oracle事務恢復73
4.3.1 回滾操作下的事務恢復73
4.3.2 進程崩潰下的事務恢復74
4.3.3 實例崩潰下的事務恢復75
4.3.4 數據庫異常關閉下的事務恢復75
4.4 Oracle回滾段特殊恢復76
4.4.1 Oracle回滾段特殊恢復隱藏參數77
4.4.2 Oracle回滾段特殊恢復場景78
4.4.3 Oracle回滾段特殊恢復實戰(zhàn)80
4.5 小結81
第二篇 優(yōu)化篇
第5章 Oracle SQL優(yōu)化84
5.1 Oracle SQL游標84
5.1.1 私有SQL游標84
5.1.2 共享SQL游標85
5.1.3 Library Cache中的SQL游標85
5.1.4 SQL游標與Session游標緩存區(qū)88
5.2 Oracle SQL解析與執(zhí)行91
5.2.1 Oracle SQL解析91
5.2.2 Oracle SQL執(zhí)行93
5.3 Oracle表連接查詢96
5.3.1 NESTED LOOPS97
5.3.2 HASH JOIN97
5.3.3 SORT MERGE98
5.4 Oracle統計信息98
5.4.1 默認統計信息98
5.4.2 手動搜集統計信息99
5.5 Oracle直方圖102
5.5.1 直方圖概要102
5.5.2 直方圖優(yōu)化103
5.6 Oracle提示107
5.6.1 Oracle提示的語法及使用108
5.6.2 Oracle提示失效場景108
5.7 Oracle SQL跟蹤109
5.7.1 10046事件跟蹤109
5.7.2 SQL跟蹤與Tkprof112
5.8 小結113
第6章 Oracle CBO優(yōu)化114
6.1 CBO優(yōu)化器模式與CPU成本114
6.1.1 CBO優(yōu)化器模式114
6.1.2 CBO優(yōu)化器模式下的執(zhí)行計劃調整115
6.1.3 CPU成本121
6.1.4 CPU成本啟用124
6.2 謂詞選擇率與基數計算124
6.2.1 單謂詞選擇率與基數計算124
6.2.2 多謂詞選擇率與基數計算129
6.3 表連接選擇率與基數計算132
6.3.1 表連接選擇率與基數計算解析132
6.3.2 表連接選擇率與基數計算驗證134
6.4 Oracle查詢轉換提示136
6.4.1 dynamic_sampling提示136
6.4.2 leading與ordered提示138
6.4.3 index提示140
6.4.4 index_join提示141
6.4.5 index_ffs提示142
6.4.6 index_ss提示144
6.4.7 index_combine提示145
6.4.8 use_concat提示147
6.4.9 expand與no_expand提示148
6.4.10 merge與no_merge提示148
6.4.11 unnest與no_unnest提示150
6.4.12 push_pred與no_push_pred提示151
6.4.13 push_subq與no_push_subq提示152
6.4.14 pq_distribute提示155
6.4.15 driving_site提示158
6.5 小結159
第三篇 方法篇
第7章 Oracle備份恢復162
7.1 備份恢復與日志記錄體系162
7.1.1 Oracle日志記錄體系162
7.1.2 Oracle備份恢復與日志記錄體系166
7.2 備份恢復與物理文件183
7.2.1 備份恢復與控制文件184
7.2.2 備份恢復與數據文件(頭)201
7.2.3 備份恢復與日志文件(頭)204
7.3 備份恢復實現205
7.3.1 Shutdown Clean恢復206
7.3.2 Shutdown Abort(Crash)恢復210
7.3.3 冷備恢復213
7.3.4 熱備恢復216
7.4 制定RMAN備份恢復計劃224
7.4.1 RMAN備份策略制定224
7.4.2 RMAN備份腳本227
7.4.3 RMAN日常備份腳本228
7.5 小結235
第8章 Oracle自動化運維管理系統236
8.1 Oracle自動化查詢管理系統236
8.1.1 查詢表空間使用情況237
8.1.2 查詢Lock鎖定信息239
8.1.3 查詢事務運行狀態(tài)240
8.1.4 查詢LibraryCache命中率241
8.1.5 查詢Bu