第一部分 集群管理软件 2
第1章 Oracle集群技术介绍 2
1.1 集群技术简介 2
1.1.1 高可用集群 2
1.1.2 负载均衡集群 3
1.1.3 高性能计算集群 3
1.1.4 share-nothing结构 4
1.1.5 share-everything结构 4
1.2 Oracle集群技术简介 5
1.2.1 Oracle RAC历史 5
1.2.2 小结 9
总结 10
第2章 安装Oracle集群 11
2.1 安装集群管理软件 11
2.1.1 安装前准备 11
2.1.2 安装软件 12
2.1.3 配置集群 13
2.2 安装集群管理软件中的重要部分 13
2.2.1 角色任务分离 14
2.2.2 中央目录 15
2.2.3 cluvfy工具 17
2.2.4 root.sh脚本 20
总结 29
第3章 11gR2集群新增组件 30
3.1 OHAS 31
3.1.1 集群启动方式 31
3.1.2 资源管理方式 39
3.1.3 ohasd管理的资源 47
3.2 案例分析 55
3.2.1 由于丢失OLR导致的节点无法启动 55
3.2.2 由于HAIP导致的数据库无法启动 56
总结 58
第4章 11gR2集群新增的集群守护进程 59
4.1 mdns 59
4.1.1 mdnsd.log 60
4.1.2 gpnpd.log 61
4.1.3 ohasd.log 62
4.2 gpnp 63
4.2.1 gpnp wallet 63
4.2.2 gpnp profile 63
4.2.3 gpnpd守护进程 65
4.2.4 gpnpd.log实例 66
4.3 gipc 68
4.3.1 gipc的概念和功能 68
4.3.2 gipcd.log实例 69
4.4 DiskMON 73
4.5 CTSS 73
4.6 cssdagent和cssdmonitor 77
4.7 案例分析 78
4.7.1 由于同一个子网中存在同名集群导致的gpnp无法启动 78
4.7.2 由gipc进程导致的节点无法启动 81
总结 87
第5章 CSS部分 88
5.1 CSS组件的启动顺序 88
5.1.1 ocssd启动顺序 88
5.1.2 cssd启动日志分析 89
5.2 集群心跳机制 98
5.2.1 网络心跳 98
5.2.2 磁盘心跳 100
5.2.3 本地心跳 102
5.2.4 集群重新配置场景 104
5.2.5 术语和参数简介 111
5.3 CSS组管理 113
5.3.1 ASM实例关闭 114
5.3.2 ASM磁盘组被卸载 118
5.4 11g CSS新特性 120
5.4.1 成员终止升级 120
5.4.2 Rebootless Restart 124
5.5 案例分析 127
5.5.1 AIX平台上著名的bug 13940331导致的节点重启问题 127
5.5.2 典型的由于丢失网络心跳导致的集群脑裂 134
5.5.3 由于OS性能问题导致的oprocd进程重启节点 138
5.5.4 由于OS层面的套接字参数设置导致的ORA-29701错误 141
总结 145
第6章 CRS部分 146
6.1 CRSD功能介绍 146
6.1.1 10gR2版本 146
6.1.2 11gR2版本 172
6.2 案例分析 192
6.2.1 由于CVU导致的VIP无法漂移 192
6.2.2 由于著名的bug10058182导致的CRSD挂起 195
6.2.3 由于CRSD工作方式导致的数据库实例无法被关闭 197
总结 203
第7章 Oracle集群管理软件的启动顺序 204
7.1 OHAS层面 205
7.2 CSS层面 210
7.3 CRSD层面 216
7.4 GI的关闭顺序 223
7.5 集群的套接字文件和网络验证 224
7.5.1 套接字文件 225
7.5.2 网络验证 226
7.5.3 常用的网络检查命令和输出 226
总结 230
第8章 集群诊断工具概述 231
8.1 diagcollection.p1 231
8.1.1 10gR2和11gR1版本 231
8.1.2 11gR2版本 232
8.2 orachk 233
8.2.1 简介 233
8.2.2 安装并运行 234
8.2.3 升级检查 236
8.2.4 检查报告 237
8.3 TFA 239
8.3.1 简介 239
8.3.2 安装和使用 239
8.3.3 手动运行TFA 242
8.4 OSWbb 242
8.4.1 安装和卸载OSWbb 243
8.4.2 配置、运行和停止OSWbb 243
8.4.3 OSWbb搜集的信息 244
总结 246
第9章 ASM基础 247
9.1 ASM的功能和架构 248
9.1.1 ASM功能 248
9.1.2 磁盘组 248
9.2 ASM实例 254
9.2.1 初始化参数文件 254
9.2.2 内存结构 255
9.2.3 后台进程 256
9.2.4 ASM实例启动顺序 256
9.3 数据库和ASM实例通信 258
9.3.1 基本概念 258
9.3.2 后台进程 259
9.3.3 基本操作 261
9.4 OCR/VF和ASM磁盘组 261
9.4.1 存放方式 262
9.4.2 Quorum disk 264
9.5 案例分析 265
总结 270
第二部分 RAC数据库软件 272
第10章 解析内存融合技术 272
10.1 RAC和单实例数据库的区别 272
10.1.1 内存结构 273
10.1.2 后台进程 274
10.1.3 物理数据库 275
10.1.4 小结 278
10.2 内存融合概念 278
10.2.1 全局资源目录 278
10.2.2 资源和锁 280
10.2.3 主节点 284
10.2.4 消息机制 286
10.3 内存融合的过程 289
10.3.1 非PCM资源的访问过程 289
10.3.2 PCM资源的访问过程 294
10.4 SCN的传播与log file sync 310
10.4.1 SCN的传播方式 310
10.4.2 log file sync等待事件 316
10.5 DRM和read mostly 317
10.5.1 DRM的基本概念 317
10.5.2 DRM过程 319
10.5.3 DRM过程示例 320
10.5.4 read mostly 325
10.6 案例分析 326
10.6.1 DRM性能问题导致的数据库实例崩溃 326
10.6.2 内存问题导致的数据库实例崩溃 329
总结 332
第11章 RAC数据库的实例管理 333
11.1 节点管理 333
11.1.1 基本概念 333
11.1.2 节点列表 334
11.1.3 实例启动和关闭 334
11.2 CGS 340
11.2.1 实例之间的心跳机制 340
11.2.2 数据库的重新配置 343
11.2.3 重新配置的类型 348
11.2.4 数据库层面的脑裂 349
11.3 实例恢复 349
11.3.1 阶段1 350
11.3.2 阶段2 352
11.3.3 阶段3 353
11.3.4 lazy remaster 353
11.3.5 实例恢复示例 353
11.4 LMHB 354
11.4.1 LMHB工作机制 354
11.4.2 LMHB终止实例示例 355
11.5 案例分析 360
总结 361
第12章 RAC性能调优 362
12.1 基本概念 362
12.1.1 RAC相关的统计信息 362
12.1.2 AWR报告中RAC相关的信息 364
12.1.3 RAC相关的等待事件 374
12.2 RAC数据库的常见性能问题 382
12.2.1 序列导致的性能问题 382
12.2.2 索引块争用导致的性能问题 388
12.2.3 过多物理读导致的性能问题 392
12.2.4 缓存尺寸导致的性能问题 395
12.3 11gR2新特性之HM 399
12.3.1 基本概念 399
12.3.2 HM工作方式 399
12.3.3 示例日志输出 403
12.4 案例分析 406
12.4.1 由于存储问题导致的数据库性能下降 406
12.4.2 由于连接风暴导致的数据库性能问题 409
总结 414
第13章 RAC中的连接管理和工作负载管理 415
13.1 数据库连接的基础知识 415
13.1.1 连接建立的过程 415
13.1.2 配置文件 416
13.1.3 数据库参数 418
13.1.4 RAC数据库的连接 420
13.2 负载均衡 430
13.2.1 客户端负载均衡 430
13.2.2 服务器端负载均衡 431
13.3 连接的故障切换 436
13.3.1 连接时故障切换 436
13.3.2 已存在连接的故障切换 437
总结 441
附录A 11gR2集群安装指南 442
附录B 11gR2集群升级指南 475