Datapump를 이용한 백업!! //백업전 준비사항 확인 후 백업시작할 것.

   

1. 리스너 상태확인

   

   

1-1  "lsnrctl status" 를 통하여 현재 리스너 연결 상태를 확인한다.

   

1-2  리스너가 연결 되어 있다면 "lsnrctl stop"을 통하여 연결을 잠시 끊어준다. 

       (DB 끄고 난 뒤 다시 리스너 연결을 해도 됨.)

   

1-3  현재 DB를 사용하고 있는 사용자들을 초기화 하기 위함.

   

1-4  다시 리스너 연결을 해도 된다. "lsnrctl start"

   

<현재 리스너가 연결되지 않은 상태에서 시작했지만 실제 현장에서는 연결 되어 있었습니다.>

   

2. 리스너 정지 및 디렉토리 생성

   

   

   

2-1  backup을 해도 되는 디렉토리를 마운트 시켜주면, 그곳에 자신이 정리하기 쉽게 mkdir /경로/datapump 디렉토리를 만들어 놓는다.

   

2-2  편의상 디렉토리를 만들었기 때문에 만들지 않아도 상관없다.

   

   

3. DB 사용량 확인하기(백업하기 전 준비사항 참고)

   

   

3-1  백업을 실행 하기 전 한번더 현재 데이터 사용량을 확인한다.

   

3-2  현재 DB 사용량 확인

       select sum (bytes)/1024/1024 from DBA_data_files;  

       select sum (bytes)/1024/1024 from DBA_free_space;

   

3-3  현재 사용하는 DB의 수 확인 

       cd $ORACLE_BASE/admin 들어가서 확인

       cd $ORACLE_HOME/dbs/ 들어가서 init 파일 확인

3-4  추가적인건 "백업하기전에 해야될 것들!!" 을 확인하자! 

   

   

4. DB 정지 후 재시작

   

   

4-1 본격적으로 datapump 백업을 하기전에 몇가지 선수해야될 사항들이 있다.

   

4-2  디렉토리 설정   

       create or replace directory dpump_dir as '/backup/datapump';

   

4-3  디렉토리 권한 설정

       grant read, write on directory dpump_dir to system ;

   

※ dpump_dir 명칭을 변경해되 된다, 다만 일치 시켜줘야한다.

   

   

5. Datapump export/import 시작

   

   

5-1 이제는 실제로 datapump를 실행해서 백업을 받을 시간이다.

   

5-2 datapump export 명령어

     expdp system/oracle directory=dpump_dir dumpfile=full_dump.dmp logfile=full_dmp.log job_name=expdp_full full=y; 

   

5-3 datapump import 명령어

      impdp system/oracle directory=dump_dir dumpfile=full_dump.dmp logfile=full_dmp.log job_name=expdp_full full=y

   

※ system/oracle 의 경우 system 비밀번호가 다를 수 있다.

※ 해당 dump_dir의 이름이 일치해야 된다.

※ 백업 파일명에 백업한 날짜를 넣어 주면 좋다.

   

   

6. Datapump export 성공 및 오류발생

   

   

   

6-1 만약 아무런 오류 없이 성공했다면 datapump는 끝이 난다.

6-2 .dmp파일이 만들어 진 것을 볼 수있다.(.log 파일로 백업의 현재 진행상황 및 상태를 확인할 수 있다.)

   

하지만 오류가 나게된다면!!

대부분 초반에 오류가 나타난다. 

   

   

6-3  위 그림과 같은 XML 스키마관련 테이블 에러가 발생한다면, 해결방법은 2가지이다.

   

6-4 첫번째는 datapump를 포기하고 기존의 export백업을 실행하는 방법.

   

6-5 두번째는 오류가 발생한 해당 테이블만 export백업으로 받는 것이다. 

      exp system/oracle tables=SYS.tableName 

                 file=backup/datapump/exp_full_20110825.dmp log=/home/oracle/datapump/exp_full_20110825.log 

   

   

※ SYS 부분에 해당 테이블 이름을 명시하고 위치를 지정해주면 된다.

※ import를 해야되는 경우에는 각각 import해주어야 한다.

   

   

추가적인 오류로 인하여 datapump를 수행하지 못하고 export백업을 하게 될 경우도 있다.

다음에는 export백업에 대하여 정리하겠습니다.

블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,