Oracle Database 10g DATA PUMP_ hwp

Similar documents
I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

목 차

Oracle Database 10g: Self-Managing Database DB TSC

Tina Admin

Microsoft Word - 기술노트[20회] DataPump.doc

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

Microsoft Word - Goodus_기술노트[20회]_DataPump_

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

Tablespace On-Offline 테이블스페이스 온라인/오프라인

PCServerMgmt7

ETL_project_best_practice1.ppt

DBMS & SQL Server Installation Database Laboratory

단계

PowerPoint 프레젠테이션

最即時的Sybase ASE Server資料庫診斷工具

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Backup Exec

Simplify your Job Automatic Storage Management DB TSC


MS-SQL SERVER 대비 기능

MySQL-Ch10

<4D F736F F D205BB4EBBBF3C1A4BAB8B1E2BCFA5DB1E2BCFAB9AEBCAD2D524D414EBBE7BFEBBFB9C1A65F39695F313067>

오라클 데이터베이스 10g 핵심 요약 노트

Remote UI Guide

1217 WebTrafMon II

DW 개요.PDF

Intra_DW_Ch4.PDF

The Self-Managing Database : Automatic Health Monitoring and Alerting

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용

untitled

Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA

untitled

PowerPoint Presentation

62

[Brochure] KOR_TunA

thesis

USER GUIDE

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

슬라이드 1

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

초보자를 위한 ADO 21일 완성

초보자를 위한 분산 캐시 활용 전략

Chap7.PDF

vm-웨어-01장

Microsoft PowerPoint - 10Àå.ppt

SMB_ICMP_UDP(huichang).PDF

PRO1_09E [읽기 전용]

13주-14주proc.PDF

Windows 8에서 BioStar 1 설치하기

빅데이터분산컴퓨팅-5-수정

ARMBOOT 1

Portal_9iAS.ppt [읽기 전용]

PowerPoint 프레젠테이션

APOGEE Insight_KR_Base_3P11

chapter4

No Slide Title

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

10.ppt

기존에 Windchill Program 이 설치된 Home Directory 를 선택해준다. 프로그램설치후설치내역을확인해보면 Adobe Acrobat 6.0 Support 내역을확인할수 있다.

슬라이드 1

PowerPoint Presentation

CD-RW_Advanced.PDF

목차 1. 제품 소개 특징 개요 Function table 기능 소개 Copy Compare Copy & Compare Erase

歯sql_tuning2

PRO1_02E [읽기 전용]

제목을 입력하세요.

Analyst Briefing


Chapter 1

Advanced Product Service

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

SchoolNet튜토리얼.PDF

IBM Business Intelligence Solution Seminar 2005 Choose the Right Data Integration Solution ; Best Practices on EII/EAI/ETL IBM DB2 Technical Sales BI

Cloud Friendly System Architecture

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

Orcad Capture 9.x

DocsPin_Korean.pages

ALTIBASE HDB Patch Notes

vm-웨어-앞부속

スライド タイトルなし

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Jerry Held

I. - II. DW ETT Best Practice

Data Guard 기본개념.doc

2011년 10월 초판 c 2011 Sony Corporation. All rights reserved. 서면 허가 없이 전체 또는 일부를 복제하는 것을 금합니다. 기능 및 규격은 통보 없이 변경될 수 있습니다. Sony와 Sony 로고는 Sony의 상표입니다. G L

UDP Flooding Attack 공격과 방어

MySQL-.. 1

6주차.key

오늘날의 기업들은 24시간 365일 멈추지 않고 돌아간다. 그리고 이러한 기업들을 위해서 업무와 관련 된 중요한 문서들은 언제 어디서라도 항상 접근하여 활용이 가능해야 한다. 끊임없이 변화하는 기업들 의 경쟁 속에서 기업내의 중요 문서의 효율적인 관리와 활용 방안은 이

untitled

PowerPoint 프레젠테이션

SRC PLUS 제어기 MANUAL

Oracle Database 12c High Availability

1.LAN의 특징과 각종 방식

VOL /2 Technical SmartPlant Materials - Document Management SmartPlant Materials에서 기본적인 Document를 관리하고자 할 때 필요한 세팅, 파일 업로드 방법 그리고 Path Type인 Ph

소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를 제공합니다. 제품은 계속 업데이트되므로, 이 설명서의 이미지 및 텍스트는 사용자가 보유 중인 TeraStation 에 표시 된 이미지 및 텍스트와 약간 다를 수

MAX+plus II Getting Started - 무작정따라하기

Contents Data Mart 1. 개요 실습방향 테스트위한사전설정 본격실습시작 ) 데이터파일 dd 명령어로 백업수행및유실시키기 ) 장애복구수행 결론...7 페이지 2 / 7

Transcription:

<< Oracle Database 10g DATA PUMP >> <1> 개요 <2> Data Pump 란? <3> Architecture 와이해 <4> Data Pump Export and Import <5> Data Pump 이점 <6> 일반적인구현 <7> 파일타입및위치 <8> Data Pump Direct Path 고려사항 <9> Data Pump File Naming 과 Size <10> Data Pump : 인터페이스와모드 <11> Data Pump 와필터 <12> Data Pump Import Transformation <13> Data Pump Job monitoring 뷰 <14> External Table 의향상된기능 <15> External Table Population 작업 <16> External Table Parallel 작업 <17> 이기종간의 Transportable Tablespace <18> Compatibility <19> 플랫폼의 Endian Format <20> Data File 변환예제 - 1 -

<1> 개요 Oracle 10g의새로운기능인 Data Pump는 Oracle Database data와 metadata의이동을위한매우빠른 infrastructure를사용하고있다. DBMS_DATAPUMP 패키지를통하여 Data Pump infrastructure는사용되며, 새로운 command line Export, import client로써 expdp, impdp를제공한다. 기존의 Oracle 9i까지사용되던 export, import 유틸리티보다더욱더향상된성능을목적으로만들어진유틸리티이며기존의 export, import의모든기능을지원하는 Oracle 10g의신기능인 Data Pump의특징을알고활용을목적으로알아보도록하자. <2> Data Pump 란? 1 Server-based facility 이며 metadata 의 load, unload 기능 2 DBMS_DATAPUMP( 엔진역할 ) 3 새로운 export, import 툴 : 1. expdp 2. impdp 3. Web-based interface(em) 4 기존의 export, import 툴의 superset 5 parallelism 은 Enterprise Edition 만가능 directory 생성필요 directory 생성및권한부여 CREATE DIRECTORY 디렉토리명 AS 경로 ; GRANT write, read ON DIRECTORY 디렉토리명 to 유저 ; $ sqlplus "/as sysdba" sql> create directory data_pump_dir as '/usr/dba/dpumpfiles'; user hr 에게 directory 사용권한부여 sql> grant write, read on directory data_pump_dir to hr; - 2 -

<3> Architecture 와이해 1 Direct Path API(DPAPI) unload 및 load time 시 data conversion 및 parsing 최소화 ( DPAPI stream 인터페이스지원 ) 2 External Table Service 1. ORACLE_LOADER access 드라이버 - Oracle 9i부터제공 - read-only access를위해제공 - SQL Loader compatible files 2. ORACLE_DATAPUMP access 드라이버 - Oracle 10g New Feature - external table read/write access를위해제공 - binary DPAPI streams 3 Metadata API DBMS_METADATA 패키지는 export worker process를위해 object definitions을제공 4 DBMS_DATAPUMP 패키지 DB data와 metadata 이동을빠르게하는 export, import API를제공 5 기존버전의 SQL*Loader Client 1. external table 통합 2. loader control file이 external table access parameter로 migration( 자동 ) 6 새로운 export, import Client인 expdp, impdp Data Pump 작업의시작과 monitor를위해 DBMS_DATAPUMP 패키지호출역할 7 Other Clients : EM, Replication, Transportable Tablespaces, SQL*PLUS - 3 -

<4> Data Pump Export and Import 1 Data Pump Export, Import 유틸리티기존의 Export, Import 유틸리티와비슷하지만분리된제품. 2 Data Pump Export Dump file set이라불리는 operating-system file에 data와 metadata을 unload 하는유틸리티 3 Data Pump Import export dump file에저장된 data와 metadata을 target system( 대상시스템 ) 에 load하는유틸리티 4 Data Pump API 1. client가아닌 server에있는 file을이용 2. Network mode을지원 - remote database로부터바로 dump file set에 export하는데사용 - source database( 원본데이터베이스 ) 로부터 target database( 대상데이터베이스 ) 에바로 data를 load 가능 - readonly인 source database( 원본데이터베이스 ) 로부터 target database( 대상데이터베이스 ) 에 import하는데유용 5 MT(Master Table) 1. Data Pump Job을수행중인유저의 schema에 MT(master table) 을생성 2. job의모든것을유지 3. File-based export job을수행중일때 MT가만들어지며마지막단계로 dump file set에쓰여짐 4. File-based import 의첫번째단계에서현재의유저의 schema에 MT을 load하여 import되는모든 object의순서를정하는데사용 5. MT는계획되었거나계획되지않은정지된 job을재실행하는데사용 - 4 -

<5> Data Pump 이점 1 Data 접근방법 (Data Pump가자동선택 ) 1. Direct path 2. External table 2 진행중인 job에 detach 와 reattach 기능현재진행되는 Data Pump job에영향을주지않은채로 job에 attach, reattch, detach 가능 3 Data Pump job 재실행기능 4 Fine-grained object selection EXCLUDE, INCLUDE, 그리고 CONTENT parameter를사용하여 fine-grained object selection 가능 5 Explicit database version specification Oracle 9i부터제공해오던 export & import와의호환을위해 VERSION parameter 사용가능 6 Parallel 실행 (Enterprise Edition만가능 ) 여러개의 thread를띄워좀더효율적인일처리 7 export job 공간사용을추정가능 Estimate_only parameter를통해실제수행하지않고도, 어느정도의 space 측정가능 8 분산환경에서 Network 모드이용 1. remote database로부터바로 dump file set에 export하는데사용 2. source database( 원본데이터베이스 ) 로부터 target database( 대상데이터베이스 ) 에바로 data를 load 가능 9 import 중에 remap 가능 import 하는동안에전환을적용가능 ( 오브젝트 metadata는 dump file set에 XML로저장되기때문에 ) - 5 -

<6> 일반적인구현 1 Client에서 Data Pump Export 작업을실행 1. Client가 MCP(Master Control Process) 을시작하기위해 DBMS_DATAPUMP package을부르고두개의 queue을설정 - 상태, 로깅, 에러정보를보내기위해 - MCP에의해만들어진 worker process을제어하기위해 2. 이 queue는또한 shadow process에의해동적인명령어를 MCP에게보내기위해사용 3. Client가 expdp을실행했을때 command line 또는 parameter file로부터 parameter을 DBMS_DATAPUMP을 call하여 parsing 수행 2 Client가 job을시작하기위하여 DBMS_DATAPUMP을호출 1. 위의슬라이드에서는 Client가 4개의 parallel stream을요청 2. MCP는 4개의 worker process을시작하고 command를등록하며 queue Q2을제어 3. MCP는하나의 stream당 4개의초기 file을만들고 dump file set이만들어짐 3 table row data을 unload할때 MCP는 worker process가현재의 table의 unload 수행이가능한지를결정 ( 가능하다면 idle worker process에게 table을 unload할것을요청 ) 4 Export Job이실행중인동안에기존의 client가중지없이수행중인 job으로부터 detach 가능 1. 회사에서 job을시작하고이것을집에가서 monitor가가능 2. 하나이상의 client가 job에 attach 가능 3. 위의슬라이드를보면, client B가 SQL*Plus에서 script을실행하면 job을 attach하고 monitor하기위해 DBMS_DATAPUMP을불러 direct call을생성 4. 모든 object가 export된후에 mater table이 dump file set에 unload되고 process는 stop하고 job은종료 - 6 -

<7> 파일타입및위치 1 Data Pump file의세가지타입 1. Dump file Data와 metadata을포함하는 dump file 2. Log file 작업수행에관련한 message 을저장한 file 3. SQL file SQL_FILE parameter을사용하여생긴 output file 2 절대경로는지원하지않는다.( 보안 ) 3 Oracle directory 오브젝트를반드시사용 4 Data Pump File 우선순위 1. server에있는디렉토리경로에있는 file을사용 ( client-based 라기보다는 server-based이기때문에 ) 2. 절대경로는사용불가 3. 첫번째우선순위 - 각 file마다 directory 오브젝트를명시 - 이때 Directory 오브젝트와 file명은콜론 (:) 으로구분 4. 두번째우선순위 - DIRECTORY 파라미터를사용 - Data Pump client는 directory object을 DIRECTORY라는 parameter을이용하여명시가능 5. 세번째우선순위 - 환경변수로써 DATAPUMP_DIR로명시 - Data Pump Client는명시적으로 directory 오브젝트를명시하지않으면환경변수를찾음 - 7 -

<8> Data Pump Direct Path 고려사항 1 insert 와 select 모드에서 fine-grained access control 이 enable 된 Table 2 LOB column 에 Domain index 존재 3 Cluster table 존재 4 active trigger 가있는 Table 5 Global index 가있는 partition table (single-partition load) 6 BFILE 또는 opaque type 컬럼 7 Referential integrity constraint 가있는 Table 8 VARRAY 컬럼 ( embedded opaque type) 데이터접근방법선택인 Direct-path 또는 external table은각 table에가장적당한접근방법을 Data pump 가자동으로선택하지만위슬라이드에나열된 8가지경우는 Data Pump는 data 이동을하는 direct path보다는 external table을사용 - 8 -

<9> Data Pump File Naming 과 Size 1 dump file set 은하나이상의파일을포함가능 2 DUMPFILE 결정 1. Comma(,) 로구분된파일리스트 2. %U template - 여러개의파일이만들어짐을의미 - 01부터시작하여두개의문자로만들어짐 - 초기에 PARALLEL 파라미터와동일한수로파일이생성 3 dump file의초기갯수는다음파라미터와연관 : 1. PARALLEL 파라미터 2. DUMPFILE 파라미터 - 이름과 dump file directory 을명시 - 명시하지않으면디폴트로 expdat.dmp 로생성 4 FILESIZE 파라미터 1. 각 dump file 의 SIZE 결정 2. 명시된싸이즈로생성 3. 더많은스페이스가필요하면 %U 템플리트를사용한다면새로운파일이생성 => %U 템플리트를사용하지않으면 client는새로운파일을만들기위해메시지를출력 5 이미존재하는파일을 overwrite하지않는다. => Error 발생후 job 중단 ( 이전버전까지는덮어씀 ) - 9 -

<10> Data Pump : 인터페이스와모드 1 Data Pump Export, Import 인터페이스 : 1. Command-line - command line에직접대부분의 export 파라미터를명시하여사용 2. Parameter 파일 - parameter 파일안에모든 command-line을명시하여사용 3. Interactive command-line - export 와 import 프롬프트를 display하는데여기에여러 command을사용가능 - Command-line 인터페이스또는 Parameter 파일인터페이스을사용하여 Export 을수행중에 CTRL+C을눌러활성화 - 실행중이거나중단된 job에 attach할때도활성화 4. Database Control(EM) 2 Data Pump Export, Import 모드 ( 기존 export, import 유틸리티와동일 ) 1. Full 2. Schema 3. Table 4. Tablespace 5. Transportable tablespace - 10 -

<11> Data Pump 와필터 기존의 Export, Import 유틸리티는 indexes, triggers, grants, constraints 만을포함하거나제외가능 But, Data Pump job은어떠한타입의 object 이던간에포함하거나제외가능. 1 Fine-grained object selection: 1. INCLUDE = object_type[:"name_expr"] - 명시된오브젝트타입과오브젝트만을포함 2. EXCLUDE = object_type[:"name_expr"] - export, import 작업에서제외하려는어떠한데이터베이스오브젝트라도사용가능 3. 사용예 - EXCLUDE=VIEW - EXCLUDE=PACKAGE - EXCLUDE=INDEX:"LIKE 'EMP%'" 2 Data selection: 1. CONTENT = ALL METADATA_ONLY DATA_ONLY - 어떤자료들을 unload할지결정할수있는 parameter - DATA_ONLY일경우 table row data만을 unload - METADATA_ONLY일경우 table row data는 unload하지않고 database object definition만을 unload 2. QUERY = [schema.][table_name:]"query_clause" - 기존의 export 유틸리티와비슷 - Oracle 10g New Feature 2가지 table명을줄수있다는점 import시에도사용할수있다는것 3. 사용예 - QUERY=hr.employees:"WHERE department_id in (10,20) and salary < 1600 ORDER BY department_id" - 11 -

Import <12> Data Pump Import Transformation 오브젝트 metadata는 dump file set에 XML로저장되기때문에 import 하는동안에전환을적용하는것이쉽다. Data Pump import는몇가지전환하는것을지원한다. 1 Remap 기능 : 1. Data file인경우 REMAP_DATAFILE 이용 - IMP_FULL_DATABASE 권한필요 - 플랫폼간의 database 이동시에유용 2. Tablespace인경우 REMAP_TABLESPACE 이용 - tablespace에서 tablespace로오브젝트를이동시에가능 3. Schema인경우 REMAP_SCHEMA 이용 - 기존의 FROMUSER/TOUSER 기능 4. 사용예 - REMAP_DATAFILE = 'C:\oradata\tbs6.f':'/u1/tbs6.f' 2 TRANSFORM : table과 index의다음의절배제가능 - DDL문을생성할때 storage절을포함시키지않고자할때사용 1. STORAGE 와 TABLESPACE 절배제 2. STORAGE 절만 3. 사용예 - TRANSFORM = SEGMENT_ATTRIBUTES STORAGE:{y n}[:table INDEX - 12 -

<13> Data Pump Job monitoring 뷰 Data Pump Job 정보에대해알고자할때사용하는 dictionary view 에대해설명하고자한다. 1 DBA_DATAPUMP_JOB view 1. 모든 active한 Data Pump job을표시 - Active 한 job 에 attach하거나 stop할때 - parallelism을변경하고자할때 - 진행상태를보고자할때 2 DBA_DATAPUMP_SESSIONS view - job에 attach되어있는유저세션에대한정보를표시 3 V$SESSION_LONGOPS view - 전송된 table data의양을확인가능 - 13 -

<14> External Table 의향상된기능 data 을 unload 하여 external flat file 로복잡한 ETL(extract,transform,load) 가능 1 Oracle Database 10g 이전에는 external table 은오직 read-only 만가능 2 Oracle Database 10g 부터는 external table에쓰여질수있음 - DML뿐만아니라 external table에 index 생성이가능하지않기때문에, external table로 unload하기위해 CRREATE TABLE AS SELECT 명령이가능하고이는 OS와무관 3 슬라이드의그림에서볼수있듯이 1. database의 table로부터 data을읽어이를 external에 table에 unload하는것을보여줌 2. external table로부터 data을읽어이를 database의 table 에 load 하는것을보여줌 ( 이런작업들은 Data Pump access 드라이버를사용 ) 4 Flat file로 data을 unload하거나생성된 flat file의 data을 target system에 load하는데사용 1. 이는 platform과무관하게대량의 data을변환하여 load하는데유용 2. Data Pump export, Import 툴은 external table access 드라이버에사용가능하지만모든복잡한 ETL(extract,transform,load) 가가능한것은아님예 ) 많은테이블간의복잡한조인의결과를 unload하기위해 external table을 manual하게생성하여사용 - 14 -

<15> External Table Population 작업 1 ORACLE_DATAPUMP access driver 을이용 1. External Table unload 작업시 - CREATE TABLE AS SELECT 문장을통해실행 - Source 데이터는명령어의 select 문장에서생성 - ORACLE_DATAPUMP access 드라이버를통해 destination이됨 2 Data는수정불가 1.External table이생성된이후 - 어떠한 row도 add, update, delete 수행불가능 - External table에있는 dara을수정하려는시도를하면 ORA-30657 에러발생 3 ORACLE_DATAPUMP access driver을가지고만들어진파일은 read-only 1. External table을위해생성된 data file들 - 이동가능 - 같은데이터베이스나다른데이터베이스의또다른 external table에사용가능 - 하지만오직 ORACLE_DATAPUMP access 드라이버에의해읽혀져야하며, 다른 external table에 unload되는모든 data file들은 LOCATION절에명시해야만함 - 이는여러다른 source로부터만들어진 flle을합쳐 load하는데사용 4 Load 을목적으로여러 source 을결합하여파일을생성가능 - 15 -

<16> External Table Parallel 작업 1 한번에여러파일을생성가능 2 파일당하나의 parallel execution server 를가짐 3 PARALLEL 과 LOCATION 절은 parallelism degree 의영향을받음 External table이매우큰경우 1. unload하기위해 parallel 작업이가능 2. Parallel 작업은 external table생성시에 PARALLEL 절로선언 3. 하나의 parallel execution server는하나의 file에쓰는작업을수행 4. LOCATION절에명시한 file수 - 각 I/O server가각각의 file을사용하여야하기때문에 parallelism의 degree와같아야합니다. ( 만약더많은 file들을기술한다면무시 ) 5. Parallelism의 degree보다작은수의 file들을명시시 - LOCATION절에명시한 file수에맞게 parallelism의 degree을낮춤 - 16 -

<17> 이기종간의 Transportable Tablespace 1 DW 데이터를 Data Mart 환경으로이관시에편리 2 이기종간의데이타베이스마이그레이션 3 지원가능한플랫폼 4 Oracle10g 이전버전의 Transportable tablespace 기능은같은동일한 platform 에서가능 5 Oracle10g 부터는다른 platform 에서는제한없이위기능을사용가능 6 장점 1. 다른 platform 을사용하고있는고객들에게도구조화되어있는데이터를배포하는데용이 2. DW 데이터를데이터 mart 환경으로이관하는데편리 3. catalog를수행하고사용자 Tablespace를 transporting하는작업으로모든 Migration 작업의매듭가능 4. 이기종 cluster 시스템에서 read-only tablespace를공유하는작업이쉬워짐 5. 지원하는 platform은위슬라이드에나열되어있으며서로 datafile을 transport 하는데아무런제약이없음 - 17 -

<18> Compatibility 1 양쪽 databases COMPATIBLE 이 10.0.0 이상 2 Data file header 은 platform 간인식이가능해야함 3 Transport 하기전, read-only 이고 offline 인 datafile 은적어도한번은 read-write 로되어야한다. 4 이기종간의 Tablespace 호환을위해서는 source database( 원본데이터베이스 ) 와 target database( 대상데이터베이스 ) 의 COMPATIBLE 파라미터는 10.0.0 이상이어야함 5 COMPATIBLE 이 10.0.0 이상에서 Data file 이 open 되면 platform 이인식가능해짐 - 18 -

<19> 플랫폼의 Endian Format 1 Transportable tablespace 기능 1. datafile 변경작업만빼고는이전버전의기능과동일 2. 특정 platform에있는 tablespace를다른 platform으로 transport 하기위해서는 tablespace에속해있는 3. datafile을대상이되는 platform이인지할수있도록적절하게변경시켜줄필요가있음 2 endian(byte ordering) 형태를달리가져가고있을때, Oracle은 RMAN utility를사용해서변경가능 1. 이작업은원본 / 대상데이터베이스모두에서가능 2. 동일한 endian 형태를사용한다면이러한변경작업은불필요 3. V$TRANSPORTABLE_PLATFORM의 qyery을통해양쪽플랫폼의 endian ordering이같은지를확인가능 4. V$DATABASE에는플랫폼명과플랫폼 id가새롭게추가 - 19 -

<20> Data File 변환예제 1 슬라이드의예 1. Sun SPARC Solaris 플랫폼에서사용중인 FINANCE, HR 테이블스페이스을 AIX 플랫폼에서운영중인데이터베이스로가져가는것 2. 위의첫번째예제는원본데이터베이스에서수행하는것을표시 - 원본데이터베이스가운영중인 Sun SPARC Solaris 시스템에서 / orahome/dbs/transport_aix 디렉토리에변환된데이터파일이생성 3. 위의두번째예제는대상데이터베이스에서수행하는것을표시 - 원본데이터베이스로부터가져온파일이 /tmp/transport_stage에존재하며이를변환 2 Transportable tablespace 순서 1. Set the tablespace to READ ONLY 2. Export tablespace metadata 3. Check the endianness of the target database Case 1 - No conversion needed. The source platform is Sun SPARC Solaris: endianness Big The target platform is HP-UX (64-bit): endianness Big Case 2 The source platform is Microsoft WIndows NT: endianness Little The target platform is HP-UX (64-bit): endianness Big You have to convert the files : --> locally before the import step so that the files are endian compatible: --> remotely on the target server after having copied them on the server. 4. Move datafiles and export dump file 5. Import metadata 6. Set the tablespace to READ WRITE - 20 -

<<< DataPump 실습 >>> (1) DataPump 준비단계 -- DBA 권한이상으로로그인 CONNECT /as sysdba -- DataPump를위한 Directory 생성 CREATE OR REPLACE DIRECTORY dpump_dir AS '/oracle/app/oracle/product/10.2.0/datapump'; -- 생성한 Directory에 Read, Write 권한할당 GRANT READ, WRITE ON DIRECTORY dpump_dir TO system; -- Directory 확인 set linesize 200 set pagesize 100 col owner format a10 col privilege format a10 col directory_path format a50 SELECT d.owner, directory_name, grantee, privilege, directory_path FROM user_tab_privs t, all_directories d WHERE t.table_name(+)=d.directory_name; - 21 -

(2) Command-Line Interface 1. expdp help=y 로 Command-Line 인터페이스에서사용가능명령어확인 2. Command-Line 인터페이스로 DataPump 수행 ############################## ### Command-Line Interface ### ############################## expdp system/oracle directory=dpump_dir dumpfile=full_%u.dmp logfile=full_%u.log job_name=expdp_full full=y 1 userid 2 directory( 절대경로가아니다!!!) 3 dumpfile => parallel 옵션과함께사용시파일명에 %U 사용할것!!! 4 logfile 5 job_name 위의 5가지는기본적으로사용할것을권장 - 22 -

(3) Interactive-Command Interface 1. "Export>" 프롬프트상태가 Interactive-Command Interface 모드이다. 2. 현재 Command-Line 모드로 expdp 수행중에 Ctrl+C를누른상태 서버기반이기때문에취소되지않고작업이계속진행중. 3. stop_job을수행해야지작업이중단된다. 작업이중단되더라도나중에다시실행및취소가가능하다.( 완전삭제는 kill_job) 4. 실행중인 Job 과정지중인 Job 확인 -- DataPump 작업확인 SELECT * from dba_datapump_jobs; - 23 -

(4) 중지된 Job 재실행하기 1. attach=job_name 으로실행중이거나중지중인 Job 에다시접속할수있다. ##################################### ### Interactive-Command Interface ### ##################################### ### 중지된 JOB 재실행 ### ##################################### expdp system/oracle attach=expdp_full 2. help=y 로 Interactive-Command 인터페이스에서사용가능명령어확인 - 24 -

3. 재실행 -- 정지된 Job 재시작 Export> start_job -- 작업내용표시 Export> continue_clinet 1 start_job 명령으로중지되었던 Job 재실행가능 ( But, 화면에작업내용은나타나지않는다!!!) 2 continue_client 명령으로클라이언트에작업내용표시가능 - 25 -

(5) Remote DB Export 받기 1. tnsnames.ora 설정및확인 EXPDP_DOG13 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.177)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = DOG103) ) ) 2. DB Link 생성및확인 -- SYSTEM 계정로그인 CONNECT system/oracle -- Database Link 생성 CREATE DATABASE LINK expdp_net01 CONNECT TO system IDENTIFIED BY oracle USING 'EXPDP_DOG13' -- DB Link 확인 col owner for a10 col db_link for a15 col username for a10 col host for a15 SELECT * FROM dba_db_links; - 26 -

3. Remote DB Export ################################## ### NETWORK_LINK Parameter(DB LINK 이름 ) ### ################################## -- Local DB 쪽에파일남기기 expdp system/oracle NETWORK_LINK=expdp_net01 directory=dpump_dir dumpfile=expdp_net01_%u.dmp logfile=expdp_net01.log job_name=net_expdp_full full=y Long TYPE 등 NETWORK_LINK 로받아지지않는것도있으므로확인 -- Remote DB 쪽에파일남기기 expdp system/oracle@expdp_dog13 directory=dpump_dir dumpfile=expdp_net01_%u.dmp logfile=expdp_net01.log job_name=net_expdp_full full=y - 27 -

4. 결과확인 DB Link와 Network_Link를이용하면 Local DB쪽에 dmp파일이생성되며, Network Alias만이용하면 Remote DB쪽에 dmp파일이생성된다!!! - 28 -

(6) 중지된 Job 의 File 삭제후의 troubleshooting 1. 수행중이던 DataPump 정지 -- 쪽에파일남기기 set DATA_PUMP_DIR=DPUMP_DIR expdp system/oracle dumpfile=full.dmp logfile=full.log job_name=delete_dmpfile full=y Export> stop_job 2. DataPump Job 확인 SELECT * FROM dba_datapump_jobs; 3. File 확인후삭제 -- 해당파일삭제 rm full.dmp - 29 -

4. Attach 시도 ############################## ### 중지된 JOB에 Attach 시도 ### ############################## expdb system/oracle attach=delete_dmpfile 해당파일이없다며 Error 발생 5. DataPump Job 존재재확인 col OWNER_NAME for a10 col job_name for a20 col operation for a10 col job_mode for a15 SELECT * FROM dba_datapump_jobs; 6. 해당작업의 Table을확인후수동삭제 -- 중지된 Job의 Table 확인 SELECT o.status, o.object_id, o.object_type, o.owner '.' object_name "OWNER.OBJECT" FROM dba_objects o, dba_datapump_jobs j WHERE o.owner=j.owner_name AND o.object_name=j.job_name AND j.job_name NOT LIKE 'BIN$%' ORDER BY 4,2; - 30 -

-- 중지된 Job의 Table을확인후삭제 (OWNER.OBJECT 컬럼 ) DROP TABLE SYSTEM.DELETE_EMPFILE; -- Delete된 File 때문에 Attach 되지않았던 Job의제거확인 SELECT * FROM dba_datapump_jobs; Attach를할수없으므로해당작업을 Interactive_Command에서 kill_job 명령을수행할수없다. 그래서해당작업의 Table을확인후삭제함으로써수동으로 DataPump jobs List에서제거할수있다. - 31 -