Data Base/Linux

240105 Architecture_ Client - Server 환경, Database Link

잇꼬 2024. 1. 5. 17:55
728x90
반응형
SMALL

■ client 환경에서의 오라클 접속
1. 간단한 연결 방식(Easy Connect)
- 기본적으로 활성화
- client 측에 구성이 필요 없다.
- TCP/IP 만 지원한다.

2. 로컬 이름 지정 방식
- client 측에 이름 분석(names resolution) 필요
- 모든 oracle net 프로토콜 지원

#) client용 network 파일 위치
$ORACLE_HOME/network/admin/tnsnames.ora

 

#) window 상에서의  파일 위치
C:\oraclexe\app\oracle\product\11.2.0\server -> ORACLE_HOME
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN\tnsnames.ora-> 메모장으로 오픈

#) 메모장 오픈 -> 추가 및 변경
ora11g =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.108)(PORT = 1522))
    (CONNECT_DATA =
      (SERVICE_NAME = ora11g)
    )
  )

#) SQL Developer sys 접속 

1) 포트 1522 변경 후 테스트

 

2) 접속환경 기본 -> TNS 변경 


3) 네트워크 별치(E) : ora11g 


3) 테스트 -> 상태: 성공 


4) 접속

SELECT * FROM v$instance;



■ Database Link
- 데이터베이스 링크란 다른 데이터 베이스의 객체에 액세스할 수 있도록 하는 데이터베이스 객체이다.
1. client XE DB 에  tnsnames.ora 내용 추가 
#1) client용 network 파일
$ORACLE_HOME/network/admin/tnsnames.ora


#2) 메모장 오픈 -> 추가 및 변경
ora11g =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.108)(PORT = 1522))
    (CONNECT_DATA =
      (SERVICE_NAME = ora11g)
    )
  )


2. XE DB에서 remote ora11g로 접속
#1) cmd 창 접속
- xe 에 있는 hr 유저에서 시스템 권한 확인
C:\Users\ITWILL>sqlplus hr/hr@ora11g
또는 
SQL> conn hr/hr@ora11g
Connected.

3. XE 환경 hr 계정
SQL> select * from session_privs;
PRIVILEGE
-----------------------------
...
CREATE DATABASE LINK
...

4. XE 에 있는 hr 에 데이터베이스 링크를 생성 
<XE 버전, hr session>


#) DB link 생성

CREATE DATABASE LINK ora11g_hr
CONNECT TO hr IDENTIFIED BY hr
USING 'org11g';

 

#) 생성 확인

SELECT * FROM user_db_links;


#) XE 버전

SELECT * FROM departments;


#) ora11g_hr 버전

SELECT * FROM departments@ora11g_hr;


#) insa01 계정 DB link 생성 후 hr 계정에서 진행

CREATE DATABASE LINK ora11g_insa01
CONNECT TO hr IDENTIFIED BY oracle
USING 'org11g';


#) 생성 확인

SELECT * FROM user_db_links;


#) ora11g_hr 버전

SELECT * FROM dept@ora11g_insa01;
select e.employee_id, e.last_name, d.department_name
from employees e, dept@ora11g_insa01 d
where e.department_id = d.department_id
and e.jod_id = 'AD_VP';


tip) database link 생성 후 select 에서 수행이 되지 않는다면?
sql문을 일일이 작성해야 할 것.

5. DB link 삭제 

drop database link ora11g_insa01;


6. XE dba 로 접속해서 public database  link 생성
SQL> sqlplus / as sysdba

 

#) 생성

create public database link orallg_insa01
connect to insa01 IDENTIFIED by oracle
using 'ora11g';


#) 생성 확인

select * from dba_db_links;


7. xe 버전에서 hr session 접속

select * from all_db_links;


#) 실행되는지 Join문으로 확인

select e.employee_id, e.last_name, d.department_name
from employees e, dept@ora11g_insa01 d
where e.department_id = d.department_id
and e.job_id = 'AD_VP';



8. XE dba 로 접속해서 public synonym 생성

- synonym : 동의어를 생성해주는 명령

기본식 : create (public / or replace) synonym 변경될 이름 for 변경할 이름(객체);

#) 테이블명 짧게 생성

create public synonym ora11g_dept for dept@ora11g_insa01;


#) 생성 확인

select * from dba_synonyms where synonym_name = 'ORA11G_DEPT';



9. XE 버전 hr 접속 synonym 확인

select * from all_synonyms where synonym_name = 'ORA11G_DEPT';


#) 확인

select e.employee_id, e.last_name, d.department_name
from employees e, ora11g_dept d
where e.department_id = d.department_id
and e.job_id = 'AD_VP';


10. XE dba 접속 public 삭제

drop public synonym ora11g_dept;
drop public database link ora11g_insa01;

 

728x90
반응형
LIST