內容簡介
《大話Oracle RAC:集群 高可用性 備份與恢復》全書分為兩個部分,共14章,第1部分是集群理論篇,這部分從集群基礎知識入手,通過分析集群環境和單機環境的不同,介紹了集群環境的各個組件及其作用,以及集群環境的一些專有技術,包括Oracle Clusterware、Oracle Database、ASM、Cache Fusion等。第2部分是實踐篇,每一章都針對RAC的一個知識點展開講解,包括Oracle Clusterware的維護、HA與LB、備份、恢復、Flashback家族、RAC和Data Guard的結合使用、RAC和Stream的結合使用,最後對ASM進行深入介紹,並給出性能調整的指導思想。
《大話Oracle RAC:集群 高可用性 備份與恢復》按照“發現問題→解決問題→實踐與理論相結合”的方式進行介紹,首先對現實問題進行分析,然後提供合適的解決方案,最後自然地引出Oracle中的理論知識點,這種講解方法能夠有效地降低閱讀難度,幫助讀者更好地掌握相關技能。
《大話Oracle RAC:集群 高可用性 備份與恢復》可以作為資料庫開發人員、資料庫管理員、資料庫初學者及其他資料庫從業人員的工作參考手冊,也可以作為大中專院校相關專業師生的參考用書和相關培訓機構的培訓教材。
目錄
目 錄
第1部分 集群理論篇
第1章 RAC初體驗 2
1.1 本書使用環境 3
1.1.1 硬體環境 3
1.1.2 軟體環境 4
1.1.3 本書使用的環境 6
1.2 如何在PC機上搭建RAC環境 7
1.2.1 需要下載的軟體 7
1.2.2 安裝過程 8
1.3 任務列表 16
1.4 規劃階段 17
1.4.1 確認主機名和3個IP位址 17
1.4.2 存儲方案選型 17
1.5 實施階段 19
1.5.1 主機配置 19
1.5.2 安裝Oracle Clusterware 27
1.5.3 安裝Oracle Database 33
1.5.4 配置Listener 35
1.5.5 創建ASM 38
1.5.6 創建資料庫 40
1.6 客戶端測試 43
1.6.1 客戶端配置 43
1.6.2 體驗Failover 44
1.6.3 體驗LoadBalance 45
1.6.4 修改歸檔模式 46
第2章 集群、RAC和MAA 48
2.1 什麼是集群 48
2.1.1 系統可靠性 49
2.1.2 系統性能 49
2.1.3 集群的技術基礎 50
2.2 集群術語 51
2.2.1 兩大關鍵特性:可擴展性和高可用性 51
2.2.2 兩大核心能力:負載均衡和故障轉移 52
2.2.3 集群組成元素 52
2.2.4 集群分類 52
2.3 Oracle的高可用架構(MAA) 53
2.3.1 MAA實例 54
2.3.2 雙機熱備——一個被遺漏的技術 55
2.4 RAC集群 56
2.4.1 存儲層 57
2.4.2 網路層 57
2.4.3 集群件層 58
2.4.4 套用層 58
2.5 RAC集群環境的特殊問題 59
2.5.1 並發控制 59
2.5.2 健忘症(Amnesia) 59
2.5.3 腦裂(Split Brain) 59
2.5.4 IO隔離(IO Fencing) 60
2.6 RAC的前世今生 61
2.6.1 Oracle Database的歷史 61
2.6.2 Oracle RAC的歷史 62
2.6.3 OPS和RAC的區別 64
2.7 RAC的好處 65
2.7.1 增加可用性 66
2.7.2 擴展性 67
2.7.3 更容易管理 67
2.7.4 其他選擇 68
2.8 小結 68
第3章 Oracle Clusterware 69
3.1 Clusterware和RAC的關係 69
3.2 Oracle Clusterware組成 70
3.2.1 磁碟檔案 70
3.2.2 Clusterware後台進程 76
3.2.3 網路組件 83
3.3 Clusterware的日誌體系 87
3.4 Clusterware和廠商集群的關係 88
3.5 小結 89
第4章 RAC原理 90
4.1 資料庫基本原理 90
4.1.1 並發訪問和數據一致性 91
4.1.2 事務和隔離級別 92
4.1.3 Oracle支持的隔離級別 93
4.2 Oracle單實例的並發控制機制 94
4.2.1 Lock 94
4.2.2 數據記錄的行級鎖 95
4.2.3 Latch 99
4.2.4 Latch和Lock對比 99
4.2.5 進一步理解 100
4.3 RAC下的並發控制 102
4.3.1 DLM中資源和鎖 103
4.3.2 Non-Cache Fusion資源 104
4.3.3 Cache Fusion資源 105
4.3.4 GRD(Global Resource Directory) 106
4.3.5 PCM Lock 107
4.3.6 Cache Fusion 108
4.3.7 RAC並發控制總結 113
4.4 RAC架構 113
4.4.1 SGA的變化 114
4.4.2 後台進程的變化 114
4.4.3 檔案 116
4.4.4 SCN 117
4.4.5 Cache Fusion、GCS、GES 118
4.5 RAC和Clusterware的互動 119
4.5.1 Clusterware層 119
4.5.2 RAC層 120
4.6 小結 123
第5章 存儲方案——ASM初步 124
5.1 Shared-Disk和Shared-Nothing架構 124
5.2 Oracle 10g RAC的存儲方案介紹 125
5.3 ASM架構 125
5.3.1 ASM實例 126
5.3.2 檔案 127
5.4 配置ASM 127
5.4.1 安裝位置 127
5.4.2 創建ASM磁碟 127
5.4.3 配置ASM實例 137
5.4.4 創建磁碟組 140
5.4.5 在資料庫中使用ASM的磁碟組 140
5.4.6 如何從遠程訪問ASM實例 141
5.5 ASM實例:將資料庫遷移到ASM 141
5.5.1 試驗說明 141
5.5.2 操作步驟 141
5.5.3 最後驗證 148
5.6 小結 148
第2部分 實戰篇
第6章 RAC維護工具集 150
6.1 Oracle Clusterware工具集 150
6.2 節點層 150
6.3 網路層 151
6.3.1 公有網路 151
6.3.2 私有網路 151
6.3.3 私有網路的參數調整 154
6.3.4 oficfg命令 155
6.3.5 工程中解決不能識別心跳網路的故障 157
6.4 集群層 159
6.4.1 crsctl 159
6.4.2 OCR命令系列 164
6.4.3 一個Bug引起的系統重啟 171
6.5 套用層 185
6.5.1 crs_stat 185
6.5.2 onsctl 188
6.5.3 srvctl 193
6.5.4 恢復 199
6.6 小結 202
第7章 HA和LB 203
7.1 什麼是高可用性 203
7.2 Failover 204
7.2.1 Client-Side Connect Time Failover 204
7.2.2 TAF(Transparent Application Failover) 204
7.2.3 Client-Side Failover和TAF的對照試驗 205
7.2.4 Server-Side TAF 208
7.2.5 深入TAF細節 214
7.3 Oracle Clusterware HA框架 221
7.3.1 術語介紹 221
7.3.2 配置命令 223
7.3.3 完整實例 228
7.4 LoadBalance 232
7.4.1 Connection Balancing 232
7.4.2 利用Service分散負載 235
7.5 測試LoadBalance 236
7.5.1 通過Listener日誌區分路由來源 236
7.5.2 測試方法 237
7.5.3 測試過程 238
7.6 小結 242
第8章 備份 243
8.1 概述 243
8.1.1 歸檔模式和非歸檔模式 243
8.1.2 備份分類 245
8.1.3 User-Managed Backup 246
8.2 使用Flash Recovery Area 248
8.2.1 配置Flash Recovery Area 249
8.2.2 Flash Recovery Area的空間監控 249
8.3 RMAN架構 250
8.3.1 Target Database 250
8.3.2 Catalog Database 251
8.3.3 通道(Channel) 251
8.3.4 閃回恢復區(Flash Recovery Area) 251
8.3.5 備份集(Backup Set)和拷貝(Copy) 251
8.3.6 介質管理器 252
8.3.7 連線到資料庫 252
8.4 使用RMAN 253
8.4.1 RMAN工具的使用方法 253
8.4.2 RMAN配置 255
8.5 完全備份和增量備份 264
8.5.1 完全備份 264
8.5.2 增量備份 267
8.5.3 其他RMAN命令 269
8.6 RAC的備份實例 275
8.7 小結 278
第9章 恢復 280
9.1 Oracle事務基本原理 280
9.1.1 SCN 282
9.1.2 檢查點 284
9.2 日誌 286
9.2.1 日誌內容 286
9.2.2 日誌執行緒(Redo Thread) 288
9.2.3 日誌寫 288
9.3 恢複種類 289
9.3.1 Instance Recovery 291
9.3.2 Crash Recovery 291
9.3.3 Media Recovery 295
9.3.4 Online Block Recovery 295
9.4 介質恢復 296
9.4.1 完全恢復 296
9.4.2 不完全恢復 300
9.4.3 恢復到單實例 312
9.5 其他一些有用的恢復演示 319
9.5.1 從自動備份的中恢復spfile 319
9.5.2 控制檔案的恢復 320
9.6 利用恢復的控制檔案進行資料庫恢復 321
9.6.1 使用alter database open resetlogs的場合 321
9.6.2 重建控制檔案 321
9.6.3 使用using backup controlfile的場合 322
9.6.4 例子1:使用備份的控制檔案做恢復 322
9.6.5 例子2:用noresetlogs方法重建控制檔案 326
9.6.6 例子3:用resetlogs方法重建控制檔案 329
9.7 DBID的重要性和獲得DBID的方法 330
9.7.1 通過數據檔案、日誌檔案(在線上或者歸檔) 330
9.7.2 根據自動備份的控制檔案得到 331
9.8 小結 331
第10章 其他恢復技術 332
10.1 數據塊恢復 332
10.2 如何檢查數據塊一致性 333
10.2.1 使用初始化參數 333
10.2.2 DBV工具 334
10.2.3 Analyze命令 336
10.2.4 RMAN工具 336
10.2.5 dbms_repair包 337
10.3 模擬數據塊不一致 337
10.4 數據塊不一致處理辦法 341
10.4.1 收集信息 342
10.4.2 設計恢複方法 343
10.4.3 恢復操作 344
10.5 數據塊恢復實例 346
10.6 Flashback家族介紹 353
10.7 Flashback Database 354
10.7.1 Flashback Database架構 354
10.7.2 啟用Flashback Database 354
10.7.3 Flashback Database 356
10.7.4 命令和視圖 359
10.8 Flashback Drop 360
10.8.1 Tablespace Recycle Bin 360
10.8.2 Flashback Drop操作 361
10.8.3 Recycly Bin的維護 363
10.9 Flashback Query和Flashback Table 364
10.9.1 Oracle 9i的Flashback Query 364
10.9.2 Flashback Version Query 365
10.9.3 Flashback Transaction Query 379
10.9.4 Flashback Table 381
10.9.5 UNDO Retntion 384
10.10 回滾段損壞後的修復 385
10.10.1 AUM(Automatic Undo Management) 385
10.10.2 如何處理回滾段損壞 397
10.11 小結 410
第11章 RAC和Data Guard 411
11.1 Data Guard介紹 411
11.1.1 Data Guard架構 412
11.1.2 日誌傳送(Redo Send) 412
11.1.3 日誌接收(Redo Receive) 414
11.1.4 日誌套用(Redo Apply) 415
11.1.5 Data Guard環境中的重要進程 415
11.1.6 Standby Log File(SRL) 416
11.1.7 數據保護模式 417
11.1.8 自動裂隙檢測和解決 419
11.1.9 實時恢復(Real-Time Apply,RTA) 420
11.1.10 RTA引發的思考——關於同步的速度 421
11.1.11 如何監控恢復的性能 421
11.2 RAC和Standby配置實例 422
11.2.1 RAC Primary和Single Standby 423
11.2.2 RAC Primary和RAC Standby 433
11.3 角色轉換 444
11.3.1 Switchover 445
11.3.2 Failover 448
11.3.3 Failover步驟 452
11.3.4 Failover的例子 454
11.3.5 Failover之收尾 460
11.4 Standby環境下維護在線上日誌 464
11.4.1 手工添加日誌檔案 464
11.4.2 手工刪除日誌檔案 465
11.4.3 通過控制檔案重新同步 465
11.5 小結 466
第12章 RAC和Stream Replication 467
12.1 Stream的工作原理 467
12.2 Data Guard和Stream對比 468
12.3 RAC Stream配置實例 469
12.3.1 Single(Source)和RAC(Target) 470
12.3.2 RAC對RAC的複製 474
12.3.3 STRMMON工具 492
12.4 小結 494
第13章 深入ASM 495
13.1 非ASM的存儲結構 495
13.2 ASM存儲結構 496
13.3 ASM檔案系統 497
13.3.1 ASM Metadata 497
13.3.2 Physical Metadata 498
13.3.3 Virtual Metadata 499
13.3.4 Disk Recovery 501
13.3.5 條帶化(ASM Striping) 501
13.4 ASM中的檔案布局規律 502
13.4.1 OMF 502
13.4.2 OFA 505
13.4.3 FRA(Flash Recovery Area)和OMF 506
13.4.4 ASM檔案模板(ASM File Template) 507
13.4.5 ASM別名(ASM File Alias) 507
13.5 RDBMS和ASM之間的互動 522
13.6 ASM的實例恢復 524
13.7 ASM和OS Filesystem之間互動 524
13.7.1 dbms_file_transfer包 525
13.7.2 RMAN的CONVERT方法 530
13.7.3 ASM和TTS 530
13.8 ASM的限制 533
13.9 小結 533
第14章 性能與RAC 534
14.1 RAC性能的若干特點 535
14.1.1 RAC環境的一些特殊注意點 537
14.1.2 RAC特有的性能指標 538
14.1.3 對於延遲時間的深入分析 542
14.1.4 RAC特有的等待事件 545
14.2 AWR 545
14.2.1 啟用AWR 546
14.2.2 修改AWR配置 546
14.2.3 產生AWR報告 546
14.3 ASH 547
14.4 GC的調整策略 550
14.5 SQL調整策略 551
14.5.1 SQL語句的執行過程 552
14.5.2 SQL性能調整的基本方法 552
14.5.3 PL/SQL和SQL 555
14.6 小結 557