2014-02-05 1 views
2

최근에 반짝이는 서버를 실험하기 위해 작은 레드햇 서버를 사용할 수있었습니다. 우리 IT 부서는 반짝이는 서버를 실행하고 Oracle 클라이언트를 설치했지만 빛나는 서버에서 작동하는 ROracle을 얻을 수는 없습니다. 그들은 (IT) 응용 프로그램 문제라고 판단하고 포기하기 시작했습니다. ...반짝이는 서버에서 ROracle을 사용하여 Oracle 데이터베이스에 연결

처음에는 ROracle이 서버에서 전혀 작동하지 않았지만 LD_LIBRARY_PATH를 설정하여 내 사용자 계정에서 작동 시켰습니다. 내 .bashrc 파일. 그렇게하면 서버에 로그인하고 R에서 데이터베이스를 쿼리 할 수 ​​있습니다. runApp()을 사용하여 R에서 내 반짝이는 앱을 실행할 수도 있습니다.

빛나는 서버를 통해 동일한 앱에 액세스하려고하면 다음 오류 :

Listening on port 40679 
Loading required package: DBI 
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
    unable to load shared object '/usr/lib64/R/library/ROracle/libs/ROracle.so': 
    libclntsh.so.11.1: cannot open shared object file: No such file or directory 
Error : package or namespace load failed for 'ROracle' 
Error : package or namespace load failed for 'ROracle' 

이 오류는 LD_LIBRARY_PATH 변수를 설정하기 전에 계정에 연결하는 것과 동일한 오류입니다. 서버는 반짝 반짝 빛나는 사용자로 실행되지만 분명히 시작 스크립트를 실행하지 않으므로 내 사용자를 위해 수정 된 내용이 반짝이는 사용자를 위해 수정되지 않습니다. 이것은 나의 지식 영역 밖에서 매우 멀리 떨어져 있으며, 우리 IT 부서에서는 아이디어가 없다고 말했습니다.

나는 서버에 대한 sudo 액세스 권한이 없으므로 시도 할 수있는 것들이 제한적입니다. Sys.setenv()를 사용하여 ROracle을로드하고 system()을 사용하여 내 server.R 스크립트에서 LD_LIBRARY_PATH를 설정하려고 시도했지만 작동하지 않았습니다. 우리의 DBA는 /etc/init/shiny-server.conf에 LD_LIBRARY_PATH 설정을 시도했지만 도움이되지 못했습니다.

나는 정말로 여기 누군가가 아이디어를 갖고 있기를 바라고있다.

감사합니다.

+0

shiny-server conf에서 사용한 구문은 무엇입니까? LD_LIBRARY_PATH 내보내기 =? 아니면 그냥 LD_LIBRARY_PATH =? – codeblur

답변

4

몇 가지 좌절감을 느낀 후에 나는 해결책을 찾았습니다. /etc/init/shiny-server.conf에있는 시작 스크립트에서 LD_LIBRARY_PATH 변수를 설정해야하지만 upstart documentationenv 키워드로 정의해야합니다. 그래서 추가 : 반짝-server.conf 스크립트의 시작 부분

env LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib:$LD_LIBRARY_PATH

문제를 해결 한 것으로 보인다.

1

PHP와 Apache에서 동일한 문제가있었습니다.

PHP 설명서의 Setting the Oracle Environment을 참조하십시오.

또한 주석을 참조하십시오 - 어떤 구문을 /etc/init/shiny-server.conf에서 사용 했습니까?

+0

감사! PHP 문서를 살펴 보겠습니다. 다른 질문에 답하기 위해 shiny-server.conf에 export LD_LIBRARY_PATH =/usr/lib/oracle/11.2/client64/lib : $ LD_LIBRARY_PATH를 추가 한 것 같습니다. – Eric

3

오라클과 함께 R Studio Server를 설치하는 방법에 대한 자세한 설명이 담긴 블로그 게시물 (약 1 년 전)입니다. LD_LIBRARY_PATH, OCI Lib과 모든 것들이 제공됩니다. 다른 사람에게 도움이 될 수도 있습니다. http://learnfrominfo.tumblr.com/post/38382388429/connect-r-studio-server-to-an-oracle-database-with

+0

이 방법은 vRODBC를 사용하여 Vertica 데이터베이스에 연결하는 데 사용되었습니다. 'export LD_LIBRARY_PATH =/usr/lib' 내용으로'/ etc/profile.d /'디렉토리에'shinyserver.sh' 파일을 추가했습니다. /etc/init/shiny-server.conf 파일에이 내용을 추가하면 다른 대답에서 제시된 것처럼 작동하지 않습니다. – JohnSG

0
SERVER.R 
library 
library(RMySQL) 
library(caTools) 
library(rpart) 
library(RJDBC) 
shinyServer(

    function(input ,output) 
    { 
    dvr =JDBC("oracle.jdbc.OracleDriver",classPath="D:/ojdbc6.jar") 

url = "" 
user = "" 
password = "" 
jd =dbConnect(dvr,url, user, password) 
a1 <- eventReactive(input$predict, 
        { 
         a<-input$ref 
         table2<-data.frame(dbGetQuery(jd,paste0(" 
           select colnames from Tablename where REFNO=",a," and ROWNUM<15 
                "))) 
         print(table2) 
         print(bs<-table2) 

        } 

) 




output$dis<-renderTable({ 
    a1() 

    }) 

} 
) 
+1

이것이 어떻게 문제를 해결했는지에 대한 설명을 추가 할 수 있습니까? –