请教:Oracle端口问题

[复制链接]
查看11 | 回复6 | 2005-9-17 01:01:28 | 显示全部楼层 |阅读模式
请问有谁知道在两个远程数据库之间进行连接和数据传输,除了1521之外还要用到哪些端口?各个端口的作用是什么?在设置防火墙后必须开放哪些端口?谢谢!!!!
回复

使用道具 举报

千问 | 2005-9-17 01:01:28 | 显示全部楼层
目前我们这边的做法是全部端口都开放,,,
原因是即使你把要开的端口都开了也联接不了,具体为什么还在探索中,,,,,,
只要你都开了就可以了
回复

使用道具 举报

千问 | 2005-9-17 01:01:28 | 显示全部楼层
主要可能是和防火墙有关系,上次800是说什么不支持地址映射,但metalink有相关的文章可以解决,好像要改成sockt协议,那时我还盖了注册表的一个值和从新配net8就可以了
回复

使用道具 举报

千问 | 2005-9-17 01:01:28 | 显示全部楼层
我再帮你找一下!
回复

使用道具 举报

千问 | 2005-9-17 01:01:28 | 显示全部楼层
Firewalls, Windows NT, and Redirections: ========================================On Windows NT, when a connect request comes in to the listener, the listenerspawns an Oracle thread. This thread is a listening thread and is startedon a wild-card address, meaning that the thread is listening for connectionson the current IP address and an unused port number given to the thread bythe networking software. The Oracle thread will contact the listener usingIPC and inform the listener of its listening address, connection load, andsome other status information. The listener sends back to the client aREDIRECT address. This tells the client to reconnect to the newly spawnedOracle thread. Since this Oracle thread is on a random port (a range of portscannot be defined), the firewall will not let the connection through. The resulting error is usually a TNS-12203.There are two ways to resolve this issue:(i) The first way is to use a firewall that has a SQL*Net proxy built intoit. The way this works is that the SQL*Net proxy starts another listening process (usually on port 1610). This causes the firewall to act as aMulti-Protocol Interchange.So, by using the "tnsnav.ora" file on theclient, you connect to port 1610 (the firewall). The firewall passes theconnection to the server. The server gives a redirect to the client. Theclient reconnects to the firewall proxy on port 1610, and the firewallpasses the connection to the Oracle thread on the wild-card listeningaddress. Here's what the connection flow would look like:
1. connect to proxy and pass connection to listener 2. send redirect to client 3. connect to redirected address via the proxy 4. oracle accepts the connection
firewall
|| +------+proxy ----1------> +---------+ A \
/||\ |\---------3-------/ || \-----3------> +---------+ |
||
| oracle|(port=xxxx) +--------------4---------||-------4------- +---------+ (ii) The second way to resolve this issue is to upgrade the server to 8.0.x and use the USE_SHARED_SOCKET parameter in the registry. With this method, it doesn't matter what kind of firewall you have. The syntax for this parameter is: USE_SHARED_SOCKET = TRUE Place the parameter in the registry under HKEY_LOCAL_MACHINE:Software:Oracle Restart Oracle and the listener for the parameter to take effect. Here's how USE_SHARED_SOCKET works. The listener binds and creates a socket on the address specified in the "listener.ora" file.On this socket, there is a LISTEN state active that is used by the listener.When a new connection comes in to the listener, the listener spawns an Oracle thread on the listening port (i.e. 1521). This happens over and over again so that you have a listener and several established connections using port 1521. Pictorially this scenario would look like this:
+--------------------+
|
|
| This square represents
| a listening socket for |
| port 1521.
|
|
|= oracle thread
|= listener
|
|
|
+--------------------+ The operating system then does a poll() or a select() on the socket totest for any data. If any of the threads have data, a signal handler isused to contact the application and inform it of the new data. The disadvantage of USE_SHARED_SOCKET is that if the listener shuts down,all connections are dissolved. Finally, a very common question concerning the listener and port numbers iswhy different port numbers show up in the "listener.log" file.What you are seeing is the client's source port and client's source IP address.Here is how this relates to your firewall:If I want to make a TCP connection to a server (say with TELNET), I needto create a socket. To create a socket, I need 4 pieces of information:a source IP and port, and a destination IP and port.So, using TELNET as anexample (the listening port for the TELNET process is 23 on the server):
source destination
+-----------+---------------+ IP|138.2.12.8 |185.45.67.53 |
+-----------+---------------+ port|xx | 23|
+-----------+---------------+Notice I have labeled the source port as 'xx'.What happens is that thenetworking software on the client chooses at random, or in sequential order,a valid port (between 1024 and 65535) so the client can send and receive data.This is what you are seeing in the "listener.log" file.Question: Will this be a problem with the firewall? Answer: No.The firewall will restrict incoming connections, but will
freely let any connection on any port out (which is okay).Here is what it might look like:
Firewall
||
\---[SERVER]
<-------------||---------//
<-------------||---------/Search Words: =============ORA-12203
回复

使用道具 举报

千问 | 2005-9-17 01:01:28 | 显示全部楼层
USE_SHARED_SOCKET=true,
seems winxp also like this....
But if I have a db in Unix, what can I do?
回复

使用道具 举报

千问 | 2005-9-17 01:01:28 | 显示全部楼层
And one db in win 2003 with firewall in internet and a solaris db in intranet..............
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行