c语言可以编游戏吗:大话Oracle RAC:集群 高可用性 备份与恢复

来源:百度文库 编辑:中财网 时间:2024/04/28 19:38:16
2011年11月20日
《大话Oracle RAC:集群 高可用性 备份与恢复》
作者:张晓明 编著 (2011年08月第1版第1次)
人民邮电出版社 POSTS & TELECOM PRESS http://www.ptpress.com.cn
北京市崇文区夕照寺街14号(100061)

作者简介
张晓明,Oracle OCP,现用网名“石头狗”,名称来自于《和佛陀赏花去》中的故事;狗会因为人随手丢出的一个东西而追逐,可能是一个骨头、一块肉、一个眼神,甚至是一个石头,警示一定要看清自己在追逐的东西。
上个世纪90年代末毕业于某著名的医科大学,毕业后分配到某著名医院从事治病救人的神圣工作。不幸的是,在大学最后一年的实习中我接触到了老式486,这让我魂牵梦系,再加上IT热潮对一个热血青年的巨大诱惑,我终于在行医3年后削尖了脑袋挤进了IT业。回想当年,身边有好几位来自知名医学院校的朋友和我一样义无反顾地加入IT工程师队伍,不知道这几位朋友现在安否?
我在IT行业中最初是做开发,先后用过C、C++、Java等各种主流和非主流语言,热火朝天的参与过。C++和Java的网土混战,现在回想起来只有一个词评价“幼稚”,不仅是自己幼稚,整个行业也不太成熟。后转从事数据库开发,再转为数据库管理,最终将此定为自己的职业方向。今天,我把这些年来对Oracle数据库的学习和使用心得记录下来,既是对自己的一个阶段总结,也是与所有志同道合的朋友们共同分享。
现任某SP公司数据库团队负责人,负责管理全国20余省市的OLTP以及公司TB级OLAP系统的开发、优化和护。精通数据库管理、备份、恢复、窖灾等设计和规划,特别是高可用、高并发、高压力数据库环境的设计和优化。
内容提要
《大话Oracle RAC:集群 高可用性 备份与恢复》以Oracle 10g为基础,对OracleRAC进行了全面的介绍和分析。全书分为两个部分,共14章,第1部分是集群理论篇,这部分从集群基础知识入手,通过分析集群环境和单机环境的不同,介绍了集群环境的各个组件及其作用,以及集群环境的一些专有技术,包括OracleClusterware、Oracle Database、ASM、CacheFusion等。第2部分是实践篇,每一章都针对RAC的一个知识点展开讲解,包括OracleClusterware的维护、HA与LB、备份、恢复、Flashback家族、RAC和DataGuard的结合使用、RAC和Stream的结合使用,最后对ASM进行深入介绍,并给出性能调整的指导思想。  《大话Oracle RAC:集群高可用性备份与恢复》按照“发现问题→解决问题→实践与理论相结合”的方式进行介绍,首先对现实问题进行分析,然后提供合适的解决方案,最后自然地引出Oracle中的理论知识点,这种讲解方法能够有效地降低阅读难度,帮助读者更好地掌握相关技能。  《大话Oracle RAC:集群高可用性备份与恢复》可以作为数据库开发人员、数据库管理员、数据库初学者及其他数据库从业人员的工作参考手册,也可以作为大中专院校相关专业师生的参考用书和相关培训机构的培训教材。
P3,RAC环境拓扑图

P6,RAC安装环境
硬件
节点主机1
Public NIC
Public IP:192.168.123.154
VIP:192.168.123.248
Private NIC
Private IP:10.0.0.154
节点主机2
Public NIC
Public IP:192.168.123.155
VIP:192.168.123.249
Private NIC
Private IP:10.0.0.155
存储
EMC CX300
软件
OS
64位Red Hat Enterprise Linux AS 4 Update 4
集群件
Oracle Clusterware
数据库
Oracle Database 10.2.0.1
集群文件系统
ASM
P18,RAC存储规划
文件类别
本地文件系统
RAW
ASM
Oracle Clusterware
Clusterware Software
$CRS_HOME
OCR
/dev/raw/raw1
VoteDisk
/dev/raw/raw2
Oracle Database
Database Software
$ORACLE_HOME
SPfile
+DATA
Pfile、password file
$ORACLE_HOME/dbs
Controlfile
+DATA
Datafile
+DATA
Logfile
+DATA
Archived Log
/wxxrdb1_arch
/wxxrdb2_arch
Backup
+RECOVERY
LUN1
LUN2
LUN3
用途说明
OCR
100MB
RAW Device
Voting Disk
100MB
RAW Device
ASM +Data
100GB
spfile、controlfile、
data file、online redo
ASM +Recovery
100GB
Backup
WXXRDB1_ARCH
50GB
归档日志
WXXRDB2_ARCH
50GB
同上
整个RAC实施过程步骤很多,如果把整个过程化整为零,拆分成几个不同阶段,无论对于记忆还是操作都非常有益。
整个过程可以分为几个模块:主机配置、安装Clusterware、安装Oracle Database、配置Listener、创建ASM、创建Database。
P35,配置Listener
在任意某个节点执行Netca(Oracle Net Configuration Assistant),这个工具同样会自动感知集群环境,第一个界面就是提示选择配置类型,如图1-73所示,选择"Cluster configuration"选项;这就保证下面的配置会自动应用到所有节点,不必每个节点都进行一次配置了。
P38,创建ASM
ASM和数据库一样,都是使用DBCA(Database Configuration Assistant)工具来创建。运行dbca命令,首先出现欢迎界面。DBCA工具也会检查Cluster的存在,并提示用户选择创建那种类型的ASM,为RAC数据库创建的ASM本身也是一个集群数据库;选择"Oracle Real Application Cluster database"选项。
P51,集群两大关键特性:可扩展性和高可用性;两大核心能力:负载均衡和故障转移。
P63,OCM(Oracle Cluster Manager in oracle9.2)->OCRS(Oracle Cluster Ready Service in oracle 10.1)->Oracle Clusterware(in oracle 10.2)
P69,在整个RAC集群中,实际有两个集群存在。一个是有Clusterware软件组成的集群,另一个是有Database组成的集群。其中第一个集群管理整个环境的硬件资源,并为第一个集群提供基础服务。
Oracle Clusterwar在运行过程中,需要两个文件,分别叫OCR和Voting Disk,这两个文件必须放在共享存储上。它们是用来解决“脑裂”和“健忘”的。这两个文件必须放在“裸设备”上,大致100M就足够了。
P71,OCR(Oracle Clusterware Registry)负责维护整个集群的配置信息,包括RAC以及Clusterware资源,包括的信息有节点成员、数据库、实例、服务、监听器、应用程序等。“健忘”问题是由于每个节点都有配置信息的拷贝,修改节点的配置信息不能同步所引起的。要想解决“健忘”问题,最简单的办法就是让整个集群只保留一份配置,各节点共用这份配置。Oracle Clusterware所采用的方法就是把这个配置文件放在共享存储上,这个文件就是OCR Disk。
P75,Voting Disk 这个文件也要放在共享存储上,Oracle Clusterware要用这个文件管理集群的节点成员身份,根据这里的记录判断哪个节点属于集群的成员,并在出现“脑裂”时,仲裁哪个Partition获得集群的控制权,而其他的Partition必须从集群中剔除。
P76,Oracle Clusterware后台进程
CSS(Cluster Synchronization Service)[OCSSD]负责整个集群配置,确定哪些节点是集群里的成员,每当有节点加入或者离开时,CSS负责通知其他节点更新集群配置。
CRS(Cluster Ready Service)[OCRSD]是实现HA的核心进程,负责管理注册应用的start, stop, monitor 和 failover。
EVM(Event Management)[OEVMD]负责发布CRS产生的各种事件。
P91,并发访问和数据一致性
1、脏读,用户可以查询到已修改但未提交的数据。
2、不可重复读,前一个事务读到了后一个事务的修改内容。或者是前一个事务覆盖了后一个事务的修改,前提是前一个事务较长。
3、幻影读,前一个事务读取了后一个事务所INSERT的记录,前提是前一个事务较长。
4、一致性读,就是每个查询所能看到的结果集,是这个查询提交那个时刻的数据的状态。
隔离级别:
隔离级别
脏读
不可重复读
幻影读
Read Uncommitted
Y
Y
Y
Read Committed
N
Y
Y
Repeatable
N
N
Y
Serializable
N
N
N
P203,可用性=MTTF/(MTTF+MTTR)
MTTF平均故障间隔时间;MTTR平均修复时间。比如平均6个月出现一次故障,用20分钟修复。那么:6个月/(6个月+20分钟)*100%=99.9%2
P204,Failover(故障转移)
1、Client-Side Connect Time Failover,如果客户端tnsname中配置了的多个地址,客户端发起连接请求时,会尝试连接地址表中的第一个地址,如果失败,就尝试连接第二个,直到成功或者遍历了所有的地址。
2、TAF(Transparent Application Failover),就是连接建立以后、应用系统运行过程中,如果某个实例发生故障,连接到这个实例上的用户会被自动迁移到其他的健康实例上。
3、Server-Side TAF,就是在服务器端配置的TAF。
P232,LoadBalance(负载均衡)
1、Connection Balance(Client-side LB and Server-side LB)通过某种算法将用户分配到不同的节点。属于“纯技术”层面的分散负载。
2、SERVICE,通过把应用按照功能模块进行划分成SERVICE,进而把每个SERVICE固定在某些RAC节点上。属于“面向应用”层面的分散负载。