环境:WindwsXP上装oracle10g,其中主机是在一个域里面。
数据库安装好以后,所有服务都能启动,但是一连实例
SQL>connect system/system@TEST_10.75.72.25 回车后就一直等待在那里listener.ora文件内容:SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = TEST)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(GLOBAL_DBNAME = TEST)
)
)LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.75.72.25)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
tnsnames.ora文件内容IT4X_10.75.72.25 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.75.72.25)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = TEST)
)
)EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)sqlnet.ora文件内容:SQLNET.AUTHENTICATION_SERVICES = (NTS)
sqlnet.log文件内容:Fatal NI connect error 12560, connecting to:
(LOCAL=NO) VERSION INFORMATION:
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
Oracle Bequeath NT Protocol Adapter for 32-bit Windows: Version 10.2.0.1.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 32-bit Windows: Version 10.2.0.1.0 - Production
Time: 23-9月 -2009 15:37:41
Tracing not turned on.
Tns error struct:
ns main err code: 12560
TNS-12560: TNS: 协议适配器错误
ns secondary err code: 0
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
请大家帮我看看是怎么回事啊?我的IP是固定IP,是不是跟在域里面有关呢?
数据库安装好以后,所有服务都能启动,但是一连实例
SQL>connect system/system@TEST_10.75.72.25 回车后就一直等待在那里listener.ora文件内容:SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = TEST)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(GLOBAL_DBNAME = TEST)
)
)LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.75.72.25)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
tnsnames.ora文件内容IT4X_10.75.72.25 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.75.72.25)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = TEST)
)
)EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)sqlnet.ora文件内容:SQLNET.AUTHENTICATION_SERVICES = (NTS)
sqlnet.log文件内容:Fatal NI connect error 12560, connecting to:
(LOCAL=NO) VERSION INFORMATION:
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
Oracle Bequeath NT Protocol Adapter for 32-bit Windows: Version 10.2.0.1.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 32-bit Windows: Version 10.2.0.1.0 - Production
Time: 23-9月 -2009 15:37:41
Tracing not turned on.
Tns error struct:
ns main err code: 12560
TNS-12560: TNS: 协议适配器错误
ns secondary err code: 0
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
请大家帮我看看是怎么回事啊?我的IP是固定IP,是不是跟在域里面有关呢?
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.75.72.25)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = TEST)
)
)
----------------
SQL>connect system/system@TEST_10.75.72.25
------------
这两者不对应。试试 connect system/system@IT4X_10.75.72.25 或者改一下tnsnames.ora文件内容为:TEST_10.75.72.25 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.75.72.25)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = TEST)
)
)
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.75.72.25)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = TEST)
)
) 再用connect system/system@TEST_10.75.72.25
不好意思,是我发贴的时候写错了,tnsnames.ora的内容是
TEST_10.75.72.25 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.75.72.25)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = TEST)
)
)
然后tnsping TEST_10.75.72.25看通不
C:\WINDOWS\system32\drivers\etc\hosts发上来看下
“window下如何开放Oracle的端口”
127.0.0.1 localhost
10.75.72.25 sansiro.域名
10.75.5.100 域名不好意思,域名含有公司名字,用中文替代了
楼主把sqlnet.ora文件里的内容注释掉,在重启下lsnrctl,应该就可以:
#SQLNET.AUTHENTICATION_SERVICES = (NTS)
Easy Connect指的是使用conn scott/tiger@hostname (or ip):port/global database name的方式连接数据库,这种方法不需要tnsnames.ora文件的任何内容.在sqlnet.ora中需要声明你使用的命名方法。需要注意的是default domain,如果你声明了,那么在tnsnames.ora中必须在net service name后面把域名附加上。这样才能保证你在conn scott/tiger@netsvname 时候能够成功。
楼主也可以不用这种方式连接数据库。
set ORACLE_SID=SID
sqlplus /nolog
conn user/pwd;
startup
sqlnet.ora文件决定找数据库服务器别名的方式
默认的参数有
NAMES.DEFAULT_DOMAIN = WORLD
NAMES.DIRECTORY_PATH = (TNSNAMES, ONAMES, HOSTNAME)
如果ORACLE客户端和服务器默认的域名不一样,需要用#号注释第一行
#NAMES.DEFAULT_DOMAIN = WORLD
使它不起作用。
NAMES.DIRECTORY_PATH指定找服务器别名的顺序 (本地的tnsnames.ora文件, 命名服务器, 主机名方式)
在系统重启后,如果先登VPN后起实例和监听的服务的话,就会出现这种始终连不上的情况。
在系统重启后,如果先起实例和监听的服务,后登录VPN的话,就连接正常了。
肯定是VPN捣鬼。这之前试过开启shared socket也不管用。SQLNET.AUTHENTICATION_SERVICES = (NTS)这句我没有注释