본문 바로가기
Oracle

[ORACLE] 백업및 복구(1)_EXPDP

by Ssun's 2021. 3. 4.

< Oracle Data Pump Export(expdb) >

 

※ DB 전체(full) 백업

  expdp 아이디/비밀번호 directory=디렉터리명 dumpfile=파일명.dmp full=y

 

※ 테이블스페이스(tablespace) 백업

  expdp 아이디/비밀번호 directory=디렉터리명 dumpfile=파일명.dmp tablespaces=테이블스페이스명

 

※ 스키마(Schemas) 백업

  expdp 아이디/비밀번호 directory=디렉터리명 dumpfile=파일명.dmp schemas=스키마명

 

※ 테이블(table) 백업

  expdp 아이디/비밀번호 directory=디렉터리명 dumpfile=파일명.dmp tables=스미카.테이블명

 

 

※ expdp 옵션

 

1. logfile

   - logfile= back_log.log

      -> 디렉터리 개체의 경로에 로그파일 생성됨

   - nologfile=yes (defaul=no)

      -> 로그파일 출력하지 않음

 

2, content

   - conetn=datadata_only

      -> 테이블의 데이터만 추출

   - content=metadata_only

      -> 메타데이터(테이블 정의 데이터는 없음)만 추출

   - content=all (기본)

      -> 정의와 데이터 전부 추출

   

3. estimate_only

   - estimate_only=yes

      -> 실제 export작업은 하지 않고 export작업이 진행될 경우 예상되는 디스크 사용량만 출력

 

4. exclude

   - export 작업 수행 시 해당 오브젝트(들)를 선택대상에서 제외하고 작업

   - 특정 테이블(test테이블)만 제외하고 export
      -> exclude=table:"\='test'"
   - 만약 두 개의 테이블을 제외하는 경우(test1, test2테이블 제외하고 export)
      -> exclude=table:\"in \(\'test1\'.\'test2\' \)\"

   - 인덱스 제외하고 export

      -> exclude = INDEX

 

5. filesize

   - 각각의 덤프파일의 최대 크기 지정

   - 데이터 용량이 최대 크기를 초과할 경우, 두번째 덤프파일 생성

 

6. flashback_time

   - 주어진 시간에서 커밋이 일어난 가장 가까운 시간대의 데이터들을 export.

   - 특정 scn이 일어난 때의 데이터들을 flashback 기능으로 가져와 export

   - flashback_time이 설정되면 flashback_scn은 설정될 수 없음

 

7. flashback_scn

   - 주어진 scn으로 flashback 유틸리티 프로그램을 작동시켜 특정 과거 시점의 데이터를 export

   - flashback_scn이 설정되면 flashback_time은 설정할 수 없음

 

8. include

   - export 작업 수행시 해당 오프젝트(들)를 선택 대상에 포함하고 작업하도록 함

   - 값의 형식은 exclude옵션과 동일

 

9. cluster

   - RAC 환경 옵션

 

10. compression

   - compression=all

      -> export 작업 대상인 데이터와 메타데이터 모두를 압축하고 이 값을 사용하기 위해 Oracle Advanced         

          Compression 옵션이 "enabled"로 설정되어야 한다.

   - compression=data_only

      -> 덤프파일로 내려쓸 데이터들을 압축하고 이 값을 사용하기 위해 Oracle Advanced Compression 옵션이

          "enabled"로 설정되어야 한다.

   - compression=metadata_only (기본값)

      -> 덤프파일에 저장될 메타데이터만 압축

   - compression=none

      -> 압축 하지 않음

 

11. encryption_password

   - 암호 지정허가되지 않은 접근을 방지하기 위해 덤프 파일에 비밀번호 설정

 

12. reuse_dumpfiles

   - export작업의 결과로 덤프파일을 만드는데 이미 같은 파일명의 덤프파일이 존재할 때,

     reuser_dumpfiles의 값이 no이면 에러를 반환하지만, yes의 경우 파일을 초기화하고 재사용 가능

 

13. logtime

   - logtime=all

      ->표시 메시지에 타임스탬프 기록

   - logtime=status

      -> 로그 메시지에 타임스탬프 기록

   - logtime=logfile

      -> 표시메시지와 로그메시지에 타임스탬프 기록

   - logtime=none(기본값)

      -> 표시메시지와 로그메시지에 타임스탬프 기록x

 

 

 

 

실행 예시 )

 

1. 백업, 복구를 위해 TEST테이블 생성

   SQL > CREATE TABLE TB_TEST(

            TEST_NO NUMBER,

            TEST_NAME VARCHAR2(100)

            );

 

  Table created.

 

  SQL> insert into tb_test values(1,'test01');

  1 row created.

  SQL> insert into tb_test values(2,'test02');

  1 row created.

  SQL> insert  into tb_test values(3,'test03');

  1 row created.

 

  SQL> select * from tb_test;

     TEST_NO   TEST_NAME
  --------------------------------------------------------------------------------
           1        test01
           2        test02
           3        test03

 

 

 

 

 

2. 권한 부여 (백업,복구를 위한 테스트계정(test)에 부여)

 2-1. EXPORT, IMPORT 권한 부여

  SQL > GRANT EXP_FULL_DATABASE TO test;

  Grant succeeded.

 

  SQL > GRANT IMP_FULL_DATABASE TO test

  Grant succeeded.

 

 2-2. DICTIONARY 생성 권한 부여

  SQL> grant create any directory to test;
  Grant succeeded.

 

 

 

 

 

 

3. DIRECTORY 생성 

 

SQL> create or replace directory datapump as 'C:\Users\SSun\Desktop\backup_test';
Directory created.

 

 

SQL> select * from dba_directories;
OWNER
------------------------------------------------------------
DIRECTORY_NAME
------------------------------------------------------------
DIRECTORY_PATH
--------------------------------------------------------------------------------
SYS
TEST_PUMP
C:\Users\SSun\Desktop\backup_test

SQL> grant read, write on directory test_pump to system;
Grant succeeded.

 

 

3-1. DIRECTORY 변경(경로 변경)

SQL> create or replace directory TEST_PUMP as 'C:\Users\SSun\Desktop\backup_test2';

 

 

 

 

 

4. expdp 실행

C:\Users\SSun\Desktop\backup_test>expdp system/admin schemas=test directory-test_pump dumpfile=backup.dmp;

 

Connected to: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

Starting "SYSTEM"."SYS_EXPORT_SCHEMA_01":  system/******** schemas=test directory=test_pump dumpfile=backup.dmp;

Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 64 KB
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
. . exported "TEST"."TB_TEST"                            5.453 KB       3 rows
Master table "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************

Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_01 is:

  C:\USERS\SSUN\DESKTOP\BACKUP.DMP;

Job "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully completed at 15:20:00

 

 

--> TB_TEST EXPORT 완료

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'Oracle' 카테고리의 다른 글

[ORACLE] DATAPUMP 작업 모니터링  (0) 2021.03.22
[Oracle] SQL Developer로 내보내기  (0) 2021.03.15
[ORACLE] 백업및 복구(2)_IMPDP  (0) 2021.03.04
[ORACLE] SYS, SYSTEM 계정과 권한  (0) 2021.03.02
[ORACLE] 비밀번호 만료  (0) 2021.03.02

댓글