第1部分 集群理论篇 2
第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.4IO隔离(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.1ASM实例 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部分 实战篇 150
第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.4oficfg命令 155
6.3.5工程中解决不能识别心跳网络的故障 157
6.4集群层 159
6.4.1crsctl 159
6.4.2OCR命令系列 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 RecoveryArea 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 Recove 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.1AUM(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