Oracle 데이터베이스를 사용하기 위하여 클라이언트가 필요하다.
간단한 접속을 위하여 클라이언트 전체 설치 대신, instant client를 사용할 수 있는데 설정이 만만하지 않다. 특히 lite 버전은 좀더 까다롭다.
흔히 만나는 오류는 다음과 같다.
ODBC 설치 중
Could't find Oracle Instant Client in present directory
설정/사용 중
ORA-12154: TNS:could not resolve the connect identifier specified
깔끔하게 설정하는 방법은 다음과 같다.
1. 다운로드
instantclient-basiclite-win32-10.2.0.4.zip (필수)
instantclient-odbc-win32-10.2.0.4.zip (ODBC 사용시 선택)
instantclient-jdbc-win32-10.2.0.4.zip (JDBC 사용시 선택)
그리고 같은 폴더에 압축을 모두 풀어둔다.
2. 설치위치
특정 폴더를 준비한다. (C:/Oracle/instantclient_10_2 를 써야한다고 하지만 상관 없다.)
예를들어 D:\DrvTmp\instantclient_10_2 로 옮긴다.
3. 설정
PATH 와 TNS_ADMIN 변수를 설정한다.
PATH, TNS_ADMIN 환경변수에 설치위치 (D:\DrvTmp\instantclient_10_2) 를 포함시킨다.
* 가장뒤에 \ 는 붙이지 않는다.
* 혼자 쓸경우, 시스템 변수(아래)로 등록하건 사용자 변수(위)로 등록하건 상관 없다.
4. tnsnames.ora, sqlnet.ora 생성
* 오라클 접속 파일은 2), 5) 단계에서 TNS_ADMIN 으로 설정한 폴더를 찾으므로
설정파일을 다른 곳으로 지정하려면 2), 5) 단계의 TNS_ADMIN을 바꾸면 된다.
즉, 아래 파일들은 TNS_ADMIN으로 지정한 폴더에 만든다.
sqlnet.ora
NAMES.DIRECTORY_PATH=(TNSNAMES, EZCONNECT)
TNSNAMES 는 필수이고, 필요시 LDAP 등을 설정할 수도 있다.
tnsnames.ora
orcl =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbhost )(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = dbhost )(PORT = 1521))
(LOAD_BALANCE = no)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
)
)
)
* RAC 서버 지정의 예, DB 서버에서 tnsnames.ora 를 복사해오면 제일 쉽다.
5. Lite 버전의 경우 버그로 다음 작업을 한다.
* Registry 등록
HKLM\SOFTWARE\Oracle 아래 ORACLE_HOME, TNS_ADMIN 을 등록한다.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Oracle]
"ORACLE_HOME"="D:\\drvrtmp\\instantclient_10_2"
"TNS_ADMIN"="D:\\drvrtmp\\instantclient_10_2"
* 깡통 파일 생성
oraociei10.dll (10g 버전)
새문서(text) 만든 후 이름변경 하거나, DOS 창에서 아래와 같이 만들어도 된다.
D:\DrvTmp\instantclient_10_2> copy con oraociei10.dll
^Z
(참고로 11g 버전은 oraociei11.dll 라는 이름으로 만든다.)
-끝-