第一部分 背景知識、數據建模、UNIX/Linux和SQL*Plus
第1章 Oracle DBA的世界 2
1.1 Oracle DBA的任務 2
1.1.1 DBA的安全任務 3
1.1.2 DBA的係統管理任務 3
1.1.3 DBA的數據庫設計任務 5
1.2 不同的DBA工作分類 6
1.3 數據庫的類型 6
1.3.1 聯機事務處理和決策支持係統數據庫 6
1.3.2 開發、測試和産品數據庫 7
1.4 培訓和認證 7
1.4.1 培訓 7
1.4.2 認證 8
1.4.3 Oracle DBA的資源和組織 10
1.4.4 Oracle示例 11
1.4.5 Oracle數據庫的兩天DBA課程 11
1.4.6 Oracle MetaLink 11
1.4.7 Oracle Web Conference 12
1.5 普通Oracle DBA的日常工作 12
1.6 幾點建議 12
1.6.1 知道何時尋求幫助 12
1.6.2 記住你並不孤單 13
1.6.3 站在全局看問題 13
1.6.4 首先是不要造成損害 13
第2章 關係數據庫建模及數據庫設計 14
2.1 關係數據庫簡介 14
2.2 關係數據庫模型 15
2.2.1 數據庫模式 15
2.2.2 關係代數 15
2.2.3 關係演算 16
2.2.4 SQL 16
2.3 關係數據庫的生命周期 17
2.3.1 需求收集和分析 17
2.3.2 邏輯數據庫設計 18
2.3.3 物理數據庫設計 25
2.3.4 實現物理設計 27
2.4 反嚮設計數據庫 28
2.5 對象-關係和對象數據庫 28
2.5.1 關係模型 28
2.5.2 對象模型 28
2.5.3 對象-關係模型 29
2.5.4 半結構數據模型 30
第3章 Oracle DBA的UNIX/Linux基礎 31
3.1 UNIX和Linux操作係統概述 31
3.1.1 UNIX 31
3.1.2 Linux 32
3.1.3 中檔係統 32
3.2 理解UNIX shell 33
3.3 訪問UNIX係統 33
3.4 基本UNIX命令概覽 35
3.4.1 幫助信息:man命令 36
3.4.2 改變提示符 37
3.4.3 文件和目錄的查找 37
3.4.4 命令輸齣的控製 38
3.4.5 顯示文件的內容 38
3.4.6 比較文件 38
3.4.7 理解操作係統和Shell變量 38
3.4.8 UNIX中的輸入和輸齣重定嚮 41
3.4.9 防止文件被覆蓋 41
3.5 UNIX中文件和目錄的瀏覽 42
3.5.1 UNIX係統中的文件 42
3.5.2 鏈接文件 42
3.5.3 管理文件 42
3.5.4 權限:讀/寫UNIX的文件 43
3.5.5 目錄管理 45
3.6 用vi編輯器編寫文件 46
3.6.1 利用vi創建和修改文件 46
3.6.2 用head和tail命令移動 47
3.7 文本的提取和排序 48
3.7.1 使用grep匹配模式 48
3.7.2 剪切、粘貼和聯結文本 49
3.8 shell腳本 50
3.8.1 shell程序介紹 51
3.8.2 使用shell變量 51
3.8.3 用test命令求錶達式的值 51
3.8.4 執行帶命令行參數的shell程序 52
3.8.5 分析shell腳本 52
3.8.6 Korn shell編程中的流控製結構 53
3.9 管理UNIX進程 55
3.9.1 用ps命令收集進程信息 55
3.9.2 在注銷後運行進程 56
3.9.3 在後颱執行進程 56
3.9.4 用kill命令終止進程 56
3.10 UNIX係統管理和Oracle DBA 57
3.10.1 UNIX的備份和恢復實用程序 57
3.10.2 crontab和Automating腳本 57
3.10.3 使用telnet 58
3.10.4 遠程登錄和遠程復製 59
3.10.5 使用SSH 59
3.10.6 使用FTP發送和接收文件 59
3.10.7 UNIX係統性能監控工具 60
3.11 UNIX中的磁盤和存儲 64
3.11.1 磁盤存儲配置選擇 65
3.11.2 監控磁盤使用 65
3.11.3 磁盤存儲、性能和可用性 66
3.12 RAID係統 67
3.12.1 RAID級彆 67
3.12.2 選擇理想的磁盤配置 69
3.12.3 冗餘磁盤控製器 70
3.12.4 RAID和備份 70
3.12.5 RAID和Oracle 70
3.13 其他存儲技術 70
3.13.1 SAN 71
3.13.2 NAS係統 71
3.13.3 InfiniBand 71
3.13.4 自動存儲管理 72
3.13.5 Oracle與存儲係統的兼容性 72
第4章 使用SQL*Plus和Oracle企業管理器 73
4.1 啓動SQL*Plus會話 73
4.1.1 設置環境 73
4.1.2 從命令行啓動SQL*Plus會話 74
4.1.3 用CONNECT命令進行連接 75
4.1.4 用/NOLOG的無連接SQL*Plus會話 76
4.1.5 通過Windows GUI連接SQL*Plus 76
4.1.6 在SQL*Plus中進行操作 77
4.2 退齣SQL*Plus 77
4.3 SQL*Plus和SQL命令 77
4.3.1 SQL*Plus的安全性 78
4.3.2 用SET命令設置SQL*Plus環境 80
4.3.3 設置常用的SQL*Plus變量 81
4.3.4 SQL*Plus錯誤記錄 84
4.3.5 SQL*Plus命令行選項 85
4.4 SQL*Plus管理命令 87
4.4.1 CLEAR命令 87
4.4.2 STORE命令 88
4.4.3 SHOW命令 88
4.5 關鍵的SQL*Plus“工作”命令 90
4.5.1 SQLPROMPT命令 90
4.5.2 DESCRIBE命令 91
4.5.3 HOST命令 91
4.5.4 SPOOL命令 92
4.5.5 ACCEPT和PROMPT命令 92
4.5.6 EXECUTE命令 92
4.5.7 PAUSE命令 93
4.6 格式化SQL*Plus的輸齣以及創建報告的命令 93
4.6.1 BREAK命令 93
4.6.2 COLUMN命令 94
4.6.3 COMPUTE命令 94
4.6.4 REPFOOTER命令 94
4.6.5 REPHEADER命令 94
4.6.6 BTITLE和TTITLE命令 94
4.7 在SQL*Plus中創建命令文件 95
4.7.1 將SQL緩衝區內容保存到文件中 95
4.7.2 在SQL*Plus中執行SQL腳本 95
4.7.3 創建Windows的批處理腳本 97
4.7.4 DEFINE和UNDEFINE命令 97
4.7.5 預定義SQL*Plus變量 97
4.7.6 在SQL*Plus中使用注釋 98
4.7.7 顯示SQL命令清單 98
4.8 在SQL*Plus中進行編輯 99
4.8.1 插入和刪除行 100
4.8.2 添加文本 101
4.8.3 用REMARK命令加入注釋 102
4.8.4 用COPY命令復製錶 102
4.8.5 用SQL*Plus使DML的更改永久化 103
4.8.6 用SQL*Plus創建網頁 103
4.9 主要的SQL*Plus數據庫管理命令 104
4.9.1 RECOVER命令 104
4.9.2 STARTUP和SHOUTDOWN命令 104
4.9.3 ARCHIVE LOG命令 104
4.10 用SQL生成SQL 104
4.11 Oracle SQL Developer 105
4.12 OEM 106
4.12.1 使用OEM管理數據庫的好處 106
4.12.2 OEM體係結構和組件 108
4.12.3 配置和使用Database Control 108
4.12.4 訪問Database Control 111
4.12.5 Database Control的簡要介紹 112
4.12.6 Performance 113
4.12.7 Availability 114
4.12.8 Server 114
4.12.9 Schema 115
4.12.10 Data Movement 115
4.12.11 Software and Support 115
4.12.12 Oracle軟件剋隆 115
4.12.13 配置使用Setup頁 116
4.12.14 Related Links部分和Advisor Central頁 117
4.12.15 創建Database Control角色 117
4.12.16 鏈接到MetaLink 118
4.12.17 基於策略的配置框架 118
4.12.18 跟蹤數據庫特性使用的統計數據 118
4.12.19 OEM Grid Control 120
4.12.20 管理Management Agent 122
4.12.21 OMS(Oracle Management Service,Oracle服務管理) 123
4.12.22 連接到Grid Control 123
4.12.23 登錄到Grid Control 123
4.12.24 Grid Control的特性 124
4.12.25 使用Grid Control主頁 124
4.12.26 用Grid Control監控整個係統 125
第二部分 Oracle Database 11g的體係結構、模式和事務管理
第5章 Oracle Database 11g體係結構 128
5.1 Oracle數據庫的結構 128
5.1.1 邏輯數據庫結構 128
5.1.2 物理數據庫結構 134
5.1.3 其他文件 137
5.2 Oracle進程 139
5.2.1 用戶和Oracle進程之間的交互 139
5.2.2 服務器進程 139
5.2.3 後颱進程 140
5.3 Oracle內存結構 145
5.3.1 理解主存儲器 145
5.3.2 SGA 146
5.3.3 PGA 151
5.4 簡單的Oracle數據庫事務 153
5.5 提交和迴滾 154
5.5.1 提交一個事務 154
5.5.2 迴滾一個事務 155
5.6 數據一緻性和數據並發性 155
5.6.1 數據庫寫入器和寫前協議 155
5.6.2 SCN 156
5.6.3 撤銷管理 156
5.7 備份與恢復體係結構 157
5.7.1 用戶管理的備份與恢復 157
5.7.2 RMAN 157
5.7.3 Oracle Secure Backup 158
5.7.4 閃迴恢復技術 158
5.8 Oracle數據字典和動態性能視圖 158
5.8.1 Oracle數據字典 159
5.8.2 動態性能(V$)視圖 159
5.8.3 三組數據字典視圖 159
5.8.4 如何創建數據字典 160
5.9 使用靜態數據字典視圖 160
5.10 與數據庫對話 161
5.10.1 連接Oracle 161
5.10.2 OEM 161
5.10.3 SQL*Plus 162
5.11 Oracle實用程序 162
5.11.1 數據泵的導齣和導入 162
5.11.2 SQL*Loader 162
5.11.3 LogMiner 162
5.11.4 自動診斷信息庫控件接口 163
5.12 調度和資源管理工具 163
5.12.1 Oracle調度程序 163
5.12.2 數據庫資源管理器 163
5.13 自動數據庫管理 163
5.13.1 ADDM 163
5.13.2 自動撤銷保留調優 164
5.13.3 自動優化程序統計數據收集 164
5.13.4 ASM 164
5.13.5 自動SQL調優 164
5.14 公共可管理基礎設施 164
5.14.1 AWR 165
5.14.2 ASH 165
5.14.3 服務器産生的預警 166
5.14.4 自動任務特性 166
5.14.5 顧問程序的框架 166
5.14.6 更改管理 167
5.15 高效的管理和監控 167
第6章 管理錶空間 169
6.1 錶空間區尺寸和空間管理 169
6.1.1 分配區尺寸:自動分配與統一尺寸 169
6.1.2 自動與手動段空間管理 170
6.2 創建錶空間 172
6.2.1 數據文件和錶空間 172
6.2.2 區分配和解除分配 173
6.2.3 存儲參數 174
6.2.4 數據庫對象的存儲分配 175
6.2.5 增加錶空間的大小 176
6.2.6 刪除錶空間 177
6.2.7 用戶錶空間的數目 178
6.2.8 錶空間限額 178
6.2.9 主動的錶空間的空間預警 178
6.2.10 管理重做數據的生成 180
6.2.11 重新命名錶空間 180
6.2.12 隻讀錶空間 181
6.2.13 使錶空間脫機 181
6.3 臨時錶空間 181
6.3.1 創建臨時錶空間 182
6.3.2 更改臨時錶空間 183
6.3.3 收縮臨時錶空間 183
6.3.4 默認臨時錶空間 184
6.3.5 臨時錶空間組 184
6.4 默認的永久錶空間 186
6.5 大文件錶空間 187
6.5.1 使用大文件錶空間的限製 188
6.5.2 創建大文件錶空間 188
6.5.3 更改大文件錶空間 189
6.5.4 瀏覽大文件錶空間的信息 189
6.6 管理Sysaux錶空間 189
6.6.1 創建Sysaux錶空間 190
6.6.2 Sysaux錶空間的使用限製 190
6.7 錶空間加密 190
6.7.1 為什麼需要加密錶空間 191
6.7.2 創建Oracle錢夾 191
6.7.3 創建一個加密的錶空間 192
6.8 管理錶空間的數據字典視圖 193
6.8.1 DBA_TABLESPACE 193
6.8.2 DBA_FREE_SPACE 194
6.8.3 DBA_SEGMENTS 194
6.8.4 DBA_DATA_FILES 195
6.8.5 DBA_TABLESPACE_GROUPS 196
6.8.6 V$DATAFILE 196
6.8.7 V$FILESTAT 196
6.9 用Oracle管理的文件方便文件的管理 197
6.9.1 使用OMF的好處 198
6.9.2 創建Oracle管理的文件 198
6.9.3 不同類型的Oracle管理的文件 199
6.10 在兩個數據庫之間復製文件 202
6.10.1 COPY_FILE 202
6.10.2 GET_FILE 203
6.10.3 PUT_FILE 203
6.11 找齣剩下多少可用空間 204
6.12 使用操作係統文件 205
6.12.1 使用UTL_FILE程序包 205
6.12.2 關鍵的UTL_FILE的過程和函數 206
6.12.3 異常處理程序 206
6.12.4 使用UTL_FILE程序包的簡單例子 206
第7章 模式管理 209
7.1 SQL語句的類型 209
7.1.1 係統控製語句 210
7.1.2 會話控製語句 210
7.1.3 嵌入的SQL語句 210
7.1.4 數據操縱語句 210
7.1.5 事務控製語句 211
7.1.6 數據定義語言語句 211
7.2 Oracle模式 211
7.3 Oracle錶 212
7.3.1 估計錶的尺寸 213
7.3.2 創建簡單錶 214
7.3.3 什麼是NULL值 215
7.3.4 列的默認值 216
7.3.5 虛擬列 216
7.3.6 添加錶列 217
7.3.7 刪除錶列 217
7.3.8 重命名錶列 217
7.3.9 重命名錶 218
7.3.10 刪除錶中的所有數據 218
7.3.11 用CTAS選項創建新錶 218
7.3.12 設置錶為隻讀模式 219
7.3.13 錶壓縮 220
7.3.14 刪除錶 221
7.4 特殊的Oracle錶 222
7.4.1 臨時錶 222
7.4.2 索引組織錶 223
7.4.3 外部錶 224
7.5 分區錶 225
7.5.1 範圍分區 225
7.5.2 間隔分區 226
7.5.3 散列分區 227
7.5.4 列錶分區 227
7.5.5 引用分區 228
7.5.6 基於虛擬列的分區 229
7.5.7 係統分區 230
7.5.8 組閤分區 231
7.5.9 分區維護操作 233
7.6 管理錶的數據字典視圖 235
7.7 群 237
7.8 散列群 238
7.9 Oracle索引 238
7.9.1 創建索引的準則 239
7.9.2 Oracle的索引模式 240
7.9.3 估算索引的尺寸 240
7.9.4 創建索引 241
7.10 特殊類型的索引 242
7.10.1 位圖索引 242
7.10.2 反嚮鍵索引 242
7.10.3 鍵壓縮索引 243
7.10.4 基於函數的索引 243
7.10.5 分區索引 243
7.10.6 不可見索引 244
7.11 監控索引的使用 245
7.12 索引的維護 246
7.13 管理數據庫完整性約束 246
7.13.1 主鍵約束 247
7.13.2 非空約束 247
7.13.3 檢查約束 247
7.13.4 唯一約束 248
7.13.5 引用完整性約束 248
7.13.6 完整性約束狀態 248
7.13.7 信賴約束 249
7.13.8 暫緩和立即約束 250
7.14 與約束和索引有關的視圖 250
7.14.1 DBA_CONSTRAINTS 250
7.14.2 DBA_CONS_COLUMNS 251
7.15 使用視圖 251
7.16 使用實體化視圖 253
7.16.1 查詢重寫 254
7.16.2 Rewrite_or_Error提示 255
7.16.3 重寫的完整性 255
7.16.4 刷新實體化視圖的數據 255
7.16.5 使用DBMS_MVIEW程序包 256
7.16.6 創建實體化視圖 256
7.17 使用SQL訪問顧問程序 258
7.17.1 使用OEM Database Control 259
7.17.2 使用DBMS_ADVISOR程序包 261
7.17.3 使用QUICK_TUNE過程 262
7.18 使用同義詞 262
7.18.1 創建公共同義詞 263
7.18.2 創建私有同義詞 264
7.18.3 刪除同義詞 264
7.18.4 管理同義詞 264
7.18.5 切換到另一個模式 264
7.19 使用序列 265
7.20 使用觸發器 266
7.21 瀏覽對象信息 266
7.21.1 管理數據庫對象的視圖 266
7.21.2 DBA_OBJECTS 266
7.21.3 DBA_TABLES 267
7.21.4 DBA_EXTERNAL_TABLES 267
7.21.5 DBA_TAB_PARTITIONS 267
7.21.6 DBA_PART_TABLES 268
7.21.7 DBA_TAB_MODIFICATIONS 268
7.21.8 DBA_TAB_COLUMNS 269
7.21.9 DBA_VIEWS 269
7.21.10 DBA_MVIEWS 270
7.21.11 DBA_INDEXES 270
7.21.12 DBA_IND_COLUMNS 270
7.21.13 INDEX_STATS 271
第8章 Oracle事務管理 272
8.1 Oracle的事務 272
8.1.1 COMMIT語句 273
8.1.2 ROLLBACK語句 274
8.2 事務的特性 274
8.3 事務並發性控製 275
8.3.1 並發性帶來的問題 275
8.3.2 進度錶和串行性 276
8.4 隔離級彆和ISO事務標準 276
8.5 Oracle的隔離級彆 278
8.5.1 事務級和語句級一緻性 279
8.5.2 改變默認隔離級彆 279
8.6 實現Oracle的並發控製 280
8.6.1 Oracle的鎖定方法 281
8.6.2 Oracle的鎖類型 281
8.6.3 允許DDL鎖等待DML鎖 282
8.6.4 顯式錶鎖定 283
8.6.5 Oracle中的顯式鎖定 283
8.6.6 管理Oracle鎖 284
8.7 利用撤銷數據提供讀一緻性 287
8.7.1 AUM 287
8.7.2 有保證的撤銷保留 292
8.7.3 使用OEM管理撤銷數據 295
8.8 使用撤銷數據糾正閃迴錯誤 296
8.9 用DBMS_FLASHBACK程序包進行閃迴 297
8.10 閃迴事務查詢 301
8.10.1 同時使用閃迴事務查詢和閃迴版本查詢 302
8.10.2 閃迴錶特性 303
8.11 事務管理 307
8.11.1 離散事務 307
8.11.2 自主事務 307
8.12 可恢復的空間分配 309
8.12.1 可繼續執行的操作 309
8.12.2 常見的可繼續執行錯誤 310
8.12.3 使用可恢復的空間分配特性 310
8.12.4 掛起操作的通知 312
8.12.5 操作掛起的警告 312
8.12.6 監控可恢復的空間分配 312
8.13 管理長事務 312
8.13.1 使用Workspace Manager的好處 313
8.13.2 錶版本和工作區 313
第三部分 安裝和升級到Oracle Database 11g,創建數據庫
第9章 安裝和升級到Oracle Database 11g 316
9.1 安裝Oracle 316
9.1.1 參閱文獻 316
9.1.2 確定磁盤和內存需求 317
9.2 OFA 317
9.2.1 安裝點 318
9.2.2 目錄及文件命名約定 319
9.3 執行預安裝任務 323
9.3.1 檢查預安裝需求 324
9.3.2 係統管理員的預安裝任務 325
9.3.3 Oracle擁有者的預安裝任務 332
9.4 安裝的最終檢查錶 334
9.4.1 訪問安裝軟件 334
9.4.2 安裝軟件 336
9.4.3 使用響應文件安裝Oracle軟件 340
9.5 安裝後的任務 341
9.5.1 係統管理員的後安裝任務 342
9.5.2 Oracle擁有者的後安裝工作 342
9.6 卸載Oracle 343
9.6.1 刪除運行在服務器上的所有Oracle數據庫 343
9.6.2 刪除Oracle軟件 344
9.7 升級到Oracle Database 11g 344
9.8 升級到Oracle Database 11g的方法 345
9.9 升級方法和工具 345
9.9.1 手動升級過程 345
9.9.2 數據庫升級助手 346
9.9.3 預升級信息工具 346
9.9.4 後升級狀態工具 347
9.9.5 為升級準備數據庫 347
9.10 用DBUA升級 348
9.10.1 啓動DBUA 348
9.10.2 執行DBUA 348
9.10.3 復原升級前的數據庫 350
9.11 手動升級 350
9.11.1 升級和降級腳本 350
9.11.2 創建假脫機文件 351
9.11.3 啓動預升級信息工具 351
9.11.4 備份數據庫 353
9.11.5 復製參數文件 353
9.11.6 啓動新數據庫 353
9.11.7 執行升級腳本 354
9.11.8 執行升級活動腳本 354
9.11.9 重啓實例 355
9.11.10 運行後升級活動腳本 355
9.11.11 檢查無效對象 355
9.11.12 重編譯和使無效對象有效 355
9.11.13 運行後升級狀態工具 356
9.11.14 結束假脫機文件 357
9.11.15 重啓新數據庫 357
9.12 升級之後 357
9.12.1 為加強密碼保護而重新設置密碼 357
9.12.2 降級到舊版本 357
第10章 創建Oracle數據庫 359
10.1 準備創建數據庫 359
10.1.1 安裝Oracle軟件 359
10.1.2 為數據庫創建文件係統 360
10.1.3 分配足夠的內存 361
10.1.4 得到必要的授權 361
10.1.5 設置OS環境變量 361
10.2 創建參數文件 362
10.2.1 數據庫參數文件的類型 362
10.2.2 初始化參數文件 362
10.2.3 更改初始化參數值 363
10.2.4 重要的Oracle Database 11g初始化參數 364
10.2.5 文檔未記載的初始化參數 382
10.2.6 查看當前初始化參數值 382
10.3 創建新數據庫 383
10.3.1 手動創建 383
10.3.2 使用DBCA創建數據庫 393
10.4 使用服務器參數文件 400
10.4.1 創建服務器參數文件 400
10.4.2 設置動態參數更改的範圍 402
10.4.3 從內存創建SPFILE或PFILE 403
10.5 從SQL*Plus中啓動和關閉數據庫 403
10.5.1 啓動數據庫 403
10.5.2 自動啓動數據庫 405
10.5.3 限製數據庫的訪問 406
10.5.4 關閉數據庫 407
10.5.5 停頓數據庫 409
10.5.6 掛起數據庫 410
10.5.7 刪除數據庫 410
10.5.8 使用數據字典監控數據庫狀態 411
10.5.9 接下來的工作 412
第四部分 連接和用戶管理
第11章 連接和網絡 414
11.1 Oracle網絡和數據庫連接 414
11.2 網絡概念:Oracle網絡如何工作 415
11.2.1 Web應用如何連接到Oracle數據庫 416
11.2.2 數據庫實例名 416
11.2.3 全局數據庫名 416
11.2.4 數據庫服務名 416
11.2.5 連接描述符 417
11.2.6 連接標識符 417
11.2.7 連接串 417
11.3 建立Oracle連接 418
11.4 Oracle客戶機 419
11.4.1 安裝Oracle客戶機 420
11.4.2 使用TWO_TASK環境變量 420
11.5 即時客戶機 421
11.6 監聽器和連接 421
11.6.1 自動服務注冊 422
11.6.2 監聽器命令 423
11.6.3 監聽器管理 424
11.7 命名和連接 425
11.7.1 本地命名方法 426
11.7.2 簡易連接命名方法 429
11.7.3 數據庫駐留連接池 431
11.7.4 外部命名方法 433
11.7.5 目錄命名方法 433
11.8 Oracle和Java數據庫連接 437
11.8.1 建立數據庫連接 437
11.8.2 使用數據庫 437
11.8.3 一個完整的程序 439
第12章 用戶管理和數據庫安全 441
12.1 管理用戶 441
12.1.1 臨時和默認錶空間 442
12.1.2 創建新用戶 442
12.1.3 更改用戶 444
12.1.4 刪除用戶 445
12.1.5 創建和使用用戶概要文件 445
12.1.6 管理資源 450
12.2 Database Resource Manager 450
12.2.1 使用Database Resource Manager 451
12.2.2 使用OEM管理Database Resource Manager 460
12.3 控製數據庫訪問 461
12.3.1 Oracle數據庫中的權限 461
12.3.2 角色 466
12.3.3 使用視圖和存儲過程來管理權限 469
12.3.4 管理用戶、角色和權限的DBA視圖 469
12.3.5 細粒度數據訪問 470
12.4 審計數據庫使用 477
12.4.1 標準審計 477
12.4.2 細粒度審計 483
12.5 認證用戶 485
12.5.1 數據庫認證 486
12.5.2 外部認證 489
12.5.3 代理認證 490
12.5.4 集中式用戶認證 490
12.6 企業用戶安全 491
12.6.1 共享模式 491
12.6.2 單次注冊 491
12.6.3 數據加密 491
12.6.4 錶空間加密 495
12.6.5 Oracle Internet Directory 497
12.7 數據安全須知 497
12.7.1 自動保護配置 497
12.7.2 用戶賬號 498
12.7.3 密碼 498
12.7.4 操作係統認證 498
12.7.5 數據庫審計 498
12.7.6 授予權限 499
12.7.7 涉及多個DBA的環境 499
12.7.8 保護數據字典 499
12.7.9 設置權限 499
12.7.10 網絡和監聽程序 500
12.7.11 細粒度網絡訪問控製 501
12.7.12 Oracle的高級安全選項 503
12.7.13 應用安全 503
12.7.14 管理用戶的有用技術 504
第五部分 數據裝載、備份和恢復
第13章 裝載和轉換數據 508
13.1 提取、轉換和裝載概覽 508
13.2 使用SQL*Loader實用程序 509
13.2.1 SQL*Loader控製文件 510
13.2.2 在裝載中生成數據 517
13.2.3 調用SQL*Loader 517
13.2.4 裝載日誌文件 518
13.2.5 使用返迴代碼 519
13.2.6 使用直接裝載方法 520
13.2.7 實用的SQL*Loader數據裝載技術 522
13.3 使用外部錶裝載數據 524
13.3.1 創建外部錶層 525
13.3.2 填充外部錶 528
13.3.3 使用外部錶 530
13.3.4 使用SQL*Loader生成外部錶創建語句 531
13.4 轉換數據 533
13.4.1 從現有錶中派生數據 534
13.4.2 使用SQL轉換數據 534
13.4.3 使用SQL MODEL子句 542
13.5 使用Oracle流復製和共享信息 545
13.5.1 研究流體係結構 545
13.5.2 設置Oracle流 546
第14章 使用數據泵導齣和導入 549
14.1 數據泵技術的介紹 549
14.1.1 數據泵技術的優點 550
14.1.2 數據泵導齣和導入的用途 551
14.1.3 數據泵的組成部分 551
14.1.4 數據訪問方法 552
14.1.5 數據泵文件 552
14.1.6 數據泵權限 556
14.1.7 數據泵作業的結構 556
14.2 執行數據泵導齣和導入 557
14.2.1 數據泵導齣方法 557
14.2.2 數據泵導齣的方式 558
14.2.3 數據泵導齣參數 559
14.2.4 數據泵導齣的例子 571
14.2.5 數據泵導入的類型和方式 572
14.2.6 數據泵導入參數 572
14.3 監控數據泵作業 578
14.3.1 瀏覽數據泵作業 579
14.3.2 瀏覽數據泵會話 579
14.3.3 瀏覽數據泵作業的進度 579
14.4 使用數據泵API 580
14.5 可移植錶空間 581
14.5.1 可移植錶空間的使用 581
14.5.2 移植錶空間 581
14.5.3 在不同Endian格式的平颱之間移植錶空間 584
第15章 備份數據庫 587
15.1 備份Oracle數據庫 587
15.1.1 重要的備份術語 588
15.1.2 備份準則 590
15.1.3 測試備份 591
15.1.4 維護冗餘集 591
15.1.5 備份策略 591
15.2 閃迴恢復區 594
15.2.1 閃迴恢復區的好處 595
15.2.2 設置閃迴恢復區的大小 596
15.2.3 創建閃迴恢復區的方法 596
15.2.4 備份閃迴恢復區 599
15.2.5 使用閃迴恢復區 599
15.3 恢復管理器 600
15.3.1 RMAN的好處 601
15.3.2 RMAN體係結構 602
15.3.3 連接到RMAN 603
15.3.4 RMAN腳本 605
15.3.5 重要的RMAN術語 609
15.3.6 指定備份標記和備份格式 610
15.3.7 做RMAN備份的副本 610
15.3.8 RMAN備份位置 611
15.3.9 RMAN命令 612
15.3.10 RMAN配置參數 617
15.3.11 使用恢復目錄 621
15.3.12 維護恢復目錄 623
15.3.13 虛擬專用目錄 626
15.3.14 RMAN備份的例子 627
15.3.15 重新啓動RMAN備份 630
15.3.16 限製備份時間 630
15.3.17 增量更新備份 630
15.3.18 快速增量備份 631
15.3.19 RMAN壓縮備份 632
15.3.20 歸檔備份 632
15.3.21 監控和驗證RMAN作業 634
15.4 備份控製文件 636
15.5 Oracle Secure Backup 637
15.5.1 Oracle Secure Backup的好處 637
15.5.2 Oracle Secure Backup管理域 637
15.5.3 安裝Oracle Secure Backup 638
15.5.4 使用Oracle Backup Web Interface工具 639
15.5.5 配置Oracle Secure Backup 639
15.5.6 用Oracle Secure Backup執行備份 640
15.6 用戶管理的備份 640
15.6.1 進行完全的數據庫備份 641
15.6.2 製作部分數據庫備份 644
15.6.3 監控用戶管理的聯機備份 645
15.7 數據庫訛誤檢測 645
15.7.1 檢測介質訛誤 645
15.7.2 檢測數據塊訛誤 645
15.8 加強數據保護以便進行災難恢復 647
15.8.1 高可用性係統 647
15.8.2 Oracle Data Guard和備用數據庫 648
第16章 數據庫恢復 650
16.1 數據庫故障類型 650
16.1.1 係統故障 650
16.1.2 數據中心的災難 651
16.1.3 人為錯誤 651
16.1.4 介質故障 651
16.1.5 故障和數據修復 651
16.2 Oracle的恢復過程 652
16.2.1 崩潰和實例恢復 653
16.2.2 快速實例啓動 654
16.2.3 介質恢復 654
16.2.4 介質恢復與非介質恢復 656
16.3 用RMAN執行恢復 657
16.3.1 使用RMAN恢復的好處 657
16.3.2 使用VALIDATE BACKUP命令驗證RMAN備份 658
16.3.3 使用RESTORE...VALIDATE命令 658
16.3.4 使用RESTORE...PREVIEW命令 658
16.3.5 確定恢復必需的文件 659
16.3.6 RMAN恢復過程 659
16.3.7 用增量更新備份進行恢復 659
16.3.8 監控RMAN作業 660
16.3.9 用戶管理的恢復過程 660
16.4 典型的介質恢復方案 661
16.4.1 整個數據庫的完全恢復 661
16.4.2 恢復錶空間 663
16.4.3 恢復數據文件 664
16.4.4 不完全恢復 666
16.4.5 從控製文件丟失中恢復 670
16.4.6 恢復沒有備份的數據文件 673
16.5 數據恢復顧問 674
16.6 剋隆數據庫 678
16.6.1 使用RMAN剋隆數據庫 678
16.6.2 使用Database Control剋隆數據庫 681
16.6.3 手動剋隆數據庫 682
16.7 粒度恢復技術 683
16.7.1 錶空間時間點恢復 683
16.7.2 使用LogMiner進行精確恢復 684
16.8 閃迴技術和恢復 689
16.8.1 閃迴級彆 689
16.8.2 閃迴與傳統恢復技術 690
16.8.3 閃迴刪除 690
16.8.4 閃迴數據庫 694
16.9 使用復原點 700
16.9.1 有保證的復原點 701
16.9.2 查看復原點 702
16.10 修理數據訛誤並試驗恢復 702
16.10.1 塊介質恢復 703
16.10.2 試驗恢復 704
16.11 排除恢復錯誤 704
16.11.1 ORA-01194錯誤 704
16.11.2 ORA-01152錯誤 705
16.11.3 ORA-00376錯誤 706
16.11.4 事務取消特性 706
16.12 閃迴數據存檔 708
16.12.1 管理閃迴數據存檔 708
16.12.2 啓用閃迴數據存檔 709
16.12.3 使用閃迴數據存檔:例子 710
第六部分 管理Oracle數據庫
第17章 自動管理和聯機功能 714
17.1 自動數據庫診斷監控器(ADDM) 714
17.1.1 ADDM的用途 715
17.1.2 ADDM可以診斷的問題 715
17.1.3 ADDM判定 716
17.1.4 ADDM建議 717
17.1.5 管理ADDM 718
17.2 自動內存管理 728
17.2.1 內存管理的類型 729
17.2.2 開啓自動內存管理 729
17.2.3 調優自動內存管理 731
17.2.4 自動內存參數的相關性 731
17.3 自動優化程序的統計數據收集 732
17.3.1 自動收集優化程序的統計數據 732
17.3.2 手動收集優化程序的統計數據 734
17.4 自動存儲管理 734
17.4.1 ASM的優點 734
17.4.2 考察ASM架構 735
17.4.3 安裝ASM 736
17.4.4 ASM和集群同步服務 736
17.4.5 創建ASM實例 737
17.4.6 ASM的快速鏡像再同步特性 741
17.4.7 ASM首選的鏡像讀 742
17.4.8 改變ASM磁盤組屬性 742
17.4.9 asmcmd命令行工具 743
17.4.10 管理ASM磁盤組 745
17.4.11 利用磁盤組增加性能和冗餘 746
17.4.12 創建磁盤組 747
17.4.13 嚮磁盤組添加磁盤 747
17.4.14 刪除磁盤和磁盤組 748
17.4.15 重新平衡磁盤組 748
17.4.16 管理ASM文件 748
17.4.17 ASM文件名的類型 749
17.4.18 使用ASM文件名 750
17.4.19 ASM文件模闆 750
17.4.20 創建基於ASM的數據庫 750
17.4.21 將數據庫遷移到ASM 751
17.5 自動空間管理 752
17.5.1 自動撤銷管理 753
17.5.2 使用OMF輕鬆管理文件 753
17.5.3 聯機段收縮和段顧問 758
17.5.4 手動段收縮 759
17.5.5 使用Segment Advisor收縮段 759
17.5.6 自動Segment Advisor作業 761
17.5.7 自動檢查點調優 761
17.6 Oracle Database 11g的聯機功能 762
17.6.1 聯機數據重組 762
17.6.2 聯機數據重定義 764
17.6.3 動態資源管理 769
17.6.4 聯機更改數據庫塊尺寸 770
17.6.5 為聯機維護使用數據庫停頓 772
17.6.6 掛起數據庫 772
第18章 管理和監控運行中的數據庫 773
18.1 Oracle性能統計的類型 773
18.1.1 纍計統計 774
18.1.2 樣本數據 774
18.1.3 基綫數據 774
18.1.4 數據庫度量 775
18.2 服務器産生的預警 777
18.3 基綫度量和自適應閾值 779
18.3.1 管理預警 779
18.3.2 主動的錶空間預警 781
18.3.3 使用預警日誌和跟蹤文件進行監控 782
18.3.4 與度量和預警有關的數據字典視圖 782
18.4 AWR 783
18.4.1 AWR收集的數據的類型 784
18.4.2 AWR數據處理 784
18.4.3 管理AWR 784
18.4.4 移動窗基綫 788
18.4.5 AWR基綫模闆 788
18.5 ASH 793
18.5.1 當前活動會話數據 794
18.5.2 舊的活動會話曆史數據 794
18.5.3 生成ASH報告 795
18.6 管理顧問框架 797
18.6.1 管理顧問程序 798
18.6.2 顧問框架的管理 799
18.7 使用撤銷和MTTR顧問程序 801
18.7.1 使用撤銷顧問程序 801
18.7.2 使用MTTR顧問程序 802
18.8 管理聯機重做日誌 802
18.8.1 硬件鏡像與Oracle的多路復用技術 803
18.8.2 聯機重做日誌組 803
18.8.3 創建聯機重做日誌組 803
18.8.4 增加重做日誌組 803
18.8.5 重命名重做日誌文件 804
18.8.6 刪除聯機重做日誌 804
18.8.7 聯機重做日誌訛誤 804
18.8.8 監控重做日誌 805
18.9 管理數據庫鏈接 805
18.9.1 創建私有數據庫鏈接 805
18.9.2 創建公共數據庫鏈接 806
18.9.3 使用Database Control創建數據庫鏈接 807
18.10 比較和會聚數據庫對象 807
18.10.1 比較數據 807
18.10.2 會聚數據 809
18.11 用數據庫服務器復製文件 810
18.11.1 文件復製的要求 810
18.11.2 復製本地係統中的文件 811
18.11.3 將文件傳送到不同的數據庫 811
18.12 映射Oracle文件到物理設備 812
18.12.1 文件映射的結構 812
18.12.2 設置文件映射 813
18.13 使用Oracle的調度程序 813
18.13.1 基本的Scheduler部件 813
18.13.2 調度程序作業的類型 814
18.13.3 Scheduler的高級部件 815
18.13.4 Scheduler的體係結構 815
18.13.5 Scheduler的權限 816
18.13.6 管理Scheduler的基本組件 816
18.13.7 管理輕型作業 818
18.13.8 管理外部作業 820
18.13.9 管理Scheduler的高級部件 828
18.13.10 管理Scheduler屬性 833
18.13.11 清除作業日誌 834
18.13.12 默認的Scheduler作業 834
18.14 自動維護任務 835
18.14.1 預定義維護窗口 835
18.14.2 管理自動維護任務 835
18.14.3 監控自動維護任務 835
18.15 故障診斷 837
18.15.1 自動診斷信息庫 838
18.15.2 ADRCI 839
18.15.3 意外事件打包服務 840
18.15.4 Support Workbench 842
18.15.5 Health Monitor 845
18.15.6 用SQL Repair Advisor修復SQL語句 848
18.15.7 SQL Test Case Builder 850
第七部分 性能調優
第19章 改進數據庫性能:SQL查詢優化 852
19.1 Oracle性能調優的方法 852
19.1.1 性能調優的係統性方法 853
19.1.2 被動的性能調優 853
19.2 優化Oracle查詢處理 853
19.2.1 語法分析 854
19.2.2 優化 854
19.2.3 查詢的執行 856
19.3 查詢優化和Oracle CBO 857
19.3.1 選擇優化方式 857
19.3.2 為優化程序提供統計數據 857
19.3.3 設置優化程序方式 859
19.3.4 設置優化程序級彆 860
19.3.5 優化程序做些什麼 860
19.3.6 CBO的缺點 862
19.3.7 為CBO提供統計數據 862
19.3.8 延遲統計數據公布 865
19.3.9 擴展統計數據 866
19.3.10 Oracle 優化程序的成本模型 868
19.3.11 收集係統統計數據 868
19.3.12 對字典對象收集統計數據 870
19.3.13 統計數據收集的頻率 871
19.3.14 沒有統計數據時會發生什麼事情 871
19.3.15 使用OEM收集優化程序統計數據 871
19.4 編寫高效的SQL 872
19.4.1 高效的WHERE子句 872
19.4.2 使用提示影響執行計劃 874
19.4.3 選擇最佳的聯結方法 875
19.4.4 使用位圖聯結索引 875
19.4.5 選擇最佳的聯結次序 876
19.4.6 索引策略 877
19.4.7 監控索引的使用 879
19.4.8 刪除不需要的索引 880
19.4.9 使用相似的SQL語句 880
19.4.10 通過內嵌函數減少SQL開銷 880
19.4.11 使用綁定變量 881
19.4.12 避免不恰當地使用視圖 881
19.4.13 避免不必要的全錶掃描 881
19.5 DBA如何幫助改進SQL處理 881
19.5.1 使用分區錶 882
19.5.2 使用壓縮技術 882
19.5.3 使用實體化視圖 882
19.5.4 使用存儲大綱保證CBO的穩定性 883
19.6 SQL計劃管理 885
19.6.1 SQL計劃基綫 886
19.6.2 捕捉SQL計劃基綫 886
19.6.3 SQL管理庫 889
19.6.4 使用並行執行 890
19.6.5 其他DBA任務 890
19.7 自適應遊標共享 891
19.7.1 自適應遊標共享如何工作 892
19.7.2 監控自適應遊標共享 893
19.8 SQL性能調優工具 894
19.8.1 使用EXPLAIN PLAN 894
19.8.2 使用Autotrace 898
19.8.3 使用SQL Trace和TKPROF 902
19.9 端到端跟蹤 907
19.9.1 使用DBMS_MONITOR程序包 908
19.9.2 使用V$SQL視圖查找低效的SQL 910
19.10 SQL Tuning Advisor 912
19.10.1 使用SQL Tuning Advisor 912
19.10.2 SQL Tuning Advisor如何工作 912
19.10.3 SQL Tuning Advisor實踐 914
19.10.4 Automatic SQL Tuning Advisor 916
19.10.5 解釋自動SQL調優報告 919
19.10.6 使用其他的GUI工具 919
19.11 使用結果高速緩存 920
19.11.1 管理結果高速緩存 920
19.11.2 設置RESULT_CACHE_MODE參數 920
19.11.3 管理結果高速緩存 922
19.11.4 PL/SQL函數結果高速緩存 923
19.11.5 客戶機查詢結果高速緩存 924
19.12 調優SQL語句的簡單方法 925
19.12.1 識彆問題語句 925
19.12.2 定位低效資源 925
19.12.3 調優SQL語句 926
19.12.4 比較性能 926
第20章 Oracle性能調優:調優實例 927
20.1 實例調優簡介 927
20.2 自動性能調優與動態性能視圖 929
20.3 Oracle內存調優 929
20.3.1 共享池調優 930
20.3.2 硬分析和軟分析 932
20.3.3 調優緩衝區高速緩存 939
20.3.4 調優大池、流池和Java池 943
20.3.5 調優PGA內存 943
20.4 評估係統性能 947
20.4.1 CPU性能 947
20.4.2 內存 951
20.4.3 磁盤I/O 951
20.5 度量I/O性能 952
20.5.1 I/O是否最佳分布 952
20.5.2 減少磁盤爭用 953
20.5.3 最佳磁盤使用的Oracle SAME準則 953
20.5.4 網絡性能 954
20.6 度量實例性能 954
20.6.1 數據庫命中率 954
20.6.2 數據庫等待統計數據 955
20.6.3 等待事件和等待類 956
20.6.4 分析實例性能 956
20.6.5 檢查係統性能 971
20.6.6 瞭解應用程序 972
20.6.7 使用ADDM分析性能問題 973
20.6.8 對各SQL語句使用AWR報告 974
20.6.9 操作係統內存管理 975
20.6.10 用ASH報告分析最近的會話活動 975
20.6.11 當數據庫掛起時 976
20.6.12 處理被卡住的歸檔進程 976
20.6.13 係統使用問題 977
20.6.14 資源的過多爭用 977
20.6.15 鎖問題 978
20.6.16 進程尺寸的異常增加 978
20.6.17 由於共享池問題導緻的延遲 980
20.6.18 由壞統計數據導緻的問題 980
20.6.19 在數據庫掛起期間收集信息 980
20.6.20 使用Database Control的Hang Analysis頁 980
20.7 實例調優的一種簡單方法 982
20.7.1 數據庫怎麼瞭 983
20.7.2 使用OEM Database Control查看數據庫性能 983
20.7.3 存在運行時間很長的事務嗎 989
20.7.4 Oracle有問題嗎 989
20.7.5 網絡正常嗎 989
20.7.6 係統是否受到CPU限製 990
20.7.7 係統受到I/O限製嗎 990
20.7.8 數據庫負荷太高 991
20.7.9 檢查與內存有關的問題 991
20.7.10 重做日誌的尺寸設置正確嗎 991
20.7.11 係統受到等待的限製嗎 992
20.7.12 Compare Periods報告 992
20.7.13 排除爭用 994
20.8 真應用測試 995
20.8.1 數據庫重演 995
20.8.2 SQL性能分析器 1001
附錄A Oracle Database 11g SQL和PL/SQL入門知識 1005
· · · · · · (
收起)