본문 바로가기

DATABASE

[ORACLE] Instant Client를 이용하여 간단하게 클라이언트 환경 구축

출처 : http://sysmaster.clus.org/amis/zbxe/computer/4142/page/2

오라클을 디비로 사용하였을 때 클라이언트에 1CD크기의 설치 파일을 각각에게
배포하는 것은 무리일 수 있다. 물론 속편하게 오라클 클라이언트를 설치하면 해결 되지만,
때론 이런 무식한(?)방법이 좋을 때도 있다. 암튼..
이번에는 Instant Client를 이용하여 간단하게 클라이언트 환경을 구축해 보기로 하자.

대부분의 클라이언트가 윈도우즈 환경일 것이므로 윈도우즈에 맞추어서 팁을 작성.
(밑에 소개 되겠지만 Instant Client 다운로드 사이트에 거의 모든 운영체제 별로
파일이 존재 한다. 물론 설치 및 설정 방법도 거의 차이가 없으므로 무리는 없음.)


1. Instant Client 다운로드


[한글페이지]
http://www.oracle.com/technology/global/kr/tech/oci/instantclient/instantclient.html
[영문페이지] - 추천
http://www.oracle.com/technology/tech/oci/instantclient/index.html

2. 소개(한국오라클 otn문서)


Instant Client는 표준 Oracle 클라이언트를 설치하지 않은 환경에서 OCI, OCCI, ODBC, JDBC 애플리케이션을 수정 없이 실행할 수 있도록 합니다. Instant Client를 적용하는 경우 디스크 사용량을 상당 수준 절감할 수 있습니다. Instant Client를 이용하여 SQL*Plus를 실행할 수도 있습니다. 재컴파일과 같은 수고를 들일 필요도 없습니다.
ISV와 파트너의 경우, 자사의 애플리케이션과 Instant Client를 함께 패키징함으로써, 고객이 Oracle 클라이언트를 설치하는 수고를 덜게 할 수 있습니다. Oracle ISV와 파트너가 개발한 애플리케이션의 성능과 기능은 아무런 영향 없이 그대로 구현 가능합니다.
고객은 새롭게 패키징된 애플리케이션을 별도의 설치 작업 없이 그대로 사용할 수 있습니다. 대규모 엔터프라이즈 환경에서는 중앙에 위치한 서버에 설치 스크립트를 올려 놓고 Instant Client의 셋업과 구성이 자동적으로 수행되도록 할 수 있습니다. Instant Client는 매우 작은 용량만을 차지하므로 그 적용 범위가 매우 다양합니다.
Instant Client는 운영 환경에 적용하는 경우에도 아무런 문제가 없으며, 무료로 제공됩니다.

3. 설치 및 설정 (1)


- 위의 사이트에서 윈도우 32비트(또는 64비트)를 다운 로드 한다.
- 윈도우용 다운로드 사이트에 보면 파일 크기와 지원정도가 다른 각각의 파일이 존재한다.
- 지원 정도(범위)를 읽어 보고 필요한 파일을 다운로드 한다.(basic 추천)
- 기본적으로 1M에서 40M정도의 파일들이다.

4. 설치 및 설정 (2)


- 받은 파일의 압축을 풀면 instantclient폴더와 txt파일이 있다.
- 사용자 임의의 폴더에 instantclient폴더를 옮긴 후 path설정 및 환경 설정을 한다.
- 시스템 변수 추가 (C\instantclient 로 편의상 옮겼을 때)
TNS_ADMIN
C\instantclient
- 시스템 path 다음을 추가
C\instantclient
- tnsnames.ora 파일을 instantclient폴더에 추가 한다.
예) 사용자의 서버 주소 및 환경에 따라 다를 수 있음. 서버의 network\admin 폴더 참고
listener =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip주소)(PORT = 1521))
)
(CONNECT_DATA =
(SID = orcl)
)
)


{TNS명} =
DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = {오라클 서버 IP OR 서버LOCAL명})(PORT = {오라클 포트 : 기본값 1521}))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = {오라클SID})
)
)


** 위의 ip 주소와 SID=orcl(SERVICE_NAME=스키마네임) 중 orcl은
자신의 환경에 맞게 수정

5. 접속 테스트


Toad 등의 유틸을 사용해서 테스트 해도 되고 sqlplus를 이용하여 테스트 하여도 된다.
간단하게 sqlplus를 사용해 본다면, 위의 사이트에서 sqlplus패키지(1M미만) 다운로드.
압축을 풀고 instantclient폴더에 해당파일 전체를 옮겨준다.
명령프롬프트에서 sqlplus.exe 파일을 실행하여 접속 테스트 진행
예) sqlplus 아이디/패스워드@아이피주소:1521/orcl
C:\sqlplus username/password@주소:port/service_name
C:\sqlplus ID/PASS@ip주소:1521/testdb.world
SQL>conn system/manager@ip주소:1521/testdb.world

6. 추가 사항


- ODBC연결을 추가 할려면 위의 사이트에서 odbc패키지를 다운받다 인스톨 해주면 됨.
- 닷넷/vs2005 및 oledb 연결 환경을 설치 하고자 한다면 다음 사이트에서 다운 후 인스톨.
http://www.oracle.com/technology/software/tech/windows/odpnet/index.html


오라클 다국어 지원을 위해 LNS_LANG=American_America.AL32UTF8
NLS_LANG=KOREAN_KOREA.KO16MSWIN949

사용상 문제점은 없는지 알고 싶습니다.


7. 후기


php를 설치하기 위해 다운로드 후 압축을 풀어보면 해당 루트 폴더에 ntwdblib.dll 이
존재 하는데 이 파일이 SQL Server와 연결 시켜 주는 클라이언트 파일이다. 마찬가지로
오라클도 oci.dll파일이 이런 기능을 담당하는 핵심 파일이다.
php_oci8.dll <--- > oci.dll
php_mssql.dll <---> ntwdblib.dll
php_mysql.dll <---> libmysql.dll
또한 delphi에서도 dbexpress 연결을 사용하기 위해서도 이와 비슷한 구조를 가지고 있다.
sqlserver2005에는 2000버전과 다르게 ntwdblib.dll파일이 없다. 하지만 2000에서
2005버전으로 접속할 수 있으므로 최신 버전의 ntwdblib.dll를 활용하면 된다.
sqlserver2005버전도 오라클과 마찬가지로 instantclient형태로 간단한 클라이언트 파일을
제공하고 있다.
---------------
Oracle, SqlServer, Mysql ... 다양한 접속 환경이 마련되어 있다.
odbc, oledb, oo4o, ado.net ..등등 mysql도 홈페이지에서 제공 하고 있다.

--------------------------------------------------------------------------------------------

퍼미션에러 발생시 처리방안

http://onlybible.tistory.com/search/cannot%20restore%20segment%20prot%20after%20reloc:%20Permission%20denied