注意:解决oracle只启动服务却没启动实例的情况,将注册表中HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1\ORA_XUXURUI_AUTOSTART值改为true
一.概念简介
脚本:script是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或 批处理 文件。二.背景
近来在Windows下安装了oracle数据库,由于此数据库很占系统资源,而安装后此数据库的很多服务都是默认开机启动的,这样系统运行速度就大大受到影响。如何按我们的意愿让这些服务在我们需要用到的时候开启,而我们不用的时候关闭呢。这里我只介绍三种方式。
三.正文
1.利用资源管理器关闭相关进程如oracle.exe,这种方式需要我们非常了解oracle的进程控制程序。
2.利用windows的控制面板管理。步骤:
开始->控制面板->性能和维护->管理工具->服务 然后找到相关以oracle开头的服务,我的系统下如下:
OracleDBConsoleoracle
OracleJobSchedulerORACLE
OracleOraDb10g_home1iSQL*Plus
OracleOraDb10g_home1TNSListener
OracleServiceORACLE
对这些服务进行启动停止等操作。
3.利用脚本,即批处理程序。
我们可以如2,将系统里的
OracleOraDb10g_home1iSQL*Plus
OracleOraDb10g_home1TNSListener
OracleServiceORACLE
这三项设为手动,这样开机就不会启动这三项服务,开机会更快。
然后,我们建立 批处理 程序:
1.建立dbstart.cmd文件(开启)
2.添加如下内容:
@echo off
net start OracleServiceORACLE
net start OracleOraDb10g_home1iSQL*Plus
net start OracleOraDb10g_home1TNSListener
pause
同样我们可以建立关闭文件(dbstop.cmd)
@echo off
net stop OracleServiceORACLE
net stop OracleOraDb10g_home1iSQL*Plus
net stop OracleOraDb10g_home1TNSListener
pause
这样我们就可以双击这两个文件来开启或关闭oracle的服务程序。
(朋友可能注意到3里面用到的服务正是2里面查找到的服务,确实2也是一种查找自己系统服务的方法)
四.总结
1.Windows下的批出理程序,就是dos命令的集合,我们也可以通过运行程序里的命令来开启服务.
2.熟悉Linux的朋友一定会知道Linux下的shell脚本也是命令的集合,通过脚本我们可以将常用的命令集合写成脚本.这在管理系统的时候非常高效。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.在使用Oracle时候,一般启动OracleServiceORCL和OracleOraDb11g_home1TNSListener这两个服务Oracle就能正常运行;
2.要让局域网上的机子访问你的oracle,必须启动oracleora81homemanagermentserver服务。
3.oracle服务启动、关闭脚本(windows下)
注:实例名:ORCL
(1).建立启动脚本dbstart.cmd
Cmd代码
@echo halt oracle service ...
net stop OracleServiceORCL
net stop OracleDBConsoleorcl
net stop OracleOraDb11g_home1TNSListener
pause
(2).建立关闭脚本dbstop.cmd
Cmd代码
@echo halt oracle service ...
net stop OracleServiceORCL
net stop OracleDBConsoleorcl
net stop OracleOraDb11g_home1TNSListener
pause
注:ORCL是Oracle实例名(安装Oracle时自定义)。
附:Oracle各服务介绍:
(1)OracleServiceSID
数据库服务,这个服务会自动地启动和停止数据库。如果安装了一个数据库,它的缺省启动类型为自动。服务。进程为ORACLE.EXE,参数文件initSID.ora,日志文件SIDALRT.log,控制台SVRMGRL.EXE、SQLPLUS.EXE。
(2)OracleHOME_NAMETNSListener
监听器服务,服务只有在数据库需要远程访问时才需要(无论是通过另外一台主机还是在本地通过 SQL*Net 网络协议都属于远程访问),不用这个服务就可以访问本地数据库,它的缺省启动类型为自动。服务进程为TNSLSNR.EXE,参数文件 Listener.ora,日志文件listener.log,控制台LSNRCTL.EXE,默认端口1521、1526。
(3)OracleHOME_NAMEAgent
OEM代理服务,接收和响应来自OEM控制台的任务和事件请求,只有使用OEM管理数据库时才需要,它的缺省启动类型为自动。服务进程为DBSNMP.EXE,参数文件snmp_rw.ora,日志文件nmi.log,控制台LSNRCTL.EXE,默认端口1748。
(4)OracleHOME_NAMEClientCache
名字缓存服务,服务缓存用于连接远程数据库的Oracle Names 数据。它的缺省启动类型是手动。然而,除非有一台Oracle Names 服务器,否则没有必要运行这个服务。服务进程为ONRSD.EXE,参数文件NAMES.ORA,日志文件ONRSD.LOG,控制台 NAMESCTL.EXE。
(5)OracleHOME_NAMECMAdmin
连接管理服务,是构建ConnectionManager服务器所用,只有服务器作为Connection Manager才需要,它的缺省启动类型是手动。服务进程为CMADMIN.EXE,参数文件CMAN.ORA,日志文件CMADM_PID.TRC,控制台CMCTL.EXE,默认端口1830。
(6)OracleHOME_NAMECMan
连接网关服务,是构建ConnectionManager服务器所用,只有服务器作为Connection Manager才需要,它的缺省启动类型是手动。服务进程为CMGW.EXE,参数文件CMAN.ORA,日志文件CMAN_PID.TRC,控制台 CMCTL.EXE,默认端口1630。
(7)OracleHOME_NAMEDataGatherer
性能包数据采集服务,除非使用Oracle Capacity Planner 和 Oracle PerformanceManager,否则不需要启动,它的缺省启动类型是手动。服务进程为VPPDC.EXE,日志文件alert_dg.log,控制台 vppcntl.exe。
(8)OracleHOME_NAMEHTTPServer
Oracle 提供的WEB服务器,一般情况下我们只用它来访问Oracle Apache 目录下的Web 页面,比如说JSP 或者modplsql 页面。除非你使用它作为你的HTTP服务,否则不需要启动(若启动它会接管IIS的服务),它的缺省启动类型是手动。服务进程为APACHE.EXE,参数文件 httpd.conf,默认端口80。
(9)OracleHOME_NAMEPagingServer
通过一个使用调制解调器的数字传呼机或者电子邮件发出警告(没试过),它的缺省启动类型是手动。服务进程PAGNTSRV.EXE,日志文件paging.log。
(10)OracleHOME_NAMENames
Oracle Names服务,只有服务器作为Names Server才需要,它的缺省启动类型是手动。服务进程NAMES.EXE,参数文件NAMES.ORA,日志文件NAMES.LOG,控制台NAMESCTL.EXE,默认端口1575。
(11)OracleSNMPPeerMasterAgent
SNMP服务代理,用于支持SNMP的网管软件对服务器的管理,除非你使用网管工具监控数据库的情况,否则不需要启动,它的缺省启动类型是手动。服务进程为AGNTSVC.EXE,参数文件MASTER.CFG,默认端口161。
(12)OracleSNMPPeerEncapsulater
SNMP协议封装服务,用于SNMP协议转换,除非你使用一个不兼容的SNMP代理服务,否则不需要启动,它的缺省启动类型是手动。服务进程为ENCSVC.EXE,参数文件ENCAPS.CFG,默认端口1161。
(13)OracleHOME_NAMEManagementServer
OEM管理服务,使用OEM时需要,它的缺省启动类型是手动。服务进程为OMSNTSVR.EXE,日志文件oms.nohup。