这周一个ORACLE问题的解决过程(ORA-12560:TNS:协议适配器错误! )

来源:互联网 发布:linux系统种类 编辑:程序博客网 时间:2024/05/19 20:22

第一次安装ORACLE没有成功,第二次安装成功了,但是重启后登陆SQLPLUS,报
ORA-12560:TNS:协议适配器错误!

看服务列表里面的ORACLESERVICE[SID]服务是启动状态

上网查了下资料,发现引起这样问题的原因很多,解决办法也很多,试了很多办法都没有用。最后在MS的客户帮助里面找到个办法,自己写了脚本运行后,ORACLESERVICE[SID]服务启动起来了,再次登陆SQLPLUS,这次还是不行,都说可能Terminal Services服务有问题,于是不用windows远程登录了,改用PCANYWHERE登陆,这次运行SQLPLUS,又报错了,但是这次报的错误不一样,报

ORA-01034 oracle not available

应该是数据库实例没有被装载吧,运行几个命令把数据库装载上去,终于可以运行了。

附:

在服务列表里面把ORACLESERVICE[SID]改为手动,重启。

找到以下注册表项: HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0

在注册表编辑器, 右窗格双击 ORA_ < SID > _AUTOSTART

编辑字符串 对话框中, 在 值数据 框中, 键入 FALSE , 然后单击 确定

用名称 StartupOracleORCL.sql 创建以下批处理文件:

注意,这里的INIT.ORA 是数据库实例的init文件,文件名并不一定是INIT.ORA,比如我的数据库实例名字是

NMORA,文件名就是initNMORA.ora

用名称 Orastart.bat 在同一文件夹位置中创建 StartupOracleORCL.sql 批处理文件创建以下 Windows 批处理文件:

@echo offnet start <Oracle Service Name>set ORACLE_SID=<Oracle SID> svrmgrl @<Full path of startupOracleORCL.sql created in Step 3>exit
第一次运行发现net start命令无效,再一查服务器的环境变量,发现PATH里面竟然没有配置windows根目录,把
%SystemRoot%/system32;%SystemRoot%;配到PATH变量下。再次运行这个BAT文件就可以了。
这个时候数据库还没有装载,在运行里面运行cmd,运行下面几条指令
C:>sqlplus internal/oracle
then under sqlplu prompt
sqlplus>startup

等一下就会报告数据库装载成功了。
这个时候数据库就可以运行了。
感觉第一次安装失败的数据库实例在卸载的时候ORACLE工具没有卸载干净,所以这个数据库实例总是影响
第二次安装的数据库实例,比如抢占1521端口(可以运行netstat -a来查看)。俺的工作对ORACLE不
需要那么熟,里面具体理论我也不太清楚,把解决问题了就OK了,呵呵。

 

connect <username>/<password>startup PFILE=<Full path of the INIT.ORA file for the instance of Oracle database>exit