从菜鸟开始解决问题
下午在公司 PC 上装了 Oracle 9i,除了一个 Agent Service 的问题,一切算是顺利,于是停掉所有 Oracle 服务,开始试着安装补丁,这是第一次安装 Oracle 补丁,不过并没有碰到任何问题,看来 Windows 下安装还是很方便的。
不过等到全都安装完毕之后,用 sqlplus "/as sysdba" 却怎么也进不去,出现 “ORA-12541:TNS:没有监听器”的错误,这个好解决,是因为监听器的服务没有起来,于是用 lsnrctl start 开启监听器,同时服务也跟着起来了,可是用 sqlplus "/as sysdba" 却还是无法连接上,再试 sqlplus sys/XXX@skydb as sysdba 出现 “ORA-12500:TNS:监听程序无法启动专用服务器进程”的错误,这下弄不明白了。google 了一下,找到了一篇《Oracle新手最常碰到的6个错误及解决方案》文章,里面提到 ORA-12500 错误是因为 OracleService<SID> 服务没起来的缘故。之前一直以为,这个服务无非是方便操作系统重启之后自动打开 Oracle 数据库用的,就好像监听器的服务一样,启动监听器服务也跟这起来了,原来这个服务不起来,数据库是服务打开的,这下终于明白了,于是用 net start OracleServiceSKY 启动服务,然后 sqlplus "/as sysdba" 就成功登陆了,试了下 shutdown immediate 关闭数据库,发现这个服务还是启动的,开来这个服务是打开数据库必须的,但关闭数据库服务并不会停止。上文还提到一些基础的菜鸟问题和解决方法,引用过来:
1、ORA-12541:TNS:没有监听器
原因:没有启动监听器或者监听器损坏。若是前者,使用命令net start OracleOraHome81TNSListener(名字可能有出入)即可;如果是后者,则使用“Net8 Configuration Assistant”工具向导之“监听程序配置”增加一个监听器即可(基本不用写任何信息,一路OK。在添加之前可能需要把所有的监听器先删!)
2、ORA-12500:TNS:监听程序无法启动专用服务器进程或ORA-12560:TNS:协议适配器错误
原因:ORACLE的数据库服务没有启动。使用命令net start ORACLESERVICEORADB(ORADB为数据库名字)即可。如果仍没有解决,请继续向下看。
3、如果数据库服务启动失败,则很有可能是其注册表项值损坏,最好的做法是以下两步:
1)ORADIM -DELETE -SID oradb 删除数据库服务项
2)ORADIM -NEW -SID oradb 新增数据库服务项
注:这个过程中如果出错,就重启计算机!
4、ORA-12154:TNS:能解析服务名
原因:ORACLE的网络服务名没有正确配置。请使用“Net8 Configuration Assistant”工具向导之“本地网络服务名配置”配置TNS即可。如果仍没有解决,请继续向下看。
5、ORA-1034 :TNS:ORACLE不可用
原因:ORACLE的数据库服务正确启动,但是数据库没有打开!
使用命令:
1)svrmgrl 启动服务管理器
2)connect internal 以internal身份登陆
3)startup 打开数据库
6、ORA-12560:TNS:协议适配器错误(顽固性的)
原因:未知。
解决:必杀技--打开“Windows任务管理器”,杀死ORACLE.exe及ORADIM.exe进程,书写自己的ora_startup.bat,执行之!
PS:
1、我的ora_startup.bat:
net start OracleOraHome81TNSListener
net start ORACLESERVICEORADB
svrmgrl 一般情况下不用,不过有时少不了它的,具体步骤见第5步。
2、我的ora_shutdown.bat:
net stop OracleOraHome81TNSListener
net stop ORACLESERVICEORADB
3、ORACLE相关服务名请参见“管理工具”之“服务”中以ORACLE开头的服务名
Posted by Sky at 11:38 PM | Permalink | comments(0) | Edit | Database