目 錄
第一部分 基礎原理篇
第1章 理解Oracle數據庫和實例 3
1.1 什麼是Oracle數據庫 3
1.2 Oracle數據庫的物理結構 6
1.2.1 Inventory 6
1.2.2 口令文件 9
1.2.3 參數文件 10
1.2.4 控製文件 11
1.2.5 在綫日誌文件 12
1.2.6 數據文件 12
1.2.7 歸檔日誌文件 12
1.3 實例和多實例數據庫 13
1.3.1 什麼是數據庫實例 13
1.3.2 多實例數據庫 16
1.4 數據庫後颱進程 18
1.4.1 進程結構 19
1.4.2 後颱進程的功能作介紹 20
1.4.3 哪些後颱進程可以殺 22
1.4.4 是誰在執行SQL 27
第2章 理解DB Cache 31
2.1 什麼是DB Cache 33
2.2 DB Cache的分配和DBWR的相關算法 40
2.2.1 DB_WRITER_PROCESSES參數 41
2.2.2 DB Cache的幾個主要的鏈和CKPT算法 43
2.2.3 檢索某個DB BLOCK的模擬算法 45
2.3 DB Cache相關的參數閂鎖和等待事件 48
2.4 DB Cache優化的一些探討 51
2.4.1 DB Cache和熱塊衝突 51
2.4.2 使用KEEP POOL能改善CBC爭用嗎 54
2.4.3 如何判斷DB Cache是否足夠 55
2.4.4 DB Cache優化要點 59
第3章 理解共享池 62
3.1 共享池堆的內部結構 64
3.1.1 進一步瞭解共享池 68
3.1.2 共享池的子池技術 75
3.1.3 字典緩存 78
3.1.4 庫緩存和遊標 80
3.2 共享池和遊標 85
3.2.1 遊標與遊標共享 86
3.2.2 遊標與SQL的執行 90
3.2.3 遊標共享和綁定變量 96
3.2.4 OPEN CURSOR和OPEN_CURSORS參數 101
3.2.5 CURSOR_SPACE_FOR_TIME參數 102
3.2.6 SESSION_CACHED_CURSORS參數和OPEN_CURSORS 103
3.2.7 CURSOR_SHARING和遊標共享 109
3.2.8 遊標的關閉 111
3.2.9 互斥鎖和遊標 112
3.3 共享池的相關參數 114
3.4 共享池故障處理 115
3.4.1 著名的ORA-4031 116
3.4.2 其他共享池常見故障 125
3.5 共享池優化的主要思路 128
第4章 理解控製文件 130
4.1 控製文件的內部結構 130
4.1.1 控製文件和控製文件事務 130
4.1.2 控製文件自動擴展 132
4.1.3 如何轉儲和分析控製文件 133
4.1.4 文件頭和控製文件信息 135
4.2 故障處理和優化 136
4.2.1 丟失或者損壞控製文件的處理方法 136
4.2.2 控製文件的優化 138
第5章 理解REDO日誌 140
5.1 什麼是REDO日誌 140
5.2 REDO的基本原理 141
5.2.1 介質恢復和實例恢復的基本概念 141
5.2.2 變化矢量和REDO記錄 143
5.2.3 日誌緩衝和LGWR 149
5.2.4 日誌切換和REDO日誌文件 152
5.2.5 事務提交和迴滾的過程 156
5.3 REDO優化 157
5.3.1 BULK操作能減少REDO嗎 157
5.3.2 如何優化LOG FILE SYNC等待事件 166
5.3.3 SHUTDOWN ABORT無害嗎 168
5.3.4 關於REDO日誌優化的建議 169
第6章 理解UNDO 172
6.1 UNDO的基本原理 172
6.1.1 UNDO錶空間和迴滾段 173
6.1.2 ITL和UNDO 175
6.1.3 如何轉儲UNDO 176
6.1.4 UNDO自動管理是如何工作的 177
6.1.5 係統迴滾段的作用 178
6.1.6 著名的ORA-1555 179
6.1.7 迴滾段手工管理 180
6.2 如何分析和優化UNDO 181
第7章 理解PGA、臨時錶空間和排序 183
7.1 基本概念 184
7.1.1 臨時錶空間和臨時段 184
7.1.2 PGA和排序 185
7.1.3 PGA和PGA_AGGREGATE_ TARGET 187
7.1.4 你應該知道的PGA自動管理內幕 191
7.2 PGA優化的要點 193
第8章 理解ASM的結構 197
8.1 什麼是ASM 197
8.2 ASM的結構 201
8.2.1 ASM DISKHEADER的結構 201
8.2.2 ASM FILE DIRECTORY文件結構 203
8.2.3 ASM ALIAS DIRECTORY文件結構 207
8.2.4 ASM DISK DIRECTORY文件結構 209
8.2.5 從ASM存儲結構談ASM日常維護的要點 210
8.3 如何使用KFED分析和修改ASM數據 211
8.4 如何使用AMDU導齣ASM文件 216
第9章 理解數據塊結構 224
9.1 理解數據塊頭結構 224
9.2 理解ITL 227
9.3 理解記錄結構 231
9.4 解析Oracle字段的內部數據存儲格式 234
9.5 理解LOB的存儲結構 241
第10章 理解錶的結構 246
10.1 到底什麼是“錶” 246
10.1.1 PCTFREE和行鏈 249
10.1.2 那些逝去的老參數 254
10.1.3 減少熱塊衝突的方法 257
10.2 從數據塊結構看目前主流容災技術 260
10.3 案例——簡單任務 265
第11章 理解索引 278
11.1 反轉鍵索引的誤區 280
11.2 索引訪問的方式 284
11.2.1 小錶用索引有意義嗎 286
11.2.2 位圖索引為什麼不適閤大並發量環境 287
11.3 重建索引的作用 291
11.4 索引使用的“三大紀律八項注意” 294
11.5 案例——索引危機 296
第12章 理解分區錶 305
12.1 什麼是分區錶 305
12.2 分區錶對海量數據的意義 310
12.2.1 分區錶和曆史數據歸檔 311
12.2.2 分區錶和高水位推進 315
12.2.3 分區錶和RAC環境 316
12.2.4 分區主鍵和分區粒度的選擇 317
第13章 理解序列 319
13.1 什麼是序列 319
13.2 序列的使用和優化 320
第二部分 分析思路篇
第14章 問題分析綜述 324
14.1 如何抓住蝴蝶效應中的那隻蝴蝶 325
14.2 為什麼要強調基礎概念 328
14.3 工作中的好習慣帶來的福利 330
第15章 DBA分析思路的探討 332
15.1 問題分析總路綫圖 332
15.2 普通故障的分析路綫 335
15.3 性能問題的分析路綫 340
15.4 SQL語句的分析路綫 347
15.5 利用你知道的原理縮小問題的範圍 351
15.6 關閉問題的條件 353
15.7 靈活運用你的知識 354
15.8 DBA需要與時俱進 356
15.9 多錶連接的優化技巧 359
15.10 理論如何聯係實踐 364
第三部分 典型案例篇
第16章 RAC故障分析 370
16.1 LOG_ARCHIVE_MAX_PROCESS導緻的RAC腦裂 370
16.2 RAC係統故障的處理過程 377
16.3 三天兩次嚴重故障 381
第17章 ORA-600故障 388
17.1 ORA-600 [12700]錯誤的分析過程 388
17.2 ORA-600 [kdsgrp1]的處理案例 401
第18章 性能問題分析 407
18.1 壓力測試遇到的問題 407
18.2 IMP導入性能問題的分析 411
18.3 並行操作為什麼無法執行 413
第19章 SQL優化 421
19.1 一個常用的SQL優化方法 421
19.2 一個查找IP所屬區域的SQL優化思路 428
結束語 433
· · · · · · (
收起)