Background Image

FORUM

조회 수 104 추천 수 0 댓글 6
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
CentOS Stream 8
CUBRID Ver.
11.2.7.0797
CUBRID TOOL Ver.
csql
응용 환경(API)
java, php, odbc 등 입력


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
 

안녕하세요. 제목 그대로 이기종간 DB Link 문의 드립니다.

 

테스트는 CUBRID DBLink — CUBRID 11.2.0 documentation 문서를 참고하였으며,

 

최종적으로 DB Link를 사용하면 다음과 같은 에러가 발생합니다.

 

$ cubrid gateway status
@ cubrid gateway status
% oracle_gateway
----------------------------------------------------------------------
        ID   PID                  QPS        LQS   PSIZE STATUS       
----------------------------------------------------------------------
         1 632501                    0          0  132920 IDLE         
         2 632502                    0          0  132920 IDLE         
         3 632503                    0          0  132920 IDLE         
         4 632504                    0          0  132920 IDLE         
         5 632505                    0          0  132920 IDLE         

% mysql_gateway OFF

 

 

csql> CREATE SERVER remote_srv ( HOST='192.168.11.1', PORT=1521, DBNAME=orcl, USER=hr, PASSWORD='oracle4U');
 

csql> SELECT * FROM DBLINK (remote_srv, 'SELECT c1 FROM t1') AS t(c1 int);

In the command from line 2,

ERROR: dblink - Cannot communicate with server

 

 

 

테스트 한 서버의 환경은 다음과 같습니다.

 

  서버 A 서버 B
IP 192.168.11.1 192.168.11.2
Hostname db1 db2
DB  Oracle 12.2.0.1 Cubrid 11.2.7.0797
Port 1521 30000

 

 

스텝은 다음과 같이 진행했습니다.

 

 

1. unixODBC 설치 (서버 B)

 

$ wget http://www.unixodbc.org/unixODBC-2.3.9.tar.gz
$ tar -xvzf unixODBC-2.3.9.tar.gz 

 

$ mkdir unidODBC
$ cd unixODBC-2.3.9/

 

$ ./configure --prefix=/home/cubrid/unixODBC
$ make
$ make install

 

2. ODBC Driver 정보 설정 (서버 B)

 

$ cd /home/cubrid/unixODBC/etc

 

$ cat odbcinst.ini 
[Oracle 12c ODBC driver]
Description = Oracle ODBC driver v12c
Driver = /home/cubrid/oracle/instantclient_12_2/libsqora.so.12.1

 

3. 오라클 인스턴트 클라이언트 ODBC 설치 (서버 B)

 

$ mkdir -p /home/cubrid/oracle
$ cd oracle

 

$ unzip instantclient-basic-linux.x64-12.2.0.1.0.zip
$ unzip instantclient-odbc-linux.x64-12.2.0.1.0-2.zip

 

4. 오라클 인스턴트 클라이언트 환경변수 설정 (서버 B)

 

$ tail -3 .bash_profile 
export ORACLE_INSTANT_CLIENT=/home/cubrid/oracle/instantclient_12_2
export PATH=$ORACLE_INSTANT_CLIENT:$PATH
export LD_LIBRARY_PATH=$ORACLE_INSTANT_CLIENT:$LD_LIBRARY_PATH

 

5. Oracle Database에 엔결을 위한 연결정보 설정 (서버 B)

 

$ mkdir -p /home/cubrid/dblink_config

$ cd dblink_config

$ cat tnsnames.ora 
orcl =
  (DESCRIPTION=
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.1)(PORT = 1521)
  )
  (CONNECT_DATA =
        (SERVICE_NAME=ORCL)
  )
)

 

6. TNS_ADMIN 환경변수 설정 (서버 B)

 

$ tail -1 .bash_profile 
export TNS_ADMIN=/home/cubrid/dblink_config

 

7. Oracle Database 환경변수 설정 (서버 B)

 

$ tail -4 .bash_profile 
export ORACLE_SID=orcl
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH

 

8. Oracle을 위한 cubrid_gataway.conf 설정 (서버 B)

 

$ cd $CUBRID/conf

/* [%oracle_gateway] 부분을 편집한다. */
[cubrid@urp2 conf]$ cat cubrid_gateway.conf
..
..
CGW_LINK_SERVER_IP      =192.168.11.1
CGW_LINK_SERVER_PORT    =1521
CGW_LINK_ODBC_DRIVER_NAME   =Oracle 12c ODBC driver
..
..

 

 

제가 잘못 설정한 부분이 있는지 확인 부탁 드립니다.

 

감사합니다.

 

 

  • ?
    동구 2023.09.26 10:27
    csql> CREATE SERVER remote_srv ( HOST='192.168.11.1', PORT=1521, DBNAME=orcl, USER=hr, PASSWORD='oracle4U');

    서버생성시, 서버 정보가 잘못된것으로 보입니다.
    현재 서버 정보가 원격인 Orcale 서버 정보가 들어가있습니다.

    HOST 와 PORT 를 원격 oracle 서버에 접속할 gateway 서버 정보를 입력하셔야 합니다.
    cubrid_gateway.conf 에 설정한 정보를 참조하세요.

    참고로, 아래 방법으로 먼저 dblink 쿼리해 보시기 바랍니다.

    csql> select * from dblink('192.168.11.2:53000:orcl:hr:oracle4U:', 'SELECT c1 FROM t1') AS t(c1 int);
    ** 참고로 53000 은 cubrid_gateway.conf 에서 설정하신 BROKER_PORT 를 사용하시면 됩니다.

    더 자세한 내용은 아래 참고하기시 바랍니다.
    https://www.cubrid.org/manual/ko/11.2/sql/dblink.html#id15
  • ?
    kikiki767 2023.09.26 10:41

    말씀하신 대로 했더니 다음 에러가 발생합니다. 

     

    csql> select * from dblink('192.168.137.252:53000:orcl:hr:oracle4U:', 'SELECT c1 FROM t1') AS t(c1 int);

    In the command from line 2,

    ERROR: dblink - [01000][0] [unixODBC][Driver Manager]Can't open lib 'Oracle 12c ODBC driver' : file not found[CAS INFO-192.168.137.252:53000,0,0].

     


    서버 만들어서 해도 동일하고요.
     

    csql> SELECT * FROM DBLINK (remote_srv, 'SELECT c1 FROM t1') AS t(c1 int);

    In the command from line 1,

    ERROR: dblink - [01000][0] [unixODBC][Driver Manager]Can't open lib 'Oracle 12c ODBC driver' : file not found[CAS INFO-192.168.137.252:53000,0,0].

     

     

    libsqora.so.12.1 이 파일을 못 찾아서 에러가 발생하는 걸까요?

  • ?
    동구 2023.09.26 10:58
    네.. 일단 에러메시지 상으로는 odbc 드라이버 관련해 보입니다.

    오라클 관련 odbc 드라이버 설치 방법입니다. 아래 내용 참고하세요.


    1. Oracle 드라이버 설치

    * 드라이버 다운로드 경로 : https://www.oracle.com/kr/database/technologies/instant-client/downloads.html
    * 위 경로에서 Oracle 버전에 맞는 Basic Package (ZIP), ODBC Package (ZIP)을 다운받아 동일 폴더에 압축을 풉니다.

    ** oracle odbc 드라이버가 설치되고 사용될 임의의 디렉토리를 생성한다.
    # mkdir /opt/oracle/

    ** /opt/oracle 경로에 zip 파일 다운로드 확인
    [root@tonggu2 oracle]# ll
    total 77696
    -rw-r--r--. 1 root root 78759477 Jun 2 14:31 instantclient-basic-linux.x64-21.10.0.0.0dbru.zip
    -rw-r--r--. 1 root root 798620 Jun 2 14:32 instantclient-odbc-linux.x64-21.10.0.0.0dbru.zip

    ** unzip
    * unzip 파일이 없다면 설치한다. yum install unzip
    [root@tonggu2 oracle]# ll
    total 77700
    drwxr-xr-x. 4 root root 4096 Jun 7 15:06 instantclient_21_10
    // 디렉토리 생성확인 - 이 경로에 oracle odbc 관련 파일들이 존재한다.
    -rw-r--r--. 1 root root 78759477 Jun 2 14:31 instantclient-basic-linux.x64-21.10.0.0.0dbru.zip
    -rw-r--r--. 1 root root 798620 Jun 2 14:32 instantclient-odbc-linux.x64-21.10.0.0.0dbru.zip

    2. tnsnames.ora 파일 생성

    ; /opt/oracle/instantclient_21_10 디렉토리에 생성한다.
    [cubrid11@tonggu1 instantclient_21_10]$ vi tnsnames.ora

    /* orcle 서버 접속정보 입력 */

    orcl = // 접속 alias 명
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST=172.31.202.12)(PORT=1521))
    // 원격호스트 ip 및 port
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = ORCLCDB) // database 명
    )
    )

    3. 환경변수 설정
    ; cubrid 계정에서 아래와 같이 oracle 관련 환경변수 설정을 합니다.
    [cubrid11@tonggu1 ~]$ vi .bash_profile // 해당 파일 맨아래 추가

    #-------------------------------------------------------------------------------
    # set Oracle enviroment variables for CUBRID DBLink
    #-------------------------------------------------------------------------------
    export ORACLE_HOME=/opt/oracle/instantclient_21_10
    export PATH=$PATH:$ORACLE_HOME
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
    export TNS_ADMIN=$ORACLE_HOME

    [cubrid11@tonggu1 ~]$ source .bash_profile // 새로운 환경설정 적용

    4. odbcinst.ini 설정
    ; /etc/odbcinst.ini 파일 하단에 추가

    [Oracle_ODBC_Driver]
    Driver=/opt/oracle/instantclient_21_10/libsqora.so.21.1
  • ?
    kikiki767 2023.09.26 11:13

    말씀하신 부분은 본문에서 적은 것처럼 기 적용되어 있습니다..

     

     

  • ?
    동구 2023.09.26 11:32
    네.. 공유드린 내용 참고하셔서 설정하신부분 다시한번 확인해 보시라는 의미 입니다.

    그리고, 에러가 file not found 이니..
    환경변수 설정하신 부분, 라이브러리 경로 등을 다시 한번 확인해 보시기 바랍니다.
  • ?
    kikiki767 2023.09.26 13:35

    먼저 도와주셔서 감사하다는 말씀 드립니다.

     

    원인은 odbcinst.ini 파일이였습니다.

     

    제가 수정한 파일은 --prefix 옵션을 지정하여 unixODBC 설치 후에 해당 디렉토리 내 etc 디렉토리 밑에 있는 파일이였습니다.

     

    동구님께서 /etc/odbciinst_ini 를 말씀해주셔서 해당 파일을 편집하니 정상적으로 수행되네요...;

     

     

     


  1. CUBRID 사용자를 위한 DBeaver 도구 출시 안내

    Date2024.04.23 Byadmin Views51
    read more
  2. SQLGate for CUBRID 영구 무료 라이선스 제공

    Date2020.04.09 Byadmin Views4458
    read more
  3. 윈도우10에서 cubrid명령어 입력시 cubrid.exe 실행

    Date2019.09.23 By킁미 Views288
    Read More
  4. 윈도우7+iis(7.5)+php5+cubrid에 xe 설치 후에 초기하면에 빨간색 글들.

    Date2009.12.26 ByHyuk-kwony Views20651
    Read More
  5. 윈도우7일때 로컬엔진으로 접속하면 에러납니다.

    Date2014.07.17 By어려운큐브 Views9
    Read More
  6. 윈도우에 관리모드 localhost 접속 안 됩니다.

    Date2016.02.24 By나무친구 Views9463
    Read More
  7. 윈도우에 등록되는 서비스명 변경이 가능한가요? ^^

    Date2010.11.08 By노스 Views10744
    Read More
  8. 윈도우에서 백업받은 DB를 리눅스 환경에서 복구 할수 있나요?

    Date2009.10.03 Bynewbie Views12632
    Read More
  9. 윈도우용 PHP 7에서 사용할 수 있는 큐브리드 드라이버 제공 시점 문의

    Date2015.12.06 By차오이 Views8191
    Read More
  10. 윈도우용 python 드라이버 설치 오류

    Date2023.01.18 By리치타이거 Views82
    Read More
  11. 윈도우용 큐브리드 문의

    Date2012.03.13 Byzino Views6355
    Read More
  12. 유니크한 값 얻어오기 있나요?

    Date2009.03.19 By이승훈 Views13138
    Read More
  13. 유저생성 함수 반복 실행 시, fatal error발생

    Date2023.11.09 Byf0081 Views105
    Read More
  14. 유져 권한에 대해

    Date2010.11.16 By가루구 Views8418
    Read More
  15. 윤년의 날짜 계산부분의 오류?

    Date2016.03.24 By라면 Views9856
    Read More
  16. 응답없음 현상

    Date2011.01.24 By까망이 Views9749
    Read More
  17. 이거... 뭐가 문제 일까요?

    Date2011.11.18 By안지민 Views27661
    Read More
  18. 이관데이터 CharSet문제

    Date2016.01.07 ByITMan Views7049
    Read More
  19. 이관중 에러가 나왔는데 질문좀 드릴께요

    Date2017.07.06 By덴드로비움 Views413
    Read More
  20. 이기종간 DB Link 문의 드립니다.

    Date2023.09.26 Bykikiki767 Views104
    Read More
  21. 이러한 오류가 뜨는 이유가 뭔가요?

    Date2020.11.13 ByUK Views151
    Read More
  22. 이런 형태의 테이블에는 데이터를 어떻게 삽입합니까?

    Date2012.06.25 By푸훗 Views5827
    Read More
Board Pagination Prev 1 ... 143 144 145 146 147 148 149 150 151 152 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales