Oracle数据库在*nix平台下一般认为要比NT下稳定的多,因此基本上所有的生产环境都倾向于是用*nix平台,Solaris作为纯正血统的开放源代码Unix实现,比Linux更是多了很多特性,例如Zones,DTrace,ZFS和本文要使用的SMF,都是相当不错的特性。
SMF(Service Management Facility)是作为传统的init.d的替代技术而开发的,但是SMF不仅仅代替init.d负责Solaris上的各项服务程序(daemon)的自动启动和关闭,最重要的新功能是能够自动监控并修复(实际上就是尝试按照服务的依存次序重新启动)发生问题的各项系统服务。Oracle数据库当然也属于这样一种系统服务,实际上运行Oracle数据库很可能是企业最重要的购买一台Unix服务器的理由,因此,将Oracle数据库纳入SMF系统服务管理架构中就很有意义了,因为这样不仅可以实现传统上的Oracle启动和关闭脚本的功能,而且可以在Oracle异常中止运行时,立即启动Oracle,大大提高Oracle数据库的可用性。
Padraig博客上第一次(据我所知^_^)发布了如何将Oracle数据库纳入SMF的配置过程,很遗憾blogspot.com站点国内被和谐了,所以这里还是复述一下Oracle在SMF下的配置过程,也方便一些更喜欢读中文的读者:
1. 下载Joost Mudlers提供的ora-smf-1.5.pkg安装包,并安装(最重要的一步,感谢Joost Mudler,奇怪的是网上找不到他的blog和文档):
#cd/var/svc/manifest/application
#mkdirdatabase
#cd~
#pkgadd–dorasmf-1.5.pkg
这一步骤不能在Solaris提供的虚拟服务器中做,必须安装在物理服务器,或者说必须安装在global zone下,因为只有global zone才能允许写/lib/svc/目录下的文件,虚拟服务器(container)对于这个目录是只读的,在global zone下安装完orasmf-1.5后,所有的虚拟服务器都已经有了通过SMF管理oracle数据库的能力,但是真正管理Oracle还需要配置几个*.xml文件和安装Oracle软件,配置xml和安装Oracle必须在你打算运行的服务器上进行(如果你已经使用Zone功能的话,就是在虚拟服务器上)。
标签: