備戰OCP認證考試1Z0-063的完整學習體系 本書旨在幫助讀者備戰Oracle Certifi ed Professional Oracle Database 12c Advanced Administration考試。書中的每一章都提供了具有挑戰性的練習、認證小結、知識點回顧和自測題,以強化該章所介紹的主題。這本指南不僅可以幫助讀者順利通過考試,還可以作為工作中必不可少的參考手冊。本書覆蓋了1Z0-063考試的所有OCP目標,其中包括: ● 配置和管理Oracle恢復管理器(Oracle RMAN) ● 使用Oracle RMAN恢復目錄 ● 執行備份和恢復 ● 診斷數據庫故障,使用自動診斷倉庫 ● 加密、保護、監視和調整Oracle RMAN備份 ● 配置和使用閃回功能 ● 傳輸和復制表空間和數據庫 ● 創建和管理多租戶容器數據庫和可插入數據庫 ● 使用Oracle Data Pump、SQL Loader和審核功能
備戰OCP認證考試1Z0-063的完整學習體系
Oracle官方出品
20年的IT經驗、Oracle認證專家級DBA全新作品
配套學習資源下載
模擬考卷:150多道試題
測試引擎:提供模擬考題,以及按章節或考點歸納的測試題
Bob Bryla是一位Oracle 9i、10g、11g 和12c認證人員,在數據庫設計、數據庫應用程序開發、培訓和Oracle數據庫管理等方面擁有20多年的經驗。他編著了多本Oracle DBA以及Oracle Database 11g 和12c的認證學習指南。
目 錄
第1章 數據庫備份解決方案和ASM 1
1.1 解釋Oracle的備份和恢復解決方案 2
1.1.1 Oracle邏輯存儲結構 2
1.1.2 Oracle物理存儲結構 4
1.1.3 Oracle內存結構 8
1.1.4 描述ASM 13
1.1.5 ASM體系結構 13
1.1.6 數據庫故障和備份解決方案 16
1.2 本章小結 18
1.3 本章知識點回顧 18
1.4 自測題 19
1.5 自測題答案 21
第2章 配置數據庫可恢復性 23
2.1 配置和管理RMAN設置 24
2.1.1 邏輯備份 24
2.1.2 物理備份 25
2.1.3 RMAN命令簡介 27
2.2 配置快速恢復區 32
2.2.1 定義快速恢復區的大小和位置 32
2.2.2 監視和管理快速恢復區 35
2.3 配置控制文件和重做日志文件來提高可恢復性 36
2.3.1 配置ARCHIVELOG模式 37
2.3.2 利用多個歸檔目標 38
2.4 備份和恢復NOARCHIVELOG數據庫 40
2.5 本章小結 41
2.6 本章知識點回顧 41
2.7 自測題 43
2.8 自測題答案 46
第3章 使用RMAN恢復目錄 49
3.1 創建和使用RMAN恢復目錄 50
3.1.1 使用控制文件來保存RMAN元數據 50
3.1.2 使用恢復目錄來保存RMAN元數據 50
3.1.3 配置恢復目錄數據庫 51
3.1.4 創建恢復目錄所有者 51
3.1.5 創建恢復目錄 52
3.1.6 同步恢復目錄 52
3.1.7 創建和使用RMAN存儲腳本 60
3.2 保護RMAN恢復目錄 63
3.2.1 備份恢復目錄 63
3.2.2 在丟失恢復目錄后進行恢復 64
3.2.3 導出和導入恢復目錄 64
3.2.4 刪除恢復目錄 65
3.2.5 更新恢復目錄 65
3.3 創建和使用虛擬專用目錄 66
3.3.1 了解虛擬專用目錄 66
3.3.2 創建和管理虛擬專用目錄 66
3.4 本章小結 68
3.5 本章知識點回顧 69
3.6 自測題 71
3.7 自測題答案 73
第4章 創建高級RMAN備份 77
4.1 使用多種RMAN備份類型和策略 78
4.1.1 RMAN備份的類型 78
4.1.2 RMAN備份目標 80
4.1.3 持久保存RMAN設置 80
4.1.4 自動備份控制文件 83
4.1.5 分配備份通道 83
4.2 執行和增量備份 83
4.2.1 創建備份集 85
4.2.2 創建映像副本 87
4.2.3 完整數據庫備份 88
4.2.4 備份 89
4.2.5 增量備份 90
4.3 使用技術改進備份 93
4.3.1 了解塊更改跟蹤文件 94
4.3.2 啟用快速增量備份 95
4.3.3 監視塊更改跟蹤文件 96
4.3.4 創建多路復用備份集 96
4.3.5 創建備份集的備份 97
4.3.6 備份只讀表空間 97
4.3.7 了解歸檔備份 97
4.3.8 創建多段備份 99
4.3.9 壓縮備份 102
4.3.10 加密備份 103
4.4 管理備份 106
4.4.1 使用LIST命令 106
4.4.2 使用REPORT命令 107
4.4.3 使用DELETE命令 108
4.4.4 使用CROSSCHECK命令 109
4.5 執行非數據庫文件的備份 109
4.5.1 備份控制文件 110
4.5.2 備份ASM元數據 111
4.5.3 記錄其他備份文件 112
4.6 本章小結 112
4.7 本章知識點回顧 113
4.8 自測題 116
4.9 自測題答案 121
第5章 使用RMAN備份進行恢復 125
5.1 描述和調整實例恢復 127
5.2 執行完整和不完整恢復 128
5.2.1 使用RMAN RESTORE和RECOVER命令 128
5.2.2 為不重要的文件執行完整恢復 128
5.2.3 執行重要數據文件的完整恢復 130
5.2.4 使用RMAN執行不完整恢復 131
5.2.5 使用增量更新備份進行恢復 135
5.2.6 切換使用映像副本以便加快恢復速度 136
5.3 執行SPFILE、口令文件、控制文件和重做日志文件的恢復 142
5.3.1 從自動備份還原SPFILE 142
5.3.2 從自動備份還原控制文件 143
5.3.3 在丟失重做日志組時進行恢復 146
5.3.4 了解日志組狀態 146
5.3.5 在發生日志組成員故障后進行恢復 147
5.3.6 在丟失整個日志組時進行恢復 148
5.3.7 在丟失口令文件后進行恢復 150
5.3.8 恢復控制文件 153
5.4 執行索引和只讀表空間和臨時文件的恢復 155
5.5 將數據庫還原到新主機上 157
5.5.1 了解還原到新主機的含義 157
5.5.2 準備新主機 157
5.5.3 在新主機上執行還原和恢復 157
5.6 本章小結 159
5.7 本章知識點回顧 161
5.8 自測題 163
5.9 自測題答案 168
第6章 診斷數據庫故障及ADR 171
6.1 自動診斷工作流程 172
6.1.1 了解ADR 172
6.1.2 使用ADRCI工具 174
6.1.3 了解警報、問題和事件 177
6.1.4 使用Health Monitor 177
6.2 處理塊損壞 180
6.2.1 了解受損塊 180
6.2.2 使用DB_BLOCK_CHECKING參數 180
6.2.3 使用塊介質恢復方法 181
6.2.4 使用Data Recovery Advisor 183
6.3 本章小結 184
6.4 本章知識點回顧 185
6.5 自測題 186
6.6 自測題答案 187
第7章 加密、保護、監視和調整 RMAN備份 189
7.1 創建RMAN加密備份 190
7.1.1 配置和使用透明加密 190
7.1.2 使用口令加密 192
7.1.3 使用雙模式加密 193
7.2 配置和使用Oracle安全備份 193
7.2.1 Oracle安全備份概述 194
7.2.2 安裝和配置Oracle安全備份 194
7.2.3 使用RMAN和Oracle 安全備份 196
7.2.4 各個obtool命令 196
7.3 調整RMAN性能 198
7.4 調整RMAN性能 203
7.4.1 確定備份和還原步驟 204
7.4.2 并行執行備份集 204
7.4.3 了解RMAN多路復用操作 205
7.4.4 調整RMAN通道 206
7.4.5 調整BACKUP命令 206
7.4.6 配置LARGE_POOL_SIZE 206
7.5 本章小結 207
7.6 本章知識點回顧 207
7.7 自測題 208
7.8 自測題答案 211
第8章 配置和使用閃回功能 213
8.1 閃回技術 214
8.1.1 閃回類型和從屬項 214
8.1.2 配置閃回參數 215
8.2 使用閃回查詢數據 216
8.2.1 使用閃回查詢 216
8.2.2 使用閃回版本查詢 218
8.3 執行閃回表操作 221
8.3.1 利用回收站 221
8.3.2 了解閃回表 229
8.3.3 了解閃回事務查詢 231
8.4 使用備份執行表恢復 233
8.4.1 從備份恢復表的場景 234
8.4.2 使用備份執行表恢復的先決條件和限制 234
8.4.3 使用備份執行表恢復 234
8.5 Flashback Data Archive簡介及其使用 235
8.5.1 了解Flashback Data Archive 235
8.5.2 創建歸檔 236
8.5.3 使用Flashback Data Archive數據字典視圖 237
8.5.4 指定Flashback Data Archive權限 237
8.5.5 管理Flashback Data Archive 237
8.5.6 將表分配到Flashback Data Archive 238
8.5.7 查詢Flashback Data
Archive 238
8.6 執行閃回數據庫 239
8.6.1 了解閃回數據庫 239
8.6.2 配置閃回數據庫 240
8.6.3 使用閃回數據庫 240
8.7 本章小結 243
8.8 本章知識點回顧 244
8.9 自測題 247
8.10 自測題答案 250
第9章 傳輸及復制表空間和數據庫 253
9.1 描述和使用可傳輸表空間和數據庫 254
9.1.1 配置可傳輸表空間 254
9.1.2 傳輸表空間 256
9.2 選擇一種數據庫復制技術 267
9.2.1 跨平臺數據傳輸 267
9.2.2 使用映像副本進行數據傳輸 267
9.2.3 使用RMAN備份集進行數據庫傳輸 267
9.3 創建基于備份的副本數據庫 268
9.3.1 使用RMAN創建副本數據庫 268
9.3.2 使用副本數據庫 270
9.4 基于運行實例復制數據庫 270
9.4.1 配置輔助實例 271
9.4.2 創建初始化參數文件 271
9.4.3 在NOMOUNT模式下啟動輔助實例并創建SPFILE 272
9.4.4 在MOUNT或OPEN模式下啟動源數據庫 273
9.4.5 為DUPLICATE命令創建備份 274
9.4.6 必要時分配輔助通道 274
9.4.7 運行RMAN DUPLICATE命令 274
9.5 本章小結 276
9.6 本章知識點回顧 277
9.7 自測題 278
9.8 自測題答案 279
第10章 多租戶數據庫的架構 281
10.1 多租戶架構 282
10.1.1 利用多租戶數據庫 282
10.1.2 了解多租戶配置 283
10.2 可插入數據庫的配置 285
10.3 本章小結 287
10.4 本章知識點回顧 288
10.5 自測題 289
10.6 自測題答案 290
第11章 創建多租戶容器數據庫和可插入數據庫 291
11.1 配置和創建CDB 292
11.1.1 使用不同的方法創建CDB 292
11.1.2 了解新的數據字典視圖 299
11.2 使用不同的方法創建PDB 301
11.2.1 使用PDB$SEED 創建新的PDB 301
11.2.2 克隆PDB,以創建新的PDB 303
11.2.3 把非CDB插入CDB 304
11.2.4 把拔出的PDB插入CDB 307
11.3 拔出和刪除PDB 307
11.3.1 使用不同的方法拔出一個PDB 308
11.3.2 刪除PDB 309
11.4 把12.1版本以前的非CDB數據庫遷移到CDB 310
11.4.1 使用升級方法來遷移非CDB 310
11.4.2 使用Data Pump方法來遷移非CDB 310
11.4.3 使用數據庫鏈接方法來遷移非CDB 310
11.5 本章小結 310
11.6 本章知識點回顧 311
11.7 自測題 312
11.8 自測題答案 313
第12章 管理CDB和PDB 315
12.1 建立到CDB和PDB的連接 316
12.1.1 了解CDB 和 PDB 服務名 316
12.1.2 使用SQL Developer連接到CDB或PDB 318
12.1.3 為CDB或PDB創建服務 318
12.1.4 在CDB中切換連接 319
12.2 啟動和關閉CDB,以及
打開和關閉PDB 320
12.2.1 CDB 實例的啟動 320
12.2.2 打開和關閉PDB 322
12.2.3 CDB 實例的關閉 324
12.2.4 自動啟動PDB 325
12.2.5 改變PDB 的狀態 326
12.3 評估參數值變化的影響 327
12.3.1 了解參數變化的范圍 327
12.3.2 在多租戶環境中使用ALTER SYSTEM 327
12.4 管理CDB和PDB中的長期和臨時表空間 328
12.5 管理公共用戶和本地用戶 331
12.6 管理公共權限和本地權限 332
12.7 管理公共角色和本地角色 334
12.8 允許公共用戶訪問特定PDB中的數據 334
12.9 本章小結 336
12.10 本章知識點回顧 337
12.11 自測題 339
12.12 自測題答案 341
第13章 備份與恢復CDB和PDB 345
13.1 執行CDB和PDB的備份 346
13.1.1 備份CDB 349
13.1.2 備份PDB 351
13.2 在丟失PDB數據文件后恢復PDB 353
13.2.1 恢復臨時文件 353
13.2.2 在丟失控制文件后恢復 354
13.2.3 在丟失重做日志文件后恢復 357
13.2.4 在丟失根數據文件后恢復 357
13.2.5 從PDB數據文件恢復 359
13.3 使用數據恢復顧問 361
13.3.1 數據故障 361
13.3.2 PITR場景 365
13.3.3 使用閃回CDB 365
13.3.4 識別塊損壞 366
13.4 使用RMAN復制PDB 367
13.5 本章小結 367
13.6 本章知識點回顧 368
13.7 自測題 369
13.8 自測題答案 370
第14章 管理性能 373
14.1 監視CDB和PDB中的操作和性能 374
14.1.1 調整方法 374
14.1.2 確定CDB的大小 375
14.1.3 使用內存顧問 377
14.1.4 利用AWR報表 378
14.2 管理PDB之間和PDB內部的資源分配 378
14.2.1 使用份額管理PDB之間的資源 379
14.2.2 創建和修改資源管理器計劃 379
14.3 執行數據庫重放 383
14.3.1 分析源數據庫的工作負載 383
14.3.2 捕捉源數據庫工作負載 384
14.3.3 處理目標系統上的工作負載 384
14.3.4 在目標CDB上重放工作負載 384
14.3.5 確認重放結果 384
14.4 本章小結 385
14.5 本章知識點回顧 385
14.6 自測題 387
14.7 自測題答案 388
第15章 有關實用程序:Data Pump、SQLLoader和審核 391
15.1 使用Data Pump 392
15.1.1 從非CDB導出后導入PDB 393
15.1.2 PDB之間的導出和導入 396
15.1.3 從PDB導出后導入非CDB 397
15.1.4 完整可傳輸導出和導入 397
15.1.5 通過網絡傳輸數據庫 397
15.2 使用SQLLoader 398
15.3 審核操作 400
15.3.1 創建審核策略 400
15.3.2 查看審核策略 401
15.3.3&nbs
第1 章
數據庫備份解決方案和ASM
認證目標
● 解釋 Oracle 的備份和恢復解決方案
OCP 認證考試指南(1Z0-063) Oracle Database 12c 高級管理
2
ASM(Automatic Storage Management,自動存儲管理)是一項十分重要的Oracle 數據庫技術,
它適用于各種環境,甚至適用于僅有一個數據庫和一個數據庫實例的環境。ASM 是所有健壯
而完善的備份解決方案的關鍵所在。通過集成服務器文件系統和Oracle 數據庫文件專用的卷管
理器,磁盤管理和調整成為一項輕松愉悅的任務:ASM 會對每個文件對象實施條帶化和鏡像
化處理來優化性能。此外,可在卷聯機時完成幾乎所有ASM 卷管理任務,例如在用戶訪問某
個卷時,將此卷擴展或移至另一磁盤上,而這幾乎不影響性能。ASM 群集的多路復用功能通
常比手動將重要文件和備份保存在不同物理磁盤的做法更高效,并且較大限度地減少了丟失數
據的可能性。還可使用一個ASM 實例及對應的磁盤組服務多個數據庫實例,以盡量壓縮磁盤
硬件方面的投資。
在詳細闡釋ASM 的工作原理以及如何在你的環境中使用ASM 前,本章討論了可用的
Oracle 備份解決方案,然后簡要介紹了Oracle Database 體系結構,包括實例內存結構、邏輯數
據庫結構和物理數據庫結構。為了了解和領會ASM 的工作原理,以及ASM 對于廣泛的
Oracle 備份和恢復解決方案有怎樣的貢獻,需要透徹了解Oracle Database 體系結構。
1.1 解釋Oracle 的備份和恢復解決方案
在具體了解 ASM 以及各種備份和恢復場景之前,需要透徹地了解Oracle Database 及其相
關聯的內存和進程結構。本節首先介紹Oracle 物理存儲結構,包括數據文件、控制文件、重做
日志文件和歸檔重做日志文件,以及運行Oracle Database 需要的非數據庫文件,如初始化文件
和日志文件。本節接著介紹Oracle 實例中的重要內存結構,以及物理存儲結構與內存結構之間
的關系。將介紹Oracle Database 12c 中官方推薦的備份和恢復解決方案。
1.1.1 Oracle 邏輯存儲結構
Oracle Database 中的數據文件被組合成一個或多個表空間。數據文件是物理結構,可進而
分成區間和塊。一個表空間有點像一組數據文件的邏輯包裝器。表空間包含粒度更小的邏輯數
據庫結構,如表和索引。使用的另一個術語是段,在Oracle Database 中,此術語用來描述表或
索引占用的物理空間。Oracle Database 的條塊劃分方式允許更高效地控制磁盤空間的使用。圖
1-1 顯示數據庫中邏輯存儲結構之間的關系。
1. 表空間
Oracle表空間由一個或多個數據文件組成;數據文件必須正好是一個表空間的一部分。
Oracle Database 12c的安裝會至少創建兩個表空間:SYSTEM和SYSAUX表空間。Oracle
Database 12c的默認安裝創建6個表空間。
Oracle Database 12c(以及自Oracle Database 10g 以來的數據庫)允許創建名為“大文件表空
間”的特殊類型的表空間,此表空間的大小可達128TB。使用大文件后,表空間管理對于數據
庫管理員(DBA)透明;也就是說,DBA 可將表空間作為一個單元進行管理,而無須考慮
底層數據文件的大小和結構。
第1 章 數據庫備份解決方案和ASM
3
數據庫
區間1
區間2
段
塊
表空間
段1
SYSTEM表空間 USERS 表空間SYSAUX表空間
段3
段5
段2
段4
段6
圖1-1 邏輯存儲結構
使用Oracle 管理文件(Oracle Managed Files,OMF),管理表空間數據文件將變得更容易。
有了OMF,DBA 在文件系統中指定保存數據文件、控制文件和重做日志文件的一個或多個位
置,Oracle 會自動處理這些文件的命名和管理。
如果表空間是臨時的,只是表明表空間中保存的段是臨時的,而表空間本身是長期的。可
將臨時表空間用于排序操作和僅在用戶會話期間存在的表,為這些操作類型專門指定表空間有
助于減少臨時段和另一個表空間中存儲的長期段(如表)的I/O 爭用。
表空間可以是字典管理的表空間或本地管理的表空間。在字典管理的表空間中,會將區間
管理記錄在數據字典表中。因此,即使所有應用程序表在USERS 表空間中,仍然是訪問SYSTEM
表空間來管理應用程序表上的數據操作語言(Data Manipulation Language,DML)。由于所有用
戶和應用程序必須使用SYSTEM 表空間來管理區間,對于密集執行寫操作的應用程序而言,
這成為一個潛在的瓶頸。而在本地管理的表空間中,Oracle 在表空間的每個數據文件的頭中維
護一個位圖來跟蹤空間可用性。只在數據字典中管理配額,這極大地降低了數據字典表的爭
用率。
從Oracle 9i 開始,如果在本地管理SYSTEM 表空間,那么,如果要在其他所有表空間上
同時執行讀寫操作,則必須在本地管理這些表空間。在本地管理SYSTEM 表空間的情況下,
數據庫中字典管理的表空間必須是只讀的。
2. 塊
數據庫塊是Oracle 中的最小存儲單元。塊的大小是數據庫給定表空間中的特定存儲字
節數。
為提高磁盤I/O 性能的效率,Oracle 塊的大小通常是操作系統塊大小的倍數。默認塊大小
由Oracle 初始化參數DB_BLOCK_SIZE 指定。大多數操作系統允許在數據庫的其他表空間中
定義另外4 種塊大小。一些高端操作系統允許使用5 種塊大小。SYSTEM、SYSAUX 和任何臨
OCP 認證考試指南(1Z0-063) Oracle Database 12c 高級管理
4
時表空間中的塊大小必須是DB_BLOCK_SIZE。
3. 區間
區間是下一個級別的數據庫邏輯分組。一個區間由一個或多個數據庫塊組成。擴大數據庫
對象時,為對象添加的空間作為區間進行分配。Oracle 在數據文件級別管理區間。
4. 段
下一個邏輯分組級別是段。段是一組區間,這些區間形成Oracle 視為一個單元的數據庫對
象,如表或索引。因此,段通常是數據庫最終用戶將要處理的最小存儲單元。Oracle 數據庫中
的4 種段類型是:數據段、索引段、臨時段和撤消段。
數據庫中的每個表保存在單個數據段中,一個數據段由一個或多個區間組成;對于分區表
或群集表,Oracle 會為表分配多個段。數據段包括LOB(large object,大對象)段,此段存儲表
段中的LOB 定位器列引用的LOB 數據(如果未將LOB 以內聯方式存儲在表中)。
每個索引存儲在自己的索引段中。與分區表一樣,分區索引的每個分區存儲在專門的段中。
這種類別包括LOB 索引段。表的非LOB 列、表的LOB 列和LOB 的相關索引均可以保存在不
同的表空間(不同的段)中以提高性能。
如果用戶的SQL 語句需要磁盤空間來完成操作,例如內存中容納不下的排序操作,Oracle
會分配臨時段。僅在執行SQL 語句期間存在臨時段。
從Oracle 10g 開始,只有SYSTEM 表空間中存在手動回滾段,但DBA 通常不必維護SYSTEM
回滾段。在前面的Oracle 版本中,會創建回滾段,以便在回滾事務時保存數據庫DML 操作的
舊值,并維護“舊”映像數據,以便為其他訪問此表的用戶提供表數據的讀一致性視圖。在恢
復數據庫期間,為回滾在數據庫實例崩潰或異常終止時處于活動狀態的未提交事務,也會使用
回滾段。
在Oracle 10g 到12c 中,自動撤消管理(Automatic Undo Management)處理撤消表空間中的
回滾段的自動分配和管理。在撤消表空間中,撤消段的結構與回滾段類似,只是這些段的管理
細節由Oracle 控制,而非由DBA 管理(這樣做效率通常不高)。從Oracle9i 開始使用自動撤消
管理,但在Oracle 10g 中仍然可以使用手動管理的回滾段。但是,從 Oracle 10g 開始不贊成使
用此手動功能。在Oracle Database 12c 中,會默認啟用自動撤消管理;另外,提供了
PL/SQL(Procedural Language/Structured Query Language,過程語言/結構化查詢語言)過程來幫助
調整UNDO 表空間的大小。
提示:
如果開始使用 Oracle Database 12c,你真正需要了解的是:手動回滾是多余的,
在未來版本中會予以取消。另外,自動撤消管理是Oracle Database 12c 的一項
標準功能。
1.1.2 Oracle 物理存儲結構
Oracle Database 使用磁盤上的多個物理存儲結構來保存和管理用戶事務的數據。其中一些
存儲結構,如數據文件、重做日志文件和歸檔重做日志文件保存真正的用戶數據。而其他一些
結構,如控制文件,則維護數據庫對象的狀態。基于文本的警報和跟蹤文件包含數據庫中的例
第1 章 數據庫備份解決方案和ASM
5
行事件和錯誤條件的記錄信息。圖1-2 顯示這些物理結構與邏輯存儲結構之間的關系。數據庫
文件是控制文件、數據文件或者聯機重做日志文件。其他對于數據庫的成功運行并不重要的文
件包括參數文件、口令文件、備份文件、歸檔重做日志文件、跟蹤文件和警報日志文件。
內存結構
后臺進程
數據庫
數據文件 控制文件 重做日志文件歸檔重做日志文件
數據文件1 數據文件2 數據文件3 數據文件4
SYSAUX
表空間
USERS 表空間
SYSTEM
表空間
數據庫
物理數據庫結構
實例
邏輯數據庫
結構
圖1-2 Oracle 物理存儲結構
1. 數據文件
Oracle Database 至少必須包含一個數據文件。一個Oracle 數據文件對應于磁盤上的一個物
理操作系統文件。Oracle Database 中的每個數據文件正好是一個表空間的成員。但是,一個表
空間可以包含多個數據文件。大文件表空間是例外情況,這個表空間正好包含一個數據文件。
如果DBA 使用AUTOEXTEND 參數創建數據文件,那么在空間不足的情況下,Oracle 數
據文件可以自動擴展。另外,使用ALTER DATABASE DATAFILE 命令,可以手動擴展事件
文件。DBA 還可以使用MAXSIZE 參數來限制給定數據文件的擴展量。在任意一種情況下,
數據文件的大小最終都會受到其所在的磁盤容量大小的限制。
數據文件是數據庫中所有數據的最終棲息之地。數據文件中頻繁訪問的塊都會緩存到內存
中。同樣,新數據塊并非直接寫入數據文件,而是根據數據庫寫入器進程的激活時間寫入到數
據文件中。在用戶的事務完成前,會將事務的更改寫入重做日志文件。
OCP 認證考試指南(1Z0-063) Oracle Database 12c 高級管理
6
2. 重做日志文件
每次在表、索引或其他Oracle 對象中添加、刪除或更改數據時,都會將一個條目寫入當前
的重做日志文件中。由于Oracle 以循環方式重用重做日志文件,Oracle 數據庫至少必須有兩個
重做日志文件。在一個重做日志文件填滿重做日志條目時,如果實例恢復仍需要使用此當前日
志文件,就將此文件標記為ACTIVE;如果實例恢復不需要此文件,就將其標記為INACTIVE。
接著會按順序從頭使用下一個日志文件,并將此文件標記為CURRENT。
在理想狀況下,永遠都不會使用重做日志文件中的信息。但是,如果發生了停電故障或其
他一些服務器故障,從而導致Oracle 實例失敗,那么數據庫緩沖區緩存中的新數據塊或更新的
數據塊可能尚未寫入到數據文件中。重新啟動Oracle 實例時,會在前滾操作中將重做日志文件
中的條目應用于數據庫數據文件,以便將數據庫的狀態恢復到發生故障時的狀態。
為了能夠在一個重做日志組的一個重做日志文件丟失時執行恢復,可以在不同的物理磁盤
上保存重做日志文件的多個副本。你將在本章后面了解到,可以實現重做日志文件、歸檔日志
文件和控制文件的多路復用,以便確保Oracle 數據庫的可用性和數據完整性。簡而言之,多路
復用的意思是擁有多個結構副本,以便提高性能和可用性。
3. 控制文件
Oracle Database 至少有一個控制文件,此文件維護數據庫的元數據。元數據是數據庫本身
的物理結構的數據。除其他外,控制文件還包含數據庫名稱、創建數據庫的時間,以及所有數
據文件和重做日志文件的名稱和地址。另外,控制文件維護恢復管理器(Recovery Manager,
RMAN)使用的信息,如持久性RMAN 設置以及數據庫上已經執行的備份類型。每當數據庫結
構發生任何改動時,更改信息會立即在控制文件中反映出來。
由于控制文件對數據庫的運行如此重要,因此也可以對控制文件進行多路復用(可以復制
一個或多個控制文件)。但是,無論有多少個控制文件的副本與一個實例相關,都只有一個控
制文件主要用于檢索數據庫元數據。
ALTER DATABASE BACKUP CONTROLFILE TO TRACE 命令是另一種備份控制文件的
方式。它生成SQL 腳本,如果由于發生了災難性故障造成控制文件的所有多路復用二進制版
本丟失,則可以使用此腳本來重新創建數據庫控制文件。
還可以使用此跟蹤文件在以下情況下重新創建控制文件:需要重命名數據庫,或更改各種
數據庫限制(如果不重新創建整個數據庫,不能以其他方式更改)。
4. 歸檔日志文件
Oracle Database 可按以下兩種模式運行:ARCHIVELOG 或NOARCHIVELOG 模式。如果
數據庫處于NOARCHIVELOG 模式,則循環重用重做日志文件(又稱聯機重做日志文件)將意味
著,在出現硬盤故障或其他與介質相關的故障時,重做條目(以前事務的內容)不再可用。以
NOARCHIVELOG 模式運行可以在實例發生故障或系統崩潰時保護數據庫的完整性,因為只能
在聯機重做日志文件中使用已經提交但尚未寫入數據文件的所有事務。因此,崩潰恢復的范圍
僅限于聯機重做日志中的當前條目。如果在最早的重做日志文件之前數據文件最近一次備份發
生故障,將無法恢復數據庫。
與此相反,ARCHIVELOG 模式將填滿的重做日志文件發送到一個或多個指定目標,可以
第1 章 數據庫備份解決方案和ASM
7
在數據庫介質發生故障時,在任何特定的時間點使用備份文件重新構造數據庫。例如,如果包
含數據文件的硬盤發生崩潰,有了近期的備份數據文件、重做日志文件和歸檔日志文件(在備
份后生成),則可將數據庫的內容恢復到崩潰前的一個時間點。
為填滿的重做日志文件使用多個歸檔日志目標對于Oracle 中名為Oracle Data Guard(以前
稱為Oracle Standby Database)的高可用性功能至關重要。
5. 初始化參數文件
啟動數據庫實例時,會為 Oracle 實例分配內存,并會打開兩類初始化參數文件中的一個:
基于文本的文件init.ora(通常稱為init.ora 或PFILE)或服務器參數文件(SPFILE)。實例首
先在操作系統的默認位置( 例如, Unix 上的$ORACLE_HOME/dbs) 查找SPFILE 文件
spfile.ora 或spfile.ora。如果這些文件都不存在,實例會查找名為init.ora 的PFILE。
另外,STARTUP 命令可顯式指定在啟動Oracle 時使用的PFILE。
無論采用哪種格式,初始化參數文件都指定跟蹤文件、控制文件和填滿的重做日志文件等
的位置。它們還設置系統全局區域(System Global Area,SGA)中各種結構的大小,以及允許多
少用戶同時連接到數據庫。
一直到Oracle Database 9i,只能使用init.ora 文件來指定實例的初始化參數。雖然可以使用
文本編輯器方便地進行編輯,但是此文件存在一些缺點。如果在命令行使用ALTER SYSTEM
命令更改動態系統參數,DBA 必須記住更改init.ora 文件,以便下次重新啟動實例時新參數值
可以生效。
SPFILE 使DBA 可以更方便高效地管理參數。如果運行的實例正在使用SPFILE,那么,
如果任何ALTER SYSTEM 命令更改初始化參數,將自動更改SPFILE 中的初始化參數(可以僅
針對運行的實例,也可能針對兩者)。無須編輯SPFILE 文件,甚至也無法對其進行編輯(否則
會損壞SPFILE)。
雖然本質上無法對參數文件或SPFILE 進行鏡像操作,但可將SPFILE 備份為init.ora 文件。
應該使用傳統的操作系統命令備份Oracle 實例的init.ora 和SPFILE(對于SPFILE,可以使用恢
復管理器)。
使用DBCA(Database Configuration Assistant,數據庫配置助手)工具來創建數據庫時,會默
認創建SPFILE。
6. 警報和跟蹤日志文件
出現故障時,Oracle 可以而且經常會將消息寫到警報日志文件,對于后臺進程或用戶會話,
則會寫入跟蹤日志文件。
警報日志文件位于BACKGROUND_DUMP_DEST 初始化參數指定的目錄中,包含最重要
的例行狀態消息以及重要錯誤條件。在啟動或關閉數據庫時,會將消息以及一系列未采用默認
值的初始化參數記錄到警報日志中。還會記錄DBA 發送的任何ALTER DATABASE 或ALTER
SYSTEM 命令。此處還會記錄涉及表空間及其數據文件的操作,例如,添加表空間、刪除表空
間以及將數據文件添加到表空間中。錯誤條件,例如表空間的空間不足或重做日志文件受損等
這些都是重要條件)也會記錄在此處。
Oracle 實例后臺進程的跟蹤文件也位于BACKGROUND_DUMP_DEST 中。例如,
PMON(process monitor,進程監視器)和SMON(system monitor,系統監視器)的跟蹤文件包含錯
OCP 認證考試指南(1Z0-063) Oracle Database 12c 高級管理
8
誤發生時間的條目,或SMON 需要執行實例恢復操作的時間的條目。QMON(queue monitor,
隊列監視器)的跟蹤文件包含何時產生新進程的消息。
也為各個用戶會話或數據庫連接創建跟蹤文件,這些跟蹤文件位于初始化參數USER_
DUMP_DEST 指定的目錄中。在兩種情況下為用戶進程創建跟蹤文件:由于權限問題,用戶會
話發生了一些類型的錯誤或用戶進程的運行空間不足。也可以使用以下的命令顯式創建跟蹤
文件,以幫助診斷問題:
ALTER SESSION SET SQL_TRACE=TRUE;
為用戶執行的每條SQL 語句生成跟蹤信息,在調整用戶的SQL 語句時,跟蹤信息會起到
幫助作用。
可以隨時刪除或重命名警報日志文件;下次生成警報日志消息時會重新創建此文件。DBA
經常通過操作系統機制(Oracle Database 內部調度機制)或Oracle Enterprise Manager 的調度程
序,設置一項日常批處理作業,在日常工作中重命名和歸檔警報日志。
從Oracle Database 11g 第1 版開始,實例的診斷信息被集中到初始化參數DIAGNOSTIC_
DEST 指定的單個目錄中,并且忽略USER_DUMP_DEST 和BACKGROUND_DUMP_DEST。
7. 備份文件
可以從多個來源,例如操作系統復制命令或Oracle RMAN 生成備份文件。如果DBA 執行
冷備份,那么備份文件只是數據文件、重做日志文件、控制文件和歸檔重做日志文件等的操作
系統副本。
除了數據文件的逐位映像副本(RMAN 的默認操作)外,RMAN 可以生成數據文件、控制文
件、歸檔重做日志文件和特殊格式的SPFILE 的完整和增量備份,稱為備份集,備份集僅供
RMAN 讀取。RMAN 備份集備份通常比原始的數據文件小,因為RMAN 不備份未使用過的塊。
RMAN 是管理備份和恢復的標準,但在RMAN 備份處理會對性能產生不利影響的情況下除外。
1.1.3 Oracle 內存結構
Oracle 使用服務器的物理內存來保存Oracle 實例的很多信息:Oracle 可執行代碼本身、會
太深入啦
好書,多出好書
到貨速度快,贊贊贊贊贊贊贊贊贊贊贊贊
正版圖書,非常好
非常棒,希望店家繼續活動
這個題庫還是不錯的,書的大小厚度都適中,然后,看起來了要