데이터 펌프 실습

심우열·2023년 10월 18일
0

Oracle DB

목록 보기
5/8

1. 실습 목표

  • 소스DB의 HR유저 데이터베이스 전체를 타겟DB의 HR유저로 마이그레이션 해주세요.

2. Oracle DB가 설치된 두대의 VM준비

  • 두대의 VM에 호스트 전용 어댑터 붙여서 서로 통신이 가능하도록 해줌

1. Source DB

  • HR 유저가 있는 DB
  • IP: 192.168.56.101

2. Target DB

  • 인스턴스 생성만 되어있는 DB
  • IP: 192.168.56.102

3. Source DB에서 추출

1. Dumpfile을 내려받을 Directory 생성

<Source> $ mkdir -p /home/oracle/pump_dir
<Source> $ sqlplus "/as sysdba"
<Source> SQL> create or replace directory pump_dir as '/home/oracle/pump_dir';
<Source> SQL> grant read, write on directory pump_dir  to system;
<Source> SQL> select * from dba_directories;   <=== 생성된 디렉토리 확인

  • pump_dir 디렉토리가 잘 연결된 것을 확인

2. EXPDP 수행, 모니터링

1. expdp 수행

$ expdp \'/as sysdba \' directory=pump_dir dumpfile=exp_hr.dmp logfile=exp_hr.log parallel=2 full=y job_name=exp_hr

expdp 옵션

  • directory : 디렉토리 오브젝트를 지정 하여 덤프 파일의 위치로 로그파일의 위치 지정가능
  • dumpfile : 파일시스템에 저장될 덤프 파일의 이름을 지정 해주는 파라미터로 파일이 여러개로 나누어 질때 %U로 파일 이름을 고유하게 구분해 줄수 있다.
  • logfile : 작업내용을 저장 할 로그 파일명을 지정.
  • parallel : 작업 수행시 프로세스를 몇 개를 사용 할 것인가를 지정 하는 파라미터입니다. 주의할 점은 지정된 개수만큼의 데이터 파일을 만들어 주어야 하는데 앞에서 배운 %U 옵션을 주면 자동으로 생성.
  • job_name : 작업 수행시 job에 이름을 설정 할 수 있음. 설정을 하지 않으면 오라클이 자동으로 설정.(잘못된 작업으로 Job_name 충돌시 exp_full1 와 같이 수정해서 수행.)

2. 다른 터미널에서 모니터링 수행

$ expdp \'/as sysdba\' attach=exp_hr

attach 모드 옵션

  • exit : job 의 작업에서 빠져나감
  • kill_job : 해당 작업을 삭제.
  • parallel : 현재 작업 중인 프로세스의 개수를 조절.
  • start_job :중단된 작업을 다시 시작.
  • status : 현재 작업을 모니터링하는 시간 조절.
  • stop_job : 현재 작업을 중단.

3. Dumpfile TargetDB로 전송

scp /home/oracle/pump_dir/exp_hr.dmp oracle@192.168.56.102:/home/oracle/

4. Target DB 에서 적용

1. 적용할 덤프파일이 존재할 디렉토리 생성

<Target> $ mkdir -p /home/oracle/pump_dir
<Target> $ sqlplus "/as sysdba"
<Target> SQL> create or replace directory pump_dir as '/home/oracle/pump_dir';
<Target> SQL> grant read, write on directory pump_dir  to system;
<Target> SQL> select * from dba_directories;   <=== 생성된 디렉토리 확인

2. Taget DB에 테이블스페이스를 생성하고 HR유저 생성하고 권한 설정

1. 테이블스페이스 생성

create tablespace test datafile '/data01/ORCL/test01.dbf' size 300m reuse autoextend on next 1024k maxsize unlimited;

테이블스페이스 생성 확인

select * from dba_data_files;

2. HR유저 생성

profile
Dev Ops, "Git, Linux, Docker, Kubernetes, ansible, " .

0개의 댓글