y********o 发帖数: 2565 | 1 我在学校办公室的Oracle 10g上有一个账户是johndoe, 密码是wassupman。
装这个Oracle 10g的主机域名是oracle10g.my.univ.edu, IP是139.151.225.13。
我在家WinXP Pro上装了Oracle XE。
这个是Oracle XE缺省的tnsnames.ora对XE的定义:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myxppro)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
[ 以下省略了 ]
因为我想建个database link从家里去远程访问学校的Oracle 10g, 我在这个XE的定义下
面照葫芦画瓢,加了这个:
XUEXIAO =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle10g.my.uni |
c*****d 发帖数: 6045 | 2 你学校里的oracle service name是xiexiao吗?
【在 y********o 的大作中提到】 : 我在学校办公室的Oracle 10g上有一个账户是johndoe, 密码是wassupman。 : 装这个Oracle 10g的主机域名是oracle10g.my.univ.edu, IP是139.151.225.13。 : 我在家WinXP Pro上装了Oracle XE。 : 这个是Oracle XE缺省的tnsnames.ora对XE的定义: : XE = : (DESCRIPTION = : (ADDRESS = (PROTOCOL = TCP)(HOST = myxppro)(PORT = 1521)) : (CONNECT_DATA = : (SERVER = DEDICATED) : (SERVICE_NAME = XE)
|
c*****d 发帖数: 6045 | 3 你在学校的主机上用lsnrctl service可以看到service name
用这个service name添到你家里tnsnames.ora中去
【在 y********o 的大作中提到】 : 我在学校办公室的Oracle 10g上有一个账户是johndoe, 密码是wassupman。 : 装这个Oracle 10g的主机域名是oracle10g.my.univ.edu, IP是139.151.225.13。 : 我在家WinXP Pro上装了Oracle XE。 : 这个是Oracle XE缺省的tnsnames.ora对XE的定义: : XE = : (DESCRIPTION = : (ADDRESS = (PROTOCOL = TCP)(HOST = myxppro)(PORT = 1521)) : (CONNECT_DATA = : (SERVER = DEDICATED) : (SERVICE_NAME = XE)
|
y********o 发帖数: 2565 | 4 不是的。我显然没有意识到这个是关键。多谢!
【在 c*****d 的大作中提到】 : 你学校里的oracle service name是xiexiao吗?
|
y********o 发帖数: 2565 | 5 对,我将学校那个Oracle10g的tnsnames.ora中相关的一节如下搬到我的XE之tnsnames.
ora了。
Oracle10g =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle10g.my.univ.edu)(PORT = 1521)
)
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = Oracle10g.my.univ.edu)
)
)
然后我说:
SQL> create database link mylink connect to johndoe identified by wassupman
using 'Oracle10g';
Database link created.
SQL> desc mytable@mylink;
ERROR:
ORA-12170: TNS:Connect timeout occurred
我按这个 h |
y********o 发帖数: 2565 | 6 Oh, yes, I forgot to say that I've opened up port 1521 on my XP box at home
by making this port an exception.
I have not done anything to McAfee and AVG, which also run on my XP box.
tnsnames.
1521)
【在 y********o 的大作中提到】 : 对,我将学校那个Oracle10g的tnsnames.ora中相关的一节如下搬到我的XE之tnsnames. : ora了。 : Oracle10g = : (DESCRIPTION = : (ADDRESS_LIST = : (ADDRESS = (PROTOCOL = TCP)(HOST = oracle10g.my.univ.edu)(PORT = 1521) : ) : ) : (CONNECT_DATA = : (SERVER = DEDICATED)
|
c*****d 发帖数: 6045 | 7 我觉得你的网络没有问题,因为tnsping可以通,说明两边的端口没问题
应该是tnsnames.ora中service name没设对
你可以这样来确认一下
在你学校的oracle上添加tnsnames.ora,看看能不能通过
home
【在 y********o 的大作中提到】 : Oh, yes, I forgot to say that I've opened up port 1521 on my XP box at home : by making this port an exception. : I have not done anything to McAfee and AVG, which also run on my XP box. : : tnsnames. : 1521)
|
y********o 发帖数: 2565 | 8 学校的oracle上有tnsnames.ora,节选相关内容如下:
Oracle10g =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle10g.my.univ.edu)(PORT = 1521)
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = Oracle10g.my.univ.edu)
)
)
你是说将这一段paste到家里Oracle XE的tnsnames.ora里吗?我这样做了,还是不行。
【在 c*****d 的大作中提到】 : 我觉得你的网络没有问题,因为tnsping可以通,说明两边的端口没问题 : 应该是tnsnames.ora中service name没设对 : 你可以这样来确认一下 : 在你学校的oracle上添加tnsnames.ora,看看能不能通过 : : home
|
c*****d 发帖数: 6045 | 9 我的意思是在你学校的机器上用sqlplus测试一下
$> sqlplus /nolog
sqlplus> conn scott/tiger@Oracle10g
1521)
【在 y********o 的大作中提到】 : 学校的oracle上有tnsnames.ora,节选相关内容如下: : Oracle10g = : (DESCRIPTION = : (ADDRESS_LIST = : (ADDRESS = (PROTOCOL = TCP)(HOST = oracle10g.my.univ.edu)(PORT = 1521) : ) : (CONNECT_DATA = : (SERVER = DEDICATED) : (SERVICE_NAME = Oracle10g.my.univ.edu) : )
|
y********o 发帖数: 2565 | 10 测试如下:
sqlplus /nolog
SQL> connect scott/tiger@Oracle10g
Connected.
SQL> desc user_tables;
Name Null? Type
------------------------ -------- -----------------------
TABLE_NAME NOT NULL VARCHAR2(30)
TABLESPACE_NAME VARCHAR2(30)
CLUSTER_NAME VARCHAR2(30)
IOT_NAME VARCHAR2(30)
[snip]
SQL>
【在 c*****d 的大作中提到】 : 我的意思是在你学校的机器上用sqlplus测试一下 : $> sqlplus /nolog : sqlplus> conn scott/tiger@Oracle10g : : 1521)
|
|
|
c*****d 发帖数: 6045 | 11 你的结果说明你学校的机器1521端口没问题
service_name是Oracle10g.my.univ.edu
然后在你家里的机器tnsnames.ora上添加
Oracle10g =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle10g.my.univ.edu)(PORT = 1521)
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = Oracle10g.my.univ.edu)
)
)
然后做同样的测试
$> sqlplus /nolog
sqlplus> conn scott/tiger@Oracle10g |
y********o 发帖数: 2565 | 12 我按你说的做了,但是:
SQL> conn scott/tiger@Oracle10g
ERROR:
ORA-12170: TNS:Connect timeout occurred
SQL>
大概连不上了。还好,可以用Remote Desktop Connection.
【在 c*****d 的大作中提到】 : 你的结果说明你学校的机器1521端口没问题 : service_name是Oracle10g.my.univ.edu : 然后在你家里的机器tnsnames.ora上添加 : Oracle10g = : (DESCRIPTION = : (ADDRESS_LIST = : (ADDRESS = (PROTOCOL = TCP)(HOST = oracle10g.my.univ.edu)(PORT = 1521) : ) : (CONNECT_DATA = : (SERVER = DEDICATED)
|
c*****d 发帖数: 6045 | 13 这样的话应该是你家里计算机firewall的问题了
我建议你先把家里机器的firewall暂时关
关了以后应该就可以了
here is the explanation,
Opening port 1521 is not enough because the listener is only accepting
initial requests through that port,
but once the dedicated server process is started,
the connection between client and server is moved to a different port,
typically a randomly chosen port.
【在 y********o 的大作中提到】 : 我按你说的做了,但是: : SQL> conn scott/tiger@Oracle10g : ERROR: : ORA-12170: TNS:Connect timeout occurred : SQL> : 大概连不上了。还好,可以用Remote Desktop Connection.
|
y********o 发帖数: 2565 | 14 I saw that part, too.
I offed the XP firewall,
I disabled McAfee Online Scan.
I disabled AVG.
I disabled Norton Anti-Virus.
But it still gave me a timeout error.
【在 c*****d 的大作中提到】 : 这样的话应该是你家里计算机firewall的问题了 : 我建议你先把家里机器的firewall暂时关 : 关了以后应该就可以了 : here is the explanation, : Opening port 1521 is not enough because the listener is only accepting : initial requests through that port, : but once the dedicated server process is started, : the connection between client and server is moved to a different port, : typically a randomly chosen port.
|
c*****d 发帖数: 6045 | 15 我觉得现在可以确定是你这边的问题
因为
在server端没问题,1521端口工作 <- server端可以用sqlplus+tnsnames连接自己
问题肯定在client端,你用"netstat -a"看看
比如我去联server
tcp 0 0 coolbid.cs.xxxx.edu:32994 db.xxxx.edu:1521
ESTABLISHED
【在 y********o 的大作中提到】 : I saw that part, too. : I offed the XP firewall, : I disabled McAfee Online Scan. : I disabled AVG. : I disabled Norton Anti-Virus. : But it still gave me a timeout error.
|
y********o 发帖数: 2565 | 16 TCP myxppro:1791 wr-in-f19.google.com:http ESTABLISHED
TCP myxppro:1793 oracle10g.my.univ.edu:1521 TIME_WAIT
TCP myxppro:1794 oracle10g.my.univ.edu:2783 SYN_SENT
Oracle client这样随机选择端口,没法用防火墙啊。只能将vpn卸载,关闭所有反病毒
程序以及防火墙试试。
【在 c*****d 的大作中提到】 : 我觉得现在可以确定是你这边的问题 : 因为 : 在server端没问题,1521端口工作 <- server端可以用sqlplus+tnsnames连接自己 : 问题肯定在client端,你用"netstat -a"看看 : 比如我去联server : tcp 0 0 coolbid.cs.xxxx.edu:32994 db.xxxx.edu:1521 : ESTABLISHED
|