oracle instant client(오라클 인스턴트 클라이언트) 설치 및 selinux 연계

오라클 인스턴트 클라이언트 리눅스에 설치하는 방법


설치

다운로드

  1. 오라클 인스탄트 클라이언트 다운로드 사이트에 연결 
  2. Instant Client Package 에서 Basic 과 SQL*Plus 다운로드

     

  3. 압축 해제

    for i in instantclient*zip; do unzip $i;done

설정

  1. instant client 압축 해제 디렉터리로 이동(Ex: /home/lesstif/instantclient_11_2)

    cd instantclient_11_2/
  2. 설치 경로와 library Path 를 환경 변수 파일(Ex: .bash_profile) 에 설정

    export INSTANT_CLIENT_PATH=${HOME}/instantclient_11_2
    export LD_LIBRARY_PATH=${INSTANT_CLIENT_PATH}:${LD_LIBRARY_PATH}
    export PATH=${INSTANT_CLIENT_PATH}:${PATH}
  3. SQLPATH 변수를 glogin.sql 이 있는 경로로 설정

    export SQLPATH=${INSTANT_CLIENT_PATH}:${SQLPATH}
  4. NLS_LANG 환경 변수 설정
    한글
    export NLS_LANG=KOREAN_KOREA.AL32UTF8

    영어만 사용할 경우 아래 lang 으로 설정

    영어
    export NLS_LANG=AMERICAN_AMERICA.UTF8
  5. 연결 정보를 설정하는 tnsnames.ora 을 찾는 경로인 TNS_ADMIN 환경 변수 설정

    export TNS_ADMIN=${INSTANT_CLIENT_PATH}
  6. TNS_ADMIN  폴더(Instant Client 설치 폴더)내에 tnsnames.ora 를 만들고 연결 정보 설정

    mydb=
    "(DESCRIPTION= 
        (ADDRESS= 
            (PROTOCOL=TCP)
            (HOST=mydb.example.com)
            (PORT=1621)
        ) 
        (CONNECT_DATA= 
            (SID=MYSID) 
        )
    )"

    ORA-12154: TNS:could not resolve the connect identifier specified 가 날 경우 명령행에서 connection string 을 검증한 후에 tnsnames.ora 에 설정

     sqlplus scott/tiger@"(DESCRIPTION= (ADDRESS= (PROTOCOL=TCP)(HOST=mydb.example.com)(PORT=1621)) (CONNECT_DATA= (SID=MYSID)))"
  7. SQLPlus 를 실행해서 DB 에 정상적으로 연결되는지 확인

    sqlplus scott/tiger@mydb

SELinux 연동

RHEL/CentOS 에서 SElinux 를 사용할 경우 libclntsh 에 textrel_shlib_t context 가 부여되어야 PHP-FPM 등에서 로딩이 됨

semanage fcontext -a -t textrel_shlib_t /var/lib/oracle\(64\)\?/.*/client64/lib/libclntsh\.so\(.[^/]*\)*


같이 보기

Ref