메뉴 건너뛰기

Bigdata, Semantic IoT, Hadoop, NoSQL

Bigdata, Hadoop ecosystem, Semantic IoT등의 프로젝트를 진행중에 습득한 내용을 정리하는 곳입니다.
필요한 분을 위해서 공개하고 있습니다. 문의사항은 gooper@gooper.com로 메일을 보내주세요.


*참고 : https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html

(pip, rpm, zip파일등을 이용한 다양한 설치 방법이 자세하게 설명되어 있음)


1. python : 2.7.5, OS  : RHEL7.4 64bit, Oracle database : 11.2인 Linux환경에서 RPM을 이용하여 설치/설정하는 방법이다. 

2. cx_Oracle을 Linux에 설치한다. 

   - 다운로드 URL : https://pypi.org/project/cx-Oracle/5.3/#files

   - 다운로드 받은 rpm파일을 서버에 업로드 한후 다음 명령으로 설치한다. 

      : sudo yum install cx_Oracle-5.3-11g-py27-2.x86_64.rpm 

3. Oracle Client를 설치한다. 

  - 다운로드 URL :  https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/

  - 다운로드 받은 rpm파일을 서버에 업로드 한후 다음 명령으로 설치한다

     : sudo yum install oracle-instantclient19.9-basic-19.9.0.0.0-1.x86_64.rpm

4. Instant client 19이후 버젼에서는 관련 라이브러리를 자동으로 잡아주지만 설정되지 않는 경우는 다음과 같이 설정해준다. 

  sudo sh -c "echo /usr/lib/oracle/19.9/client64/lib > /etc/ld.so.conf.d/oracle-instantclient.conf"

  sudo ldconfig   (확인 : sudo ldconfig -v)

5. 4번과 같이 해도 python에서 "import cx_Oracle"하면 ImportError: libclntsh.so.11.1: cannot open shared object file: No such file or directory같은 오류가 발생하는데..

이런 경우는 LD_LIBRARY_PATH값을 확인하여 그 경로에 가서(cd ${LD_LIBRARY_PATH}) oracle instant client가 설치된 경로의 library파일을 링크 걸어준다. 

 (예, sudo ln -s /usr/lib/oracle/19.9/client64/lib/libclntsh.so.19.1 libclntsh.so.11.1)

6. python shell을 실행하여 "import cx_Oracle"을 입력하고 엔터하여 import시 오류가 발생하지 않는지 확인한다. 

7. 아래와 같은 python프로그램을 작성하여 수행해본다. 

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

import cx_Oracle

import os


#한글지원방법

os.putenv('NLS_LANG', '.UTF8')


# 함수 정의

def connect():

    #라이브러리 연결(이거 설정하면 AttributeError: 'module' object has no attributes 'init_oracle_client'오류가 발생한다. 이거 생략하고 실행하면 잘 수행됨)

    #cx_Oracle.init_oracle_client(lib_dir=r"D:\8_Programs\Oracle\instantclient_19_9")

    #cx_Oracle.init_oracle_client(lib_dir=r"/usr/lib/oracle/19.9")

    

    con_ip='localhost:1526/testdb'

    con_id='user'

    con_pw='password'

 

    #연결에 필요한 기본 정보(유저, 비밀번호, 데이터베이스 서버 주소)

    connection = cx_Oracle.connect(con_id,con_pw, con_ip)

    cursor = connection.cursor()

    cursor.execute("""

        select *

        from member

        where name='홍길동'

        """)


    for list in cursor:

        print(list)


    cursor.close()

    connection.close()

    

# 함수 실행    

connect()


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


* instantclient version별로 지원하는 Oracle version
21 -> 12.1 이상
19,18,12.2 -> 11.2 이상
12.1 -> 10.2 이상
11.2 -> 9.2 이상



번호 제목 글쓴이 날짜 조회 수
637 kudu rebalance수행 command예시 총관리자 2022.01.17 80
636 Kudu tablet이 FAILED일때 원인 확인 방법 총관리자 2022.01.17 88
635 Failed to write to server: (no server available): 총관리자 2022.01.17 32
634 Soft memory limit exceeded (at 100.05% of capacity) 오류 조치 총관리자 2022.01.17 174
633 not leader of this config: current role FOLLOWER 오류 발생시 확인방법 총관리자 2022.01.17 21
632 Oracle NLOB type의 데이터를 import하는 경우 No Java type for SQL type 2011 for column rst와 같은 오류 발생시 조치사항 총관리자 2022.01.14 35
631 kudu 테이블 metadata강제 삭제시 발생하는 오류 메세지 총관리자 2022.01.12 106
630 hadoop nfs gateway설정 (Cloudera 6.3.4, CentOS 7.4 환경에서) 총관리자 2022.01.07 115
629 oracle 12에 sqoop해서 데이터 import하기 (console에서 sqoop import하는 방법) 총관리자 2021.12.31 45
» python2.7.4에서 Oracle DB(11.2)를 사용하기 위한 설정(RPM을 이용하여 RHEL 7.4에 설치) 총관리자 2021.11.26 320
627 클러스터내의 전체 workflow및 coordinator현황을 사용자별로 추출하는 방법 총관리자 2021.11.25 23
626 hue.axes_accessattempt테이블의 username컬럼에 NULL 혹은 space가 들어갈수도 있음. 총관리자 2021.11.03 2838
625 Query Status: Sender xxx.xxx.xxx.xxx timed out waiting for receiver fragment instance: 1234:cdsf, dest node: 10 의 오류 원인및 대응방안 총관리자 2021.11.03 76
624 hive metastore db중 TBLS, TABLE_PARAMS테이블 설명 총관리자 2021.10.22 258
623 kudu hms check 사용법(예시) 총관리자 2021.10.22 65
622 Hue Load Balancer를 L4로 L/B하는 경우는 L4쪽 도멘인으로 발행된 인증서를 TLS/SSL항목에 설정해주어야 한다. 총관리자 2021.10.08 99
621 TLS/SSl설정시 방법및 참고 사항 총관리자 2021.10.08 82
620 you are accessing a non-optimized hue please switch to one of the available addresses 총관리자 2021.10.06 42
619 CM의 Impala->Query tab에서 FINISHED query가 보이지 않는 현상 총관리자 2021.08.31 35
618 tablet별 disk사용량 확인하는 방법 총관리자 2021.08.27 110

A personal place to organize information learned during the development of such Hadoop, Hive, Hbase, Semantic IoT, etc.
We are open to the required minutes. Please send inquiries to gooper@gooper.com.

위로