Oracle Maximum Security Architecture

很多人应该知道在基于Oracle数据库的系统实施过程中,有一种高可用性的解决方案,称为MAA(Maximum Availability Architecture),通过RAC和Dataguard等一系列技术和选件搭建一个可以获得最大高可用性的IT环境。

MAA保证了IT系统能够被持续使用,而与此同时,另外一个需求就诞生了,系统不但需要能够持续使用,而且还需要能够安全使用。安全,同样也是IT系统能够符合行业标准的前提条件。面对安全需求,Oracle提出了MSA架构,也就是Maximum Security Architecture,最大安全性架构。

Oracle Clusterware consolidated logging

使用过Oracle Clusterware 10gR1的朋友应该还记得各个后台进程的log都被散乱地放在各自的目录中,可惜的是,也许你刚刚熟悉了每个log的位置,然后当你将10gR1升级到10gR2,你就发现所有的log你都找不到了,它们不再在原来的位置,Oracle重新整理放在了统一的目录下。 这里记录一下10gR2和11gR1中Oracle Clusterware的log位置。以下ORACLE_HOME指Oracle RDBMS软件的安装目录,ORA_CRS_HOME指Oracle Clusterware软件的安装目录。 CRS logs $ORA_CRS_HOME/log/[hostname]/crsd/ CSS logs $ORA_CRS_HOME/log/[hostname]/cssd/ EVM logs $ORA_CRS_HOME/log/[hostname]/evmd $ORA_CRS_HOME/evm/log/ Resource logs $ORA_CRS_HOME/log/[hostname]/racg $ORACLE_HOME/log/[hostname]/racg SRVM logs $ORA_CRS_HOME/log/[hostname]/client $ORACLE_HOME/log/[hostname]/client Cluster Network Communication logs $ORA_CRS_HOME/log OPMN logs $ORA_CRS_HOME/opmn/logs alert logs $ORA_CRS_HOME/log/[hostname]/alert[hostname].log OPROCD logs /var/opt/oracle/[hostname] CLSOMON files $CRS_HOME/log/[hostname]/cssd/oclsomon 当Oracle Clusterware发生问题的时候,需要寻求Oracle Support的帮助,那么这些位置的log都是可能会需要的。 我们也可以使用在10gR2之后Oracle提供的perl脚本来获取诊断信息。 在10gR2版本中,执行: $ORA_CRS_HOME/bin/diagcollection.pl -collect 在11gR1版本中,执行: $ORA_CRS_HOME/bin/diagcollection.pl -crshome=$ORA_CRS_HOME -collect 该脚本执行结束以后,将会产生几个tar.gz文件,包括crsData_[hostname].tar.gz,ocrData_[hostname].tar.gz,oraData_[hostname].tar.gz和basData_[hostname].tar.gz 。…

Using Diagwait during Oracle Clusterware Node evictions

什么情况下Oracle Clusterware会重启(Evict,驱逐)节点机器? 1. 节点机器在interconnect network上无法ping通,没有了network heartbeat,比如网络问题。 2. 节点机器无法存取Voting Disk,没有了disk heartbeat,比如磁盘问题。 3. 由于节点机器过于繁忙,导致没有空闲资源来完成上述的两种动作之一,比如CPU问题,内存问题。 具体的Timeout算法参看Metalink Note:294430.1。 通常,在某个节点被驱逐之后,cssd.log或者crsd.log或者操作系统自身的log中会有具体的信息记载,通过这些log可以知道到底是什么原因导致了节点被驱逐。但是,可能在某些情况下,由于操作系统在被强行reboot之前过于繁忙,根本没有任何空余的CPU时间片来将内存中的log内容写入到磁盘log文件中,这时候,我们在log中看到的就是忽然的一段时间空白之后就是Cluster重新启动的信息了。 在10.2.0.3之后,我们可以设置diagwait,来延迟eviction,让系统在重启之前等待几秒,尽量让log可以写入到磁盘上。该功能目前已经backport到10.1.0.5中,因此在 10.1.0.5 (or higher), 10.2.0.3 (or higher) 和11.1.0.6 (or higher)这些版本中都可以设置diagwait。 注:set diagwait不仅仅会延迟eviction,同时会将oprocd进程的检查margin从默认的500ms(10205中是1500ms)提升到10000ms(也就是10秒),opocd如果发现两次检查的时间间隔超过margin值,就会强制重启服务器,所以实际上set diagwait同样提高了RAC环境的稳定性。 在不支持的版本中设置diagwait将会得到”unrecognized parameter diagwait specified” 错误提示。 设置diagwait的方法,使用root用户执行以下命令: 1. 停止Clusterware #crsctl stop crs #/bin/oprocd stop 2. 确认Clusterware stack已经完全关闭 #ps -ef |egrep “crsd.bin|ocssd.bin|evmd.bin|oprocd” 3. 在集群的任意节点上设置diagwait等待时间13秒 #crsctl set css diagwait 13…