phoenixyanggu
phoenixyanggu
2009-07-07 11:36
浏览 307
已采纳

oracle10G 提示找不到SID

tnsnames.ora Network Configuration File: F:\soft\oracle\network\admin\tnsnames.ora

Generated by Oracle configuration tools.

TEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test.com.cn)
)
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)

上面是文件里的内容
下面是我的代码,我是才开始学习ORACLE看视频和网上搜。身边没有能直接请教的人。所以请知道的朋友一定告知一下。
listener ,serviceTEST 这两个都已启动。
package com.test.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
public class Jdbc {
Connection conn=null;
public Connection conn(){
try {

        try {
            Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
        conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:test", "system", "y");
        System.out.println("fasd");
    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }
    return conn;
}
public static void main(String[] args) {
    Jdbc j=new Jdbc();
     j.conn();
}

}
报错:
java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
localhost:1521:test

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:279)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:318)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:343)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:147)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:31)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:545)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.test.jdbc.Jdbc.conn(Jdbc.java:16)
at com.test.jdbc.Jdbc.main(Jdbc.java:26)

另外。在安装的过程中:CSSERVICE 是失败的。现在CS 也没有启动。
也出现过OCR无法初始化
我是XP系统。不愿换。
我只有:30分。
全放上来。

[b]问题补充:[/b]
把localhost改成本地IP,再看看test.com.cn对不对。

因为我的安装不熟练。
至此只能用system登陆。
然后。test.com.cn test
我都换过了。没效果。提示都是一样的。
[b]问题补充:[/b]
系统能登陆, SQL 语句都能使用。
这几天在学PROCEDURE TRRIGER
都用得蛮好。

只是现在不知为啥
突然一下子,SQLPLUS在运行窗口又用不成了。
提示找不到文件。
但是从程序里运行SQLPLUS可以。只是那样没有缓存区。有些要重复写的东西很是麻烦。
[b]问题补充:[/b]
你的 SERVICE_NAME应该写为test,这个才是数据库的服务名称
前面的TEST 只是在pl/sql连接时,本地显示的名称而已,不一定是数据库的SID的

这个是我当初时。学着视频里写的。。。。写的名称就是test.com.cn
然后。当时安装界面上就显示 SID是test

可是在JDBC里搞不定—
[b]问题补充:[/b]
把localhost改成本地IP,再看看test.com.cn对不对。

本地IP不知道怎么设————

不过。我上百度搜一哈。
先试试看
[b]问题补充:[/b]
tnsnames.ora
listener.ora
这两块儿。
基本上和帖图的那个朋友是一样。
应该没什么问题。
到是有关test.com.cn这样设名字。好不好确实值得研究。
可那视频就是这么教的。
我现在都不知道该怎么改。
有点不敢重装。
因为重装要删除的东西还蛮多的………………………………
[b]问题补充:[/b]
Io 异常: The Network Adapter could not establish the connection

因为我的CMD命令用不了。
所以没法用IPCONFIG这些方式看IP。

改成HOST=您的IP(比如192.168.1.102)

另外WINDOWS/system32\drivers\etc\下的hosts文件可以参考一下..

这里显示的是
127.0.0.1 localhost

但是里面又说:# for example:
#

102.54.94.97 rhino.acme.com # source server

38.25.63.10 x.acme.com # x client host

以下都是在2006-2007年恶意修改IE属性,或者传播病毒或者木马的网站

127.0.0.1 localhost
127.0.0.1 858656.com
127.0.0.1 my123.com
127.0.0.1 8749.com
127.0.0.1 4199.com
127.0.0.1 7379.com
127.0.0.1 7255.com
127.0.0.1 3448.com
127.0.0.1 7939.com
127.0.0.1 8009.com
127.0.0.1 piaoxue.com
127.0.0.1 kzdh.com
127.0.0.1 about.blank.la
127.0.0.1 6781.com
127.0.0.1 7322.com
127.0.0.1 9991.com

所以———好像用:hosts文件里的内容没用啊。
我填了127.0.0.1 替代localhost
就提示io异常。
另外。我的oracle已经重做了。
数据库全名是

tnsnames.ora Network Configuration File: C:\oracle\product\10.1.0\Db_1\network\admin\tnsnames.ora

Generated by Oracle configuration tools.

TEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.1.0.5)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
)
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)

listener.ora Network Configuration File: C:\oracle\product\10.1.0\Db_1\network\admin\listener.ora

Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\product\10.1.0\Db_1)
(PROGRAM = extproc)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.1.0.5)(PORT = 1521))
)
)
)

[b]问题补充:[/b]
以前我的服务里有LISTEN 的。
刚才我开SERVICES。MSC里面居然没有了。
难道是我删除了path,里面两条关于jre1.4的信息引起的?
我有备份可以还原。打算还原试试看。

[b]问题补充:[/b]
我痛下决心:已将系统完全重装,
在重装的过程中。先装ORACLE 10G,
再装JDK,
再装tomcat+eclipse +myeclipse
再装iis
再装sql server2005
再装瑞星并升级。
这次oracle任何错误也不报了。浏览器模式也能用了。
格老子的。所有的启动都正常了。
可是tomcat报靠说8080被占用。
于是改了connctor 为8010
然后发现 eclipse执行不了main命令。

又是新的轮回啊——————从七点开始,晚饭都没吃。靠—
[b]问题补充:[/b]
eclipse 是因为被oracle的jre1.4误导了。
其实我在path已经删除了他。
可是他还是在eclipse干扰到我了。
不管怎么样。eclipse现在正常。
十分钟时间
如果oracle ,sql server2005,mysql5.1 连接jdbc正常的话。
我就算大功告成了(虽然又出现了新BUG,oracle 在sqlplus里正常登陆,在网页登陆去说我用户名和密错误……)

肚子好饿—
[b]问题补充:[/b]
这个—
反正至此。
所以连接全部OK。
曾经不能使用的debug也能正常使用了。
JDBC连接三个数据库也都正常了。
数据库自已运行速度也非常了得!
只是开机40个线程看着有点儿头疼。不过,不怕我3G内存 1.8双核顶得住。

非常感谢这几天关注本案的朋友。

特别是最后一直有关第的ROWEN

只是这分不知道该派给谁好。

分拿出来总得花吧。不花对不起大家————

       ROWEN您就受累接着吧。                

再次感谢关注和帮助我的朋友。感谢!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

9条回答 默认 最新

  • iteye_20589
    iteye_20589 2009-07-14 21:31
    已采纳

    1.[quote]我痛下决心:已将系统完全重装,
    在重装的过程中。先装ORACLE 10G,
    再装JDK,
    再装tomcat+eclipse +myeclipse
    再装iis
    再装sql server2005
    再装瑞星并升级。
    这次oracle任何错误也不报了。浏览器模式也能用了。
    格老子的。所有的启动都正常了。
    可是tomcat报靠说8080被占用。
    于是改了connctor 为8010
    然后发现 eclipse执行不了main命令。 [/quote]

    系统重装就是王道...tomcat报靠说8080被占用因为有oracle, eclipse执行不了main命令?怎么回事?

    2.[quote]eclipse 是因为被oracle的jre1.4误导了。
    其实我在path已经删除了他。
    可是他还是在eclipse干扰到我了。
    不管怎么样。eclipse现在正常。
    十分钟时间
    如果oracle ,sql server2005,mysql5.1 连接jdbc正常的话。
    我就算大功告成了(虽然又出现了新BUG,oracle 在sqlplus里正常登陆,在网页登陆去说我用户名和密错误……)

    肚子好饿— [/quote]

    环境变量设置时,JDK的PATH要改成在ORACLE前面..,
    [quote]虽然又出现了新BUG,oracle 在sqlplus里正常登陆,在网页登陆去说我用户名和密错误……)[/quote]
    ORACLE能用了,后面问题就不大了,网页登陆不了,用户名,密码问题.首先看看ORACLE JAR驱动加了没..后面再看链接代码有没有问题就行了..

    点赞 评论
  • iteye_20589
    iteye_20589 2009-07-07 12:42

    看看下面这个网址对你有没有用..:
    [url]http://www.cnblogs.com/simie/archive/2007/06/03/769312.html[/url]

    点赞 评论
  • iteye_20589
    iteye_20589 2009-07-07 19:40

    这应该是ORACLE有问题,单独对ORACLE进行操作,看能否登陆,能否执行SQL语句.还有查看tnsnames.ora 和listner.ora有没有问题.下面是我电脑上的两个文件,仅供参考:
    tnsnames.ora
    [code="java"]ORA10G =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Rowen)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = ora10g)
    )
    )

    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    )
    )[/code]

    listener.ora
    [code="java"]
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = D:\oracle\product\10.1.0\db_2)
    (PROGRAM = extproc)
    )
    )

    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Rowen)(PORT = 1521))
    )
    )
    )
    [/code]

    点赞 评论
  • fengyie007
    fengyie007 2009-07-09 00:25

    你的 SERVICE_NAME应该写为test,这个才是数据库的服务名称
    前面的TEST 只是在pl/sql连接时,本地显示的名称而已,不一定是数据库的SID的
    [code="java"]
    TEST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = test)
    )
    )
    [/code]

    点赞 评论
  • xushouqi
    xushouqi 2009-07-09 08:57

    把localhost改成本地IP,再看看test.com.cn对不对。

    点赞 评论
  • xudayu
    cxdy 2009-07-09 09:32

    TEST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    ([color=red]SERVICE_NAME = test.com.cn[/color])
    )
    )

    因为你的SERVICE_NAME是test.com.cn,所以
    conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:test", "system", "y");
    应该改成
    conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:test.com.cn", "system", "y");

    但是建议你把服务名改成一个单词,中间不要有什么其他的符号,不确定有这些符号是否能正常访问。如果你不想改变conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:test", "system", "y");
    那就把SERVICE_NAME改成test就行了。

    点赞 评论
  • qq7546885
    qq7546885 2009-07-09 17:52

    conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:test.com.cn", "system", "y");

    点赞 评论
  • iteye_20589
    iteye_20589 2009-07-11 18:38

    [quote]把localhost改成本地IP,再看看test.com.cn对不对。

    本地IP不知道怎么设———— [/quote]
    就是
    [code="java"]HOST = localhost[/code]

    改成HOST=您的IP(比如192.168.1.102)

    另外WINDOWS/system32\drivers\etc\下的hosts文件可以参考一下..

    [code="java"]# 102.54.94.97 rhino.acme.com # source server

    38.25.63.10 x.acme.com # x client host

    127.0.0.1 localhost
    192.168.1.105 Rowen[/code]

    点赞 评论
  • iteye_20589
    iteye_20589 2009-07-14 19:56

    [quote]所以———好像用:hosts文件里的内容没用啊。
    我填了127.0.0.1 替代localhost
    就提示io异常。 [/quote]
    只是给你看的,看看

    ...你试试把hosts的内容全删除掉,看一下会出啥事,就知道里面内容是有用的...
    [quote]
    以前我的服务里有LISTEN 的。
    刚才我开SERVICES。MSC里面居然没有了。
    难道是我删除了path,里面两条关于jre1.4的信息引起的?
    我有备份可以还原。打算还原试试看。 [/quote]
    服务里没LISTEN,那鸟了...

    点赞 评论

相关推荐