解决方案 »

  1.   

    给你几个检查的方向吧
    1、机器和虚拟机网络是否连通
    2、虚拟机中数据库服务是否启动
    3、虚拟中监听是否配置正确,并且正常启动
    4、外面机器的tns是否配置正确
    5、兼容性问题,试试其他的数据库连接工具是否能连上,某些程序和64位是不兼容的
      

  2.   

    主机和虚拟机可以ping通的,数据库服务也启动了,不过怎么确定虚拟机的监听是否配置正确啊
      

  3.   

    Oracle 数据库监听配置
      

  4.   

    # listener.ora Network Configuration File: C:\app\My-PC\product\11.2.0\dbhome_1\network\admin\listener.ora
    # Generated by Oracle configuration tools.SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = C:\app\My-PC\product\11.2.0\dbhome_1)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ONLY:C:\app\My-PC\product\11.2.0\dbhome_1\bin\oraclr11.dll")
        )
      )LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = VIRpc)(PORT = 1521))
        )
      )ADR_BASE_LISTENER = C:\app\My-PC
      

  5.   

    # tnsnames.ora Network Configuration File: C:\app\My-PC\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.LISTENER_ORCL =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    ORACLR_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
        (CONNECT_DATA =
          (SID = CLRExtProc)
          (PRESENTATION = RO)
        )
      )ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl.localdomain)
        )
      )
      

  6.   

    tns中改为
    host=127.0.0.1试下
      

  7.   

    另外tns需要的是在你外面主机上面的配置,你这个看着有点像虚拟机里面的配置
      

  8.   

    客户端配置文件
    # tnsnames.ora Network Configuration File: D:\MyDrivers\ORACLE\product\11.2.0\client_1\NETWORK\ADMIN\tnsnames.ora
    # Generated by Oracle configuration tools.ORCL =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.41)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = orcl)
        )
      )
    # listener.ora Network Configuration File: D:\MyDrivers\ORACLE\product\11.2.0\client_1\NETWORK\ADMIN\listener.ora
    # Generated by Oracle configuration tools.LISTENER =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.41)(PORT = 1521))
      )ADR_BASE_LISTENER = D:\MyDrivers\ORACLE
      

  9.   

    现在在客户端可以启动监听,但是查看监听状态时发生 --tns 01189 监听程序无法验证用户