第Ⅰ部分數據庫體系結構第1章Oracle體系結構概述 3
1.1數據庫和實例概述 4
1.1.1數據庫 4
1.1.2實例 5
1.2Oracle邏輯存儲結構 5
1.2.1表空間 6
1.2.2塊 7
1.2.3盤區 7
1.2.4段 7
1.3Oracle邏輯數據庫結構 8
1.3.1表 8
1.3.2約束 14
1.3.3索引 16
1.3.4視圖 18
1.3.5用戶和模式 20
1.3.6配置文件 20
1.3.7序列 20
1.3.8同義詞 21
1.3.9PL/SQL 21
1.3.10外部文件訪問 22
1.3.11數據庫鏈接和遠程數據庫 22
1.4Oracle物理存儲結構 23
1.4.1數據文件 24
1.4.2重做日志文件 24
1.4.3控制文件 24
1.4.4歸檔的日志文件 25
1.4.5初始參數文件 25
1.4.6警報和跟蹤日志文件 26
1.4.7備份文件 26
1.4.8Oracle管理文件 27
1.4.9密碼文件 27
1.5多元復用數據庫文件 27
1.5.1自動存儲管理 28
1.5.2手動的多元復用 28
1.6Oracle內存結構 30
1.6.1系統全局區域 30
1.6.2程序全局區域 32
1.6.3軟件代碼區域 33
1.6.4后臺進程 33
1.7備份/恢復概述 35
1.7.1導出/導入 35
1.7.2脫機備份 36
1.7.3聯機備份 36
1.7.4RMAN 36
1.8安全功能 36
1.8.1權限和角色 37
1.8.2審核 37
1.8.3細粒度的審核 38
1.8.4虛擬私有數據庫 38
1.8.5標號安全性 38
1.9實時應用群集 38
1.10Oracle流 39
1.11Oracle企業管理器 39
1.12Oracle初始參數 40
1.12.1基本初始參數 40
1.12.2高級初始參數 44
1.13本章小結 45
第2章升級到OracleDatabase12c 47
2.1選擇升級方法 48
2.2升級前的準備工作 50
2.3使用DBUA 50
2.4執行手動直接升級 51
2.5使用DataPumpExport和Import 53
2.5.1使用的Export和Import版本 53
2.5.2執行升級 53
2.6使用數據復制方法 54
2.7升級后的工作 54
2.8本章小結 55
第3章計劃和管理表空間 57
3.1表空間的體系結構 58
3.1.1表空間類型 58
3.1.2OFA 64
3.2Oracle安裝表空間 68
3.2.1SYSTEM 68
3.2.2SYSAUX 68
3.2.3TEMP 68
3.2.4UNDOTBS1 69
3.2.5USERS 69
3.2.6EXAMPLE 69
3.3段分離 69
3.4本章小結 70
第4章物理數據庫布局和存儲管理 71
4.1傳統磁盤空間存儲 72
4.1.1重設表空間和數據文件的大小 72
4.1.2移動數據文件 78
4.1.3移動聯機重做日志文件 81
4.1.4移動控制文件 83
4.2自動存儲管理 85
4.2.1ASM體系結構 85
4.2.2創建ASM實例 86
4.2.3ASM實例組件 88
4.2.4ASM動態性能視圖 90
4.2.5ASM文件名格式 91
4.2.6ASM文件類型和模板 93
4.2.7管理ASM磁盤組 94
4.3本章小結 103
第Ⅱ部分數據庫管理
第5章開發和實現應用程序 107
5.1調整設計:最佳實踐 108
5.1.1做盡可能少的工作 108
5.1.2做盡可能簡單的工作 111
5.1.3告訴數據庫需要知道的內容 112
5.1.4最大化環境中的吞吐量 113
5.1.5分開處理數據 113
5.1.6正確測試 114
5.1.7標準的可交付成果 116
5.2資源管理 118
5.2.1實現數據庫資源管理器 118
5.2.2調整數據庫對象的大小 123
5.2.3使用全局臨時表 129
5.3支持基于抽象數據類型的表 130
5.3.1使用對象視圖 130
5.3.2抽象數據類型的安全性 133
5.3.3對抽象數據類型屬性創建索引 135
5.4停頓并掛起數據庫 136
5.5支持迭代開發 137
5.5.1迭代式列定義 137
5.5.2強制光標共享 138
5.6管理程序包開發 139
5.6.1生成圖表 139
5.6.2空間需求 139
5.6.3調整目標 139
5.6.4安全性需求 139
5.6.5數據需求 140
5.6.6版本需求 140
5.6.7執行計劃 140
5.6.8驗收測試過程 140
5.6.9測試環境 140
5.7本章小結 141
第6章監控空間利用率 143
6.1常見的空間管理問題 144
6.1.1用盡表空間中的空閑空間 144
6.1.2用于臨時段的空間不足 145
6.1.3所分配的撤消空間過多或過少 145
6.1.4分片的表空間和段 145
6.2Oracle段、盤區和塊 146
6.2.1數據塊 147
6.2.2盤區 148
6.2.3段 149
6.3數據字典視圖和動態性能視圖 150
6.3.1DBA_TABLESPACES 150
6.3.2DBA_SEGMENTS 150
6.3.3DBA_EXTENTS 151
6.3.4DBA_FREE_SPACE 151
6.3.5DBA_LMT_FREE_SPACE 152
6.3.6DBA_THRESHOLDS 152
6.3.7DBA_OUTSTANDING_ALERTS 152
6.3.8DBA_OBJECT_USAGE 152
6.3.9DBA_ALERT_HISTORY 153
6.3.10V$ALERT_TYPES 153
6.3.11V$UNDOSTAT 153
6.3.12V$SORT_SEGMENT 154
6.3.13V$TEMPSEG_USAGE 154
6.4空間管理方法學 154
6.4.1本地管理的表空間 154
6.4.2使用OMF管理空間 155
6.4.3大文件表空間 157
6.4.4自動存儲管理 158
6.4.5撤消管理的考慮事項 160
6.5SYSAUX監控和使用 161
6.6歸檔重做日志文件的管理 162
6.7內置的空間管理工具 163
6.7.1段顧問 163
6.7.2撤消顧問和自動工作負荷存儲庫 166
6.7.3索引利用率 167
6.7.4空間利用率警告級別 169
6.7.5可恢復的空間分配 171
6.7.6用ADR管理警報日志和跟蹤文件 174
6.7.7OS空間管理 176
6.8空間管理腳本 176
6.8.1無法分配額外盤區的段 176
6.8.2表空間和數據文件已使用的空間和空閑空間 176
6.9自動化和精簡通知過程 178
6.9.1使用DBMS_SCHEDULER 178
6.9.2CloudControl和監控 178
6.10本章小結 185
第7章使用撤消表空間管理事務 187
7.1事務基礎 188
7.2撤消基礎 188
7.2.1回滾 189
7.2.2讀一致性 189
7.2.3數據庫恢復 189
7.2.4閃回操作 189
7.3管理撤消表空間 190
7.3.1創建撤消表空間 190
7.3.2撤消表空間的動態性能視圖 195
7.3.3撤消表空間的初始參數 195
7.3.4多個撤消表空間 197
7.3.5撤消表空間的大小調整和監控 199
7.3.6讀一致性與成功的DML 202
7.4閃回特性 202
7.4.1FlashbackQuery(閃回查詢) 203
7.4.2DBMS_FLASHBACK 204
7.4.3FlashbackTransactionBackout(閃回事務停止) 206
7.4.4FlashbackTable(閃回表) 207
7.4.5FlashbackVersionQuery(閃回版本查詢) 208
7.4.6FlashbackTransactionQuery(閃回事務查詢) 211
7.4.7FlashDataArchive(閃回數據歸檔) 212
7.4.8閃回與LOB 216
7.5遷移到自動撤消管理 216
7.6本章小結 216
第8章數據庫調整 219
8.1調整應用程序設計 220
8.1.1有效的表設計 220
8.1.2CPU需求的分布 221
8.1.3有效的應用程序設計 223
8.2調整SQL 224
8.2.1順序對加載速率的影響 225
8.2.2其他索引選項 225
8.2.3生成解釋計劃 227
8.3調整內存使用率 229
8.3.1管理SGA池 229
8.3.2指定SGA的大小 231
8.3.3使用基于成本的優化器 232
8.4調整數據訪問 233
8.4.1標識鏈行 233
8.4.2使用索引組織表 234
8.4.3索引組織表的調整問題 235
8.5調整數據操作 236
8.5.1批量插入:使用SQL*LoaderDirectPath選項 236
8.5.2批量數據移動:使用外部表 237
8.5.3批量插入:常見的陷阱和成功技巧 238
8.5.4批量刪除:TRUNCATE命令 239
8.5.5使用分區 240
8.6減少網絡流量 240
8.6.1使用物化視圖復制數據 240
8.6.2使用遠程過程調用 242
8.7使用AWR 243
8.7.1管理快照 243
8.7.2管理基線 244
8.7.3生成AWR報告 244
8.7.4運行AutomaticDatabaseDiagnosticMonitor報告 245
8.7.5使用自動SQL調整顧問 246
8.8多租戶環境中的性能調整 247
8.8.1調整方法 248
8.8.2調整CDB 248
8.8.3使用內存顧問 250
8.8.4使用AWR報告 251
8.8.5使用SQL調整顧問 251
8.9管理PDB中的資源分配 252
8.9.1使用份額來管理PDB之間的資源分配 252
8.9.2創建和修改ResourceManager計劃 253
8.10執行數據庫重放 257
8.10.1分析源數據庫工作負荷 257
8.10.2捕獲源數據庫工作負荷 258
8.10.3在目標系統上處理工作負荷 258
8.10.4在目標CDB上重放工作負荷 258
8.10.5驗證重放結果 258
8.11本章小結 258
第9章In-Memory選項 261
9.1OracleIn-Memory選項概述 261
9.1.1系統需求和設置 262
9.1.2In-Memory案例研究 262
9.2數據字典視圖 266
9.2.1V$IM_SEGMENTS 266
9.2.2V$INMEMORY_AREA 267
9.2.3V$SGA 267
9.3本章小結 267
第10章數據庫安全性和審核 269
10.1非數據庫的安全性 270
10.2數據庫身份驗證方法 271
10.2.1數據庫身份驗證 271
10.2.2數據庫管理員身份驗證 271
10.2.3操作系統身份驗證 274
10.2.4網絡身份驗證 275
10.2.5三層身份驗證 277
10.2.6客戶端身份驗證 277
10.2.7用戶賬戶 278
10.3數據庫授權方法 283
10.3.1配置文件的管理 283
10.3.2系統權限 290
10.3.3對象權限 292
10.3.4創建、分配和維護角色 296
10.3.5使用VPD實現應用程序安全策略 302
10.4審核 319
10.4.1審核位置 319
10.4.2語句審核 320
10.4.3權限審核 324
10.4.4模式對象審核 325
10.4.5細粒度的審核 326
10.4.6與審核相關的數據字典視圖 327
10.4.7保護審核跟蹤 328
10.5數據加密技術 328
10.5.1DBMS_CRYPTO程序包 329
10.5.2透明數據加密 329
10.6本章小結 330
第11章多租戶數據庫體系結構 331
11.1理解多租戶體系結構 332
11.1.1利用多租戶數據庫 333
11.1.2理解多租戶配置 333
11.2在多租戶環境中預配 335
11.2.1理解可插入數據庫預配 335
11.2.2配置和創建CDB 338
11.2.3理解新增的后續數據字典視圖 342
11.2.4創建PDB 344
11.2.5拔下和刪除PDB 349
11.3管理CDB和PDB 352
11.3.1理解CDB和PDB服務名 352
11.3.2使用SQLDeveloper連接到CDB或PDB 353
11.3.3為CDB或PDB創建服務 354
11.3.4在CDB中切換連接 355
11.3.5啟動和關閉CDB及PDB 355
11.3.6更改CDB中的參數 362
11.3.7管理CDB和PDB中的永久和臨時表空間 363
11.4多租戶安全 366
11.4.1管理公共和本地用戶 366
11.4.2管理公共和本地權限 368
11.4.3管理公共和本地角色 369
11.4.4使公共用戶訪問特定PDB中的數據 370
11.5多租戶環境中的備份和恢復 372
11.5.1執行CDB和所有PDB的備份 372
11.5.2備份CDB 375
11.5.3備份PDB 377
11.5.4恢復丟失的PDB數據文件 379
11.5.5使用DRA 387
11.5.6確定受損的塊 392
11.5.7使用RMAN復制PDB 393
11.6本章小結 393
第Ⅲ部分高可用性
第12章實時應用群集 397
12.1實時應用群集概述 398
12.1.1硬件配置 398
12.1.2軟件配置 399
12.1.3網絡配置 399
12.1.4磁盤存儲 400
12.2RAC特征 400
12.2.1服務器參數文件特征 400
12.2.2與RAC相關的初始化參數 401
12.2.3動態性能視圖 401
12.3RAC維護 403
12.3.1啟動RAC 403
12.3.2RAC環境中的重做日志 404
12.3.3RAC環境中的撤消表空間 404
12.3.4故障轉移情況和TAF 404
12.3.5調整RAC節點 406
12.4本章小結 406
第13章備份和恢復選項 409
13.1備份功能 409
13.2邏輯備份 410
13.3物理備份 411
13.3.1脫機備份 411
13.3.2聯機備份 411
13.4使用DataPumpExport和DataPumpImport 413
13.4.1創建目錄 413
13.4.2DataPumpExport選項 414
13.4.3啟動DataPumpExport作業 417
13.4.4DataPumpImport選項 421
13.5實現脫機備份 428
13.6實現聯機備份 428
13.6.1開始(操作) 429
13.6.2執行聯機數據庫備份 430
13.7集成備份過程 431
13.7.1集成邏輯備份和物理備份 431
13.7.2集成數據庫備份和操作系統備份 432
13.8本章小結 433
第14章使用恢復管理器(RMAN) 435
14.1RMAN的特性和組件 436
14.1.1RMAN組件 436
14.1.2RMAN與傳統備份方法 437
14.1.3備份類型 439
14.2RMAN命令和選項的概述 440
14.2.1在RMAN中運行SQL命令 440
14.2.2常用命令 441
14.2.3設置存儲庫 442
14.2.4注冊數據庫 444
14.2.5持久保存RMAN設置 445
14.2.6初始化參數 449
14.2.7數據字典和動態性能視圖 449
14.3備份操作 451
14.3.1完整數據庫備份 451
14.3.2備份表空間 456
14.3.3備份數據文件 457
14.3.4映像副本備份 457
14.3.5備份控制文件和SPFILE 459
14.3.6備份歸檔重做日志 459
14.3.7增量備份 460
14.3.8增量更新的備份 462
14.3.9增量備份塊變化跟蹤 464
14.3.10使用快速恢復區 465
14.3.11驗證備份 465
14.4恢復操作 468
14.4.1塊介質恢復 468
14.4.2還原控制文件 469
14.4.3還原表空間 469
14.4.4還原表 471
14.4.5還原數據文件 472
14.4.6還原整個數據庫 472
14.4.7驗證還原操作 474
14.4.8時間點恢復 476
14.4.9數據恢復顧問 476
14.5其他操作 479
14.5.1編目其他備份 479
14.5.2目錄維護 480
14.5.3REPORT和LIST 481
14.6本章小結 483
第15章OracleDataGuard 485
15.1DataGuard體系結構 485
15.1.1物理備用數據庫與邏輯備用數據庫 486
15.1.2數據保護模式 487
15.2LOG_ARCHIVE_DEST_n參數屬性 489
15.3創建備用數據庫配置 489
15.3.1準備主數據庫 490
15.3.2創建邏輯備用數據庫 494
15.4使用實時應用 496
15.5管理歸檔日志序列中的間隙 497
15.6管理角色——切換和故障轉移 497
15.6.1切換 497
15.6.2故障轉移 500
15.7管理數據庫 501
15.7.1啟動和關閉物理備用數據庫 501
15.7.2以只讀模式打開物理備用數據庫 502
15.7.3在DataGuard環境中管理數據文件 502
15.7.4在邏輯備用數據庫上執行DDL 502
15.8本章小結 503
第16章其他高可用性特性 505
16.1使用閃回刪除來恢復被刪除的表 506
16.2FLASHBACKDATABASE命令 507
16.3使用LogMiner 510
16.3.1LogMiner的工作方式 510
16.3.2提取數據字典 510
16.3.3分析一個或多個重做日志文件 511
16.4聯機對象重組織 514
16.4.1聯機創建索引 514
16.4.2聯機重建索引 515
16.4.3聯機合并索引 515
16.4.4聯機重建以索引組織的表 515
16.4.5聯機重新定義表 515
16.4.6聯機移動數據文件 517
16.5本章小結 517
第Ⅳ部分網絡化的Oracle
第17章OracleNet 521
17.1OracleNet概述 522
17.1.1連接描述符 525
17.1.2網絡服務名 525
17.1.3用OracleInternetDirectory替換tnsnames.ora 526
17.1.4偵聽程序 526
17.2使用OracleNetConfigurationAssistant 530
17.2.1配置偵聽程序 531
17.2.2NamingMethodsConfiguration 532
17.2.3LocalNetServiceNameConfiguration 532
17.2.4DirectoryUsageConfiguration 533
17.3使用OracleNetManager 534
17.4啟動偵聽程序服務器進程 535
17.5對偵聽程序服務器進程進行控制 537
17.6OracleConnectionManager 539
17.6.1使用OracleConnectionManager 540
17.6.2配置OracleConnectionManager 540
17.6.3使用連接管理器控制實用程序(CMCTL) 542
17.7使用OracleInternetDirectory的目錄命名 543
17.7.1OracleInternetDirectory體系結構 543
17.7.2設置OracleInternetDirectory 544
17.8使用EasyConnectNaming 545
17.9使用數據庫鏈接 546
17.10調整OracleNet 547
17.10.1限制資源的使用 548
17.10.2使用壓縮 548
17.10.3調試連接問題 549
17.11本章小結 550
第18章管理大型數據庫 551
18.1在VLDB環境中創建表空間 552
18.1.1大文件表空間的基本知識 553
18.1.2創建和修改大文件表空間 553
18.1.3大文件表空間ROWID格式 554
18.1.4DBMS_ROWID和大文件表空間 555
18.1.5將DBVERIFY用于大文件表空間 557
18.1.6大文件表空間的初始化參數需要考慮的因素 559
18.1.7大文件表空間數據字典的變化 559
18.2高級的Oracle表類型 560
18.2.1索引組織的表 560
18.2.2全局臨時表 561
18.2.3外部表 562
18.2.4分區表 564
18.2.5物化視圖 588
18.3使用位圖索引 589
18.3.1理解位圖索引 589
18.3.2使用位圖索引 590
18.3.3使用位圖連接索引 590
18.4本章小結 591
第19章管理分布式數據庫 593
19.1遠程查詢 594
19.2遠程數據處理:兩階段提交 595
19.3動態數據復制 596
19.4管理分布式數據 597
19.4.1基礎設施:實施位置透明性 597
19.4.2管理數據庫鏈接 602
19.4.3管理數據庫觸發器 603
19.4.4管理物化視圖 604
19.4.5使用DBMS_MVIEW和DBMS_ADVISOR 608
19.4.6可執行什么類型的更新 617
19.4.7使用物化視圖改變查詢執行路徑 620
19.5管理分布式事務 622
19.5.1解決未確定的事務 622
19.5.2提交點強度 623
19.6監控分布式數據庫 623
19.7調整分布式數據庫 624
19.8本章小結 626