datapump 란?

기술면접대비 2013. 1. 11. 15:02

 

출처: http://cafe.naver.com/ocmkorea/2770
1. 오라클 10g 의 신기능 Data Pump 의 소개

1) 개요
DB에 있는 데이터를 운영체제의 파일시스템으로 내보내는 과정을 export 라 하고, 반대로 파일 시스템을 DataBase로 들여오는 것을 Import 라고 한다. 기존의 방식을 Export/Import 라고 하고오라클 10g에서는 이를 Data Pump 라고 통칭한다. 



오라클 Data Pump는 export/import에 대한 강력한 기능들을 추가한 Utility 이다.

[ Data Pump 사용시  주의사항]
export/import 와 Data Pump는 서로 호화되지 않습니다.
즉 Export 유틸리티를 이용하여 백업 받은 파일은 Data Pump를 통해 Import 할 수 없으며, 마찬가지로 Data Pump 를 통해 export 된 데이터는 Import 유틸리티를 통해 Import 할 수 없습니다.

 2) Data Pump export/Import 의 이점
■ JOB 콘트롤 기능 : Interactive mode를 통하여 Data Pump작업을 통제 할 수 있습니다. 작업을

                                중단시키고 재 시작할 수 있으며 동적으로 dump file을 할당 할 수 있습니다.

                                에러가 나더라도 작업이 중지될 뿐 언제든지 원인을 수정하고 재수행 할 수

                                있습니다.

■ 병렬수행지원 : Parallel 파라미터를 이용하여 프로세스의 Data Pump 작업의 프로세스를 병렬화

                          할 수 있습니다. 병렬화 된 프로세스는 여러개의 데이터 파일에 각각 데이터를

                          쓰거나 여러개의 데이터 파일로 부터 데이터를 읽어 데이터베이스에 저장합니다.

                          병렬수행이 가능함으로 이전 보다 훨씬 강력한 기능을 제공합니다.

■ 작업에 필요한 디스크 공간을 미리 예상 : Estimate 파라미터를 이용하여 작업 시작전에 필요한

                          물리적인 공간을 미리 예측 할 수 있다.

■ 원격지 수행 : DB Link 를 통하여 원격지 데이터에 대한 Data Pump export/import 를 수행 할 수

                      있다

■ Remapping 지원 : 유저 스키마, 테이블스페이스, 데이터파일 등과 같은 정보들이 Data Pump

                                export/import 시에 변경 할 수 있습니다. 이러한 기능은 데이터 마이그레이션

                                시에 보다 많은 유연성을 제공하는데 큰 역활을 합니다

 

3) Data Access 방법

■ Direct-path : Direct I/O를 사용하여 OS영역의 메모리를 사용하지 않고 데이터 파일에 direct로

                        쓰게 되는 방법입니다. 메모리 사용이 적고 속도가 빠르며, 데이터 컨버전에 시간이

                        걸리지 않습니다.

[ Direct-path 가 되지 않는 경우 ]

- 클러스터 테이블인 경우

- 테이블에 활성화된 트리거가 존재할 경우

- 글로벌 인덱스를 가진 테이블이 하나의 파티션에 존재 할 경우

- LOB컬럼에 있는 도메인 인덱스

- insert 모드에서 fine_grained access control 이 enable인 경우

- BFILE을 가진 테이블인 경우

 

■ External Tables : 메타 데이터를 데이터베이스 내에 저장하고 데이터는 파일시스템 존재하게

                       만들어 데이터를 저장하는 방법이며 대용량 데이터를 export/import 할때

                       사용합니다.

 

[ External Table이란? ]

- Create TABLE ~~ ORGANIZATION EXTERNAL 문을 통해 만들어진 테이블

- 실질적인 데이터베이스 내에 존재하는 것이 아니라 물리적 디스크 공간에 논리적 공간을 할당 받아 데이터를 저장하며, 파일 형태로 존재합니다.

- 저장되는 데이터는 READ ONLY 데이터이며 인덱스를 생성할 수 없습니다.

- DML 작업을 수행 할 수 없습니다.

- META-DATA in DATABASE, DATA in OS라고 압축 설명 할 수있습니다.

 

3) Data Pump 의 권한설정

- 시스템에 설정된 EXP_FULL_DATABASE, IMP_FULL_DATABASE 롤을 부여함으로써 가능함

   (1) 사용자 생성 : create 문을 사용하여 사용자를 생성합니다. 패스워드는 imsi00 으로 하며,

        default tablespace는 USERS 테이블스페이스로 합니다.

        create user zoom identified by imsi00

        default tablespace users

        temporary tablespace temp

        /

   (2) 권한부여 : grant 문을 이용하여 zoom 유저에 접속(connect) 과 자원사용(resource) 에

        대한 권한을 부여한다

        grant connect, resource to zoom;

   (3) 모든 테이블에 대한 select 권한부여

        grant select any table to zoom;

   (4) zoom유저에 EXP_FULL_DATABASE, IMP_FULL_DATABASE 권한 부여

        grant EXP_FULL_DATABASE, IMP_FULL_DATABASE to zoom;

 

4) Data Pump 파일 오브젝트

4-1) Data Pump 가 사용하는 파일의 종류

■ Dump File : 테이블로 부터 데이터 또는 메터 데이터를 로드하여 저장된 파일

■ Log File : Data Pump 작업 중에 발생하는 메시지나 결과를 기록하는 파일

■ SQL File : Data Pump는 SQLFILE 이라는 옵션을 사용합니다. 이옵션을 사용 할 경우

                  Data Pump Import 작업이 수행되는 동안 DDL문을 수행 할 수있게 해줍니다

 

4-2) Data Pump 디렉토리 오브젝트

Data Pump는 사용자별 디렉토리 접근 권한을 설정할 수 있다

  

디렉토리 권한설정

(1) 사용중인 디렉토리 오브젝토 조회

      SQL> select * from dba_directories;

(2) 디렉토리 오브젝트 추가

      SQL> create directory datapump_dir1 as '/temporary/ora_tmp';

(3) 디렉토리 오브젝트 권한추가(zoom 유저에게 datapump_dir1 디렉토리 read, write 권한부여)

      SQL> grant read, write on directory datapump_dir1 to zoom;

(4) Export Pump 실행

     $expdp zoom/imsi00 directory=datapump_dir1 Tables=EMP dumpfile=zoom_dump01.dmp

 

* Data Dump 시 마다 디렉토리 오브젝트를 추가하지 않고 묵시적으로 추가

$DATA_DUMP_DIR=datapump_dir1;

$export DATA_DUMP_DIR;

 

2. Data Pump Export

1) Data Pump Export 사용하기

■ Command-line 이용하기

   $expdp zoom/imsi00 directory=datapump_dir1 Tables=EMP dumpfile=zoom_dump01.dmp

    - 비교적 작은 수의 옵션들이 사용되거나 간단한 구문일 때 사용합니다

    - 복잡하고 옵션이 많게 되면 수정하거나 잘못 타이핑 할때 시간이 많이 걸리게 됩니다

■ 파라미터 파일 이용하기

    zoom.par 파일을 생성하여 다음과 같이 설정합니다

    SCHEMAS = SCOTT

    DIRECTORY=datapump_dir

    DUMPFILE=zoom01.dmp

    LOGFILE=zoom_dump.log

   

    $expdp zoom/imsi00 PARFILE=zoom.par

 

2) Data Pump Export 모드

■ Full Export 모드 : Full 파라미터를 사용합니다. 데이터베이스 전체를 export 받을 수 있습니다.

                            한가지 주의 할 점은 EXPORT_FULL_DATABASE 롤이 Full Export 받고자 하는

                            사용자에게 부여되어 있어야 한다는 점입니다

■ 스키마 모드 : Schemas 파라미터를 사용합니다.

                           하나의 유저가 소유하고 있는 데이터 및 오브젝트 전체를 export 받고자 할때

                          사용할 수있는 모드입니다.

■ 테이블스페이스 모드 : TableSpace 파라메터를 사용합니다. 하나 이상의 테이블스페이스에

                           대해 해당 테이블스페이스에 속한 모든 테이블을 받을 수 있습니다.

                           만약 TRANSPORT_TABLESPACES 파라미터를 이용한다면, 테이블 뿐 아니라

                           테이블스페이스의 메터데이터 까지 export 받게 되어 다른 서버에 dump 파일을

                           카피 한 후 import 하게 되면 테이블스페이스 및 테이블이 자동으로 생성됩니다.

■ 테이블 모드 : TABLES 파라미터를 사용합니다.

                       하나 이상의 테이블을 export 받을 때 사용합니다
 

3) Data Pump Export 파라미터

■ 파일 및 디렉토리 관련 파라미터

- DIRECTORY : 디렉토리 오브젝트를 참조하는 DIRECTORY 파라미터를 이용하여 덤프파일의

                      위치 및 로그파일의 위치를 지정 할 수 있습니다.

                      DIRECTORY=directory_object_name 형식으로 사용 할 수있습니다.

- DUMPFILE : Export를 받아 파일시스템에 저장될 덤프파일의 이름을 지정하는 파라미터이빈다.

                    파라메터를 사용할때 다음을 기억하시고 사용하시면 됩니다.

                    + %U 를 사용하여  여러개의 덤프 파일을 구분 할 수 있습니다

                       DUMPFILE=ZOOM_DUMO_%U.DMP라고 파라메터를 정의합니다.  만약 덤프

                       파일이 10개가 생성된다고 가정하면 ZOOM_DUMO_01.dmp 부터

                       ZOOM_DUMO_10.dmp 까지 %U 부분이 자동 증가하여 파일을 구분하여 줍니다.

                       %U의 범위는 01 ~ 99 까지 입니다

                   + ',' 를 이용하여 여러개의 파일명을 구분할 수 있습니다.

                      예를들어 다음과 같이

                      DUMPFILE=ZOOM_DUMO_01.dmp, ZOOM_DUMO_02.dmp,ZOOM_DUMO_03.dmp

                   + 만약 DUMPFILE 파라메터를 지정하지 않는다면 expdat.dmp 라는 파일명으로

                      오라클이 자동 선언하게 됩니다.                 

- FILESIZE  : export 받는 1개 파일의 최대크기를 지정하는 파라미터 입니다.

                   만약 export 받을 총 데이터량이 10GB이고 FILESIZE를 1GB로 지정하였다면 1GB

                   크기의 dump file이 10개 만들어 지게 됩니다.

                   FILESIZE=N [ BYTES | KILOBYTES | MEGABYTES | GIGABYTES ] 입니다.

- PARFILE : 파일에 파라메터들을 저장해 두고 Data Pump를 이용할때 마다 참조하여 작업을

                 수행하고 싶을때 PARFILE 파라메터를 사용할 수 있습니다

                  PARFILE=filename.par 형식으로 사용할 수 있으며, 파일 확장자는 아무런 영향을

                  미치지 않습니다

- LOGFILE & NOLOGFILE : 로그 파일명을 지정하는 파라메터 입니다

                  LOGFILE=logfile_name 형식으로 사용 하시면 됩니다. 파라미터를 설정하지 않는다면

                  export.log 라는 파일명으로 로그가 자동으로 실행한 위치의 디렉토리에 남게 됩니다.

                  로그파일을 남기고 싶지 않을때는 NOLOGFILE 파라미터를 사용하시면 됩니다.

- COMPRESSION : 오라클에서 EXPORT 시에 메타데이터는 압축을 하여 파일에 저장하게 됩니다.

                  COMPRESSION 파라메터를 사용하지 않을 경우에는 덤프파일 내에 메타데이터가

                  압축되어 보관됩니다.

                  COMPRESSION 파라메터에는 METADATA_ONLY, NONE 두개의 옵션이 있으며,

                  METADATA_ONLY는 파라메터를 사용하지 않으면 디폴트로 인식되는 옵션입니다.

                  COMPRESSION=option_name 으로 사용하면 됩니다.

                  #expdp zoom/imsi00 DIRECTORY=/oracle/expdir DUMPFILE=dump.dmp

                                                COMPRESSION=NONE

 

■ Export 모드 관련 파라미터

- FULL

- SCHEMAS

- TABLES

- TABLESPACES

- TRANSPORT_FULL_CHECK : TRANSPORT_FULL_CHECK 파라메터는 export 작업 시에

                          테이블스페이스 내에 존재하는 테이블과 인덱스의 의존선을 검사 할 것인지

                          하지 않을 것인지를 설정하는 파라미터로 'Y' 또는 'N' 두개이 값만을 허용하는

                          파라메터 입니다.

(1) 'Y' 일 경우, TABLESPACE 내에 테이블만 있고, 인덱스가 없다면 작업은 실패한다.

      반드시 INDEX도 같은 테이블스페이스내에 존재 해야 합니다.

(2) 'Y' 일 경우, TABLESPACE내에 인덱스만 존재하고 테이블이 없다면 작업은 실패합니다.

       반드시 TABLE 또한 존재해야 합니다

(3) 'N' 일 경우, TABLESPACE내에 테이블만 있고 인덱스가 없다면 작업은 성공합니다.

(4) 'N' 일 경우, TABLESPACE내에 인덱스만 있고 테이블이 없다면 작업은 성공합니다.

 

■ Export 필터링 관련 파라미터

- CONTENT : 3개의 옵션을 가질 수 있으며 옵션들은 다음과 같습니다 

   + ALL : 테이블과 메터데이터를 포함한 모든것을 포함시키겠다는 옵션

      # expdp zoom/imsi00 DUMPFILE=datadump.dmp CONTENT=ALL

 

   + DATA_ONLY : 테이블 데이터만 포함 시키겠다는 옵션

     #  expdp zoom/imsi00 DUMPFILE=datadump.dmp CONTENT=DATA_ONLY

 

   + METADATA_ONLY : 메타데이터 만을 포함하겠다는 옵션

     #  expdp zoom/imsi00 DUMPFILE=datadump.dmp CONTENT=METADATA_ONLY

 

- EXCLUDE & INCLUDE : 원하는 오브젝트를 선택하여 받을 수 있습니다.

                                     오라클에서 오브젝트란 유저스키마, 테이블, 인덱스, 프로시져 등을

                                     통칭해서 오브젝트라고 부릅니다.

                                     [exclude | include]=object_name 조건 형식으로 사용 할 수 있음

                                     파라미터 사용방법은 아래와 같습니다.

        + SCOTT 유저와 관련된 모든것을 export 받고 싶은데, BONUS 테이블은 제외하고 받고

          싶은 경우

          #expdp zoom/imsi00 dumfile=ex_dump.dmp schemas=scott exclude=TABLE:"='BONUS'"

 

        + SCOTT 유저와 관련된 모든것을 export 받고 싶은데 EMP 테이블의 인덱스는 받고

          싶지 않은경우

         #expdp zoom/imsi00 dumfile=ex_dump.dmp schemas=scott exclude=INDEX:\"='EMP%'\"

         

- QUERY : 테이블 내에 있는 데이터 중 특정 조건에 만족하는 데이터만을 export 받고자 할때

                사용하는 파라메터 입니다.

                사용방법은 다음과 같습니다

                QUERY=SCHEMA.TABLE:"조건" 이며 다음과  같은 예입니다.

                # expdp zoom/imsi00 dumpfile=ex_dump.dmp table=emp

                                               QUERY=SCOTT.EMP:'where sal > 1200'

- SAMPLE : 오라클 10g에서 새롭게 지원하는 기능 중 하나로써 테이블의 데이터를 export 할때

                  퍼센트를 정하여 지정된 퍼센트 만큼의 데이터를 샘플링해서 뽑을때 사용하는

                  옵션입니다

               # expdp zoom/imsi00 DIRECTORY=datadump_dir1 DUMPFILE=ex_dump.dmp

                                              SAMPLE=scott.emp:20

                  //scott 유저의 EMP테이블의 데이터중 20%만을 export 하게 됩니다

                     입력 가능한 퍼센트의 범위는 0.000001 ~ 100 까지 입니다.

 

■ 네트워크 링크 파라미터

- 원격지 데이터베이스에 있는 데이터에 접근하여 로컬 데이터베이스 머신에 export 된 덤프파일을

   저장하고자 할때 사용하는 파라메터

- 먼저, 원격지 데이터베이스의 테이블에 대한 DB_LINK 를 만들어 놓아야 함

  # expdp zoom/imsi00 DIRECTORY=datadump_dir1 DUMPFILE=ex_dump.dmp

                                 NETWORK_LINK=EMP@link_b_scott LOGFILE=datapump.log

 

■ 암호화 관련 파라미터

- export 되는 데이터 중 일부 컬럼이 암호화 되어 있고, 중요한 데이터 일 경우 사용하는 파라미터

- export 시에 암호를 설정하여 export된 데이터가 위변조 되지 못하게 설정할 수 있음

  # expdp zoom/imsi00 TABLES=EMP DUMPFILE=ex_dump.dmp

                                 ENCRYPTION_PASSWORD=******

 

■ JOB관련 파라미터

- JOB : JOB파라미터를 설정하면 Data Dump 작업을 오라클에서 자동 할당하지 않고

           JOB파라메터에서 주어진 이름으로 등록 되게 됩니다. 작업 마스터 테이블에 작업명이

           등록되어 작업에 대한 정보들을 JOB 파라미터에 등록된 이름으로 조회 할 수있습니다.

- STATUS : STATUS파라미터는 Data Pump Export 시에 작업의 갱신 된 내용을 STATUS에

                 설정된 크기의 시간 간격으로 진행상태를 보고 받고자 할때 사용하는 파라메터 입니다.

                 STATUS = 30 이면 30초 간격으로 작업결과를 갱신하여 보여주게 됩니다.

                 만약 이 파라미터를 설정하지 않으면 디폴트는 0입니다. 디폴트로 설정하게 되면

                 거의 실시간으로 작업정보를 보여주게 됩니다.

- FLASHBACK_SCN : System Change Number(SCN) 은 시스템의 테이블이나 오브젝트가

                변경되었을때 변경되는 SCN값을 가집니다. FLASHBACK_SCN 파라메터를 이용하여

                SCN 값을 지정할 경우에 파라미터에서 설정한 SCN 기준 이전까지의상태를 받게 됩니다

                # expdp zoom/imsi00 DIRECTORY=datadump_dir DUMPFILE=ex_dump.dmp

                                               FLASHBACK_SCN=120001

- FLASHBACK_TIME : FLASHBACK_TIME은 번호 대신 시간값을 가집니다.

                FLASHBACK_TIME 파라미터를 사용하면 파라미터에 지정된 시간까지의 변경

                사항만을 Export 합니다.FLASHBACK_TIME 의 값은 TIMESTAMP 형식의 값을 가지며

                TO_TIMESTAMP 함수를 사용하여 설정 할 수 있습니다.

- PARALLEL : PARALLEL 파라메터를 사용할 경우 export 작업 시에 프로세스를 설정된

                숫자만큼 만들어 수행함으로써 작업의 속도를 향상 시킬 수 있습니다. 디폴트 값은 1로

                설정되어 있으며 주의할점은 parallel 이 지정된 갯수 만틈의 dumpfile 을 지정해 주어야

                한다. 앞서 본 %U를 사용하면 지정된 갯수만큼 자동으로 파일을 만들어 줍니다

                # expdp zoom/imsi00 DIRECTORY=datadump_dir DUMPFILE=ex_dump%U.dmp

                                               PARALLEL=3

                위와 같이 설정하게되면 ex_dump01.dmp, ex_dump02.dmp, ex_dump03.dmp 3개의

                덤프파일이 생성됩니다.

                # expdp zoom/imsi00 DIRECTORY=datadump_dir

                  DUMPFILE=(ex_dump01.dmp, ex_dump02.dmp, ex_dump03.dmp) PARALLEL=3

                 위와 같이 %U를 사용하지 않고, 사용자가 직접 3개의 파일명을 ',' 구분하여 입력해도

                 상관 없습니다.

- ATTACH : ATTACH 파라미터를 이용하여 interactive mode 로 들어 갈 수 있습니다.

                 오라클에서는 작업을 제어하고 모니터링 하기 위해 interactive mode를 제공합니다.

                 interactive mode로 들어가는 방법은 두가지가 있으며 다음과 같습니다.

                 + Crtl + C 를 누름으로써 들어가는 방법

                   # expdp zoom/imsi00 directory=datadump_dir  table=scott.emp

                                                 dumpfile=datadump.dmp logfile=datapump.log

                                                 jobname=myjob            

                                                작업로그.....

                                                .................==> 작업에 대한 로그가 떨어졌을때 Crtl + C

                   export>                  ==> 이와 같이 프롬프트 상태로 떨어지게 됩니다.

                   로그가 멈춘다고 해서 작업이 중단된게 아니라 이상태에서 interactive mode 명령을

                   사용하여 작업을 모니터링 하고 제어 할 수 있습니다

                   # expdp zoom/imsi00 attach=schema.jobname 형식으로 원하는 작업의

                   interactive mode로 들어갈 수 있습니다.


 < InterActive Mode 명령어 >        

 
3. Data Pump Import

■ 파일 및 디렉토리 관련 파라미터

    #impdp zoom/imsi00 directory=datapump_dir dumpfile=datapump.dmp schemas=scott

     - directory : 디렉토리 오브젝트를 받는 파라미터

     - dumpfile : imprt 될 파일명

     - schemas : 작업 수행동안 수행될 DDL문을 저장하는 파일이름

 

■ 필터링 관련 파라미터

- CONTENT : CONTENT 파라미터는 DATA_ONLY, METADATA_ONLY, ALL 3개의 값을 가짐

   #impdp zoom/imsi00 directory=datapump_dir dumpfile=datapump.dmp schemas=scott

                                CONTENT=DATA_ONLY

- INCLUDE : INCLUDE=OBJECT_NAME:"='조건'" 형식으로 사용할 수 있으며 오브젝트의

                  종류에는 앞서 본것처럼 TABLE, INDEX, PROCEDURE, FUNCTION 등이 있습니다.

   #impdp zoom/imsi00 directory=datapump_dir dumpfile=datapump.dmp schemas=scott

                                INCLUDE=TABLE:"='SAL'"

     ==>SCOTT 유저의 테이블을 import 하되 SAL테이블 만 포함 시키라는 옵션명령이 됩니다.

 

- EXCLUDE : EXCLUDE=OBJECT_NAME:"='조건'" 형식으로 사용할 수 있으며 오브젝트의

                  종류에는 앞서 본것처럼 TABLE, INDEX, PROCEDURE, FUNCTION 등이 있습니다.

   #impdp zoom/imsi00 directory=datapump_dir dumpfile=datapump.dmp schemas=scott

                                 EXCLUDE=TABLE:"='SAL'"

     ==> SCOTT 유저의 테이블을 import 하되 SAL테이블을 제외한 나머지 테이블을 import 하라는

           명령

- TABLE_EXISTS_ACTION : imprt 시에 중요한 명령입니다

                                       우리가 Data Pump를 통해 작업하게 될 경우 같은 이름의 테이블이

                                       존재할 때가 있습니다. 만약 테이블이 존재 하더라도 import 하고자 하는

                                       데이터의 row수가 다를수도 있고 같을 수도있습니다. 즉 테이블은 존재

                                       하더라고 데이터의 내용은 차이가 나는거죠.

                                       이러한 경우 사용할 수 있는 유용한 파라메터가

                                       TABLE_EXISTES_ACTION 입니다. TABLE_EXISTES_ACTION파라메터

                                       는 SKIP, APPEND, TRUNCATE, REPLACE 의 값을 가질 수 있으며

                                       각값의 의미는 다음과 같습니다.

                                       + SKIP : 같은 테이블을 만나면 지나치고, 다음 테이블을 import 합니다

                                       + APPEND : 같은 테이블을 만나면 기존테이블에 추가하여 import

                                       + TRUNCATE : 같은 테이블을 만나면 기존테이블을 truncate하고

                                                             새로운 데이터를 import

                                       + REPLACE : 같은 테이블을 만날 경우 기존 테이블을 drop 하고

                                                           테이블을 재생성 한 후 import 합니다

   #impdp zoom/imsi00 directory=datapump_dir dumpfile=datapump.dmp schemas=scott

                                 TABLE_EXISTS_ACTION=SKIP

 

■ JOB 관련 파라미터

- JOB_NAME, STATUS, PARALLEL 파라메터를 export와 같은 방법으로 사용

- PARALLEL 작업시에 dumpfile 갯수를 %U 사용하여 지정하여 주거나 명시적으로 ','를 사용하여

   PARALLEL 갯수만큼 파일을 지정해야 함

 

■ 리맵핑 관련 파라미터

- REMAP_SCHEMA : A 유저 스키마로 export 받은 데이터를 B 유저 스키마로 import 하고자 할때

                              사용합니다.

   #impdp zoom/imsi00 directory=datapump_dir dumpfile=datapump.dmp schemas=scott

                                REMAP_SCHEMA=SCOTT:ZOOM

    ==> 위와 같이 수행한후 TABLE 의 OWNER 를 조회한다면 ZOOM 유저의 소유로 테이블이

          등록되었음을 확인 할 수 있다.

 

- REMAP_DATAFILE : 전체 데이터베이스 시스템을 Data Pump를 통하여 옮기고자 할때

                               Export 된 dumpfile에는 DataFile 정보까지 포함하게 됩니다. 하지만 서로다른

                              시스템 경로상에 존재하지 않는 경로이기 때문에 Import 에 실패하게 됩니다.

                              이러한 경우 사용할 수 있는 파라미터가 REMAP_DATAFILE 입니다. export 된

                              dumpfile이 datafile 정보를 포함할 경우에만 해당합니다.

   #impdp zoom/imsi00 directory=datapump_dir dumpfile=datapump.dmp schemas=scott

                              REMAP_DATAFILE='/db1/data/lvol01':'/db2/data/lvol01',

                                                          '/db1/data/lvol02':'/db2/data/lvol02'

 

- REMAP_TABLESPACE : export 받은 데이터 속한 tablespace 에서 다른 tablespace로

                                     remapping하고자 하는 경우 사용할 수 있는 파라메터 입니다.

   #impdp zoom/imsi00 directory=datapump_dir dumpfile=datapump.dmp schemas=scott

                              REMAP_TABLESPACE='SCOTT_TSB':'ZOOM_TSB'

 

■ 네트워크 링크 파라미터

export 와 마찬가지로 DBLINK를 이용하여 원격지 데이터베이스에 대해 import 작업을 수행 할 수있습니다.

 

■ InterActive Mode 파라미터

export 와 마찬가지로 Ctrl+C를 통해 interActive Mode로 진입 할 수 있으며 작업을 통제 할 수있습니다

 

4. Data Pump 모니터링 하기

1) Data Pump 모니터링 하기 관련조회 테이블 및 VIEW

■ DBA_DATAPUMP_JOBS 현재 실행중인 작업의 속성들

   SQL> SELECT * FROM DBA_DATAPUMP_JODS;

            OWNER_NAME = DB작업계정

            JOB_NAME = 작업의 명칭

            JOB_MODE = FULL, TABLE, INDEX, TABLESPACE 등이 있음

            STATE = EXECUTING(수행중), DEFINING, UNDEFINING, NOT RUNNING 의 값을 가짐

■ PUMP Session 확인

■ Data Pump의 모니터링

    SQL> SELECT OPNAME, TARGET_DESC, SOFAR, TOTALWORK,

             (SOFAR/TOTALWORK*100) PER

              FROM V$SESSION_LONGOPS; 로 조회하면 Data Pump 의 모니터링을 할 수 있습니다

              OPNAME = JOBNAME 과 같음

              TOTALWORK = 총 수행하여야 할 용량을 가리키며, 단위는 Megabytes

              SOFAR = 현재 수행한 용량을 가리키며 단위는 Megabytes

              TARGET_DESC = 작업의 종류를 말함

                                       import/export  값이 될 수 있음

-- datapump 참고자료
1. http://m.dbguide.net/dbguide.db?cmd=view&boardUid=12923&boardConfigUid=9&categoryUid=216&boardIdx=51&boardStep=1

2. https://docs.google.com/viewer?a=v&q=cache:qLfaukYDzcMJ:web-dev.tistory.com/attachment/cfile8.uf%40155242114C2AA8FE5626EC.pdf+&hl=ko&gl=kr&pid=bl&srcid=ADGEEShbbQYI9MWHfAHy6q90tPOPXJcr3bl4vwqrRci4R_XMh5FlTp45Z4a6mg5_iUOBZ4rYltYtF5ahzyiXIWZWpYqYXmipuklojZ6KPvh5lTIVLNpvfluJuNHO1XPpXVn1KX1hwVdi&sig=AHIEtbRWXbdEEm_amWyg8T1tDw2o3srgGw
3. http://www.dbguide.net/knowledge.db?cmd=view&boardUid=128192&boardConfigUid=20

-- datapump 실습

1. http://thankyeon.tistory.com/19



'기술면접대비' 카테고리의 다른 글

언두 란?  (0) 2013.01.17
dataguard 란?  (0) 2013.01.11
Posted by 아트민
,

Tablespaces and Data Files
:tablespace는 논리적 저장구조, Data file은 물리적 저장구조

    - Tablespace
       1. 한 시점에서 하나의 DB만을 가진다.
       2. 하나 이상의 datafile을 가진다. (분산처리)
       3. T/S내에도 논리적으로 분할된 저장구조를 가진다. (segment를 의미)
    - Data files
       : schema object 데이터를 저장

Type of Tablespaces

    - System T/s(data dictionary가 저장되는 공간)
       1. database 생성시 같이 생성 (필수 T/S)
       2. data dictionary 저장
       3. system undo segment 저장
  
    - Non-system tablespaces (일반 T/S)
       1. segment 단위로 분할됨
       2. 관리의 편의상 만듬
       3. user에게 할당된 공간을 제어

Creating Tablespaces

    - syntax
      Create Tablespace [생성할 T/S이름]
      Datafile '/oracle/oradata/[datafile 이름].dbf' size [integer] [단위(M,K)]
               '/oracle/oradata/[datafile 이름02].dbf' size ....
      [Default Storage(                  (extend 할당 설정, dictionary management방식)
                       initial(초기값) integer [M/K]
                       next (다음 증가값) integer [M/K]
                       Maxextents (최대값) integer [M/K]
                       pctincrease (증가율) integer) ]
      [online/offline] (T/S 온라인 오프라인 설정)
      [logging/nologging] (undo data 생성, undo data 생성하지않음)
      [permanent/temporary] (저장대상의 영구적 저장/임시적 저장)
      [extent management
                         Dictionary | Local(원하는 만큼 할당)
                         Autoallocate | uniform size integer [M/K](일정한 size 할당)]
      [segment space management (manual/auto)]

Space Management in Tablespaces

    - Locally managed(자체적 할당/해제)
        1. Free extents를 자체적으로 관리
        2. Free extents는 Bitmap을 이용해 관리
    - Dictionary managed(중앙 통제적 관리)
        1. Free extents의 모든 관리는 중앙(system)에서 관리
            -따라서 경합 문제가 발생    
     * Bitmap : 연속된 공간에 Free block을 할당/해제

Locally managed T/S
: system T/S가 local 관리방식이면 그 외 모든 T/S도 Local방식만 허용

    - 경합을 줄임으로서 효율성이 장점
    - 할당/해제에 관한 undo data를 만들지 않음
    - Free extents의 병합작업이 따로 필요치 않음(Bitmap을 이용하므로)
    - systax
       Create tablespace userdata
       datafile '파일경로/파일이름.dbf' size 50m
       extent management LOCAL UNIFORM SIZE 128K;

Dictionary-Managed Tablespace
 :Dictionary-Managed Tablespace에 있는 세그먼트는 사용자 정의된 저장 영역을 가질수있지만
  지역적으로 관리되는 Tablespace보다 더 유연성이 있지만 효율성은 떨어짐.

    - Dictionary-Managed Tablespace
      1. 확장 영역이 데이터 딕셔너리에서 관리
      2. 테이블스페이스에 저장된 각 세그먼트에서 서로 다른 저장 영역 절이 있을수 있음.
      3. 병합 필요
 예시)
 CREATE TABLESPACE userdata
 DATAFILE '/u01/oradata/userdata01.dbf'
 SIZE 500M EXTENT MANAGEMENT DICTIONARY
 DEFAULT STORAGE
 (initial 1M NEXT 1M PCTINCREASE 0);

Undo Tablespace(실행 취소 테이블스페이스)
 :실행 취소 테이블스페이스는 자동 실행 취소 관리와 함께 사용.

      1. 실행 취소 세그먼트 저장.
      2. 다른 객체를 포함할 수 없음.
      3. 확장 영역이 지역적(only)으로 관리.
      4. DATAFILE 절 및 EXTENT MANAGEMENT 절만 사용할 수 있음.
 예시)
 CREATE UNDO TABLESPACE undo1
 DATAFILE '/u01/oradata/undo01.dbf' SIZE 40M;

Temporary Tablespaces
 : 정렬 세그먼트에만 사용하는 임시 테이블스페이스를 지정하여 정렬 작업용 공간을 효과적
   으로 관리할 수 있습니다.
     
      1. 정렬 작업에 사용.
      2. 영구 객체를 포함할수 없음.
      3. 지역적으로 관리되는 확장 영역 권장.
 예시)
 CREATE TEMPORARY TABLESPACE temp
 TEMPFILE '/u01/oradata/temp01.dbf' SIZE 500M
 EXTENT MANAGEMENT LOCAL UNIFORM SIZE 4M;
      4. 지역적으로 관리되는 임시 테이블스페이스에는 임시 데이터 파일(임시 파일)이 있으며
  이 파일은 다음을 제외하고 일반 데이터 파일과 비슷.
 - 항상 NOLOGGING 모드로 설정된다.
 - 읽기 전용으로 설정할 수 없다.
 - 임시 파일 이름을 바꿀 수 없다.
 - ALTER DATABASE명령으로 임시 파일을 생성할 수 없다.
 - 읽기 전용 데이터베이스에 필요.
 - 매체 복구는 임시 파일을 복구하지 않음.
      정렬 성능을 최적화하려면 UNIFORM SIZE를 SORT_AREA_SIZE매개변수의 배구가 되도록 설정.

Default Temporary Tablespace
 
    1. 모든 데이터베이스에서 사용되는 기본 임시 테이블 스페이스를 지정.
    2. 임시 데이터를 저장할 경우 SYSTEM 테이블스페이스 사용을 제거.
    3. CREATE DATABASE , ALTER DATABASE를 사용하여 생성.
 - 기본 임시 테이블스페이스 없이 데이터베이스를 생성할 경우 SYSTEM 테이블스페이스는
   TEMPORARY TABLESPACE 절 없이 생성된 임의의 사용자에 할당됩니다. 또한 SYSTEM
    테이블스페이스가 기본 임시 테이블스페이스라는 경고가 alert_sid.log에 기록됩니다.
   데이터베이스 생성 시 기본 임시 테이블스페이스를 생성하면 SYSTEM 테이블스페이스는
   임시 공간에 사용될 수 없습니다.데이터베이스 생성 후 임시 테이블스페이스를 생성하고
   데이터베이스를 변경하여 기본 임시 테이블스페이스를 설정할 수 있습니다.

Creating a Default Temporary Tablespace

 CREATE DATABASE DBA01
 LOGFILE
 GROUP 1 ('/$HOME/ORADATA/u01/redo01.log') SIZE 100M,
 GROUP 2 ('/$HOME/ORADATA/u02/redo02.log') SIZE 100M,
 MAXLOGFILES 5
 MAXLOGMEMBERS 5
 MAXLOGHISTORY 1
 MAXDATAFILES 100
 MAXINSTANCES 1
 DATAFILE '/$HOME/ORADATA/u01/system01.dbf' SIZE 325M
 UNDO TABLESPACE undotbs
 DATAFILE '/$HOME/ORADATA/u02/undotbs01.dbf' SIZE 200
 DEFAULT TEMPORARY TABLESPACE temp
 TEMPFILE '/$HOME/ORADATA/u03/temp01.dbf' SIZE 4M
 CHARACTER SET US7ASCII

    1. 데이터베이스를 생성 후 다음 작업이 진행.
 ALTER DATABASE
 DEFAULT TEMPORARY TABLESPACE default_temp2;
    2. 데이터베이스의 기본 임시 테이블스페이스를 찾으려면
       DATABASE_PROPERTIES를 질의.
 - SELECT * FROM DATABASE_PROPERTIES;


기본 임시 테이블스페이스의 제한사항

    1. 새 기본값을 사용할 수 있을 때까지 삭제불가.
    2. 오프라인으로 설정할 수 없음.
    3. 영구 테이블스페이스로 변경 불가.
 - 예외| 변경방법
   1) temp2 임시 테이블스페이스를 생성.
   2) temp2를 지정
   3) temp 임시 테이블스페이스를 삭제.

Read-Only Tablespaces

    -읽기 전용모드로 설정
    Alter Tablespace userdata READ ONLY;

    checkpoint 발생
    데이터를 읽을 수만 있음
    tablespace drop 가능

Taking a Tablespace Offline

    -data access 사용할수 없음

    -Offline으로 설정할수 없는 tablespace
    1) system tablespace
    2) active undo segment가 있는 tablespace
    3) default temporary tablespace

    -Offline으로 설정
    Alter TABLESPACE userdata OFFLINE;

    -Online으로 설정
    Alter TABLESPACE userdata ONLINE;
   
   

Changing Storage Settings

    -ALTER TABLESPACE 명령을 사용하여 설정을 변경
    ALTER TABLESPACE userdata MINIMUM EXTENT 2M;
    ALTER TABLESPACE userdata
    DEFAULT STORAGE (INITIAL 2M NEXT 2M MAXEXTENTS 999);

    -locally managed tablespace는 변경할수 없음.

Resizing a Tablespace

    -data file의 크기변경

    1)AUTOEXTEND : 자동변경
    CREATE TABLESPACE userdata02
    DATAFILE '/u01/oradata/userdata02.dbf' SIZE 5M
    AUTOEXTEND ON NEXT 2M MAXSIZE 200M

    2)ALTER TABLESPACE : 수동변경
    ALTER DATABASE
    DATAFILE '/u01/oradata/userdata02.dbf' RESIZE 5M;

    -ALTER TABLESPACE를 사용한 data file추가  

데이터 파일의 자동 확장 활성화

    - 새 데이터 파일에 AUTOEXTEND 지정
 AUTOEXTEND 절은 데이터 파일의 자동 확장을 활성화하거나 비활성화합니다. 파일은 정
 해진 최대 크기까지 지정된 증분 단위로 증가됩니다.
 AUTOEXTEND 절을 사용하면 다음 이점이 있습니다.
  ? 테이블스페이스에 공간이 부족할 때 즉시 중재의 필요성이 줄어듭니다.
  ? 확장 영역 할당 오류로 인해 응용 프로그램이 중지되는 것을 방지합니다.
 데이터 파일이 생성될 때 다음 SQL 명령으로 데이터 파일의 자동 확장을 활성화할
 수 있습니다.
  ? CREATE DATABASE
  ? CREATE TABLESPACE ... DATAFILE
  ? ALTER TABLESPACE ... ADD DATAFILE
 ex)CREATE TABLESPACE user_data
    DATAFILE
     '/u01/oradata/userdata01.dbf' SIZE 200M
      AUTOEXTEND ON NEXT 10M MAXSIZE 500M;
      ->AUTOEXTEND ON -> DBA_TABLESPACE * NEXT_EXTENT -> TABLESPACE 최대용량까지
               자동으로 늘어남.
 DBA_DATA_FILES 뷰를 질의 하여 AUTOEXTEND가 활성화 되었는지 확인합니다.

    - 새 데이터 파일에 AUTOEXTEND 지정
 ALTER DATABASE 명령을 사용하여 데이터 파일을 수정하고 자동 확장을 활성화합
 니다.
 ALTER DATABASE DATAFILE filespec [autoextend_clause]
 autoextend_clause:== [ AUTOEXTEND { OFF|ON[NEXT integer[K|M]]
   [MAXSIZE UNLIMITED | integer[K|M]] } ]
 설명:
 AUTOEXTEND OFF: 데이터 파일의 자동 확장을 비활성화합니다.
 AUTOEXTEND ON: 데이터 파일의 자동 확장을 활성화합니다.
 NEXT: 추가 확장 영역이 필요할 때 데이터 파일에 할당할 디스크 공간을 지정합니다.
 MAXSIZE: 데이터 파일에 할당할 수 있는 최대 디스크 공간을 지정합니다.
 UNLIMITED: 데이터 파일에 무제한의 디스크 공간 할당을 설정합니다.
    - 기존 데이터 파일에 AUTOEXTEND 지정
 SQL 명령인 ALTER DATABASE를 사용하여 기존 데이터 파일에 자동 파일 확장을 활성화
 하거나 비활성화합니다.
 ALTER DATABASE [database]
  DATAFILE 'filename'[, 'filename']... autoextend_clause
 AUTOEXTEND가 활성화되었는지 또는 비활성화되었는지 확인
 DBA_DATA_FILES 뷰를 질의하여 AUTOEXTEND가 활성화되었는지 여부를 확인하고
 AUTOEXTENSIBLE 열을 검사합니다.
 SQL> select tablespace_name, file_name, autoextensible
  2 from dba_data_files;
 TABLESPACE_NAME FILE_NAME AUTOEXTENSIBLE
 --------------- ------------------------ --------------
 SYSTEM   /home/dba01/ORADATA/u01/system01.dbf  YES
 DATA01   /home/dba01/ORADATA/u04/data01.dbf    NO
 USERS   /home/dba01/ORADATA/u03/users01.dbf   NO
 INDX   /home/dba01/ORADATA/u06/indx01.dbf    NO
 SAMPLE   /home/dba01/ORADATA/u02/sample01.dbf  YES
 DATA02   /home/dba01/ORADATA/u03/data02.dbf    NO
 INDEX01  /home/dba01/ORADATA/u06/index01.dbf   YES
 UNDO2   /home/dba01/ORADATA/u01/UNDO2.dbf     NO
 8 rows selected.

    - Oracle Enterprise Manager를 사용하여 자동 크기 조정 활성화
 OEM Console에서 다음 작업을 수행합니다.
 1. Databases > Storage > Datafiles로 이동합니다.
 2. 데이터 파일을 선택합니다.
 3. Storage 탭에서 Automatically extend datafile when full 확인란을 선
    택합니다.
 4. Increment 및 Maximum Size에 값을 설정합니다.
 5. Apply를 누릅니다.

수동으로 데이터 파일 크기 조정
    - 데이터 파일을 추가하여 데이터베이스에 공간을 추가하지 않고도 DBA는 데이터 파일 크
      기를 변경할 수 있습니다. ALTER DATABASE 명령을 사용하여 데이터 파일 크기를 수동으
      로 늘리거나 줄입니다.
    - 데이터 파일의 수동 크기 조정은 사용되지 않은 데이터베이스의 공간을 확보합니다.   
      ALTER DATABASE [database]
 DATAFILE ‘filename’[, ‘filename’]...
 RESIZE integer[K|M]
      설명:
      Integer: 결과 데이터 파일의 절대 크기로 바이트 단위입니다.
      특정 크기 이상으로 저장된 데이터베이스 객체가 있는 경우 데이터 파일 크기는 데이터 파
      일에 있는 마지막 객체의 마지막 블록까지만 감소됩니다.
      ex)
  ALTER DATABASE
  DATAFILE '/u03/oradata/userdata02.dbf'
  RESIZE 200M;

테이블스페이스에 데이터 파일 추가

    - ALTER TABLESPACE ADD DATAFILE 명령으로 테이블스페이스에 데이터 파일을 추가
      하여 테이블스페이스에 할당된 디스크 공간의 전체 용량을 늘릴 수 있습니다.
      ADD DATAFILE 절은 데이터 파일을 추가하는데 사용됩니다.
      ALTER TABLESPACE tablespace
  ADD DATAFILE
   filespec [autoextend_clause]
      ex)
 ALTER TABLESPACE user_data
 ADD DATAFILE '/u01/oradata/userdata03.dbf'
 SIZE 200M;
    - Oracle Enterprise Manager를 사용하여 데이터 파일 추가
 OEM Console에서 다음 작업을 수행합니다.
 1. Databases > Storage > Tablespaces로 이동합니다.
 2. 테이블스페이스를 선택합니다.
 3. Add Datafile을 선택합니다.
 4. General 탭에서 파일 정보를 입력합니다.
 5. Create를 누릅니다.

********************************************************** 
 *system    *non-system
 1. shutdown   1. offline
 2. cp(물리)   2. cp(물리)
 3. startup mount  3. rename(논리)
 4. rename(논리)   4. online
 5. open    
 6. old file 삭제  5. old file 삭제
**********************************************************
Methods for Moving Data Files(데이터 파일 이동 방식)

    - alter tablespace
     : 테이블 스페이스는 오프라인이어야 함.
     : data file 이 존재해야 함.

    ALTER TABLESPACE userdata RENAME
    DATAFILE '/oracle/oradata/DB02/userdata01.dbf'
    TO '/oracle/backup/userdata01.dbf';
 
Methods for Moving Data Files(데이터 파일 이동 방식)
    - alter database
     : 데이터베이스는 마운트 여야 함.
     : data file 이 존재

 ALTER DATABASE RENAME
 FILE '/oracle/oradata/DB02/system01.dbf'
 to   '/oracle/backup/system01.dbf';

Dropping Tablespace

    - 삭제할 수 없는 경우
     : system tablespace 인 경우
     : 테이블 스페이스에 활성 세그먼트가 있는 경우
    - INCLUDING CONTENTS : segment 삭제 , 논리적 object 같이 삭제
    - INCLUDING CONTENTS AND DATAFILES : 데이터 파일 삭제
    - CASCADE CONSTRAINTS : 참조 무결성 제약 조건을 삭제 , 관계 끊기

 DROP TABLESPACE userdata
 INCLUDING CONTENTS AND DATAFILES CASCADE COSTRAINTS;

Managing Tablespaces Using OMF
(OMP를 사용하여 테이블스페이스 관리)
   
    - DB_CREATE_FILE_DEST 매개변수 정의
     : 초기화 매개변수 파일
     : alter system 동적 설정
 alter system set
 db_create_file_dest = '/oracle/oradata/DB02/';
    - 테이블 스페이스 생성시
     : 데이퍼 파일이 자동 생성 되어 DB_CREATE_FILE_DESTfp 저장
     : 기본 100MB
     : AUTOEXTEND - unlimited로 설정됨

Managing Tablespaces Using OMF
(OMF를 사용하여 테이블스페이스 관리)

    - OMF 테이블스페이스 생성
 create tablespace text_data datafile size 20m;
    - 기존 테이블스페이스에 OMF 데이터 파일 추가
 alter tablespace text_data add datafile;
    - 기본 파일 위치 동적 변경 
 alter system set
 db_create_file_dest = '/oracle/oradata/DB02';
    - 테이블스페이스 삭제는 OS 파일 삭제를 포함

정보 조회
    - 테이블스페이스
     : DBA_TABLESPACES
     : V$TABLESPACE
    - 데이터 파일 정보
     : DBA_DATA_FILES
     : V$DATAFILE
    - 임시 파일 정보
     : DBA_TEMP_FILES
     : V$TEMPFILE

 

 


 

'Database Oracle > TABLESPACE' 카테고리의 다른 글

테이블스페이스 실습 1  (0) 2013.01.11
테이블스페이스 문법  (0) 2013.01.11
LMT  (0) 2013.01.10
TBS 자동 증가  (0) 2013.01.10
TBS 정보 조회  (0) 2013.01.10
Posted by 아트민
,

2013년 01월 11일 study && 실습

-- 테이블스페이스 정보 조회
desc dba_data_files;
desc dba_tablespaces;
select tablespace_name, bytes/1024/1024, file_name from dba_data_files;
select tablespace_name, status, extent_management, segment_space_management from dba_tablespaces;

-- 테이블스페이스 생성
create tablespace info_data
datafile 'C:\APP\ARTMIN\ORADATA\KJCARD\info_data01.DBF' size 200m
default storage(
  initial 80k
  next 80k
  minextents 1
  maxextents 121
  pctincrease 80
)online;

-- 테이블스페이스 online/offline
-- alter tablespace 테이블스페이스 명 [online]/offline;

alter tablespace info_data offline;
alter tablespace info_data online;
select tablespace_name, status, extent_management, segment_space_management from dba_tablespaces;

-- 테이블스페이스의 공간추가
alter tablespace info_data
add datafile alter tablespace info_data
add datafile 'C:\APP\ARTMIN\ORADATA\KJCARD\info_data02.DBF' size 100m;
select tablespace_name, bytes/1024/1024, file_name from dba_data_files;

-- 테이블스페이스 크기 변경
alter database datafile 'C:\APP\ARTMIN\ORADATA\KJCARD\info_data02.DBF' resize 200m;
select tablespace_name, bytes/1024/1024, file_name from dba_data_files;

-- 테이블스페이스 변경하기(확인불가)
alter tablespace tax2110
default storage(
  initial 1024k
  next 2048k
  minextents 1
  maxextents 5
)online;
pctincrease 기본이 50%이다

-- 테이블스페이스 자동확장 추가(Automatic Extension)
alter tablespace info_data
add datafile 'C:\APP\ARTMIN\ORADATA\KJCARD\INFO_DATA03.DBF' size 50m
autoextend on next 10m
maxsize 100m;
→ maxsize를 지정할때 datafile보다 같거나, 크야된다.
select tablespace_name, bytes/1024/1024 mb, file_name from dba_data_files;

-- 기본 테이블스페이스에 자동확장 변경하기
alter database datafile 'C:\APP\ARTMIN\ORADATA\KJCARD\INFO_DATA03.DBF'
autoextend on next 10m
maxsize 100m;
select tablespace_name, bytes/1024/1024 mb, file_name from dba_data_files;

-- 테이블스페이스 삭제
drop tablespace 테이블스페이스명
including contents    --> 테이블스페이스의 모든 세그먼트를 삭제( 데이터가 있는 테이블스페이스는 삭제할수 없다)
cascade constraints;  --> 삭제된 테이블스페이스 내의 테이블의 기본키와 유일키를 참조하는 다른 테이블스페이스의 테이블로부터 참조무결성 제약 조건을 삭제합니다.
$ rm testdb.dbf       --> OS에서 물리적 datafile 삭제.

-- 테이블스페이스의 물리적파일까지 삭제
drop tablespace info_data including contents and datafiles;
select tablespace_name, bytes/1024/1024 mb, file_name from dba_data_files;
select tablespace_name, status, extent_management, segment_space_management from dba_tablespaces;

-- 테이블스페이스 온/오프라인
alter tablespace testdb_lmt_auto offline;
select tablespace_name, status, extent_management, segment_space_management from dba_tablespaces;
alter tablespace testdb_lmt_auto online;

tbs_study_1.sql

'Database Oracle > TABLESPACE' 카테고리의 다른 글

TSB 간략 정리  (0) 2013.01.11
테이블스페이스 문법  (0) 2013.01.11
LMT  (0) 2013.01.10
TBS 자동 증가  (0) 2013.01.10
TBS 정보 조회  (0) 2013.01.10
Posted by 아트민
,