內容簡介
《循序漸進Oracle:資料庫管理、最佳化與備份恢復》從基礎知識入手,詳細討論了Oracle資料庫的創建、從OEM到Grid Control、Oracle的字元集、用戶的創建與管理、表空間和數據檔案、自動存儲管理(ASM)、臨時表空間和臨時檔案、備份與恢復、備份方案與特例恢復、Oracle的閃回特性、Oracle的數據載入與卸載、從Statspack到ADDM、故障診斷及分析方法等熱點問題,並通過大量取自實際工作現場的實例,力圖將Oracle知識全面、系統、深入地展現給讀者。
《循序漸進Oracle:資料庫管理、最佳化與備份恢復》在分析實例的過程中,兼顧深度與廣度,不僅對實際問題的現象、產生原因和相關的原理進行了深入淺出的講解,更主要的是,結合實際套用環境,提供了一系列解決問題的思路和方法,包括詳細的操作步驟,具有很強的實戰性和可操作性。
《循序漸進Oracle:資料庫管理、最佳化與備份恢復》適用於資料庫管理人員、資料庫開發人員、系統維護人員、資料庫初學者及其他資料庫從業人員,也可以作為各大中專院校相關專業的參考用書和相關培訓機構的培訓教材。
目錄
目 錄
第1章 Oracle資料庫的創建 1
1.1 Oracle軟體的獲取與安裝 1
1.1.1 Oracle軟體的獲取 1
1.1.2 Oracle的補丁集 3
1.2 使用DBCA創建資料庫 5
1.2.1 DBCA的啟動 5
1.2.2 模板選擇及EM選項 6
1.2.3 資料庫安全與口令 8
1.2.4 存儲管理及選件 8
1.2.5 初始化參數選擇設定 10
1.2.6 檔案存儲及創建選項 11
1.2.7 告警日誌及跟蹤檔案 12
1.3 資料庫創建的腳本 13
1.3.1 資料庫創建腳本 13
1.3.2 創建的起點 14
1.3.3 ORADIM工具的使用 14
1.3.4 ORACLE_SID的含義 15
1.3.5 INSTANCE_NAME的含義及作用 19
1.3.6 Oracle的口令檔案 20
1.3.7 腳本的執行 24
1.3.8 db_name參數和instance_name參數 24
1.3.9 sql.bsq檔案與資料庫創建 28
1.3.10 數據檔案及字典的創建 29
1.4 使用模板創建資料庫 30
1.4.1 啟動創建 31
1.4.2 資料庫創建模板 31
1.4.3 rman的引入 32
1.4.4 克隆資料庫 35
1.4.5 傳輸表空間技術 37
1.4.6 跨平台表空間傳輸 41
1.4.7 檔案系統與ASM的切換 60
1.4.8 DBMS_FILE_TRANSFER的可選性 63
1.4.9 用戶的鎖定 66
1.4.10 最後的腳本 67
1.4.11 使用模板建庫注意事項 68
1.5 案例與實踐分析 70
1.5.1 auto_space_advisor_job_proc案例一則 70
1.5.2 systemstate轉儲案例分析一則 72
第2章 從OEM到Grid Control 79
2.1 Oracle的OEM工具 79
2.1.1 傳統的OEM工具 80
2.1.2 安裝Database Control選件 82
2.1.3 手工配置DBControl 83
2.1.4 啟停DBConsole服務 86
2.1.5 關於DBControl亂碼的解決 87
2.1.6 登錄及口令檔案認證 87
2.1.7 通過DBControl登錄資料庫 88
2.1.8 定義自動郵件告警 89
2.2 Oracle的iSQL*Plus工具 92
2.2.1 Oracle 9i的iSQL*Plus 92
2.2.2 Oracle 10g的iSQL*Plus工具 95
2.2.3 SQL*Plus的使用 99
2.3 Oracle的Grid Control工具 103
2.3.1 Grid Control體系結構簡介 104
2.3.2 Grid Control OMS部署方法 104
2.3.3 Grid Control Agent部署方法 110
2.3.4 Grid Control部署注意事項及常見問題 114
2.3.5 Grid Control套用之物理Data Guard創建與管理 119
2.3.6 Grid Control 11g的增強 133
2.3.7 Grid Control小結 148
第3章 Oracle的字元集 149
3.1 字元集的基本知識 149
3.2 資料庫的字元集 150
3.3 字元集檔案及字元支持 151
3.4 NLS_LANG的設定與影響 153
3.5 導入導出及字元轉換 155
3.6 字元集的更改 157
3.7 識別導出檔案的字元集 161
3.8 使用csscan輔助字元集轉換 166
3.9 亂碼的產生 167
3.9.1 NLS_LANG字元集與資料庫字元集不同 168
3.9.2 NLS_LANG字元集和資料庫字元集相同 169
3.10 “靠”字的困惑 170
3.11 自定義字元的使用 173
3.12 更改字元集的內部方式 174
3.13 字元集更改的案例 176
第4章 用戶的創建與管理 178
4.1 資料庫的連線 178
4.2 用戶的創建 181
4.3 口令的管理 184
4.3.1 Oracle 10g失敗登錄的記錄 184
4.3.2 Oracle 11g口令大小寫的區分 186
4.3.3 Oracle 11g預設口令的跟蹤 187
4.3.4 Oracle口令的複雜度校驗 189
4.4 許可權的授予 191
4.5 角色 197
4.6 Public的特殊作用 199
4.7 過度授權的風險 201
4.8 數據字典的訪問 205
4.9 外部認證 208
4.10 SYS用戶行為審計 210
4.11 用戶行為審計與FGA 213
4.12 如何切換用戶身份 217
4.13 通過代理用戶(Proxy)連線資料庫 217
第5章 表空間和數據檔案 220
5.1 表空間的創建 221
5.2 表空間管理技術 222
5.2.1 字典管理表空間 222
5.2.2 本地管理表空間 225
5.3 段空間管理技術 231
5.3.1 手工段空間管理(Manual Segment Space Management) 232
5.3.2 自動段空間管理(Auto Segment Space Management) 233
5.3.3 延遲段空間創建(Deferred Segment Creation) 245
5.4 Oracle的存儲信息 248
5.4.1 表空間信息記錄(DBA_TABLESPACES) 248
5.4.2 數據檔案信息記錄(DBA_DATA_FILES) 249
5.4.3 數據段信息(DBA_SEGMENTS) 250
5.4.4 區間信息(DBA_EXTENTS) 264
5.4.5 段級統計信息(V$SEGMENT_STATISTICS) 266
5.4.6 度量信息(DBA_THRESHOLDS) 268
5.4.7 突出告警信息(DBA_OUT STANDING_ALERTS) 269
5.4.8 告警歷史信息(DBA_ALERT_HISTORY) 269
5.5 使用DB Control進行空間管理 270
5.6 SYSTEM表空間 274
5.6.1 SYSTEM表空間及root dba 274
5.6.2 Oracle中獨一無二的Cache對象 275
5.6.3 Oracle資料庫的引導 280
5.7 SYSAUX表空間 282
5.7.1 SYSAUX表空間及其組件 282
5.7.2 SYSAUX空間組件的轉移 284
5.7.3 SYSAUX的作用與意義 285
5.8 BigFile和SmallFile表空間技術 287
5.9 ROWID與RDBA的轉換 289
5.9.1 Oracle的ROWID及資料庫限制 289
5.9.2 BigFile表空間的ROWID 290
5.9.3 使用dbms_rowid包獲得ROWID的詳細信息 290
5.10 使用OMF管理數據檔案 291
第6章 自動存儲管理(ASM) 294
6.1 ASM的歷史 294
6.2 ASM的安裝配置 295
6.3 ASM實例 297
6.4 ASM的用戶管理 299
6.5 ASM磁碟組 300
6.5.1 ASMLib管理磁碟 300
6.5.2 ASM存儲Voting和OCR 306
6.5.3 強制刪除磁碟組 308
6.6 手工創建ASM實例及磁碟組 309
6.7 ASM的空間管理 312
6.8 可變大小區(Variable-Size Extents) 315
6.9 ASM的元數據 321
6.10 ASM元數據的備份與恢復 326
6.11 ASM磁碟組的動態擴展能力 329
6.12 快速鏡像同步(Fast Mirror Resync) 331
6.13 ASM的透明多版本支持 333
6.14 ASM的命令行管理工具asmcmd 334
6.15 通過EM管理ASM 334
6.16 ACFS(ASM Cluster File System) 336
6.17 ACFS的載入步驟 342
6.18 ASM管理的內部工具 344
6.18.1 KFED工具 344
6.18.2 KFOD工具 346
6.18.3 AMDU工具 346
第7章 臨時表空間和臨時檔案 349
7.1 臨時表空間原理 349
7.2 Oracle 8i的臨時表空間 353
7.3 Oracle 9i的臨時表空間 354
7.4 Oracle 9i中如何重建與切換臨時表空間 355
7.5 Oracle 10g的臨時表空間組 356
7.6 Oracle 10gR2使用RMAN恢復臨時表空間的增強 360
7.7 臨時表空間過度擴展的問題解決 361
7.8 從V$SORT_USAGE到V$TEMPSEG_USAGE 363
7.9 臨時檔案file#和db_files的關係 364
7.10 LOB對象與臨時段 365
7.11 臨時檔案和稀疏檔案 366
7.12 臨時表空間診斷案例一則 369
第8章 備份與恢復 372
8.1 備份與恢復概述 372
8.2 備份方法 372
8.3 恢復原理 373
8.4 檢查點與RBA 374
8.5 資料庫的運行模式 376
8.6 邏輯備份與恢復 381
8.6.1 使用EXP進行邏輯備份 381
8.6.2 使用IMP進行邏輯恢復 386
8.6.3 使用數據泵(EXPDP/IMPDP) 389
8.7 物理備份與恢復 395
8.7.1 冷備份 395
8.7.2 熱備份 396
8.7.3 RMAN的備份與恢復 405
第9章 備份方案與特例恢復 454
9.1 用Plus archvielog選項簡化備份 454
9.2 Nocatalog方式的備份方案制定 457
9.3 使用邏輯備份輔助物理備份 459
9.4 使用控制檔案快照輔助恢復 462
9.5 歸檔逐步套用輔助數據遷移 467
9.6 _allow_resetlogs_corruption參數 470
9.7 ORA-600 2662錯誤的應對 472
9.8 _corrupted_rollback_segments參數 474
9.9 Oracle 10g跨越Resetlogs時間點的恢復 477
9.10 使用RMAN進行基於數據塊的恢復 480
9.11 Oracle 10g備份集壓縮(Backupset Compression) 482
9.12 使用RMAN恢復備份集到不同主機 484
9.13 單機搭建DataGuard環境的測試 488
第10章 Oracle的閃回特性 495
10.1 Oracle 9i的閃回查詢特性 495
10.1.1 閃回查詢的使用 496
10.1.2 使用Oracle 9i閃回查詢特性恢復案例 496
10.2 SMON_SCN_TIME與閃回查詢 498
10.2.1 Oracle 9i中的SMON_SCN_TIME 498
10.2.2 Oracle 10g中的SMON_SCN_TIME 502
10.2.3 Oracle 10g中的SCN與時間的映射及轉換 504
10.2.4 Oracle 11g中的進一步演進 506
10.3 Oracle log的閃回特性 507
10.3.1 Oracle的資料庫級閃回 507
10.3.2 Oracle的flashback drop功能 511
10.3.3 Oracle 10g的Flashback Version Query 517
10.3.4 通過Flashback Transaction Query進行事務撤銷 519
10.3.5 閃回表 520
10.3.6 Oracle 11g閃回數據歸檔 524
10.4 使用函式輔助閃回 528
10.4.1 Oracle 10g新的內建函式ora_rowscn 528
10.4.2 結合ora_rowscn進行閃回恢復 532
第11章 Oracle的數據載入與卸載 534
11.1 外部表與SQLLDR 534
11.2 使用外部表訪問警告日誌檔案 538
11.2.1 創建Directory 538
11.2.2 創建及訪問外部表 538
11.3 使用外部表訪問監聽日誌 540
11.3.1 定位監聽器日誌檔案 540
11.3.2 創建Directory 541
11.3.3 創建外部表 541
11.3.4 查詢外部表 541
11.3.5 使用範例 542
11.4 使用外部表訪問跟蹤檔案 547
11.5 使用外部表分析網站訪問日誌 549
11.6 獲得作業系統檔案列表 552
11.6.1 創建臨時表 552
11.6.2 創建存儲過程 553
11.6.3 執行獲取數據 554
11.7 使用數據泵進行數據卸載 555
11.7.1 使用數據泵外部表卸載數據 555
11.7.2 通過並行處理提高性能 558
11.8 Oracle 11g外部表的增強 559
11.8.1 卸載數據壓縮 559
11.8.2 卸載數據加密 560
11.9 使用工具ociuldr進行數據卸載 561
第12章 從Statspack到ADDM 563
12.1 Statspack概述 563
12.1.1 資料庫參數修改 564
12.1.2 安裝Statspack 564
12.1.3 spcreate的內容 568
12.1.4 測試Statspack 568
12.1.5 規劃自動任務 569
12.1.6 生成分析報告 570
12.1.7 移除定時任務 571
12.1.8 刪除歷史數據 571
12.1.9 其他重要腳本 574
12.1.10 調整STATSPACK的收集門限 574
12.1.11 ORA-00001錯誤解決 575
12.1.12 Oracle 10g Statspack報告的增強 577
12.2 Statspack報告各部分說明 577
12.2.1 第一部分:資料庫概要信息 578
12.2.2 第二部分:負載概要信息 578
12.2.3 第三部分:實例效率百分比 585
12.2.4 第四部分:資料庫的回響時間 590
12.2.5 第五部分:主機系統信息 594
12.2.6 第六部分:詳細信息 594
12.3 整理分析結果 597
12.3.1 物理讀寫IO操作 597
12.3.2 Buffer命中率 598
12.4 最重要的九大性能視圖 599
12.4.1 我的命題 599
12.4.2 我的答案 600
12.5 session歷史信息的記錄 602
12.5.1 v$session視圖的增強 603
12.5.2 新增v$session_wait_history視圖 604
12.6 ASH新特性的引入 604
12.6.1 ASH概述 604
12.6.2 ASH報告 606
12.7 自動負載信息庫(AWR)的引入 613
12.7.1 AWR概述 613
12.7.2 AWR信息的修改 615
12.7.3 AWR報告的生成 617
12.7.4 AWR比較報告的生成 619
12.7.5 基線(Baseline) 620
12.7.6 AWR報告的分析 621
12.7.7 通過EM生成AWR報告 623
12.7.8 AWR數據的導出導入 625
12.7.9 多資料庫實例的對比報告 634
12.7.10 AWR報告的實現 635
12.8 自動資料庫診斷監控(ADDM)的引入 638
12.8.1 ADDM概述 638
12.8.2 ADDM報告的生成 638
12.8.3 使用EM生成ADDM報告 640
12.9 理解等待事件 641
12.10 通過採樣數據繪製趨勢曲線 646
第13章 故障診斷及分析方法 651
13.1 故障樹分析法 651
13.1.1 故障樹分析法對於資料庫故障解決的意義 651
13.1.2 故障樹分析模型的建立 652
13.2 故障樹分析法在故障解決中的套用 655
13.2.1 性能緩慢到CPU消耗的定位 655
13.2.2 CPU到進程的故障樹分析 655
13.2.3 進一步診斷套用問題 656
13.2.4 從SQL到問題本質的診斷 658
13.2.5 調整並最終解決問題 659
13.2.6 性能何以提高 660
13.3 故障樹分析法套用的總結 661
後記 662
新版後記 664