本文简单介绍了在Oracle10g在windows下的服务程序以及如何有选择性的开启这些服务,以达到节省资源,合理优化的目的。
CopyRight@ =Wain=Ynmc 欢迎转载,请保留作者信息。
在windows 2000/XP下,Oracle有如下服务:
OracleDBConsoleSID: | 数据库控制台,em的服务程序 |
OracleJobSchedulerSID: | 任务调度服务 |
OracleORACLE_HOMEiSQL*Plus: | iSqlplus的服务 |
OracleORACLE_HOMETNSListener: | 监听服务 |
OracleServiceSID: | Oracle服务 |
其中的Oracle_HOME是个环境变量,一般默认可能是OraDb10g_home。
在上面这些服务中,最重要的是OracleServiceSID,这个服务是Oracle的核心服务,没有它,数据库不能启动,实例都不能启动,startup nomount都不能启动。。。
监听服务也是个非常重要的服务,没有监听服务,就无法连接到Oracle数据库,所以在服务器端,最少应该有OracleServiceSID和OracleTNSListener这两个服务。
由此可以让我的Celeron 1G+256 SDram+40G HardDisk在WindowsXP下面也能“享受”一下Oracle10g。在windows的服务里面把所有的Oracle服务都设成手动,把DBConsole,JobScheduler,iSqlplus全部停止,这几个服务并非一直都会使用,所以大部分时间里都让它们睡觉。如果你想使用这些服务的时候,可以随时在服务中开启,也可以用命令行方式,如:
DBConsole : c:\emctl start|stop dbconsole
isqlplus: c:\isqlplusctl start|stop
至于OracleService和TNSLisnter,也不是让它们一开机就运行的,而是要用的时候再将它们启动。Listener可以用c:\lsnrctl start|stop 启动|关闭,OracleService用命令行的方式本人还不太清楚,用Oracle.exe DBName这个方法肯定是不行的。可以在“Administration Assistant for Windows”这个工具里面选择你想启动的数据库实例将其“start service”。
可能还会有人问我七七八八的搞这么多事情有什么作用,我可以做个简单的对比:
状态 | 整机内存消耗 | 运行速度 |
所有的服务打开 | 500M+ | 想跳楼,基本上处于全面瘫痪, 作死机状 |
---|---|---|
只保留2个必要服务 | 380M | 可以接受,能上网,qq,不能游戏,看碟 |
一个不留 | 130M | 想干嘛干嘛 |
对于类似于本人这种将Oracle用于学习或研究的用户来讲,掌握了服务的组合开启方式无疑是很有用处的。如果不加选择或是默认打开这些服务的话,就会处于水深火热之中,本人以前就曾经长期(1个星期)处于这种状态,导致最后不得不将Oracle忍痛卸载。