装了一款杀毒软件,不小心把Oracle的服务(OracleServiceORCL)弄没了,经过查资料和理解,经过一番恶战,终于解决。
首先用oradim工具创建一个orcl的服务例程。
oradim 的语法为:
Oradim工具的用法?
创建例程:
-NEW -SID sid | -SRVC 服务[-INTPWD 口令] [-MAXUSERS 数量][-STARTMODE a|m] [-PFILE 文件] [-TIMEOUT 秒]
编辑例程:
-EDIT -SID sid [-NEWSID sid] [-INTPWD 口令] [-STARTMODE auto|manual] [-PFILE 文件名][-SHUTMODE a|i|n]
[-SHUTTYPE srvc|inst|srvc,inst] [-TIMEOUT 秒]
删除例程:
-DELETE -SID sid | -SRVC 服务名称
启动服务和例程:
-STARTUP -SID sid [-USRPWD 口令][-STARTTYPE srvc|inst|srvc,inst] [-PFILE 文件名]
关闭服务和例程:
-SHUTDOWN -SID sid [-USRPWD 口令] [-SHUTTYPE srvc|inst|srvc,inst] [-SHUTMODE a | i | n]
查询帮助:
-? | -h | -help
例子:
在服务里生成一个新的实例管理服务,启动方式为手工
oradim -NEW -SID test -STARTMODE manual -PFILE"D:\Oracle\admin\test\pfile\inittest.ora
oradim -NEW -SRVC OracleServicetest -STARTMODE manual-PFILE "D:\Oracle\admin\test\pfile\inittest.ora
注:有效的服务名为 “OracleService” 后跟“SID”
-SID test 与 -SRVCOracleServicetest 等价
删除此实例或服务
oradim -DELETE -SID test
oradim -DELETE -SRVC OracleServicetest
编辑此实例,启动方式改为手动
oradim -EDIT -SID test -STARTMODE manual
编辑此实例,启动方式改为自动
oradim -EDIT -SID test -STARTMODE auto
启动test
oradim -STARTUP -SID test
oradim -STARTUP -SID test -STARTTYPE srvc,inst
只启动test服务
oradim -STARTUP -SID test -STARTTYPE srvc
只启动test实例
oradim -STARTUP -SID test -STARTTYPE inst
关闭test
oradim -SHUTDOWN -SID test
oradim -SHUTDOWN -SID test -SHUTTYPE srvc,inst
用命令建立orcl的例程
Oradim –NEW –SIDORCL –STARTMODE manual –PFILE “D:\oracle\product\10.1.0\Db_1\database\SPFILEORCL.ORA”
这时出现 instance created 提示。到服务里查看,出现了OracleServiceORCL的服务(默认已启动)。
打开sqlplus 用system连接: connsystem/admin 出现下列错误提示
ERROR:
ORA-01034:ORACLE not available
ORA-27101:shared memory realm does not exist
说明Oracle数据库没有启动,这时用sysdba连接:connsys/admin as sysdba 出现connected to an idle instance
这时发出startup的命令即可完成。