Re: SQL*NET: a server serves multiple ORACLE_HOME/ORACLE_SID?

From: Clay Jackson <cjackso_at_uswnvg.com>
Date: 25 Jan 93 22:11:00 GMT
Message-ID: <3119_at_uswnvg.uswnvg.com>


Jian Cai (jan_at_kowari.cpsg.com.au) wrote:

: Q: Does an ORACLE server serves requests from different ORACLE_HOME

: and/or ORACLE_SID?
: Assume on host A there are multiple sets of ORACLE_HOME/ORACLE_SID
: and on host B there is one orasrv running. Will the server on B serves
: clients on A? If not, how to get it work?

Your example is a bit different from (what I infer is) your question. I'm not sure how to answer your example, but, if your question was:

	Server(Host) A has two Oracle instances running (but one orasrv)
	Client B wants to access one of those instances 
Then the answer is a qualified "yes". The ORACLE_SID from the client determines which SID/ORACLE_HOME gets used (orasrv looks in /etc/oratab (on Unix systems) to find the correct combination). We do this all the time. The caveat is that if you're gonna use only ONE orasrv, then BOTH Oracle instances MUST be running THE SAME VERSION of the RDBMS kernel, and must have been linked with the "correct" (ie the same) SQL*NET drivers. In such a case, there's really no point in having two separate ORACLE_HOMEs, since all of the executables have to be at the same rev anyway.

If you want to get REALLY wierd, it is possible to run more than one version of the RDBMS (actually, it's not the kernel that gets you, it's the versions of the SQL*NET drivers that are linked with the kernel, but you should get the idea). Here's what you need to do (all of this assumes you're on a Unix box):

  1. In /etc/services, you'll find a line that looks something like orasrv 1525/tcp tcp # oracle This specifies the PORT number that orasrv is going to use. Add another line with a new port number, ala: mysrv 1526/tcp tcp # new server You may also have to hack your tcp startup files to enable this port, and your (Unix) kernel to support it.
  2. Start a the second listener, from the Unix command line, like so (note, this only works if you're using the TLI based server products - the command will probably be a bit different for socket based tcp): TLI_SERVER=mysrv; export TLI_SERVER tcptlictl start This will start a second listener, on the port you specified above.
  3. To connect to the second listener, put the name of the server in the connect string, like so: connect scott/tiger_at_T:<hostname>,mysrv:<sid> If you're unsure about any of this, you may want to contact Oracle Support and/or your SysAdmins for further assistance. As always, your mileage may vary.

Good luck!

--
Clay Jackson - N7QNM
US WEST NewVector Group Inc
Bellevue, WA
cjackso_at_uswnvg.com
Received on Mon Jan 25 1993 - 23:11:00 CET

Original text of this message