TNS-12560的一次解决

TNS-12560的一次解决

昨天我们公司客户服务部的一个后台数据库出现 TNS-12560 问题 , 他们的 WEB 维护人员搞了两天没搞定 , 后来打电话要我去帮他搞 . 刚开始以为服务器就放在我们公司 , 我就答应他帮他搞定 , 后来等我去他们部门的时候他才跟我说服务器是托管在电信的 IDC 中心 . 想着不去了的 , 可是看他挺可怜的 ( 他们经理天天吹 , 搞不定就辞掉他 ). 等我到了电信的 IDC 中心后 , 我后悔了 ,TMD, 里面的服务多的数不清 , 可见那种辐射有多强 , 我就在里面呆了一个多小时 , 出来了以后我头狂晕 , 受不了 !

回归正题 , 让我们看看 TNS-12560 错误这次的解决 . 这个错误相信经常有人碰到 , 一般也都知道怎么回事 . 只是如果出现这个错误而之前先由一个不懂的人看了论坛里或者查的一些资料乱改一些东东以后又在自己去看的时候没有注意到他改的所有的东东 , 这下有得受了 ( 辐射太强 ).

OS:WINDOWS 2000 ADS.DB:ORACLE 8.1.7

首先我看的是服务启动没有 .------- 已启动

再看 listener.ora 的配置 .----- 有问题 , 没有配置监听数据库 . 在这里出现问题我就用 NET8 重新配置了一下 listener. 先删除原来的 LISTENER. 然后重新创建一个 . 记得配置数据库服务这一块 . 重新启动服务 , 可以启动 .

CONN SYS/ORACLE AS SYSDBA.-------- 还是出现错误 . 跟着查看 tnsnames.ora. 没有发现问题 . 我又试着用 conn sys/oracle@oracle as sysdba. 不行 , 权限不足 . 再用 conn system/oracle@oracle 还是不行 , 有错误 .( 没有记下错误号 ), 然后接着查看 sqlnet.ora. 有问题 , 里面配置了一个参数 ONAME( 记不清 ). 我将这一行注释掉 . 并修改了一下 NAMES.DIRECTORY_PATH 的顺序 TNSNAMES, HOSTNAME, ONAMES. 然后再用 conn sys/oracle@oracle as sysdba. 还是不行错误的用户名 ( 那个人改了密码事先没说 ). 再用 conn system/oracle@oracle as sysdba.OK. 我就奇怪了 , 怎么用 system 可以 , 而用 sys 不行呢 ? 想到了可能是用密码文件认证方式了 . 将 remote_login_passwordfile=EXCLUSIVE. 然后重建密码文件 .orapwd file=pwdoracle.ora password=oracle entries=10. 然后再 conn sys/oracle@oracle as sysdba.OK. 可以进 .

再试客户端 .conn system/oracle@oracle as sysdba. 不行 . 配置 sqlnet.ora 和 tnsnames.ora. 修改成跟服务器端一样 .OK. 可以进 .

说明一点 , 上面的再配置 listener.ora,tnsnames.ora,sqlnet.ora 文件之后最好重启一下服务 .

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus