问题如下:
1.ORA-12560: TNS: 协议适配器错误
2.ORA-12528: 监听程序:所有使用例程都无法建立新连接
3.如何查看1521端口是哪个程序在使用希望高手们帮忙解答下。每题20分!

解决方案 »

  1.   

    http://blog.csdn.net/you_tube/archive/2010/03/04/5347430.aspx
      

  2.   


    1,2 都是监听的配置问题,现在监听配置可以吗? tnsping SID 看看. Oracle 数据库监听配置
    http://blog.csdn.net/tianlesoftware/archive/2009/11/24/4861572.aspx3.查看端口:netstat -na------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    DBA1 群:62697716(满); DBA2 群:62697977
      

  3.   

    我来回复第三个问题吧:
    先用netstat -ano | grep 1521找到进程号
    然后使用进程管理器查看该进程号对应的进程即可。
      

  4.   

    接着补充第3贴,我回答的是Windows平台: grep 可以使用findstr替换,如果没有grep命令的话。
    如果是linux平台:使用lsof -i:1521即可
      

  5.   

    1 可能性太多,一般来说,是LISTENER配置不对,如果对LISTENER配置文件不熟,则使用netca配置之。2 这个可能是实例暂时不可用,比如启动或关闭中。一般是暂时性的,如果一直这样,那么,应该检查实例的状态。3 windows上
    netstat -aon|findstr "1521" ,显示结果的最后一串数字,是占用1521端口的线程号(可能有多个),然后tasklist|findstr "number_str" ,这里的number_str,即为前面查出来的那串线程号。
      

  6.   

    [oracle@dxzq10 db_1]$ oerr ORA 12560
    12560, 00000, "TNS:protocol adapter error"
    // *Cause: A generic protocol adapter error occurred.
    // *Action: Check addresses used for proper protocol specification. Before
    // reporting this error, look at the error stack and check for lower level
    // transport errors. For further details, turn on tracing and reexecute the
    // operation. Turn off tracing when the operation is complete.
    [oracle@dxzq10 db_1]$ oerr ORA 12528
    12528, 00000, "TNS:listener: all appropriate instances are blocking new connections"
    // *Cause:  All instances supporting the service requested by the client 
    // reported that they were blocking the new connections. This condition may be
    // temporary, such as at instance startup. 
    // *Action: Attempt the connection again. If error persists, then contact the
    // administrator to check the status of the instances.以上是Oracle里给出的action,当然具体情况具体分析如何查看1521端口是哪个程序在使用
    看你是什么系统,如果是window,360里就可以看如果是linuxnetstat -aln | grep 1521如果是unixnetstat -n | grep 1521
      

  7.   

    1、造成这个原因可能比较多,如:监听未启动、实例未启动、ORACLE_SID设置问题等;
    2、问题是因为监听中的服务使用了动态服务,系统启动后,数据库没有正常的MOUNT,因此在动态模式下,就会出现这个问题,可以把监听设置为静态,或者重新启动服务来解决问题;
    3、一般可以通过telnet判断1521端口是否使用,但具体程还不知用什么方法。