메뉴 건너뛰기

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 이상



번호 제목 글쓴이 날짜 조회 수
741 VirtualBox에 ubuntu 설치 하기 (12.10) file 구퍼 2013.03.04 1768
740 우분투 root 패스워드 설정하기 구퍼 2013.03.04 1314
739 메이븐 (maven) 설치 및 이클립스 연동하기 file 구퍼 2013.03.06 2280
738 Hadoop 설치 및 시작하기 file 구퍼 2013.03.06 1951
737 Hadoop wordcount 소스 작성 file 구퍼 2013.03.06 1888
736 이클립스에서 생성한 jar 파일 hadoop 으로 실행하기 file 구퍼 2013.03.06 2837
735 ExWordCount jar파일 file 구퍼 2013.03.06 1336
734 Hadoop Cluster 설치 (Hadoop+Zookeeper+Hbase) file 구퍼 2013.03.07 3995
733 Hive+mysql 설치 및 환경구축하기 file 구퍼 2013.03.07 2722
732 Hive 사용법 및 쿼리 샘플코드 구퍼 2013.03.07 2991
731 hadoop 설치(3대) file 구퍼 2013.03.07 2613
730 hadoop설치시 참고사항 구퍼 2013.03.08 2131
729 MySQL 다운로드 및 리눅스에서 간단 컴파일 설치 구퍼 2013.03.08 1869
728 checking for termcap functions library... configure: error: No curses/termcap library found 구퍼 2013.03.08 4120
727 ../depcomp: line 512 exec : g++ : not found 구퍼 2013.03.08 2062
726 org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/hadoop-root/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible. 구퍼 2013.03.11 14781
725 HBase 설치하기 – Pseudo-distributed file 구퍼 2013.03.12 2647
724 HBase 설치하기 – Fully-distributed 구퍼 2013.03.12 3548
723 Cacti로 Hadoop 모니터링 하기 file 구퍼 2013.03.12 2367
722 org.apache.hadoop.hbase.PleaseHoldException: Master is initializing 구퍼 2013.03.15 2668

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.

위로