Database link (t to t) 객체를 이용하여, A 데이터베이스로 부터 테이블을 가져오려고 함.
** A 데이터베이스 접속정보 (본인의 현재 TIBERO)
IP :
PORT:
SID :
USER: SYS
PASSWORD: TIBERO
문제1
) 수강생 DB에 새로운 스키마(이름: EDU_DBLINK , 암호: EDU_DBLINK ) 를 생성하고,
이곳에 DATABASE LINK 객체(이름: EDU_TLINK) 를 만드세요.
tbsql tibero/tmax
SQL> conn EDU_DBLINK
Enter Password:
Connected to Tibero.
#새로운 스키마(이름: EDU_DBLINK , 암호: EDU_DBLINK ) 를 생성
CREATE USER EDU_DBLINK IDENTIFIED BY 'EDU_DBLINK';
#이곳에 DATABASE LINK 객체(이름: EDU_TLINK) 를 만드세요.
CREATE DATABASE LINK EDU_TLINK CONNECT TO EDU_DBLINK IDENTIFIED BY 'EDU_DBLINK' USING 'Tibero2';
# 권한
GRANT CREATE DATABASE LINK TO EDU_DBLINK;
문제2
) DATABASE LINK 를 이용하여 A 데이터베이스의 ALL_USERS 를
수강생 DB의 EDU_DBLINK 스키마로 가져오세요(이름은 MY_USERS, 데이터 포함)
# 원래 있는 ALL_USERS 조회
SQL> SELECT * FROM ALL_USERS;
USERNAME
--------------------------------------------------------------------------------
USER_ID CREATED
---------- ----------------------------------------------------------------
SYSCAT
12 2022/09/30
SYSGIS
13 2022/09/30
OUTLN
14 2022/09/30
TIBERO
18 2022/09/30
TIBERO1
19 2022/09/30
T0930DB
21 2022/10/06
EDU_DBLINK
22 2022/10/06
USERNAME
--------------------------------------------------------------------------------
USER_ID CREATED
---------- ----------------------------------------------------------------
SYS
0 2022/09/30
8 rows selected.
# Table 'MY_USERS' created.
SQL> CREATE TABLE MY_USERS(USERNAME, USER_ID, CREATED)
2 AS
3 SELECT USERNAME, USER_ID, CREATED
4 FROM ALL_USERS@EDU_TLINK;
Table 'MY_USERS' created.
vi $TB_HOME/client/config/tbdsn.tbr
[tibero@T1:/tibero]$ tbsql tibero/tmax
SQL> DROP DATABASE LINK TLINK;
Database Link 'TLINK' dropped.
-link명
: 생성한 링크명
-userid
: Tibero#2으로 접속할 계정
-password
: Tibero#2으로 접속할 userid의 비밀번호
-using 절 이후의 Tibero#2는 연결할 데이터베이스를 가리키는 이름으로 tbdsn.tbr 파일에 해당 데이터베이스의 연결 정보가 저장되어 함
# create database **link Link명** connect to **userid** identified by '**password**' using '**tbdsn에 설정한alias**'
SQL> CREATE DATABASE LINK TLINK CONNECT TO t0930db IDENTIFIED BY 'tmax' USING 'Tibero2';
Database Link 'TLINK' created.
create user t0930db identified by ‘tmax’;
grant dba to t0930db;
# grant create database link to user명;
grant create database link to t0930db;
# select * from Tibero#2테이블명@DB_LINK명
select * from v$instance@tlink;
<TIBERO 데이터베이스링크>
문제 1
) linktest라는 유저와 dblink 생성하는 것
문제 2
) (데이터베이스링크 사용) Remote Database 에 존재하는 ALL_OBJECTS 를 가져와서 LINKTEST 스키마에 MY_OBJECTS 라는 이름으로 테이블 생성하기.