메뉴 건너뛰기

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



번호 제목 글쓴이 날짜 조회 수
461 다중 모듈 프로젝트 설정에 대한 설명 총관리자 2016.09.21 80
460 journalnode노드 기동시 "should be an absolute path"가 발생하고 기동되지 않을 경우 확인사항 총관리자 2016.09.22 93
459 format된 namenode를 다른 서버에서 다시 format했을때 오류내용 총관리자 2016.09.22 155
458 hadoop 어플리케이션을 사용하는 사용자 변경시 바꿔줘야 하는 부분 총관리자 2016.09.23 68
457 ./hadoop-daemon.sh start namenode로 namenode기동시 EditLog의 custerId, namespaceId가 달라서 발생하는 오류 해결방법 총관리자 2016.09.24 119
456 AIX 7.1에 MariaDB 10.2 소스 설치 총관리자 2016.09.24 2372
455 파일끝에 붙는 ^M 일괄 지우기(linux, unix(AIX)) 혹은 파일내에 있는 ^M지우기 총관리자 2016.09.24 78
454 schema설정없이 hive를 최초에 실행했을때 발생하는 오류메세지및 처리방법 총관리자 2016.09.25 1226
453 hive기동시 Caused by: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D 오류 발생시 조치사항 총관리자 2016.09.25 496
452 AIX 7.1에서 hive실행시 "hive: line 86: readlink: command not found" 오류가 발생시 임시 조치사항 총관리자 2016.09.25 235
451 DBCP Datasource(org.apache.commons.dbcp.BasicDataSource) 설정 및 속성 설명 총관리자 2016.09.26 74
450 모두를 위한 머신러닝과 딥러닝의 강의 file 총관리자 2016.09.27 192
449 프로그래밍 언어별 딥러닝 라이브러리 정리 file 총관리자 2016.10.05 215
448 AIX 7.1에 Python 2.7.11설치하기 총관리자 2016.10.06 655
447 동시에 많은 요청이 endpoint로 몰려서java.net.NoRouteToHostException가 발생하는 경우의 처리방법 총관리자 2016.10.17 511
446 java.lang.OutOfMemoryError: unable to create new native thread오류 발생지 조치사항 총관리자 2016.10.17 470
445 producer / consumer구현시 설정 옵션 설명 총관리자 2016.10.19 121
444 운영중인 상태에서 kafka topic삭제하고 재생성하여 처리되지 않은 메세지 모두 삭제하기 총관리자 2016.10.24 156
443 VisualVM 1.3.9을 이용한 JVM 모니터링 file 총관리자 2016.10.27 333
442 VisualVM 1.3.9을 이용한 spark-submit JVM 모니터링을 위한 설정및 spark-submit실행 옵션 총관리자 2016.10.28 1891

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.

위로