标题：大话OracleRAC集群、高可用性、备份与恢复
版权信息
书 名: 大话OracleRAC集群、  高可用性、备份与恢复 
作　者：张晓明
出版社： 人民邮电出版社
出版时间： 2009
ISBN: 9787115204158
开本： 16
定价: 65.00 元
内容简介
全书分为两个部分，共14章，第一部分是集群理论篇，这部分从集群基础知识入手，通过分析集群环境和单机环境的不同，介绍了集群环境的各个组件及其作用，以及集群环境的一些专有技术，包括OracleClusterware、OracleDatabase、ASM、CacheFusion等。第二部分是实践篇，每一章都针对RAC的一个知识点展开讲解，包括OracleClusterware的维护、HA与LB、备份、恢复、Flashback家族、RAC和DataGuard的结合使用、RAC和Stream的结合使用，最后对ASM进行深入介绍，并给出性能调整的指导思想。
《大话OracleRAC集群、高可用性、备份与恢复》按照“发现问题→解决问题→实践与理论相结合”的方式进行介绍，首先对现实问题进行分析，然后提供合适的解决方案，最后自然地引出Oracle中的理论知识点，这种讲解方法能够有效地降低阅读难度，帮助读者更好地掌握相关技能。
作者简介
张晓明OracleOGP，现用网名“石头狗“，名称来自于《和佛陀赏花去》中的故事：狗会因为人随手去出的一个东西茆而追逐，可能是一个骨头，一块肉，一个眼神。甚至是一个石头。警示一定要看清自己在追逐的东西。
上个世纪90年代末毕业于某著名的医科大学，毕业后分配到某著名医院从事治病救人的神圣工作。不幸的是，在大学最后一年的实习中我接触到了老式486，这让我魂牵梦系，再加上IT热潮对一个热血青年的巨大诱惑，我终于在行医3年后削尖了脑袋挤进了IT业。回想当年，身边有好几位来自知名医学院校的朋友和我一样义无反顾地加入IT工程师队伍，不知道这几位朋友现在安否？我在IT行业中最初是做开发，先后用过C、C++、Java等各种主流和非主流语言，热火朝天的参与过。C++和Java的网土混战，现在回想起来只有一个词评价“幼稚”，不仅是自己幼稚，整个行业也不太成熟。后转从事数据库开发，再转为数据库管理，最终将此定为自己的职业方向。今天，我把这些年来对Oracle数据库的学习和使用心得记录下来，既是对自己的一个阶段总结，也是与所有志同道合的朋友们共同分享。现任某SP公司数据库团队负责人，负责管理全国20余省市的OLTP以及公司TB级OLAP系统的开发、优化和护。精通数据库管理、备份、恢复、窖灾等设计和规划，特别是高可用、高并发、高压力数据库环境的设计和优化。
目录
第1部分集群理论篇
第1章RAC初体验
1.1本书使用环境
1.1.1硬件环境
1.1.2软件环境
1.1.3本书使用的环境
1.2如何在PC机上搭建RAC环境
1.2.1需要下载的软件
1.2.2安装过程
1.3任务列表
1.4规划阶段
1.4.1确认主机名和3个IP地址
1.4.2存储方案选型
1.5实施阶段
1.5.1主机配置
1.5.2安装OracleClusterware
1.5.3安装OracleDatabase
1.5.4配置Listener
1.5.5创建ASM
1.5.6创建数据库
1.6客户端测试
1.6.1客户端配置
1.6.2体验Failover
1.6.3体验LoadBalance
1.6.4修改归档模式
第2章什么是RAC集群
2.1集群分类
2.2集群环境的特殊问题
2.2.1并发控制
2.2.2健忘症(Amnesia)
2.2.3脑裂(SplitBrain)
2.2.4IO隔离(IOFencing)
2.3RAC集群
2.3.1存储层
2.3.2网络层
2.3.3集群件层
2.3.4应用层
2.4小结
第3章OracleClusterware
3.1Clusterware和RAC的关系
3.2OracleClusterware组成
3.2.1磁盘文件
3.2.2Clusterware后台进程
3.2.3网络组件
3.3Clusterware的日志体系
3.4小结
第4章RAC原理
4.1数据库基本原理
4.1.1并发访问和数据一致性
4.1.2事务和隔离级别
4.1.3Oracle支持的隔离级别
4.2Oracle单实例的并发控制机制
4.2.1Lock
4.2.2数据记录的行级锁
4.2.3Latch
4.2.4Latch和Lock对比
4.2.5进一步理解
4.3RAC下的并发控制
4.3.1DLM中资源和锁
4.3.2Non-CacheFusion资源
4.3.3CacheFusion资源
4.3.4GRD(GlobalResourceDirectory)
4.3.5PCMLock
4.3.6CacheFusion
4.3.7RAC并发控制总结
4.4RAC架构
4.4.1SGA的变化
4.4.2后台进程的变化
4.4.3文件
4.4.4SCN
4.4.5CacheFusion、GCS、GES
4.5RAC和Clusterware的交互
4.5.1Clusterware层
4.5.2RAC层
4.6小结
第5章存储方案——ASM初步
5.1Shared-Disk和Shared-Nothing架构
5.2Oracle10gRAC的存储方案介绍
5.3ASM架构
5.3.1ASM实例
5.3.2文件
5.4配置ASM
5.4.1安装位置
5.4.2创建ASM磁盘
5.4.3配置ASM实例
5.4.4创建磁盘组
5.4.5在数据库中使用ASM的磁盘组
5.5ASM实例：将数据库迁移到ASM
5.5.1试验说明
5.5.2操作步骤
5.5.3最后验证
5.6小结
第2部分实战篇
第6章RAC维护工具集
6.1OracleClusterware工具集
6.2节点层
6.3网络层
6.4集群层
6.4.1crsctl
6.4.2OCR命令系列
6.5应用层
6.5.1crs_stat
6.5.2onsctl
6.5.3srvctl
6.5.4恢复
6.6小结
第7章HA和LB
7.1什么是高可用性
7.2Failover
7.2.1Client-SideConnectTimeFailover
7.2.2TAF(TransparentApplicationFailover)
7.2.3Client-SideFailover和TAF的对照试验
7.2.4Server-SideTAF
7.3OracleClusterwareHA框架
7.3.1术语介绍
7.3.2配置命令
7.3.3完整实例
7.4LoadBalance
7.4.1ConnectionBalancing
7.4.2利用Service分散负载
7.5测试LoadBalance
7.5.1通过Listener日志区分路由来源
7.5.2测试方法
7.5.3测试过程
7.6小结
第8章备份
8.1概述
8.1.1备份
8.1.2恢复
8.1.3RMAN工具
8.2使用FlashRecoveryArea
8.2.1配置FlashRecoveryArea
8.2.2FlashRecoveryArea的空间监控
8.3使用RMAN
8.3.1RMAN工具的使用方法
8.3.2RMAN配置
8.4完全备份和增量备份
8.4.1完全备份
8.4.2增量备份
8.4.3其他RMAN命令
8.5RAC的备份实例
8.6小结
第9章恢复
9.1为什么Oracle数据库能够恢复
9.2日志
9.2.1日志线程(RedoThread)
9.2.2RAC的联机日志
9.3恢复种类
9.3.1InstanceRecovery
9.3.2MediaRecovery
9.3.3CrashRecovery
9.3.4OnlineBlockRecovery
9.4介质恢复
9.4.1完全恢复
9.4.2不完全恢复
9.4.3恢复到单实例
9.5小结
第10章其他恢复技术
10.1数据块恢复
10.2如何检查数据块一致性
10.2.1使用初始化参数
10.2.2DBV工具
10.2.3Analyze命令
10.2.4RMAN工具
10.2.5dbms_repair包
10.3模拟数据块不一致
10.4数据块不一致处理办法
10.4.1收集信息
10.4.2设计恢复方法
10.4.3恢复操作
10.5数据块恢复实例
10.6Flashback家族介绍
10.7FlashbackDatabase
10.7.1FlashbackDatabase架构
10.7.2启用FlashbackDatabase
10.7.3FlashbackDatabase
10.7.4命令和视图
10.8FlashbackDrop
10.8.1TablespaceRecycleBin
10.8.2FlashbackDrop操作
10.8.3RecyclyBin的维护
10.9FlashbackQuery和FlashbackTable
10.9.1Oracle9i的FlashbackQuery
10.9.2FlashbackVersionQuery
10.9.3FlashbackTransactionQuery
10.9.4FlashbackTable
10.9.5UNDORetntion
10.10小结
第11章RAC和DataGuard
11.1DataGuard介绍
11.1.1DataGuard架构
11.1.2日志发送(RedoSend)
11.1.3日志接收(RedoReceive)
11.1.4日志应用(RedoApply)
11.1.5数据保护模式
11.1.6自动裂隙检测和解决
11.2RAC和Standby配置实例
11.2.1RACPrimary和SingleStandby
11.2.2RACPrimary和RACStandby
11.3小结
第12章RAC和StreamReplication
12.1Stream的工作原理
12.2DataGuard和Stream对比
12.3RACStream配置实例
12.3.1Single(Source)和RAC(Target)
12.3.2RAC对RAC的复制
12.3.3STRMMON工具
12.4小结
第13章深入ASM
13.1非ASM的存储结构
13.2ASM存储结构
13.3ASM文件系统
13.3.1ASMMetadata
13.3.2PhysicalMetadata
13.3.3VirtualMetadata
13.3.4DiskRecovery
13.4条带化(ASMStriping)
13.4.1ASM文件模板(ASMFileTemplate)
13.4.2ASM别名(ASMFileAlias)
13.5RDBMS和ASM之间的交互
13.6ASM的实例恢复
13.7ASM和OSFilesystem之间交互
13.7.1dbms_file_transfer包
13.7.2RMAN的CONVERT方法
13.7.3ASM和TTS
13.8ASM的限制
13.9小结
第14章性能与RAC
14.1RAC的若干特点
14.2AWR
14.2.1启用AWR
14.2.2修改AWR配置
14.2.3产生AWR报告
14.3ASH
14.4SQL调整策略
14.4.1SQL语句的执行过程
14.4.2SQL性能调整的基本方法
14.4.3PL/SQL和SQL
14.5小结
前言
从2008年2月开始动笔到定稿出版，这本书的编写几乎花费了我10个月的时间，大大超出了最初3个月的计划。这个过程虽然不能说寝食难安，但其中的酸甜苦辣也是如人饮水，冷暖自知，如果一开始就知道要投入这么大精力，我真怀疑自己是否有勇气开始动笔。
回顾自己学习RAC的经历，我对它又爱又恨。因为对技术本身的痴迷加上高“薪”技术的诱惑，所以爱；因为没有能力掌控，所以恨。时至今日，我仍然不敢说自己已完全掌握了RAC，RAC的学习过程是对我所有学习过的IT技术的大复习，包括OS、Network、Storage、Database等，甚至可能还有很多领域我从未涉足。
相信很多对Oracle有一定经验的DBA和我有同样的感觉，RAC比普通的Oracle更难入门。不仅因为比比皆是的晦涩艰深的术语，也不仅因为它覆盖的技术领域太广，更主要的是可用的参考资料太少。我翻遍了所有能够获得的书籍资料，但是这些资料都是从很基本、很琐碎的细节开始，从下到上（BoRom．up）的学习方式是虽然看到了“树”，但是看不到“林”。虽然无树不成林，技术细节总是必要的，但过于琐碎的分解给我造成更大的迷惑，到底RAC的总线是什么？GCS、GES、GRD、PCM这些东西是如何堆砌在一起的？
这段痛苦经历促使我决定以自己的方式讲述RAC的故事，如果大家能在这个旅程中豁然开朗，对我而言将是一件很有趣又备感欣慰的事。 [1]