Oracle

게시글 보기
작성자 유건데이타 등록일 2015-06-17
제목 NET8I 서비스 이름(SERVICE NAME) 사용 방법
NET8I 서비스 이름(SERVICE NAME) 사용 방법

oracle 8i 미만 버젼에서는 Oracle SID(System Identification) 정보만을 이용
하여 클라이언트에서 서버로의 접속이 이루어졌으나, Oracle 8i부터 새로이 소개된
Service Name을 이용하여 데이타베이스에 접속할 수 있게 되었다.

그러나 만일 Service Name을 적절히 기술되지 않으면 다음과 같은 오류를 만나게
되므로 그 사용 방법을 다루고자 한다.

"ORA-12514 :TNS - Could not resolve service name"
"ORA-12154 :TNS - Could not resolve service name"

Net8 Easy Configuration 또는 Net8 Assistant 도구에서 Net Service Name을
입력하여야 하며, SERVICE_NAME은 TNSNAMES.ORA 화일에 CONNECT_DATA 절에
기술하여 하며, 과거 버젼의 (SID=) 절을 대치시킨 것이다.

SERVICE_NAME을 TNSNAMES.ORA에 지정하는 방법은 다음 세 가지로 가능하다.


(1) 만일 LISTENER.ORA에 GLOBAL_DBNAME 파라메터가 지정되어 있다면, 그 이름
을 이용한다.

(참고로 GLOBAL_DBNAME은 init 파라메터 .의 형태로
구성된다.)

listener.ora:
-------------
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = RC815.o200.kr.oracle.com)
(ORACLE_HOME = /mnt3/rctest8i/app/oracle/product/8.1.5)
(SID_NAME = RC815)
)
)

tnsnames.ora:
-------------
ora815 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = tcp)(HOST = o200)(PORT = 1588))
)
(CONNECT_DATA =
(SERVICE_NAME = RC815.o200.kr.oracle.com)
)
)


(2) 초기화 파라메터 .의 형태를 이용한다.

(참고로 SERVICE_NAMES의 디폴트 값은 .이므로
SERVICE_NAMES이 명시적으로 지정되어 있지 않으면 .
형태의 지정이 가능하다.)

init.ora:
--------------
SERVICE_NAMES = MYDB
DB_DOMAIN = o200.kr.oracle.com

tnsnames.ora:
-------------
ora815 =
...
(CONNECT_DATA =
(SERVICE_NAME = MYDB.o200.kr.oracle.com)
)
)

만일 둘 이상의 service name의 지정이 필요한 경우에는 다음과 같이
init.ora화일에 SERVICE_NAMES에 이름을 연속하여 지정한 후 사용할 수 있다.

init.ora:
--------------
SERVICE_NAMES = MYDB1, MYDB2
DB_DOMAIN = o200.kr.oracle.com

tnsnames.ora:
-------------
ora815_A =
...
(CONNECT_DATA =
(SERVICE_NAME = MYDB1.o200.kr.oracle.com)
)
)

ora815_B =
...
(CONNECT_DATA =
(SERVICE_NAME = MYDB2.o200.kr.oracle.com)
)
)

(3) 마지막으로 init.ora에 DB_DOMAIN 파라메터가 없고, listener.ora에도
GLOBAL_DBNAME이 없는 경우에는 간단히 SID 값을 사용한다.

tnsnames.ora:
-------------
ora815 =
...
(CONNECT_DATA =
(SERVICE_NAME = ORA815)
)
)
Comment
등록된 코멘트가 없습니다.