日期:2013-05-26  浏览次数:20387 次


  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文件之后最好重启一下服务.