SQL*NET 에서 PROTOCOL ADAPTER DEINSTALL (UNIX)
제품 : SQL*NET
작성날짜 : 1998-11-24
SQL*NET 에서 불필요한 protocol adapters deinstall 하기(unix)
SQL*NET 에서 PROTOCOL ADAPTERS 를 DEINSTALL 하려면 다음과 같이 하시면
됩니다
1. ORACLE 계정으로 LOGIN
2. orainst directory 로 에서 ( % cd $ORACLE_HOME/orainst )
3. installer 실행 ( % ./orainst )
4. DEINSTALL 할 SOFTWARE 를 선택하시고
5. DEINSTALL 할 PROTOCOL ADAPTER 를 선택합니다
6. NETWORK 의 LIB 디렉토리에서 ( % cd $ORACLE_HOME/network/lib )
7. 새로운 ntcontab.o FILE 을 생성합니다 ( "$ORACLE_HOME/lib" 에 MOVE )
% make -f network.mk ntcontab.o
For 7.3.x:
% make -f ins_network.mk ntcontab.o
8. "ORACLE_HOME/lib" 디렉토리에서
% cd $ORACLE_HOME/lib
9. "libsqlnet.a" FILE 에 새로운 "ntcontab.o" FILE 을 archive 합니다
% ar cr libsqlnet.a ntcontab.o
Mark Gleaves (guest) wrote:
: When normal users try to use SQL*Net to log on to a local
: database on a Linux box, they get the message "ORA-12546:
: TNS:permission denied". An example of this would be the
: command
: sqlplus scott/tiger@MG8
: The oracle unix account can execute the above without problems
: and when a normal user sets ORACLE_SID and omits the SQL*Net
: connect string it works fine.
Check that your oracle executable is SUID oracle and SGID dba?
I'd have thought that would cause problems with bequeath
connections, so perhaps not.
Wierd error. You might try running an strace on the sqlplus to
see what system call fails.
-michael
null
Similar Messages
-
How to decipher SQL*Net protocols/packets?
hi,
we have a customer that sells compliance solutions that basically track and audit information at the packet level. in order to expand their customer base they would like to offer their solutions to customer that have business systems built on Oracle Forms 6.x and Pro*C. to do this they need to understand how our network communication works. is this something that is generally available? here are some details for what the partner wants from us ...
Their product intercepts the communication between a typical Db client and Db server at packet level, performs analysis on the packets and extracts the information required for SOX compliance. It's been successfully installed and working for various versions of Oracle servers and Clients, however it does not handle Oracle Forms and pro*C clients.
It also wrks for pro*c client except for bind variables and arrays.
We need information on packet formats during communication between Oracle database and Forms and pro*c clients. This will help our product to work for SOX compliance for the customers who have FORMS and pro*c clients without replacing them
I know that form Forms to DB its SQL*Net, not sure what the protocol is for PRO*C to DB communication but do we have documentation on both?Assuming you are on Windows, you can download the client installable from
http://download.oracle.com/otn/nt/oracle10g/10201/10201_client_win32.zip -- for Oracle 10g client
http://download.oracle.com/otn/nt/oracle11g/win32_11gR1_client.zip -- for Oracle 11g client
If you are looking for any other version, please mention the same. -
SUN 환경변수 (SUN 장비에서 PROTOCOL ADAPTER LINK)
제품 : SQL*NET
작성날짜 : 1997-11-20
SUN 환경변수 (SUN 장비에서 PROTOCOL ADAPTER LINK)
================================================
Oracle을 사용하면서 remote 데이타베이스 접속시 문제가 일어나는 경우 여러
원인이있으나 일반적으로 제품의 문제점을 최소한 줄인 상태에서 에러를 추적해
나가는 것이 바람직 하겠다. 이를 확인 하기 위해서 Oracle 제품을 처음 설치한
경우 과연 remote 데이타베이스를 제대로 접속할 수 있는지 제품에 link되어 있는
protocol adapter를 확인 하시는 방법과 이를 해결하는 방법에 대해 설명하겠다.
다음의 내용은 SUN Soraris에서의 환경에 대해서 확인과 조치하는 방법이며 OS에
따라 약간의 차이가 있다.
1. PROTOCOL ADAPTER가 제품에 제대로 link가 되어 있는지 확인하는 방법
1.1 Oracle V7.2이하
$ drivers oracle sqlplus
SQL*Net Drivers linked with oracle are:
V1 Pipes
SQL*NET V2
$ adapters oracle sqlplus
SQL*Net V2 Protocol Adapters linked with oracle are:
V2 BEQ Protocol Adapter
V2 IPC Protocol Adapter
V2 TCP/IP Protocol Adapter
Network security products linked with oracle are:
1.2 Oracle V7.3이상
$ adapters oracle
SQL*Net V2 Protocol Adapters linked with oracle are:
V2 BEQ Protocol Adapter
V2 IPC Protocol Adapter
V2 TCP/IP Protocol Adapter
V2 RAW Protocol Adapter
SQL*Net V2 Naming Adapters linked with oracle are:
V2 Oracle TNS Naming Adapter
V2 Oracle Naming Adapter
V2 Network Information Service Naming Adapter
Network security products linked with oracle are:
위에서 확인된 adapter는 제품 설치 유무에 따라 안 나오는 것도 있지만
기본적으로 TCP/IP, IPC, BEQ는 나와야 정상적으로 제품이 설치되어 있는
것이다.
만일 위에서 adapter가 제대로 나오지 않는다면 다음의 절차에 따라 작업을
하기 바란다.
2. .cshrc화일의 내용을 다음과 같이 수정하십시오.
umask 022
setenv ORACLE_SID ORA73
setenv ORACLE_HOME /db/app/oracle/product/7.3.2
setenv TNS_ADMIN $ORACLE_HOME/network/admin
setenv ORACLE_TERM xsun5
setenv ORA_NLS32 $ORACLE_HOME/ocommon/nls/admin/data
setenv NLS_LANG American_America.KO16KSC5601
setenv OPENWINHOME /usr/openwin
setenv TERM vt100
setenv LANG ko
set path=( /bin /usr/bin /opt/SUNWspro/bin /usr/ccs/bin
$ORACLE_HOME/bin /usr/ucb /etc .)
setenv LD_LIBRARY_PATH/usr/lib:/usr/dt/lib:$ORACLE_HOME/lib:$OPENWINHOME/lib:
/opt/SUNWspro/SC4.0/lib
stty erase ^H
위의 내용중 ORA_NLS는 데이타베이스 버젼에 따라 다르다.
Oracle V7.2이하 : ORA_NLS
Oracle V7.3.x : ORA_NLS32
Oracle V8.0.x : ORA_NLS33
그리고 LD_LIBRARY_PATH는 Oracle V7.3이후에 버젼에서는 다음이 추가된다.
HP unix : $ORACLE_HOME/lib:/usr/openwin/lib:usr/dt/lib
SUN solaris : /usr/openwin/lib
위의 작업이 끝난 후 다음과 같이 .cshrc를 다시 수행한다.
3. 수정한 사용자의 환경에 맞게 사용하는 shell에 따라 다음과 같이 수행한다.
3.1 Born or Korn shell
$ . .profile
3.2 C shell
$ source .cshrc
주의:
(1) 위의 환경 중 path에서 /bin과 /usr/ccs/bin은 항상 /usr/ucb앞에 있어야
한다.
(2) C compiler관련 directory확인 후 path에 지정하시기 바란다.
(위에서 /opt/SUNWspro/SC4.0/lib, /opt/SUNWspro/bin)
4. 환경 setting이 끝나면 우선 db와 listener를 stop 한다.
5. 각 directory에서 product relink를 하기 위해 다음을 실행한다.
$ cd $ORACLE_HOME/rdbms/lib
$ make -f clntsh.mk libclntsh
$ make -f ins_rdbms.mk install (Oracle V7.2이전 : oracle.mk)
$ cd $ORACLE_HOME/sqlplus/lib
$ make -f ins_sqlplus.mk install (Oracle V7.2이전 : sqlplus.mk)
$ cd $ORACLE_HOME/network/lib
$ make -f ins_network.mk install (Oracle V7.2이전 : network.mk)
위에서 make할 때 error가 나오면 안 됩니다.
6. 모든 make가 종료된 후 $ORACLE_HOME/bin에서 각각의 oracle executable
file에 SQL*NET protocol adapter가 제대로 relink가 되었는지 다음과
같이 확인한다.
(위의 1번에서 설명한 바와 같이 데이타베이스 버젼과 설치한 제품에 따라
약간 다를 수도 있음)
$ adapters oracle
$ adapters sqlplus
$ adapters tnslsnr
을 이용하여 다음과 같은 message가 나오면 정상적 입니다.
SQL*Net V2 Protocol Adapters linked with ______ * are:
V2 BEQ Protocol Adapter
V2 IPC Protocol Adapter
V2 TCP/IP Protocol Adapter
V2 RAW Protocol Adapter
SQL*Net V2 Naming Adapters linked with ______* are:
V2 Oracle TNS Naming Adapter
V2 Oracle Naming Adapter
Network security products linked with _____* are:
여기서 _____*는 adapters 명령어 다음에 나오는 항목이 나타나게 됨.
7. 작업이 끝난 후 listener를 먼저 start한 후 db를 startup 한다."dodgy power board"
If it were really a hardware issue then I would expect the link drop to be random and not exactly every 5min 30sec consistently every day all day. A hardware issue would be more intermittent.
"setdefaults"
Yeah, I think you're right on this. I was trying to avoid it but like you said I really do feel like I've tried everything else. Kind of going to stink losing my settings but hey if it fixes it then it'll be worth it.
"tried having a link up to the serial"
Yes, I have. It prints out "SC System Rebooted" every 5min 30sec just like in the log files and on the NET MGT port. Of course, the serial link does not drop because...well, it's serial. :) But I do see the message. Doesn't say anything else like "Help Me! It hurts!" Hehehe.
"loopback"
Unfortunately I don't have a crimp tool or cable to create an ethernet loopback cable. Otherwise that would be a great experiment. :-/ -
SQL*NET V2 SETUP (MTS)
제품 : SQL*NET
작성날짜 : 1997-06-23
SQL*NET V2 SETUP (MTS)
======================
UNIX에서 SQL*NET V2를 사용하려면 ORACLE 인스톨 후에 다음과 같이 SETUP을 한
다음 사용하면 된다. 여기서
ORACLE_HOME DIRECTORY는 /usr/oracle7
ORACLE_SID는 ORA7
이라고 가정한다.
1. (단, MTS로 setting하지 않고 dedicated로 접속할 때에는 이 과정은 생략하도록
한다.)
Multi-threaded server 프로세스들을 먼저 기동을 하여야 한다.
$ORACLE_HOME/dbs/initSID.ora 화일에 다음과 같은 내용을 추가하고
DB 를 다시 startup 을 한다
# Filename : /usr/oracle7/dbs/initSID.ora
# Protocol : tcp
mts_dispatchers="tcp, 3"
mts_max_dispatchers=10
mts_servers=5
mts_max_servers=10
mts_service=ORA7
mts_listener_address="(ADDRESS=(PROTOCOL=tcp)(port=1521)
(host=hostname))"
2. tnsnames.ora 및 listener.ora 를 작성한다. 이 화일들은
/usr/oracle7/network/admin 디렉토리에 만들어야 하며 유닉스 환경변수를
TNS_ADMIN=$ORACLE_HOME/network/admin
과 같이 지정하고 사용하는 것이 좋다.
<EXAMPLE>
# File name : /usr/oracle7/network/admin/listener.ora
# This configuration supports tcp
LISTENER =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = tcp)
(HOST = hostname)
(PORT = 1521)
STARTUP_WAIT_TIME_LISTENER = 0
CONNECT_TIMEOUT_LISTENER = 0
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = ORA7)
(ORACLE_HOME=/usr/oracle7)
# Filename : /usr/oracle7/network/admin/tnsnames.ora
TORA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = tcp)
(HOST = hostname)
(PORT=1521)
(CONNECT_DATA =
(SID = ORA7)
3. Listener process를 start한다.
$lsnrctl start
4. SQL*NET v2 를 사용하여 MTS 에 접속한다.(LOOPBACK TEST)
$ sqlplus scott/tiger@TORA
5. CLIENT에서 접속하는 경우라면 위에서 만든 tnsnames.ora 화일을 CLIENT의
$ORACLE_HOME/network/admin 디렉토리에 COPY 하기만 하면 된다.
6. 예를 들어 CLIENT가 WIN95라면 C:\ORAWIN95\NETWORK\ADMIN 디렉토리에
tnsnames.ora 화일을 COPY하면 된다. 만약 ORA-12154 에러가 발생하면
C:\ORAWIN95\NETWORK\ADMIN 디렉토리에 sqlnet.ora가 있는지 확인하고
이것을 sqlnet.old 같이 다른 이름으로 rename 한 후에 접속테스트를 해
보도록 한다. sql*plus(plus33.exe or plus33w.exe)로 접속하는 경우
다음과 같이 접속하면 된다.
USERNAME scott
PASSWORD tiger
HOST STRING TORA
* SERVER가 WINDOWS NT인 경우에는 다른 부분은 UNIX와 동일하게 setup하면
되고 단지 Listener를 띄우는 방법만 다르다.
제어판 -> SERVICES 에서 ORACLE 관련 SERVICE들을 모두 START 시켜주면 된다.This forum is for Oracle Migration Workbench issues, i.e. migration using the workbench from a non Oracle database to an Oracle database.
Here are some pointers that may be useful, but you may need to get more information elsewhere, for example Oracle Customer Support.
a Oracle 7.1 client (including your example) will connect to an Oracle 8.1.5 server.
Is the server correctly configured (can a client connect from another machine)?
Tracing can be turned on in the client, server and/or listener to get further information.
Turloch -
OS/390 (MVS) to Unix - SQL*Net - Exists?
I am going to start working with Oracle under MVS (OS/390).
I am familiar conceptually with the concept of SQL*Net and its distributed architecture enablement.
From a MVS perspective, does such a concept exist that would allow me, from MVS, to talk to an installation of Oracle on Unix via something like SQL*Net.
I have searched the documentation without success on this subject.This is not a problem. You must configure SQL*Net, of course according to OS/390 rules and then you can connect to servers on any other platform. We do it at our site. Here's a working example for tnsnames, using TCP/IP:
# TNS CONNECT DESCRIPTORS
# LOOPBACK FUER ORA8
# MVS-Loopback
ORA8LOOP = (DESCRIPTION =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = hame)
(SSN = NET8)
(PORT = 1520)
# Unix-Machine
GISA = (DESCRIPTION =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = sqlhhp03)
(SSN = NET8)
(PORT = 1521)
(CONNECT_DATA = (SID = GISA))
Werner -
SQL*Net Secure Protocol?
Anyone,
My security auditors are breathing down my back... Is SQL*Net considered a secure communication protocol?
Can someone with a Packet Sniffer siphen off my SQL*Net communications and obtain any data being transfered through it? Namely Passwords and DB connect paramateters, data is also a concern but less.
This is via an Internal Network not over the internet..
Thanks in advance,
Millleryes.
you an encrypt sql*net communications within the network.
ASO provides different bult-in mechanisms.
you just add the following entries with appropriate values
and your sqlnet is encrypted.
SQLNET.ENCRYPTION_SERVER = <ACCEPTED, REJECTED, REQUESTED or REQUIRED>
SQLNET.ENCRYPTION_CLIENT = <ACCEPTED, REJECTED, REQUESTED or REQUIRED>
SQLNET.CRYPTO_SEED = <STRING>
only disadvantage is
in 8i your internal account will be locked!
so you cant use dbstart/dbshut scripts.
workaoround is to script the following in your dbstart/dbshut
1. move or rename sqlnet.ora to something.ora
2. proceed with dbstart/dbshut.
3. move or rename something.ora to sqlnet.ora -
SQL*NET에서 CLIENT IP를 이용하여 CONNECT를 제한하는 방법(protocol.ora)
제품 : SQL*NET
작성날짜 : 2005-07-05
SQL*Net을 통해 listener에 접속할 수 있는 Client Node를 제한하는 방법
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SQL*Net을 사용하면서 특정한 Client Node의 접근을 제한할 수 있으며,
이 기능은 Oracle V7.1이상에서 적용을 할 수가 있습니다.
Configuration은
~ 8i:
$ORACLE_HOME/network/admin/protocol.ora에 설정합니다.
9i: $ORACLE_HOME/network/admin/sqlnet.ora file에 설정합니다.
변수 지정의 예;
1. tcp.validnode_checking = yes
tcp.invited_nodes=( 152.68.18.73 )
이 경우는 오직 152.68.18.73 Node의 사용자만 접속을 할수 있으며,
그외의 Node에서는 접속이 거절됩니다. (ora-12537 발생) 여기서 조심할
사항은 반드시 자기 자신의 IP를 invited_nodes에 등록해줘야 합니다.
2. tcp.validnode_checking = yes
tcp.excluded_nodes=( 152.68.18.73 )
이 경우는 152.68.18.73 만 접속이 거절되며, 그외의 다른 machine
에서는 접속이 정상적입니다.
3. tcp.validnode_checking = yes
tcp.invited_nodes = (152.68.19.210, 152.68.18.74)
tcp.excluded_nodes = (152.68.18.73)
152.68.19.210, 152.68.18.74 Node의 사용자는 Listener에 접속을
할 수 있고, 152.68.18.73 Node의 사용자는 접속을 못합니다.
단, 하나 이상의 ip address 를 나열할 때는 single line 에 기록해야
합니다.
이렇게 설정 후에는 listener를 재기동합니다. -
Oracle SQL*Net and TNS Protocol
I need to get technical documents on Oracle SQL*Net and TNS Proticol, down to the bit-level definition. I have talked to serveral people in Oracle Documentation, Sales and Tech Support, but no one could give me any clue so far. Any one can help me on this?
SQL*Net is installed by default with SQL*Plus and any of the clients (OEM uses the JDBC OCI driver and some native connectivity).
It is likely that the version of the client you have installed is not one that TOAD can work with or it can't find the client (is the Oracle home/bin directory in the path?) -
SQL*NET V1, V2의 STATUS를 확인하는 방법
제품 : SQL*NET
작성날짜 : 1995-11-06
* SQL*NET V 1의 적절한 사용 방법
ORASRV의 Permission, Owner 및 Group은 다음과 같이 설정이 되어 있어야 하며
파일의 Size는 Version에 따라 다를 수 있다.
-rwsr-xr-x 1 oracle dba 7544832 Jul 21 20:35 oracle
-rwsr-xr-x 1 root dba 303104 Jul 5 19:24 orasrv
만일 위와 같지 않다면 Unix 명령 프롬프트에서 다음을 수행하여 모드를 바꾸어
준다.
#chmod 4755 oracle
#chown root orasrv <= orasrv의 owner는 반드시 root로 되어야 합니다.
#chmod 4755 orasrv
1. SQL*NET V1을 사용하면서 가장 일반적으로 orasrv를 시작 및 정지 하는
경우이다.
#tcpctl start ( stop )
2. orasrv의 현상태를 확인하는 방법
#tcpctl status
tcputl: Status summary follows
Server is running :
Started : 4-OCT-95 15:58:48
Total connections : 0
Total rejections : 0
Active subprocesses : 0
ORACLE SIDs : RC,ORA722
Default SID : (null)
Logging mode is ENABLED.
DBA logins are DISABLED.
OPS$ logins are ENABLED.
OPS$ROOT logins are DISABLED.
Orasrv is detached from the terminal.
Break mode = OUT OF BAND.
Debug level = 1
Timeout (on orasrv handshaking) = 5 seconds.
Length of listen queue = 10
Orasrv logfile = /users2/oracle7/tcp/log/orasrv.log
Orasrv mapfile = /etc/oratab
* SQL*NET V2의 적절한 사용 방법
SQL*NET V2를 사용하는데 있어서 갖추야 할 파라미터 파일이 있다.
기본으로 listener.ora,tnsnames.ora,sqlnet.ora가 $ORACLE_HOME/network/admin
directory내에 있어야 합니다.(상기 파일에 대한 configuration은 SQL*NET
Administrator's Guide v 2.0을 참고하시기 바랍니다.)
1. SQL*NET V2을 사용하면서 가장 일반적으로 listener를 시작 및 정지 하는
경우이다.
#lsnrctl start (stop)
2. Oracle과 Listener의 Process를 확인하는 방법
$ ps -ef |grep ORA7
ora7 1343 1 7 Aug 22 ? 30:53 ora_dbwr_ORA7
ora7 1342 1 7 Aug 22 ? 0:32 ora_pmon_ORA7
ora7 1346 1 7 Aug 22 ? 0:00 ora_reco_ORA7
ora7 1347 1 7 Aug 22 ? 0:00 ora_s000_ORA7
ora7 1345 1 7 Aug 22 ? 12:25 ora_smon_ORA7
ora7 1344 1 7 Aug 22 ? 58:57 ora_lgwr_ORA7
ora7 1348 1 7 Aug 22 ? 0:00 ora_s001_ORA7
ora7 8036 1 7 Aug 22 ? 0:00 /ora/ora7/bin/tnslsnr LISTENER -
inherit
ora7 24279 1342 7 09:40:16 ? 0:05 ora_d001_ORA7
ora7 899 1342 7 14:54:36 ? 0:21 ora_d000_ORA7
3. Listener의 현상태를 확인하는 방법
$ lsnrctl service
LSNRCTL for 88open UNIX: Version 2.0.14.0.0 - Production on 24-AUG-94
09:19:37
Copyright (c) Oracle Corporation 1993. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=IPC)(KEY=ORA7))
Services Summary...
ORA7 has 3 service handlers
DEDICATED SERVER established:0 refused:0
DISPATCHER established:0 refused:0 current:0 max:60 state:ready
D000 (machine: AViiON, pid: 899)
(ADDRESS=(PROTOCOL=tcp)(DEV=6)(HOST=152.68.1.11)(PORT=2753))
DISPATCHER established:0 refused:0 current:0 max:60 state:ready
D002 (machine: AViiON, pid: 1357)
(ADDRESS=(PROTOCOL=ipc)(DEV=5)(KEY=#1357.1))
The command completed successfully
4. SQL*NET V2를 MTS와 DEDICATE방식으로 사용코자 할때.
MTS 방식 : ps -ef | grep s0 으로 시작하는 공유 process 를
띄어두고, tnsnames.ora 에 MTS 와 같은 alias 를
사용하여 접속한 session 들이 각각의 oracle process 를
띄우지 않고, 공유 process 를 사용하는 방법
dedicate 방식 :
tnsnames.ora 에 MTS_DED 와 같은 alias 를 사용하거나, alias 없이
server 에서 접속하는 유저들은 각각의 oracle process 를
기동시켜고 공유하지 않는다
$cd $ORACLE_HOME/network/admin/tnsnames.ora
MTS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = Hostname)
(PORT = 1521)
(CONNECT_DATA =
(SID = ORA7)
MTS_DED =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = Hostname)
(PORT = 1521)
(CONNECT_DATA =
(SID = ORA7)
(SRVR = DEDICATED)
5. SQL*NET V2 Pipe Adapter를 사용중이라면 ps command를 통해서
oracleSID (LOACL=YES)라는 Shadow Process로써 확인 할 수 있다.오랬만에 게시판에 들어오니 좀 썰렁하네요..
자주 들어와서 확인좀 하겠습니다.
SQL*NET V1 프로세스 수동 기동 중지는
기동
tcpctl start 중이
tcpctl stop -
Unable to create database due to ORA-12560, TNS protocol adapter error
Hello,
I'm trying to create an 8.1.7.0 database on a W2k server, but it is failing because as soon as svrmgrl is launched, I get an ORA-12560, TNS: protocol adapter error:
D:\oracle\db_creation_scripts>D:\oracle\ora81\bin\svrmgrl @D:\oracle\db_creation_scripts\mterm62run.sql
Oracle Server Manager Release 3.1.7.0.0 - Production
Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved.
ORA-12560: TNS:protocol adapter errorEcho ON
SVRMGR> connect INTERNAL/manager
ORA-12560: TNS:protocol adapter error
SVRMGR> startup nomount pfile="D:\oracle\admin\mterm62\pfile\initmterm62.ora"
LCC-00161: Message 161 not found; product=RDBMS; facility=MGR
My ORACLE_HOME, ORACLE_SID, and TNS_ADMIN environmental variables are correctly set, and I'm able to tnsping the listener.
I've enabled tracing, and my client trace file is:
--- TRACE CONFIGURATION INFORMATION FOLLOWS ---
New trace stream is d:\trace\client_trace.log_2084_9.trc
New trace level is 6
--- TRACE CONFIGURATION INFORMATION ENDS ---
--- PARAMETER SOURCE INFORMATION FOLLOWS ---
Attempted load of system pfile source d:\oracle\ora81\network\admin\sqlnet.ora
Parameter source loaded successfully
Attempted load of local pfile source D:\oracle\db_creation_scripts\sqlnet.ora
Parameter source was not loaded
-> PARAMETER TABLE LOAD RESULTS FOLLOW <-
Successful parameter table load
-> PARAMETER TABLE HAS THE FOLLOWING CONTENTS <-
TRACE_DIRECTORY_SERVER = d:\trace
TRACE_DIRECTORY_CLIENT = d:\trace
NAMES.DIRECTORY_PATH = (TNSNAMES, HOSTNAME)
SQLNET.CRYPTO_SEED = 4fhfguweotcadsfdsafjkdsfqp5f201p45mxskdlfdasf
TRACE_FILE_CLIENT = client_trace.log
TRACE_FILE_SERVER = server_trace.log
SQLNET.AUTHENTICATION_SERVICES = (NTS)
TRACE_UNIQUE_CLIENT = on
TRACE_LEVEL_CLIENT = ADMIN
TRACE_LEVEL_SERVER = ADMIN
--- PARAMETER SOURCE INFORMATION ENDS ---
--- LOG CONFIGURATION INFORMATION FOLLOWS ---
Log stream will be "D:\oracle\db_creation_scripts\sqlnet.log"
Log stream validation not requested
--- LOG CONFIGURATION INFORMATION ENDS ---
nigini: entry
nigini: Count in NI global area now: 1
nigini: Count in NI global area now: 1
nrigbi: entry
nrigbni: entry
nrigbni: Unable to get data from navigation file tnsnav.ora
nrigbni: exit
nrigbi: exit
nigini: exit
niqname: Hst is already an NVstring.
niqname: Inserting CID.
niotns: entry
niotns: niotns: setting up interrupt handler...
niotns: Not trying to enable dead connection detection.
niotns: Calling address: (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=BEQ)(PROGRAM=oracle)(ARGV0=oracleMTERM62)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))')))(CONNECT_DATA=(SID=MTERM62)(CID=(PROGRAM=D:\oracle\ora81\bin\SVRMGRL.EXE)(HOST=SERV0354)(USER=tarisa))))
nsmal: 140 bytes at 0x12493f0
nscall: connecting...
nladini: entry
nladini: exit
nladget: entry
nladget: exit
nlpcaini: entry
nlpcaini: prg =
nlpcaini: arg[0] =
nlpcaini: arg[1] =
nlpcaini: exit
nsmal: 420 bytes at 0x12542f0
nsmal: 1712 bytes at 0x12572f0
nsopen: opening transport...
ntpcon: entry
ntpcon: toc = 1
sntpcall: entry
snlpcss: entry
ntpcon: exit
nserror: nsres: id=0, op=65, ns=12560, ns2=0; nt[0]=530, nt[1]=2, nt[2]=0; ora[0]=0, ora[1]=0, ora[2]=0
nsopen: unable to open transport
nsmfr: 1712 bytes at 0x12572f0
nsmfr: 420 bytes at 0x12542f0
nladget: entry
nladget: exit
nsmfr: 140 bytes at 0x12493f0
nladtrm: entry
nladtrm: exit
nioqper: error from nscall
nioqper: nr err code: 0
nioqper: ns main err code: 12560
nioqper: ns (2) err code: 0
nioqper: nt main err code: 530
nioqper: nt (2) err code: 2
nioqper: nt OS err code: 0
niomapnserror: entry
niqme: entry
niqme: reporting NS-12560 error as ORA-12560
niqme: exit
niomapnserror: returning error 12560
niomapnserror: exit
niotns: Couldn't connect, returning 12560
niotns: exit
nigtrm: Count in the NI global area is now 0
nnfgdei: entry
nrigbd: entry
nrigbd: exit
nigtrm: Count in the NL global area is now 0
My tnsnames, listener and sqlnet.ora files are very simple:
## BEGIN TNSNAMES.ORA
# TNSNAMES.ORA Network Configuration File: D:\oracle\ora81\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
MTERM62 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.3.1.75)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = mterm62)
(INSTANCE_NAME = mterm62)
INST1_HTTP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.3.1.75)(PORT = 1521))
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = mterm62)
(PRESENTATION = http://admin)
# LISTENER.ORA Network Configuration File: D:\oracle\ora81\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = serv0354)(PORT = 1521))
SID_LIST_LISTENER =
(SID_DESC =
(ORACLE_HOME = D:\oracle\ora81)
(SID_NAME = mterm62)
TRACE_LEVEL_LISTENER = ADMIN
# SQLNET.ORA Network Configuration File: D:\oracle\ora81\NETWORK\ADMIN\sqlnet.ora
# Generated by Oracle configuration tools.
TRACE_DIRECTORY_CLIENT = d:\trace
TRACE_UNIQUE_CLIENT = on
TRACE_DIRECTORY_SERVER = d:\trace
SQLNET.AUTHENTICATION_SERVICES= (NTS)
TRACE_FILE_CLIENT = client_trace.log
TRACE_FILE_SERVER = server_trace.log
TRACE_LEVEL_CLIENT = ADMIN
TRACE_LEVEL_SERVER = ADMIN
NAMES.DIRECTORY_PATH= (TNSNAMES, HOSTNAME)
SQLNET.CRYPTO_SEED = 4fhfguweotcadsfdsafjkdsfqp5f201p45mxskdlfdasf
Does anyone have any ideas what else I can check. I'm a Unix person, not a Windows person, which is making it even more complicated. If I was on Unix, I'd just blow everything away and start again from scratch, but since I'm not sure how to remove all traces from the registry, etc., I don't want to try that on this machine. There was already one other database created, but it's not goign to be used.
Any help would be greatly appreciated.
regards,
Tarisa.hi,
thanks for the info. the problem, as it turns out, was that I was connected to the db server via a terminal service (Microsoft Management Console), which for some reason caused probelms with TNS. After I connected directly to the machine using VNC, I was able to create the database with no problems. strange but true.
regards,
Tarisa. -
Oracle 8i tns:protocol adapter error
Hello,
I am programmer and wanted to try and learn oracle
database. I am trying to install Oracle 8i Releae 8.1.5
developer edition (which I got with a book) on windows NT 4.0
with service pack 6. But after doing a minimal install when and
creating a database I am unable to access that database using
SQL plus. Whenever I try to connect an error message is
displayed saying:
"ora12560TNS: protocol adapter error."
I tried to install it on my friends machine on one
friends computer it worked but on another's it didn't work. Same
message appears on that friends machine also who is using
windows 2000 professional.
Could you please tell me what could be the problem.
Because I am able to connect to database using mmc snap-in
provided for database administration.
Also during installation it displays a message about a
single missing .tmp file in a sub-directory which is many levels
deeper than the directory where oracle is being installed. File
name I think is nmconf.tmp.
I hope you can suggest me some way to solve this problem.
Sukhwinder SinghCheck if you have enough space and the required permissions to write to the temporary directory used by the installer during installation.
We had a similar problem on a UNIX installation which was eventually traced to a non-writable temporary directory that caused the installation to silently fail, which effectively caused the TCP/IP protocol adapter not to be installed. -
TNS: connection closed error with SQL*net
Hi all,
I've got a new installation of Oracle 11.1.0.6.0 enterprise (Linux). It works fine with direct sqlplus connections but I'm having problems with SQL*net and JDBC thin client connections.
The database is built correctly and works fine:
user@cthulhu bash[61]: sqlplus user/pwd
SQL*Plus: Release 11.1.0.6.0 - Production on Mon Aug 4 12:59:53 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
SQL> select * from v$version;
BANNER
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 Production
TNS for Linux: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
SQL>
but if I try to connect using SQL*net I get errors. I have my TNS listener configured and it starts without errors, reporting the database as a service, and tnsping is fine:
user@cthulhu bash[62]: tnsping cthulhu_mar
TNS Ping Utility for Linux: Version 11.1.0.6.0 - Production on 04-AUG-2008 13:02:07
Copyright (c) 1997, 2007, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.30)(PORT=1521)) (CONNECT_DATA=(SID=mar)))
OK (10 msec)
user@cthulhu bash[63]: sqlplus user/pwd@cthulhu_mar
SQL*Plus: Release 11.1.0.6.0 - Production on Mon Aug 4 13:02:41 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
ERROR:
ORA-12537: TNS:connection closed
Enter user-name:
In listener.log:
Mon Aug 04 13:02:41 2008
04-AUG-2008 13:02:41 * (CONNECT_DATA=(SID=mar)(CID=(PROGRAM=sqlplus)(HOST=cthulhu)(USER=marbur))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.30)(PORT=41754)) * establish * mar * 12518
TNS-12518: TNS:listener could not hand off client connection
TNS-12547: TNS:lost contact
TNS-12560: TNS:protocol adapter error
TNS-00517: Lost contact
Linux Error: 32: Broken pipe
This is a new instance of Oracle so there is no problem with listener.log being too large (as I've seen elsewhere). I've also tried increasing PROCESSES and SESSIONS in the initSID.ora file without any impact. The listener ports are open through the firewall (and disabling it temporarily makes no difference).
Any suggestions?!
Thanks, MattThis means nothing to me, but it could to someone else......
from listener trace:
2008-08-04 16:19:05.135381 : nlpcaini:env[161] = OLDPWD=/u01/app/oracle/product/11.1.0/db_1
2008-08-04 16:19:05.135407 : nlpcaini:env[162] = ORA_NET2_DESC=12,15
2008-08-04 16:19:05.135432 : nlpcaini:env[163] = ORACLE_SPAWNED_PROCESS=1
2008-08-04 16:19:05.135465 : nlpcaini:exit
2008-08-04 16:19:05.135498 : nsc2addr:normal exit
2008-08-04 16:19:05.135536 : nsbeqaddr:entry
2008-08-04 16:19:05.135566 : nsbeqaddr:connecting...
2008-08-04 16:19:05.135603 : nsopen:entry
2008-08-04 16:19:05.135633 : nsmal:entry
2008-08-04 16:19:05.135667 : nsmal:1012 bytes at 0x81a8538
2008-08-04 16:19:05.135694 : nsmal:normal exit
2008-08-04 16:19:05.135722 : nsopenmplx:entry
2008-08-04 16:19:05.135749 : nsmal:entry
2008-08-04 16:19:05.135779 : nsmal:2020 bytes at 0x81a8930
2008-08-04 16:19:05.135804 : nsmal:normal exit
2008-08-04 16:19:05.135831 : nsiorini:entry
2008-08-04 16:19:05.135861 : nsbal:entry
2008-08-04 16:19:05.135889 : nsbgetfl:entry
2008-08-04 16:19:05.135918 : nsbgetfl:normal exit
2008-08-04 16:19:05.135966 : nsmal:entry
2008-08-04 16:19:05.135995 : nsmal:84 bytes at 0x81b3dd8
2008-08-04 16:19:05.136020 : nsmal:normal exit
2008-08-04 16:19:05.136057 : nsbal:normal exit
2008-08-04 16:19:05.136085 : nsiorini:exit (0)
2008-08-04 16:19:05.136112 : nscpxget:entry
2008-08-04 16:19:05.136139 : nscpxget:normal exit
2008-08-04 16:19:05.136168 : nsopenalloc_nsntx:nlhthput on mplx_ht_nsgbu:ctx=81a8538, nsntx=81a8930
2008-08-04 16:19:05.136196 : nsopenmplx:normal exit
2008-08-04 16:19:05.136225 : ntpcon:entry
2008-08-04 16:19:05.136253 : ntpcon:toc = 6
2008-08-04 16:19:05.136283 : ntpcon:exit
2008-08-04 16:19:05.136313 : nsopen:opening transport...
2008-08-04 16:19:05.136341 : ntpcon:entry
2008-08-04 16:19:05.136367 : ntpcon:toc = 1
2008-08-04 16:19:05.136404 : sntpcall:entry
2008-08-04 16:19:05.157048 : sntpcall:detaching from parent with additional fork
2008-08-04 16:19:05.157304 : sntpcall:hdl[IR]=17, hdl[IW]=16
2008-08-04 16:19:05.157350 : ntpcon:exit
2008-08-04 16:19:05.157390 : nserror:entry
2008-08-04 16:19:05.157428 : nsoptions:entry
2008-08-04 16:19:05.157459 : nsoptions:lcl[0]=0x0, lcl[1]=0x2006, gbl[0]=0x0, gbl[1]=0x0, cha=0x0
2008-08-04 16:19:05.157488 : nsoptions:Vectored IO not supported.
2008-08-04 16:19:05.157518 : nsoptions:lcl[0]=0xf4ffe9ff, lcl[1]=0x6016, gbl[0]=0xe881, gbl[1]=0x0
2008-08-04 16:19:05.157545 : nsoptions:normal exit
2008-08-04 16:19:05.157574 : nsnainit:entry
2008-08-04 16:19:05.157603 : nsnainit:normal exit
2008-08-04 16:19:05.157642 : nsopen:global context check-in (to slot 6) complete
2008-08-04 16:19:05.157675 : nsopen:lcl[0]=0xf4ffe9ff, lcl[1]=0x6016, gbl[0]=0xe881, gbl[1]=0x0, tdu=4096, sdu=8192
2008-08-04 16:19:05.157706 : nsfull_opn:entry
2008-08-04 16:19:05.157735 : nsfull_opn:cid=6, opcode=65, bl=0, what=0, uflgs=0x0, cflgs=0x0
2008-08-04 16:19:05.157761 : nsfull_opn:nsctx: state=7, flg=0x4001, mvd=0
2008-08-04 16:19:05.157790 : nsfull_opn:normal exit
2008-08-04 16:19:05.157816 : nsopen:normal exit
2008-08-04 16:19:05.157854 : nsevreg:entry
2008-08-04 16:19:05.157884 : nsevreg:begin registration process for 6
2008-08-04 16:19:05.157912 : nsevregPrePost:entry
2008-08-04 16:19:05.157940 : nsevregPrePost:normal exit
2008-08-04 16:19:05.157968 : nsevreg:sgt=0, evn=1, evt[2]=0x0
2008-08-04 16:19:05.157996 : nsevreg:begin notification process for 6
2008-08-04 16:19:05.158022 : nsevregAffectNotif:entry
2008-08-04 16:19:05.158050 : nsevregAffectNotif:exit (0)
2008-08-04 16:19:05.158078 : nsevreg:rdm=0, sgt=0, evt[0]=0x800, [1]=0x800, [2]=0x0, nrg=0
2008-08-04 16:19:05.158105 : nsevreg:registering for 0x800
2008-08-04 16:19:05.158135 : ntpctl:entry
2008-08-04 16:19:05.158162 : ntpctl:exit
2008-08-04 16:19:05.158203 : nsevreg:normal exit
2008-08-04 16:19:05.158260 : nsbeqaddr:error exit
2008-08-04 16:19:05.158289 : nsbequeath:error exit
2008-08-04 16:19:05.158342 : nsglhe:exit -
TROUBLE SHOOTING PROBLEM ON SQL*NET, NET8.X, AND NET SERVICES
제품 : SQL*NET
작성날짜 : 2002-11-24
TROUBLE SHOOTING PROBLEM ON SQL*NET, NET8.X, AND NET SERVICES
(GENERATING TRACE FILE OF SQL*NET, NET8.X, AND NET SERVICES)
==========================================================
PURPOSE
이 글은 고객들이 Oracle Server의 Oracle Networking 제품들을 사용하다가
Networking과 관련된 문제를 만났으나 스스로 해결할 수 없는 경우, 예를
들어 http://metalink.oracle.com 에서 같은 case를 발견할 수 없는 경우,
원인을 찾기 위하여 Networking 제품의 trace를 떠 보는 방법을 설명합니다.
Explanation
Oracle Networking 제품을 사용 중에 어떠한 문제를 겪는 경우 무엇보다도
OS의 Networking Protocol Stack 쪽을 살펴보는 것이 선행되어야 합니다.
일부 고객분들은 Oracle Networking 제품들이 OS의 Protocol Stack이 동작
하는데 어떤 중대한 영향을 주는 것이 아닌가 하고 문의를 합니다만
그러한 의문은 Oracle Networking 제품도 OS의 Protocol Stack을 사용하는
하나의 network client라는 것을 이해함으로써 해소가 됩니다.
Oracle Networking 제품도 OS의 Protocol Stack을 이용하는 하나의 network
client이기 때문에 Oracle Networking 제품이 OS Protocol Stack의 동작에
어떠한 식으로든 영향을 준다던가 하는 것은 있을 수 없기 때문입니다.
고객의 관점에서 OS의 Protocol Stack은 정상적으로 설정이 되었다고 믿고
있으며 기타 networking 환경을 정확히 판단할 수 없는, 예를 들어
host설정은 잘 되어 있다고 믿고 있으나 firewall을 통해야만 하는 등의
다소 접근하기 어려운 networking 환경에서 networking이 잘 되지 않는,
예를 들어, Oracle Server에 연결이 잘 안되거나 연결 중 networking
error가 발생하는 경우에는 http://metalink.oracle.com에서 같은 case를
찾는 것이 가장 빠른 해결 방법입니다.
그러나 드물게 http://metalink.oracle.com에서 같은 case가 나오지 않는
경우 Oracle Networking 제품의 trace file을 떠서 원인을 찾게 됩니다.
Oracle Networking 제품은 Oracle 7.x에서 SQL*Net, Oracle 8.x에서 Net 8.x,
Oracle 9.x에서 Oracle Net Services라는 이름이 가지고 있으나 여기에서는
편의상 모두 Oracle Networking 제품으로 부르도록 하겠습니다.
아울러 여기서 언급하는 Trace File은 Oracle Server의 Trace File과
다른 것입니다. Oracle Server의 Trace File은 database instance의 대한
내용만을 기록하며 Oracle Networking 제품의 Trace File은 networking에
대한 내용만을 기록합니다.
Trace File의 작성 방법은 Oracle 7.x부터 9.x까지 같습니다.
Solution Description
1. Client가 되는 host에서 어떠한 문제를 경험한 경우, 간혹 문제의 발생
빈도가 낮거나 network나 server 쪽에 이상을 느끼시면서도 문제를 확인하기
여러운 경우가 있습니다. 이런 경우엔는 문제가 다시 발생될 때 까지
Client에서 Client Trace File를 작성하여 보아야 합니다.
a. prompt$ echo $TNS_ADMIN
b. $TNS_ADMIN이 설정되어 있으면, prompt$ cd $TNS_ADMIN
아니면, prompt$ cd $ORACLE_HOME/network/admin
c. vi sqlnet.ora
# 다음 line들을 추가
TRACE_LEVEL_client=16
TRACE_FILE_client=<filename>
TRACE_DIRECTORY_client=<directory>
TRACE_UNIQUE_client=TRUE
:wq
prompt$
예를 들어, client가 Windows OS인 경우 다음과 같이 합니다.
prompt> notepad sqlnet.ora
TRACE_LEVEL_client=16
TRACE_FILE_client=client
TRACE_DIRECTORY_client=D:\temp
TRACE_UNIQUE_client=TRUE
prompt>
d. SQL*Plus와 같은, 또는 사용하던 Client software를 계속 이용
e. 다시 문제가 발생
f. 작성된 trace file들의 날자를 보아 문제가 발생한 시간과
거의 같은 시간에 작성된 file들이 있는지 확인
prompt> dir D:\temp
client_<PID1>.trc ...
client_<PID2>.trc ...
prompt>
g. trace를 중단합니다.
prompt$ vi sqlnet.ora
TRACE_LEVEL_client=0
:wq
prompt$
h. Trace Assistant를 이용하여 Oracle Networking 제품의 error code
(이하 TNS error code)를 trace file에서 찾아냅니다.
prompt$ cd <directory of TRACE_DIRECTORY_client>
prompt$ trcasst <filename of TRACE_FILE_client>_<PID>.trc > trcasst.out
prompt$ vi -R trcasst.out
Trace Assistant (trcasst command)는 Oracle 8.x부터 제공되며,
Oracle 9.x의 Trace Assistant를 사용할 것을 권합니다.
i. oerr command로 tns error에 대한 error message를 봅니다.
예를 들어, 흔한 경우 중에 listener가 실행 중이지 않거나 잘못된
tnsnames.ora 설정으로 client가 listener가 service 중이지 않은
network address로 연결을 시도하다가 TNS-12541 TNS-12560 TNS-511
error가 차례대로 나왔다면 다음과 같이 하여 각 TNS error code에
대한 message와 설명 및 해결방법을 볼 수 있습니다.
prompt$ oerr tns 12541
prompt$ oerr tns 12560
prompt$ oerr tns 511
j. Trace Assistant가 알려준 TNS error code를 http://metalink.oracle.com
에서 검색하여 같은 case가 있는지 확인합니다.
Web browser에서:
1) Go to http://metalink.oracle.com, then login
오른쪽 위 HTML frame에서 :
2) "Advanced" Button을 누릅니다.
오른쪽 아래 HTML frame에서:
3) "Enter Keyword" text box에 tns error code를 모두 입력합니다.
예를 들어, tns-12541 tns-12560 tns-511
4) "Search" button을 누릅니다.
k. http://metalink.oracle.com에서 검색이 거의 되지 않거나
문제가 매우 이상한 경우 이 글 아래를 보시기 바랍니다.
2. Client에서 SQL*Plus나 Oracle Client를 사용하는 다른 3rd party
appliction은 잘 동작하나 유독 tnsping command에서 error가 나는 경우가
드물게 있습니다. 이 때에는 tnsping command의 trace file을 작성해봅니다.
prompt$ vi sqlnet.ora
TNSPING_TRACE_LEVEL=16
TNSPING_TRACE_DIRECTORY=<directory>
:wq
prompt$ tnsping <tns alias>
3. Server, 즉 listener에 문제가 있다고 생각되는 경우 우선 listener의
log file을 봅니다. listener의 log에 대해서는 bulletin.18364를
이용합니다.
4. listener의 trace file은 다음과 같이 설정합니다.
listener의 trace 설정은 parameter 이름에 trace file을 작성하고자 하는
listener의 이름이 오는 점, 설정 후 listener process를 restart해야 하는
점 두 가지를 제외하면 나머지 절차가 앞서 설명드린 client와 같습니다.
prompt$ vi listener.ora
TRACE_LEVEL_<listener name>=16
TRACE_FILE_<listener name>=<filename>
TRACE_DIRECTORY_<listener name>=<directory>
:wq
prompt$ lsnrctl stop <listener name>
prompt$ lsnrctl start <listener name>
5. 만일 위와 같이 http://metalink.oracle.com을 검색하여도
같은 case가 전혀 없거나 찾아낸 error message들이 원인과 관련이 없어
보일정도로 매우 이상한 경우 다음과 같이 해봅니다.
a. Oracle Software의 version과 OS의 version이 certification matrix에
있는 지 확인합니다.
Web browser에서:
1) Go to http://metalink.oracle.com, then login
왼쪽 menu에서 :
2) "Certify & Availabilty" menu item을 click합니다.
오른쪽 아래 HTML frame에서:
3) 현재 사용중인 Product와 그 version 및 OS와 그 version을 선택하
여 검색합니다.
Certification Matrix는 매우 정확하게 정보를 보여주고 있습니다.
Matrix에 없는 Oracle Product와 OS version은 certify되어 있지 않으며
모든 Oracle 제품을 Certify되지 않은 OS version에서 사용하는 것은
그 어떠한 이유로든 보증과 지원이 되지 않습니다.
만일 사용중인 제품이 certify되지 않은 경우, 무조건 certify된 제품
과 OS의 version으로 install하여 다시 시도를 해야 합니다.
예를 들어, Windows OS의 경우 그 어떠한 Oracle 제품도 Windows Me 및
Windows XP Home Edition에 certify되어 있지 않습니다.
Windows 2000 Professional 이상에 Certify된 제품은 Oracle 8.1.6부터
이며 XP Professional 이상에 Certify된 제품은 Oracle 9.0.1부터
입니다.
Oracle 제품은 software이기는 하나 매우 완벽한 수준의 제품이라고 할
수 있습니다. 그러나 Oracle 제품은 하나의 OS의 process로써 실행이
되고 시간이 지나며 많은 환경이 major upgrade가 되면서 그러한 환경
에 따라 Oracle software도 새로운 version으로 제작이 되면서 다시
certification이 이루어지게 됩니다.
그렇기 때문에 고객들은 특히 다수의 client나 고가의 server를 계획하
시는 고객들은 저희 certification matrix를 사전에 철저히 확인하셔야
합니다.
앞서 Certification Matrix이전에 Installation Guide에 명시된
OS version만이 certify되어 있다고 생각하시면 되겠습니다.
b. Unix에서는 Oracle Software를 install한 후 OS의 Networking patch를
씌우고 사용하다보면 문제가 되는 경우가 있습니다.
이런 경우 relink를 해주어 바뀐 OS환경에서 Oracle 실행 file들을 다
시 만들어 주어야 합니다.
자세한 내용은 http://metalink.oracle.com에서
다음 글을 읽어 보시기 바랍니다.
Note:131321.1 How to Relink Oracle Database Software on UNIX
c. Certify된 환경에서도 원인을 찾을 수 없는 경우 trace file을 가지고
Oracle Support Services에 문의를 합니다. (지원 계약 고객에 한함)
Reference Documents
Chapter 17 Trouble shooting Oracle Net Services
Oracle 9i Net Services Administrator's Guide
SQL*Net, Net8.x, Net Services 9.x Network Administration Guide/Reference제품 : SQL*NET
작성날짜 : 2002-11-24
TROUBLE SHOOTING PROBLEM ON SQL*NET, NET8.X, AND NET SERVICES
(GENERATING TRACE FILE OF SQL*NET, NET8.X, AND NET SERVICES)
==========================================================
PURPOSE
이 글은 고객들이 Oracle Server의 Oracle Networking 제품들을 사용하다가
Networking과 관련된 문제를 만났으나 스스로 해결할 수 없는 경우, 예를
들어 http://metalink.oracle.com 에서 같은 case를 발견할 수 없는 경우,
원인을 찾기 위하여 Networking 제품의 trace를 떠 보는 방법을 설명합니다.
Explanation
Oracle Networking 제품을 사용 중에 어떠한 문제를 겪는 경우 무엇보다도
OS의 Networking Protocol Stack 쪽을 살펴보는 것이 선행되어야 합니다.
일부 고객분들은 Oracle Networking 제품들이 OS의 Protocol Stack이 동작
하는데 어떤 중대한 영향을 주는 것이 아닌가 하고 문의를 합니다만
그러한 의문은 Oracle Networking 제품도 OS의 Protocol Stack을 사용하는
하나의 network client라는 것을 이해함으로써 해소가 됩니다.
Oracle Networking 제품도 OS의 Protocol Stack을 이용하는 하나의 network
client이기 때문에 Oracle Networking 제품이 OS Protocol Stack의 동작에
어떠한 식으로든 영향을 준다던가 하는 것은 있을 수 없기 때문입니다.
고객의 관점에서 OS의 Protocol Stack은 정상적으로 설정이 되었다고 믿고
있으며 기타 networking 환경을 정확히 판단할 수 없는, 예를 들어
host설정은 잘 되어 있다고 믿고 있으나 firewall을 통해야만 하는 등의
다소 접근하기 어려운 networking 환경에서 networking이 잘 되지 않는,
예를 들어, Oracle Server에 연결이 잘 안되거나 연결 중 networking
error가 발생하는 경우에는 http://metalink.oracle.com에서 같은 case를
찾는 것이 가장 빠른 해결 방법입니다.
그러나 드물게 http://metalink.oracle.com에서 같은 case가 나오지 않는
경우 Oracle Networking 제품의 trace file을 떠서 원인을 찾게 됩니다.
Oracle Networking 제품은 Oracle 7.x에서 SQL*Net, Oracle 8.x에서 Net 8.x,
Oracle 9.x에서 Oracle Net Services라는 이름이 가지고 있으나 여기에서는
편의상 모두 Oracle Networking 제품으로 부르도록 하겠습니다.
아울러 여기서 언급하는 Trace File은 Oracle Server의 Trace File과
다른 것입니다. Oracle Server의 Trace File은 database instance의 대한
내용만을 기록하며 Oracle Networking 제품의 Trace File은 networking에
대한 내용만을 기록합니다.
Trace File의 작성 방법은 Oracle 7.x부터 9.x까지 같습니다.
Solution Description
1. Client가 되는 host에서 어떠한 문제를 경험한 경우, 간혹 문제의 발생
빈도가 낮거나 network나 server 쪽에 이상을 느끼시면서도 문제를 확인하기
여러운 경우가 있습니다. 이런 경우엔는 문제가 다시 발생될 때 까지
Client에서 Client Trace File를 작성하여 보아야 합니다.
a. prompt$ echo $TNS_ADMIN
b. $TNS_ADMIN이 설정되어 있으면, prompt$ cd $TNS_ADMIN
아니면, prompt$ cd $ORACLE_HOME/network/admin
c. vi sqlnet.ora
# 다음 line들을 추가
TRACE_LEVEL_client=16
TRACE_FILE_client=<filename>
TRACE_DIRECTORY_client=<directory>
TRACE_UNIQUE_client=TRUE
:wq
prompt$
예를 들어, client가 Windows OS인 경우 다음과 같이 합니다.
prompt> notepad sqlnet.ora
TRACE_LEVEL_client=16
TRACE_FILE_client=client
TRACE_DIRECTORY_client=D:\temp
TRACE_UNIQUE_client=TRUE
prompt>
d. SQL*Plus와 같은, 또는 사용하던 Client software를 계속 이용
e. 다시 문제가 발생
f. 작성된 trace file들의 날자를 보아 문제가 발생한 시간과
거의 같은 시간에 작성된 file들이 있는지 확인
prompt> dir D:\temp
client_<PID1>.trc ...
client_<PID2>.trc ...
prompt>
g. trace를 중단합니다.
prompt$ vi sqlnet.ora
TRACE_LEVEL_client=0
:wq
prompt$
h. Trace Assistant를 이용하여 Oracle Networking 제품의 error code
(이하 TNS error code)를 trace file에서 찾아냅니다.
prompt$ cd <directory of TRACE_DIRECTORY_client>
prompt$ trcasst <filename of TRACE_FILE_client>_<PID>.trc > trcasst.out
prompt$ vi -R trcasst.out
Trace Assistant (trcasst command)는 Oracle 8.x부터 제공되며,
Oracle 9.x의 Trace Assistant를 사용할 것을 권합니다.
i. oerr command로 tns error에 대한 error message를 봅니다.
예를 들어, 흔한 경우 중에 listener가 실행 중이지 않거나 잘못된
tnsnames.ora 설정으로 client가 listener가 service 중이지 않은
network address로 연결을 시도하다가 TNS-12541 TNS-12560 TNS-511
error가 차례대로 나왔다면 다음과 같이 하여 각 TNS error code에
대한 message와 설명 및 해결방법을 볼 수 있습니다.
prompt$ oerr tns 12541
prompt$ oerr tns 12560
prompt$ oerr tns 511
j. Trace Assistant가 알려준 TNS error code를 http://metalink.oracle.com
에서 검색하여 같은 case가 있는지 확인합니다.
Web browser에서:
1) Go to http://metalink.oracle.com, then login
오른쪽 위 HTML frame에서 :
2) "Advanced" Button을 누릅니다.
오른쪽 아래 HTML frame에서:
3) "Enter Keyword" text box에 tns error code를 모두 입력합니다.
예를 들어, tns-12541 tns-12560 tns-511
4) "Search" button을 누릅니다.
k. http://metalink.oracle.com에서 검색이 거의 되지 않거나
문제가 매우 이상한 경우 이 글 아래를 보시기 바랍니다.
2. Client에서 SQL*Plus나 Oracle Client를 사용하는 다른 3rd party
appliction은 잘 동작하나 유독 tnsping command에서 error가 나는 경우가
드물게 있습니다. 이 때에는 tnsping command의 trace file을 작성해봅니다.
prompt$ vi sqlnet.ora
TNSPING_TRACE_LEVEL=16
TNSPING_TRACE_DIRECTORY=<directory>
:wq
prompt$ tnsping <tns alias>
3. Server, 즉 listener에 문제가 있다고 생각되는 경우 우선 listener의
log file을 봅니다. listener의 log에 대해서는 bulletin.18364를
이용합니다.
4. listener의 trace file은 다음과 같이 설정합니다.
listener의 trace 설정은 parameter 이름에 trace file을 작성하고자 하는
listener의 이름이 오는 점, 설정 후 listener process를 restart해야 하는
점 두 가지를 제외하면 나머지 절차가 앞서 설명드린 client와 같습니다.
prompt$ vi listener.ora
TRACE_LEVEL_<listener name>=16
TRACE_FILE_<listener name>=<filename>
TRACE_DIRECTORY_<listener name>=<directory>
:wq
prompt$ lsnrctl stop <listener name>
prompt$ lsnrctl start <listener name>
5. 만일 위와 같이 http://metalink.oracle.com을 검색하여도
같은 case가 전혀 없거나 찾아낸 error message들이 원인과 관련이 없어
보일정도로 매우 이상한 경우 다음과 같이 해봅니다.
a. Oracle Software의 version과 OS의 version이 certification matrix에
있는 지 확인합니다.
Web browser에서:
1) Go to http://metalink.oracle.com, then login
왼쪽 menu에서 :
2) "Certify & Availabilty" menu item을 click합니다.
오른쪽 아래 HTML frame에서:
3) 현재 사용중인 Product와 그 version 및 OS와 그 version을 선택하
여 검색합니다.
Certification Matrix는 매우 정확하게 정보를 보여주고 있습니다.
Matrix에 없는 Oracle Product와 OS version은 certify되어 있지 않으며
모든 Oracle 제품을 Certify되지 않은 OS version에서 사용하는 것은
그 어떠한 이유로든 보증과 지원이 되지 않습니다.
만일 사용중인 제품이 certify되지 않은 경우, 무조건 certify된 제품
과 OS의 version으로 install하여 다시 시도를 해야 합니다.
예를 들어, Windows OS의 경우 그 어떠한 Oracle 제품도 Windows Me 및
Windows XP Home Edition에 certify되어 있지 않습니다.
Windows 2000 Professional 이상에 Certify된 제품은 Oracle 8.1.6부터
이며 XP Professional 이상에 Certify된 제품은 Oracle 9.0.1부터
입니다.
Oracle 제품은 software이기는 하나 매우 완벽한 수준의 제품이라고 할
수 있습니다. 그러나 Oracle 제품은 하나의 OS의 process로써 실행이
되고 시간이 지나며 많은 환경이 major upgrade가 되면서 그러한 환경
에 따라 Oracle software도 새로운 version으로 제작이 되면서 다시
certification이 이루어지게 됩니다.
그렇기 때문에 고객들은 특히 다수의 client나 고가의 server를 계획하
시는 고객들은 저희 certification matrix를 사전에 철저히 확인하셔야
합니다.
앞서 Certification Matrix이전에 Installation Guide에 명시된
OS version만이 certify되어 있다고 생각하시면 되겠습니다.
b. Unix에서는 Oracle Software를 install한 후 OS의 Networking patch를
씌우고 사용하다보면 문제가 되는 경우가 있습니다.
이런 경우 relink를 해주어 바뀐 OS환경에서 Oracle 실행 file들을 다
시 만들어 주어야 합니다.
자세한 내용은 http://metalink.oracle.com에서
다음 글을 읽어 보시기 바랍니다.
Note:131321.1 How to Relink Oracle Database Software on UNIX
c. Certify된 환경에서도 원인을 찾을 수 없는 경우 trace file을 가지고
Oracle Support Services에 문의를 합니다. (지원 계약 고객에 한함)
Reference Documents
Chapter 17 Trouble shooting Oracle Net Services
Oracle 9i Net Services Administrator's Guide
SQL*Net, Net8.x, Net Services 9.x Network Administration Guide/Reference -
SQL*NET V1 사용 시 ORA-6107 조치 방법
제품 : SQL*NET
작성날짜 : 2005-11-06
* Windows용 SQL*NET TCP/IP Ver 1.X는 SQLTCP.DLL과 SQLTCP1.DLL 두 개의
DLL이 하나로 구성되어 있다. 이들 DLL은 ORACLE용 연결 스트링이 TCP/IP
프로토콜 스트링으로 확인되면 작업진행중에 OCI DLL에 의해 올려진다.
ORACLE Interface DLL은 SQLTCP.DLL을 먼저 올리려고 한다. 이것이 실패하면
DOS TSR 버전의 드라이버를 찾는다. 두 가지 모두 실패하면 ORA-3121
메세지가 나온다.
1. SQL*NET TCP/IP DLL이 올려지고 초기화가 되는 즉시 Logon 시도를 시작한다.
2. 이때 모든 것이 정상적이라면 logon시 제공된 연결 스트링내의 I.P
Address대신 Hostname을 사용하여 해결해 본다. 이러한 과정이 정상적이라면
클라이언트측의 통신관련 디렉토리에 있는 Services 화일에 Oracle Service's
Portnumber를 제대로 부여한 것이며 SQL*NET TCP/IP DLL이 ORACLE.INI ( 또는
WIN.INI의 [Oracle] session의 ORA_CONFIG=<path>\ORACLE.INI에 기술된 내용)
내에 기술된 TCP_SERVICES_FILE = <network protocol path> \services 을
사용한다는 것이다.
ORACLE Service를 받는 Part Number SERVICES files내에 "orasrv" 라고
기술된다. SERVICES File의 예를 보면 하단과 같다.
# This list has been derived from RFC1060
# TCP Ports
# Service Name Port/Protocol Aliases
echo 7/tcp
discard 9/tcp sink null
systat 11/tcp users
listener 1521/tcp oracle ? SQL*NET V2 인 경우
orasrv 1525/tcp oracle ? SQL*NET V1 인 경우
3. 만일 TCP_SERVICES_FILE에 SERVICES화일이 구성되어있지 않았다면
"orasrv"의 접속이 실패된다. 만일 SERVICES File Name이 제대로 구성되어
있다면 file내에 표현되어 있는 "orasrv" 항목을 점검한다. SERVICES File
내의 각 항목 끝에 <CARRIAGE RETURN> 이 없을 경우나 "orasrv" line 상에
<TAB>이 있을 경우에도 이러한 메세지를 수반한다.
* ORA-6107을 진단하는 방법
1. ORA-6107의 경우 ORACLE.INI내의 TCP_SERVICES_FILE이 무엇인지 (또는
WIN.INI내의 [ORACLE] Section에 ORA_CONFIG가 무엇인지)를 점검한다.
- ORACLE.INI의 경우
TCP_SERVICES_FILE=<path>\SERVICES
- WIN.INI의 경우
ORA_CONFIG=c:\windows\oracle.ini
- 만약 설정이 되어 있지 않았다면 Client상에서 사용하고 있는 특정 TCP/IP
Vendor에서 사용하고 있는 SERVICES 화일을 찾고 그 화일내에 Parameter를
설정한다.
2. 만일 TCP_SERVICES_FILE에 설정되어 있는 SERVICES 화일의 위치가 맞는다면
화일내에 "orasrv" 항목을 점검하여 본다. 화일내에 <TABS>를 확인해 본다.
화일내의 각 항목 끝에 <Carrige Return>이 있는지 확인한다.
3. 만일 이 모든 것이 정상적이라면 새로운 SERVICES 화일내에 "orasrv" 항목을
추가한다.
4. 만약 SERVICES 파일의 도움없이 개발 응용프로그램에서 직접 접속을 시도할
경우에는 명시적으로 다음과 같이 Connect String에서 Port Number을 사용하여
접속할 수 있다.
"t:<server name or ip address>/<port number>:<instance name>"
[주의] instance name = ORACLE SID
5. tcp_services_files=%drive1%\path%\services
[주의 1] ORACLE TCP/IP Listener의 기본 시작포트 번호는 십진수 1525 이다.
SERVICES 파일은 대부분의 장비에 /etc 디렉토리안에 있으며 또한, "tcpctl"
Utility를 사용하여 UNIX 장비상의 ORACLE orasrv 를 Start 시키고 Stop할
수 있다. Orasrv 를 정지하려면 "tcpctl stop"을 사용하고 다시 시작하려면
"tcpctl start"를 사용한다.
BUG 1 : 다음과 같은 경우에도 에러가 발생할 수가 있다.
orasrv 1525/tcp<CR>
위와 같이 기술되었을 경우 다음과 같이 하게되면 ora-6107 error 없이 접속이
가능하다. 즉, orasrv항목에서 <CR>전에 공란이 있을 경우에 에러없이
접속할수 있다.
orasrv 1525/tcp <CR>
* 이 버그는 v1.1.7.10.1 이후 버젼에서는 수정되었다.
BUG 2 : 동일한 응용 프로그램에서 동일한 Connect String으로 접속을
시도하였을 때 에러가 발생한다면 다음과 같이 Connect String에 Port
Number를 사용한다.
t:<host name>/<port number>:<oracle_SID>
* 이 버그는 v1.1.7.9 이후 버젼에서는 수정되었다. -
VMS : SQL*NET V2.0 ARCHITECTURE
제품 : SQL*NET
작성날짜 : 2001-05-28
VMS : SQL*NET V2.0 ARCHITECTURE
===============================
1. SQL*Net V2.0 Architecture
* Master File 위치 : Logical name TNS_ADMIN
= ORA_ROOT:[NETWORK.ADMIN]
* Main File 종류 : SQLNET.ORA
LISTENER.ORA
TNSNAMES.ORA
2. SQLNET.ORA
* SQL*Net에 대한 몇가지 parameter setting을 가지고 있다.
* Comments는 # 후에 기록한다.
* Client와 Server 측면에서의 trace와 log level을 setting할 수 있다.
* TRACE_FILE_xxxxx parameter는 trace file의 이름을 지정한다.
.TRC file name의 끝부분을 자동으로 생성한다.
* IPC(Inter-Process Communication)를 제어하는 parameter를 설정할 수
있는데 default는 ON이다. 이것은 자동으로 OpenVMS Mailboxe와
Unix pipes 중에서 platform에 맞게 고르는 것이다.
# FILENAME: sqlnet.ora
# NETWORK.: UK_VAX_NET
# SERVICE.: NA
TRACE_LEVEL_CLIENT = OFF
TRACE_DIRECTORY_CLIENT = ORACLE$DISK:[ORACLE7.PROD.NETWORK.TRACE]
TRACE_FILE_CLIENT = CLIENT
LOG_DIRECTORY_CLIENT = ORACLE$DISK:[ORACLE7.PROD.NETWORK.LOG]
LOG_FILE_CLIENT = CLIENT
TRACE_LEVEL_SERVER = OFF
TRACE_DIRECTORY_SERVER = ORACLE$DISK:[ORACLE7.PROD.NETWORK.TRACE]
TRACE_FILE_SERVER = SERVER
LOG_DIRECTORY_SERVER = ORACLE$DISK:[ORACLE7.PROD.NETWORK.LOG]
LOG_FILE_SERVER = SERVER
AUTOMATIC_IPC = ON
SQLNET.EXPIRE_TIME = 10
3. LISTENER.ORA
* LISTENER의 default name은 LISTENER이다.
* LISTENER의 name과 capability를 setting한다.
<lsnr-name> = (ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = IPC)
(KEY = sid)
(ADDRESS =
(PROTOCOL = DECNET)
(NODE = node-name)
(OBJECT = object-name)
(ADDRESS =
(PROTOCOL = TCP)
(HOST = node-name)
(PORT = 1521)
* ORACLE8 이후로는 DECnet protocol은 지원하지 않는다.
* LISTENER START & STOP COMMAND : LISTENER 이름이 LISTENER일 경우
$ LSNRCTL START
$ LSNRCTL STOP
$ LSNRCTL STATUS
4. TNSNAMES.ORA
* Client level에서 필요한 file로 service를 define한다.
* Service Define
For DECnet...
<service-name> =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = DECNET)
(NODE = <node-name>)
(OBJECT = <lsnr-object>)
(CONNECT_DATA =
(SID = <sid>)
For TCP/IP...
<service-name> =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = <node-name>)
(PORT = 1521)
(CONNECT_DATA =
(SID = <sid>)
5. Logging and Tracing
* Listener logging은 default로 자동으로 하게 되어있다.
LOG_DIRECTORY : Log File이 생성될 Directory setting
LOG_FILE_<lis> : Log File name
* Tracing Level
TRACE_LEVEL_<listener-name> = OFF|USER|ADMIN
OFF tracing을 disable시킨다.
USER 제한적으로 tracing 한다.
ADMIN 상세하게 tracing 한다.
* server process에 대한 tracing은 default로 disable되어 있다.
6. Tips
* 실제로 동작하기 위해서 server process를 기동시켜주는 command
procedure인 ORASRV_NETV2.COM 이 있어야 하는데 TNS_ADMIN 에
sample이 있으므로 수정해서 사용하도록 한다.
이때 반드시 ORA_DB directory가 정의되어 있어야 한다.
* SYLOGIN.COM이나 LOGIN.COM에 다음의 조건문을 넣어서 Network
Access를 처리할 수 있다.
$ IF F$MODE() .EQS. "NETWORK" .OR. F$MODE() .EQS. "OTHER" -
THEN EXIT
* 만약 listener나 server process가 아무런 tracing information을
남기지 않고 계속 죽는다면 VMS Accounting Utility를 이용하여
process termination status를 점검해본다.
$ ACCOUNTING/FULL/IDENT=<pid>Depending on how large is your database you can use either exp/imp utility to migrate the data after installing the Oracle8i on your O/S or Inplace db upgrade. Otherwise backup your current Oracle7.x release and install the Oracle8i Software only without the database. Open old database using the Oracle8i svrlmgrl utility. Upgrade using the upgrade scripts available in $ORACLE_HOME/rdbms directory. Also read the documentation for any additional information on issues on the upgrades.
I am not sure about the SQL Net versions, but SQL Net Version 2 should work against net8 listener. You could try v1 too.
Hope this helps
null
Maybe you are looking for
-
Certain songs wont transfer from my itunes to my iphone, it's telling me that the computer is not authorized but once I go up to Store and authorize computer and enter in my info, it tells me that the computer is already authorized. So why am I not a
-
Adobe Reader XI use 100 % of the processor in Internet Explorer
We have sequenced Adobe Reader XI with App-V 5.0 SP2 hotfix 5. This package is deployed in our Windows 2008 R2 Citrix XenApp 7.6 server. When we open a PDF document in Internet Explorer, after about 10 seconds IE freeze and this process use 100% of o
-
All of a sudden when I try to import video from my camera to iMovie it won't work. The first thing that happens in the automatic mode is that it shuts off and says stopped. Then I switch to manual and the whole video imports but the screen is blue
-
HI Experts I want to park a document with special G/L Indicator (A) there is an error message telling me parked document is not defined for down payment how can i define parked document to allow park document with specail g/l A?
-
How can I change the port of a running database ?
Hi Friends, on my laptop there is running a 9i DB with port 1521 and a 10gR2 DB with port 1521 also. The tnsping on these db's is successfully and with any tools I get the error : ORA-12505 . How can I change a port number e.g. of the 10g DB ? Thanks