接到开发人员的报告,用sqlplus连接一台开发机连不上。
下面的命令
sqlplus  aaaa/bbbb@cccc:1521/palm

C:\WINDOWS\system32>sqlplus  zhengpeng/zhengpeng@10.168.200.74:1521/palm

SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 1月 20 09:32:37 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

ERROR:
ORA-12545: 因目标主机或对象不存在, 连接失败


请输入用户名:
ERROR:
ORA-12560: TNS: 协议适配器错误


请输入用户名:
ERROR:
ORA-12560: TNS: 协议适配器错误


SP2-0157: 在 3 次尝试之后无法连接到 ORACLE, 退出 SQL*Plus

 
看了listener.ora没有发现什么问题。

在listener的log里有下面的记录:

20-JAN-2009 09:25:34 * (CONNECT_DATA=(SERVICE_NAME=palm)(CID=(PROGRAM=c:\oracle\product\10.2.0\db_1\bin\sqlplus.exe)(HOST=LENOVO-D5BA4CC1)(USER=lch1335))) * (ADDRESS=(PROTOCOL=tcp)(HOST=11.11.11.11)(PORT=1686)) * establish * palm * 12518
TNS-12518: TNS:listener could not hand off client connection
 TNS-12547: TNS:lost contact
  TNS-12560: TNS:protocol adapter error
   TNS-00517: Lost contact
    IBM/AIX RISC System/6000 Error: 32: Broken pipe
20-JAN-2009 09:26:49 * (CONNECT_DATA=(SERVICE_NAME=palm)(CID=(PROGRAM=c:\oracle\product\10.2.0\db_1\bin\sqlplus.exe)(HOST=LENOVO-D5BA4CC1)(USER=lch1335))) * (ADDRESS=(PROTOCOL=tcp)(HOST=11.11.11.11)(PORT=1686)) * establish * palm * 12518
TNS-12518: TNS:listener could not hand off client connection
 TNS-12547: TNS:lost contact
  TNS-12560: TNS:protocol adapter error
   TNS-00517: Lost contact
    IBM/AIX RISC System/6000 Error: 32: Broken pipe
20-JAN-2009 09:26:49 * (CONNECT_DATA=(SERVICE_NAME=palm)(CID=(PROGRAM=c:\oracle\product\10.2.0\db_1\bin\sqlplus.exe)(HOST=LENOVO-D5BA4CC1)(USER=lch1335))) * (ADDRESS=(PROTOCOL=tcp)(HOST=11.11.11.11)(PORT=1686)) * establish * palm * 0
20-JAN-2009 09:27:50 * service_update * palm * 0
20-JAN-2009 09:27:57 * service_died * palm * 12537
20-JAN-2009 09:28:44 * service_register * palm * 0
20-JAN-2009 09:28:49 * service_update * palm * 0
20-JAN-2009 09:28:52 * service_update * palm * 0
20-JAN-2009 09:28:52 * (CONNECT_DATA=(SERVICE_NAME=palm)(CID=(PROGRAM=c:\oracle\product\10.2.0\db_1\bin\sqlplus.exe)(HOST=LENOVO-D5BA4CC1)(USER=lch1335))) * (ADDRESS=(PROTOCOL=tcp)(HOST=11.11.11.11)(PORT=1688)) * establish * palm * 0
20-JAN-2009 09:28:55 * service_update * palm * 0

看来listener没有收到instance成功产生子进程和报告,应该是instance的问题。
生产一个pfile看看
SQL> create pfile from spfile;
发现pfile里有几个参数非常可疑:
#*.dispatchers='(protocol=TCP)'
#*.shared_servers=3
封住后用新的pfile启动。
SQL> startup pfile='/app/oracle/product/10.2.0/db_1/dbs/initaaaaaa.ora'
问题解决。