日归档:2016 年 1 月 25 日

11.2中,如何手工kill所有的CRS进程而不导致主机重启?

我们都知道,在RAC环境中,如果kill ocssd.bin进程,会引起主机重启。 但是有时候系统已经异常了了,且CRS不能正常关闭,而主机可能是几年没重启的老系统,没人敢重启,现在怎么办? 我们只能尝试手工kill进程的方式,然后手工修复CRS(注意,在10.2 RAC中,只有3个d.bin进程)。 测试环境:操作系统是OEL 6.6 这套RAC的CRS版本是11.2.0.4: 注意,由于12.1普通RAC(非Flex Cluster)的情况根本文一样,处理思路和过程也一样。 查看当前CRS的状态: 查看当前所有的CRS进程: 这么多进程,他们的关系参见:11.2 RAC 的启动过程 好吧,我们开始模拟kill进程。首先kill 掉/u01/app/11.2.0.4/grid/bin/ohasd.bin(会自动重启,参见11.2 RAC 的启动过程) 然后,我们kill cssdmonitor: 这里没有这个集成,表示cssdmonitor进程被重启过了: (参见11.2 RAC 的启动过程) 上面进程启动时间在20:04~20:07之间的,都是被/u01/app/11.2.0.4/grid/bin/ohasd.bin进程重启后,自动后台重启的。 现在,我们kill mdnsd gpnpd gipcd osysmond。 这4个进程中,前面3个是CRS启动除了ohasd以外,最早启动的几个进程。 如果kill这些进程,ohasd都会重启的: 这里我们看到,刚才kill 的4 进程都没起来,怎么回事? 别急,还没到时间,ohasd需要check后才启动,O(∩_∩)O哈哈~ 然后,我们kill 监听: 好吧,看看,刚才kill的进程都被重启了,11.2的RAC真强悍啊。 … 继续阅读

发表在 RAC | 标签为 , , , | 留下评论

11.2 RAC 的启动过程

从11.2 GI(Grid Infrastructure)开始,RAC的结构跟10.2有翻天覆地的变化,在MOS的经典文档“11gR2 Clusterware and Grid Home – What You Need to Know (Doc ID 1053147.1)”中有详细的解释。 其中有一副经典大图可以一目了然的告诉我们这些d.bin进程之间的依赖关系(也就是启动和关闭,谁启动重启谁等等): 从CRS的启动过程,我们也可以清晰的看到进程的启动顺序。 下面是一个11.2.0.3环境的CRS启动过程: 最先启动的是/u01/app/11.2.0.3/grid/bin/ohasd.bin ,他后面呆着reboot,表示它被kill后会被自动reboot。 /etc/init.d/init.ohasd进程就是重启/u01/app/11.2.0.3/grid/bin/ohasd.bin进程的守护进程。 他们的内容都来源于$GRID_HOME/crs/init/init.ohasd,后续blog会模拟丢失这个文件到处理,这里不赘述了。 会自动启动这个进程,并在/var/log/message中记录下这个启动过程。 /u01/app/11.2.0.3/grid/bin/ohasd.bin被kill 后,,系统会有几分钟的重启服务的时间,/var/log/message中记录下这个启动过程: 这个重启的过程在空闲系统大概需要不到2分钟,$GRID_HOME/`hostname -s`/alert`hostname -s`.log中会ohasd.bin被kill和重启后执行检查(check)和恢复(recovery)各种资源的日志如下: 好了,继续回到我们刚才的启动过程的讨论。接下来,我们看到orarootagent.bin cssdagent cssdmonitor不见了,增加 mdnsd.bin 然后是增加了 ocssd.bin gpnpd.bin orarootagent.bin gipcd.bin osysmond.bin cssdmonitor … 继续阅读

发表在 RAC | 标签为 , | 留下评论

RAC环境下删除了/var/tmp/.oracle/的临时文件,有什么后果,以及如何处理

测试目的: 模拟RAC环境下有人误操作,删除了/var/tmp/.oracle/*下的oracle临时文件(删除Network Socket File) 测试过程:观察会有什么后果,以及如何处理。 . 测试环境:OEL 6.6 ,Oracle 11.2.0.4 Standalone(单实例使用ASM的环境) 如果是RAC,测试结论应该大体一致(机制类似)。 在Linux平台上,RAC或者HAS(单实例使用ASM的环境,比如standalone或者我们说的Oracle Restart)使用的Network Socket File在/var/tmp/.oracle/*文件: (在其他平台(比如, AIX HPUX等等)Network Socket File可能在:ls -lrt /tmp/.oracle/* /tmp/.oracle 或者 /usr/tmp/.oracle) 使用crsctl stop has -f停止has,然后就可以直接删除/var/tmp/.oracle/* 下面的Network Socket File: 如果/var/tmp/.oracle目录不存在,可以手工重建: 如果在has正常运行的状态下删除上述oracle临时文件,那么数据库可以使用,但是不能正常关闭: 可以看到,这时,crs通信异常了。 我们看下数据库: 这里看到数据库可以正常使用,但是不能关闭,关闭是报错:不能跟CSS进程通信。 数据库的alert显示为: 检查一下oarcle的进程: … 继续阅读

发表在 ASM, Oracle 11.1 & Oracle11.2, RAC | 标签为 , | 留下评论