-
[펌] ORA-12154 에러 발생시 해결법DBMS/Oracle 2008. 4. 20. 00:27반응형
ORA-12514, ORA-12154 에러 발생시 해결법
Technical Bulletins No. 11882의 내용입니다.
※ 아래와 같은 문제가 발생하면 tnsnames.ora파일을 점검해 볼 필요가 있습니다.
"ORA-12514 :TNS - Could not resolve service name"
(접속 기술자에 주어진 SERVICE_NAME 이 리슨너에 없습니다.)
"ORA-12154 :TNS - Could not resolve service name"
Net8 Easy Configuration 또는 Net8 Assistant 도구에서 Net Service Name을 입력하여야 하며,
SERVICE_NAME은 tnsnames.ora 파일에 CONNECT_DATA 절에 기술하여야 합니다.
SERVICE_NAME을 tnsnames.ora 파일에 지정하는 방법은 다음과 같이 세 가지가 있습니다.
(1) listener.ora에 GLOBAL_DBNAME 파라미터가 지정되어 있다면, 그 이름을 이용 하면 됩니다.
(참고로 GLOBAL_DBNAME은 init 파라메터 <DB_NAME>.<DB_DOMAIN>의 형태로 구성됩니다.)
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>.<DB_DOMAIN>의 형태를 이용 합니다.
(참고로 SERVICE_NAMES의 디폴트 값은 <DB_NAME>.<DB_DOMAIN>이므로
SERVICE_NAMES이 명시적으로 지정되어 있지 않으면 <DB_NAME>.<DB_DOMAIN>형태의
지정이 가능합니다.)
init<SID>.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<SID>.ora화일에
SERVICE_NAMES에 이름을 연속하여 지정한 후 사용할 수 있습니다.
init<SID>.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<SID>.ora에 DB_DOMAIN 파라메터가 없고, listener.ora에도
GLOBAL_DBNAME이 없는 경우에는 간단히 SID 값을 사용 합니다.
tnsnames.ora:
------------------------------------------------------------------------------
ora815 =
...
(CONNECT_DATA =
(SERVICE_NAME = ORA815)
)
)================================================
* Oracle Community OracleClub.com
* http://www.oracleclub.com
* http://www.oramaster.net
* 운영자 : 김정식 (oramaster _at_ empal.com)
================================================※ 강좌를 다른 홈페이지에 기재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^ 반응형'DBMS > Oracle' 카테고리의 다른 글
PRO*C에서 LOB DATATYPES에 접근하는 예제 (1) 2008.04.20 [펌] ORA-01403 no data found (0) 2008.04.15 [펌] pro*c에서 varchar와 char의 사용 (0) 2008.04.11