Oracle DB的启动和Windows的系统服务

来源:互联网 发布:魔兽数据库7.0人口普查 编辑:程序博客网 时间:2024/06/05 22:45

转载自:http://hrjin.blog.163.com/blog/static/100027489201081022926190/

 

在Windows下安装了Oracle之后系统服务中会生成新的服务项OracleServiceSID,本文以Winxp和Oracle DB 10gR2为例说明Windows的系统服务和Oracle启动之间的关系。
安装完成后,新增的系统服务OracleServiceSID默认是自动启动的,在操作系统启动完成后此服务就自动启动了。在此服务启动完毕之后用户可以访问数据库了,这说明服务起来以后数据库也已经启动了。而事实上,这只是安装完成后的默认设置,启动系统服务不意味着数据库也必定被启动,这取决于注册表中的一个设置。注册表值HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1下的ORA_SID_AUTOSTART如果为TRUE,则数据库会随着服务自动启动,如果此值为FALSE,则系统服务起来以后数据库不会自动启动。在上述注册表值为FALSE的情况下,数据库不会随操作系统自动启动,使用sqlplus用特权用户连接到空闲oracle例程,然后使用startup命令启动数据库是Windows下启动oracle的方法之一,但前提是系统服务必须已经启动。否则在使用sqlplus命令连接时会报ORA-12560错误。
启动Windows的系统服务可以使用GUI的方式,也可以用命令行。命令行的格式如下:
net start OracleServiceSID
相应的关闭服务的命令是:
net stop OracleServiceSID

为了远程用户能够连接还得启动监听器,如果不用GUI方式的话,命令行格式如下:
net start OracleOraDb10g_home1TNSListener
相应的关闭命令:
net stop OracleOraDb10g_home1TNSListener

对于dbconsole、isqlplus这些服务也可以用类似的命令行来启动和关闭。

在注册表中的ORA_SID_AUTOSTART=FALSE时,为了启动和关闭方便,可以编写如下的启动和关闭脚本:
启动脚本
OraStart.bat:
net start OracleServiceSID
sqlplus /nolog @start.sql
net start OracleOraDb10g_home1TNSListener

start.sql:
connect / as sysdba
startup
quit

关闭脚本
OraStop.bat
net stop OracleOraDb10g_home1TNSListener
sqlplus /nolog @stop.sql
net stop OracleOraDb10g_home1TNSListener

stop.sql:
connect / as sysdba
shutdown immediate
quit

----------------------------------------------------

最后需要提醒的一点是,在Windows操作系统中,默认情况下数据库系统是会随着操作系统的启动而自动启动的。而在Linux等到作系统平台上,由于没有这种服务的管理机制,所以在Linux操作系统部署Oracle数据库系统的时候,默认情况下是不会随着操作系统的启动而启动的。如果数据库管理员需要让其随着操作系统启动而自动启动,就需要在启动列表中加入相关的指令才行。这是在两个不同操作系统上部署Oracle数据库的一个很明显的区别。

 

 

0 0
原创粉丝点击