R Oracle 설치 난이도 최상 ubuntu 18.04

R에서 전사 시스템을 연동하여, 사용할 수 있다. ROracle이라는 패키지이다. 이것은 Oracle Express 버전을 기준으로 한다.

 Oracle은 현재 우리나라에서는 가장 많이 사용하는 RDBMS 일것이다.  하지만,  이것을 R에서 SQL 쿼리문을 날려서,  모델링 결과를 전사 ERP 시스템에 업데이트를 하는 Case는 많지 않다. 



R Oracle 연결


Ubuntu 에 Oracle 설치 

   Oracle을 다운로드 받으려면,  오라클 회원에 가입 해서, 로그인 후 다운 받아야 한다. 
Ubuntu 버전에서 다운 받을때, X 윈도우를 사용한다. 

우분투 다운로드에 다운이 되는데, 다운로드 폴더에 들어가서 실행 하여 보자.
cd 다운로드

root 계정에 접속한다.
sudo su root

압축 파일을 받았으니 압축을 풀어야 한다.
unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip

Disk1이 나타나며, Disk 1폴더로 이동하여야 한다.
cd Disk1

root 계정으로 바뀌었다는 것으로 가정하에 아래와 같이 명령어를 수행 한다.

alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm

그러면, deb 화일이 생긴다.

dpkg --install oracle-xe_11.2.0-2_amd64.deb

설치가 정상적으로 끝나면, 오라클 환경 설정을 한다. sh 쉘스크립트 실행 화일을 실행하면, 모든 환경 설정은 끝난다.

. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

그리고 항상 로그인 할때, 실행 될수 있도록 아래와 같이 설정 한다.

gedit /etc/bash.bashrc


오라클 재시작시 서비스 실행


오라클 Port, listener, Passward 등을 아래와 같이 설정 한다.
/etc/init.d/oracle-xe configure

다른 것은 놔두고, 비밀번호만 세팅 한다.

그리고 데이터 베이스가 저장될 폴더를 만들고 권한을 부여 한다.
mkdir /oradata
chmod 777 /oradata/

그리고 sqlplus를 실행 하여 준다.
sqlplus system

 Oracle 클라이어트 툴 설치

 아래링크를 클릭 하여 오라클 클라이언트 툴을 다운 받는다. 



oracle instant client 파일을 설치 한다.
$ sudo apt-get install alien
$ sudo alien -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.rpm
$ sudo alien -i oracle-instantclient11.2-sqlplus-11.2.0.1.0-1.x86_64.rpm 
$ sudo alien -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.rpm
 

설치 후 sqlplus 실행 한다. 

$ sqlplus64 system/oracle@//localhost:1521/xe

만약에 libsqlplus.so 오류 발생 할 경우 (다른 .so 관련 문제가 발생할시에도 적용)에 아래와 같은 명령어를 실행 한다. 

$ export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib:$LD_LIBRARY_PATH
$ export ORACLE_HOME=/usr/lib/oracle/11.2/client64
$ sudo mkdir $ORACLE_HOME/rdbms
$ sudo mkdir $ORACLE_HOME/rdbms/public
$ sudo cp /usr/include/oracle/11.2/client64/* $ORACLE_HOME/rdbms/public

$ sudo vi /etc/ld.so.conf.d/oracle.conf && sudo chmod o+r /etc/ld.so.conf.d/oracle.conf
# 해당 라인 추가 후 저장한다. ---> /usr/lib/oracle/11.2/client64/lib/

libaio.so.1 오류 발생 할 경우 아래 명령어를 실행 한다. 
$ sudo apt-get install libaio1


 R  환경 설정 

R Oracle을 아래와 같이 한다. 
sudo -i R

R 콘솔에서 DBI를 설치 한다. 
 > install.packages("DBI")

# ROracle 설치 파일을 아래와 같이 다운로드 한다. 

다운로드 받았으면  아래의 우분투 콘솔에서 R Package를 설치 한다. 

$ R CMD INSTALL --configure-args='--with-oci-lib=/usr/lib/oracle/11.2/client64/lib --with-ociinc=/usr/include/oracle/11.2/client64' ROracle_1.3-1.tar.gz

 R 시작시 로딩 하는 디폴트 환경값을 설정한다.    아래의 내용을 
# /usr/lib/R/etc/Renviron.site  또는   # /usr/lib/R/etc/Rprofile.site 에 설정값을 추가 한다. 
아래는 /Renviron.site  예제이다. 

 
$ sudo vim /usr/lib/R/etc/Renviron.site


# Oracle Setup ORACLE_HOME=/usr/lib/oracle/11.2/client64 ORACLE_SID=XE ORACLE_BASE=/u01/app/oracle LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH PATH=$ORACLE_HOME/bin:$PATH LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib:$LD_LIBRARY_PATH NLS_LANG=KOREAN_KOREA.AL32UTF8"

 R  코드 실행

sqlplus를 실행 하여 아래와 같이 테이블을 만든다. 

CREATE TABLESPACE tbs_01
DATAFILE 'tbs_01.dat' SIZE 40M 
ONLINE; 

CREATE TABLE rtest_01 (
 ename VARCHAR2(15) ) 
TABLESPACE TBS_01;

아래와 같이 Rstudio에서 Oracle을 실행 한다. 

library(DBI) 
library(ROracle)
# Set up connection info
   drv <- dbDriver("Oracle") host <- "127.0.0.1" #localhost
   port <- "1521" 
   sid <- "xe" 
   connect.string <- paste( 
     "(DESCRIPTION=",
     "(ADDRESS=(PROTOCOL=tcp)(HOST=", host, ")(PORT=", port, "))",
     "(CONNECT_DATA=(SID=", sid, ")))", sep = "")


# Connect to database (can also try with system/oracle)
 con <- dbConnect(drv, username = "system", password = "hs1234", dbname = connect.string, prefetch = FALSE, 
         bulk_read = 1000L, stmt_cache = 0L, external_credentials = FALSE, 
         sysdba = FALSE) # Enter Schema and Schema password for username and password


## Use dplyr directly in the database 
# install.packages("dplyr")
# install.packages("dbplyr") 
  require("dplyr")
  require("dbplyr")
  rtest <- tbl(con, "RTEST_01") 
  rtest_tmp <- tibble(ENAME="한글") 

# 로우 추가 
  dbWriteTable(con, "RTEST_01", data.frame(rtest_tmp), append = TRUE) 

# 테이블 확인 
   dbReadTable(con, "RTEST_01")


위와 같이 RStudio에서 확인 되면 R 하고 오라클하고 연동이 되는 것을 볼 수 있다. 


댓글 없음:

댓글 쓰기

css cheat sheet 클래스 선택자, margin(마진), display , center 조정 간단한 구성 요소

 앞에서는 html의 간단한 sheet를 소개 하였습니다.   html은  주로 골격을 나타나는 것이라, 디자인을 하는데는 css로 하여야 합니다.  아래 코드와 같이 css 관련 하여 매우 간단하게 코딩 하겠습니다.  body 부분의 css 코딩  ...