다른 명령
sqlnet.ora
- 클라이언트가 오라클 서버로 어떻게 접속할 것인가를 설정하는 파일
- - 파일 위치 : %ORACLE_HOME%\network\admin
- - sqlnet.ora 파일 내의
# sqlnet.ora Network Configuration File: /app/oracle/product/SE/11.2.0.4/network/admin/sqlnet.ora # Generated by Oracle configuration tools. NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) # ADR_BASE = /app/oracle
NAMES.DIRECTORY_PATH 파라미터
- 오라클 클라이언트가 데이터베이스 접속 시 별칭(String name alias)의 확인하는 순서를 지정 합니다.
- TNSNAMES(로컬네임서버), ONAMES(오라클네임서버), HOSTNAME(호트스네임서버) ->TNSNAMES(로컬네임서버) : tnsnames.ora 파일의 정보를 이용
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
예를 들어 다음과 같이 입력할때
sqlplus scott/tiger@DB_ABC
- SQL*Plus 유틸리티는 sqlnet.ora 파일의 NAMES.DIRECTORY_PATH 항목을 이용하여 DB_ABC Alias에 대한 해석을 하게 됩니다.
- 먼저 클라이언트는 tnsnames.ora 파일을 사용하여 오라클의 이름(Alias)에 해당 하는 데이터베이스가 어디에 있는 건지 확인합니다.
- 만약 tnsnames.ora 파일에 이름이 없다면, 클라이언트는 오라클 이름 서버(Oracle Names server) 를 사용하여 Alias를 해석 할려고 하며
- 현재 오라클 이름 서버 대신에 LDAP(Lightweight Directory Access Protocol)의 사용을 권장한다.
- 마지막으로 클라이언트는 DNS나 네트워크 정보 서비스(NIS)와 같은 호스트 이름 풀이 방법을 통해이름 해석을 시도 합니다.
SQLNET.AUTHENTICATION_SERVICES 파라미터
- 클라이언트가 오라클 서버로 접속할 때, 오라클이 어떠한 인증 서비스를 사용할 것인가? 를 결정
- NTS: 윈도우인증, NONE:일반
- Ex) SQLNET.AUTHENTICATION_SERVICES= (NTS)
- 오라클 계정 접속과 윈도우 인증 방식 모두 지원하려면,
- 서버의 sqlnet.ora 파일내의 SQLNET.AUTHENTICATION_SERVICES 파라미터 수정 해야 함.
SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)
- 만약 인증모드를 NONE으로 설정하면 sys 계정으로 로그인 시 반드시 암호를 입력해야 합니다.
- 즉 sqlplus /nolog -> SQL> connect / as sysdba; 라고 접속이 불가능합니다.
AUTOMATIC_IPC
AUTOMATIC_IPC = { ON | OFF }
- AUTOMATIC_IPC = ON 으로 되어 있는경우 SQL*Net이 같은 alias정보를 가진 local database가 있는지 check 함 . 만일 local database가 있다면 connection은 network layer를 건너뛰고 local -Inter Process Communication(IPC)- connection을 맺게 됩니다.
- 따라서 이 setting은 database server쪽에 사용할 수 있는 것이지 client machine SQL*Net에는 아무 쓸모 없습니다.
- database server쪽에 사용하더라도 local database에 SQL*Net connection이 반드시 필요한 경우가 아니라면 사용하시 않는 것(OFF로 설정) 이 좋습니다.
TRACE_LEVEL_CLIENT
client쪽에 trace 설정 방법
- client쪽 sqlnet.ora file 에 setting
TRACE_LEVEL_CLIENT = OFF
TRACE_LEVEL_CLIENT = 0 TRACE_DIRECTORY_CLIENT = $ORACLE_HOME/network/trace (UNIX) TRACE_FILE_CLIENT = client
- sqlplus로 접속해 에러가 나면 $ORACLE_HOME/network/trace 에 client.trc 파일 생성됨.
server쪽에 trace 설정 방법
server쪽 sqlnet.ora file에 다음을 setting하고 listener를 다시 시작 합니다.
UNIX일 경우
TRACE_LEVEL_SERVER = 0 TRACE_DIRECTORY_SERVER = $ORACLE_HOME/network/trace TRACE_FILE_SERVER = SERVER
윈도우일 경우
TRACE_LEVEL_SERVER = 0 TRACE_DIRECTORY_SERVER = C:\app\Administrator\product\11.1.0\db_1\NETWORK\ADMIN TRACE_FILE_SERVER = SERVER
- sqlplus로 접속해 보면 에러가 나면서 $ORACLE_HOME/network/trace 에 client.trc 파일이 생김
NAMES.DEFAULT_DOMAIN = WORLD
NAME.DEFAULT_ZONE = WORLD
SQLNET.EXPIRE_TIME = 0
TCP.NODELAY=YES
이 parameter "network\admin" directory에 있는"PROTOCOL.ORA"라는 파일에 추가한다. 대부분의 경우 TCP/IP 정보는 network을 통하여 최소한 하나의 완전한 packet이 구성될 때가지 버퍼링이 된 후 보낸다. 즉, 이 의미는 어떤 경우의 명령어들은 직접 발행이 되지 않고 TCP/IP 정보를 보낼 수 있을 때까지 버퍼링이 유지된다. 이는 잠재적으로 timeouts 또는 에러를 유발할 수 있다. 이러한 에러를 피할 수 있도록 TCP.NODELAY를 이용하여 OFF를 시키면 된다. tcp.nodelay = yes