반응형
ORACLE DB 에서 Tibero 로 DB Link를 생성하여 데이터를 공유한다.
○ 누구나 이해하고 구성할 수 있게 작성했으니 손쉽게 구성해서 테스트해보시길!
오라클 버전 | 11g |
티베로 버전 | 7 |
오라클에서 DBLINK를 이용하려면 티베로 클라이언트를 설치해야한다.
# gateway 확인
ls -la $ORACLE_HOME/bin/dg4odbc
## 없는 경우 설치 ##
티베로 클라이언트를 설치하고 다음과 같이 설정.
# user 생성
useradd tibero
passwd tibero
# tibero 파일 압축 해제
tibero7-bin-FS02_PS03-linux64_3.10-292346-20250421165611.tar.gz
tar -zxvf tibero7-bin-FS02_PS03-linux64_3.10-292346-20250421165611.tar.gz
ls | grep tibero
tibero7
tibero7-bin-FS02_PS03-linux64_3.10-292346-20250421165611.tar.gz
# bash profile 생성
vi ~/.bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
# 종료 후 저장
source ~/.bash_profile
# 권한 부여
chmod -R 755 /home/tibero/tibero7
DBLink 준비 완료.
티베로에서 클라이언트 파일은 현재 따로 없으며 데모 버전 다운로드 후에 tbdsn.tbr 파일과 같은 모듈과 파일만 수정하고 사용하면 된다.
(gen_tip.sh 라는 설치 파일은 실행하지 않아도 된다.)
티베로 클라이언트 설정
vi /home/tibero/tibero7/client/config/tbdsn.tbr
tibero=(
(INSTANCE=(HOST=10.202.10.202) --> 원격지 IP
(PORT=8629) --> 원격지 PORT
(DB_NAME=tibero) --> TIBERO Config 설정 SID
)
)
오라클 ENV 설정
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export ORACLE_BASE=/DATA/oraprod
export ORACLE_HOME=$ORACLE_BASE/11g
export ORACLE_SID=oraprod
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export TNS_ADMIN=/DATA/oraprod/11g/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export PATH=$PATH:$ORACLE_HOME/bin
# Oracle To Tibero DB Link Setting
export TB_HOME=/home/tibero/tibero7
export LD_LIBRARY_PATH=$TB_HOME/client/lib:$LD_LIBRARY_PATH
export PATH=$TB_HOME/client/bin:$PATH
오라클 TNS 설정
# tnsnames.ora Network Configuration File: /DATA/oraprod/11g/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORAPROD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.202.10.202)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oraprod)
)
)
tibero =
(DESCRIPTION =
(ADDRESS=(PROTOCOL=TCP)(HOST=10.202.10.202)(PORT=1515))
(CONNECT_DATA=(SID=tibero))
(HS=OK)
)
LISTENER_ORAPROD =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.202.10.202)(PORT = 1521))
오라클 리스너 설정
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = oraprod)
(ORACLE_HOME = /DATA/oraprod/11g)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.202.10.202)(PORT = 1521))
)
)
tibero =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.202.10.202) --> 로컬에서 사용하는 리스너 IP
(PORT = 1515) --> 리스너 포트
)
)
)
SID_LIST_tibero =
(SID_LIST =
(SID_DESC =
(SID_NAME = tibero)
(ORACLE_HOME = /DATA/oraprod/11g)
(PROGRAM=dg4odbc) ##10g일 경우 hsodbc를 사용
)
)
ADR_BASE_LISTENER = /DATA/oraprod
오라클 리스너 시작 & ora-init<SID>.ora 파일 생성
$ lsnrctl start tibero
$ lsnrctl status tibero
## lsnrctl status tibero --> lsnrctl status [Alias] 설정했던 Alias를 입력합니다..
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 30-JUN-2025 10:13:20
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.202.10.202)(PORT=1515)))
STATUS of the LISTENER
------------------------
Alias tibero
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 27-JUN-2025 16:20:00
Uptime 2 days 17 hr. 53 min. 20 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /DATA/oraprod/11g/network/admin/listener.ora
Listener Log File /DATA/oraprod/diag/tnslsnr/sam/tibero/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.202.10.202)(PORT=1515)))
Services Summary...
Service "tibero" has 1 instance(s).
Instance "tibero", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
$ netstat -alnpt | grep LISTEN]
tcp 0 0 10.202.10.202:1515 0.0.0.0:* LISTEN 114291/tnslsnr
# initial parameter 구성
# init 파일 생성 init<SID_NAME>.ora 파일 생성한다.
$ cd /DATA/oraprod/11g/hs/admin
## 다른 곳에서는 cp initdg4odbc.ora --> copy 후에 수정하라고 하지만 저는 생략하고
## 필요한 것만 작성했습니다.
$ vi inittibero.ora
HS_FDS_CONNECT_INFO = tibero
HS_FDS_SHAREABLE_NAME = /home/tibero/tibero7/client/lib/libtbodbc.so
HS_FDS_TRACE_LEVEL = DEBUG
HS_LANGUAGE=AMERICAN_AMERICA.KO16MSWIN949
## 저장 후 tibero lib module 테스트
ldd /home/tibero/tibero7/client/lib/libtbodbc.so
ldd /home/tibero/tibero7/client/lib/libtbodbc.so
linux-vdso.so.1 => (0x00007ffe99a78000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f751eef0000)
libm.so.6 => /lib64/libm.so.6 (0x00007f751ebee000)
librt.so.1 => /lib64/librt.so.1 (0x00007f751e9e6000)
libc.so.6 => /lib64/libc.so.6 (0x00007f751e618000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7520d5e000)
## "not found"가 없어야 정상
DB LINK 생성
sqlplus '/as sysdba'
SQL> create user linktester identified by "112233";
User created.
SQL> grant connect, resource to linktester;
Grant succeeded.
SQL> grant create database link to linktester;
Grant succeeded.
## DB LINK 생성 ##
create database link tibero connect to linktester identified by "112233" using 'tibero';
## 잘 생성 되었는지 조회 ##
SELECT * FROM DBA_DB_LINKS WHERE OWNER ='LINKTESTER';
티베로 원격지 접속 테스트
$ tbsql linktester/112233@tibero; --> @DBLINK Alias명
tbSQL 7
TmaxTibero Corporation Copyright (c) 2020-. All rights reserved.
Connected to Tibero using tibero.
오라클에서 티베로 원격지 데이터 조회
sqlplus '/as sysdba'
SQL> conn linktester/112233
Connected.
SQL> select * from tb_test_lis@tibero;
CONTENT
--------------------------------------------------------------------------------
x o r
n o t
o r
a n d
문제 없이 잘 조회된다.
이걸로 Oracle to Tibero DB LINK 구성을 마침. 간략하게 순서를 정리해드릴게요.
1. 오라클 Gateway 확인 → 2. 티베로 클라이언트 설치 및 환경설정 → 3. 오라클 env 및 리스너 등록, 시작 → 4. 오라클 init.ora 등록 → 5. DB LINK USER 및 권한 부여 → 6. DB LINK 생성 → 7. 원격지 데이터 조회
'데이터베이스 > ORACLE' 카테고리의 다른 글
[DB LINK] Tibero to Oracle DBLink 설정 (1) | 2025.07.03 |
---|---|
[ORACLE] 오라클 SGA(System Global Area) 이해하기 (0) | 2025.06.20 |
[ORACLE] 오라클 리스너(Listener) (0) | 2025.06.19 |
오라클 서버 기본 구조 (0) | 2024.10.27 |