DATABASE/Oracle 2014. 6. 29. 11:07 -- DB덤프를 받기 위한 export와 import명령어. (2) 받은 덤프를 내 컴(오라클)에 적용하기 -- 테이블 덤프 -- 기본풀덤프 오라클을 export utility를 사용해서 덤프를 받으면, 그 파일은 텍스트 파일이 아닙니다. binary file이죠. 출처 : http://blog.naver.com/genesis0395?Redirect=Log&logNo=120042180932 1. export / import 2. export 방식 나. Dircet Path export : DB Buffer Cache에서 데이터를 가공(text -> Binary)하여 디스크에 파일로 저장함, export 명령 이후에 백업대상이 되는 테이블스페이스나 테이블에 Lock이 발생하기 때문에 DDL, DML 작업은 실패 또는 보류 된다. 3. export 옵션 및 사용예제 나. 사용예제 exp system/oracle full=y file=/backup/export/test01.dmp exp system/oracle full=y file=/backup/export/test02.dmp direct=y exp system/oracle tables=emp \ exp system/oracle tablespaces=(example, undotbs1) file=/backup/export/test04.dmp exp system/oracle file=/backup/export/test05.dmp owner=(scott, hr) exp system/oracle file=/backup/export/test06.dmp full=y buffer=1024000 vi
par_full.dat exp system/oracle parfile=par_full.dat exp scott/tiger query=\"where ename like \'F%\'\" tables=emp \ 4. import 옵션 및 사용예제 나. 사용예정 imp system/oracle file=/backup/export/test01.dmp ignore=y full=y imp system/oracle file=/backup/export/test02.dmp \ imp system/oracle file=/backup/export/test03.dmp full=y show=y log=test03.log 참고 : export/import 계정 참고 : import 작업 중 에러발생 시 참고 : SYS 계정으로 생성된 Object export 4. Import 대상 서버에서 필요한 사전
작업
* export - 서비스명 포함 ex.) C:>exp userid=system/manager@서비스명 file='c:/full.dmp' full=y - exp-00091 불완전한 통계를 엑스포트 중입니다. 메시지 출력시 (oracle 버전 확인과 NLS_LANG가 달라서 발생) ex.) C:>exp userid=system/manager@서비스명 file='c:/full.dmp' full=y statistics=none 이관 데이터에는 상관없고 실행 후 dbms_stats.gather_schema_stats 를 사용하여 통계정보를 생성하면 됨 - user별 EXPORT하는 방법. - SYSTEM/MANAGER로 접속한 DBA가 여러 user소유의 오브젝트들을 EXPORT 하는 방법 - system user로 다른 유저의 table 몇 개만 Export하는 방법 - scott user로 table 몇 개만 EXPORT하는 예 추가 옵션 full=y : 전체 데이터 추출 여부 (기본값 n) direct : 직접경로 방식으로 export(기본값 n) indexs : 인덱스 포함 여부(기본값 y) triggers : 트리거 포함 여부(기본값 y) rows=n : 오브젝트에 대한 정의만 export (테이블의 저장된 데이터는 export 제외) buffer : 작업 단위 크기 설정 compress : 익스텐트 통합여부 지정(기본값 y) grants : 오브젝트 권한 설정에 대한 정보 추출 여부(기본값 y) log : 로그를 저장할 파일 지정 row : 테이블의 데이터 추출 여부(기본값 y) consistents : 대상 테이블의 읽기 일관성 지정(기본값 n) prfile : 필요한 옵션을 파라미터 파일에 설정한 후 해당 파라미터 파일을 export 시 적용 query : 쿼리 조건에 맞는 데이터만 적용 ex) query=\"where id\=100\" Export 활용 TIP1.COMPRESS 옵션은 모든 익스텐트를 하나의 익스텐트로 통합하여 구성하는 옵션이다. 이 경우 하나의 데이터 파일로만 모든 데이터가 적재되기 때문에 I/O분산 측면에서 분리하다. 그러므로 실제 운영에서는 이와 같이 익스텐트들이 통합되는 것은 좋지 않으므로 Export를 수행할 경우 반드시 COMPRESS 옵션을 N으로 설정하기를 권장한다. TIP 2. DIRECT 옵션은 오라클 메모리 영역인 SGA를 사용하지 않고 Export를 수행하는 옵션이다. 직접 경로로 수행하여 추출된 파일은 Import시에도 기본적으로 직접 경로로 적재된다. 그러므로 DIRECT옵션을 Y로 설정하면 추출 및 적재 잡업시 보다 빠른 속도를 보장받을 수 있다. TIP 3.CONSISTENTS 옵션은 Export를 수행한 시점의 데이터를 추출하게 된다. Export 중 변경된 데이터는 언두 데이터를 이용하여 이전 값을 추출하게 되는데 이때 'Snap Shot Too Old' 에러가 발생하기 쉽다. 그래서 CONSISTENTS옵션을Y로 설정하기를 권장한다. TIP 4. STATISTICS 옵션은 oracle 9i버전에서 특수 통계정보를 수집하는 옵션이다. "EXP-00091: 불완전한 통계를 엑스포트 중입니다." 에러가 발생하지 않게 하기 위해서는STATISTICS옵션을NONE으로 설정하기를 권장한다. -전체 데이터베이스가 IMPORT됩니다. (Full Level) - scott의 유저 IMPORT를 실행 합니다.(User Level) - 다른
계정으로 IMPORT하기 =================================================================================== 오라클 홈디렉토리 또는 Base 디렉토리에 가시면 bin 디렉토리가 있습니다. 하지만 장애시점까지의 복구가 아니라 백업받은 시점으로의 복구만 가능하다. 0. exp/imp 제한 이진(Binary) 형태로 전송 (exp userID/password@TNS_ALIAS ...) 필요성이 생길 수 있음 시퀀스 번호는 skip 될 수 있음 (imp 대신 copy 명령 사용) 1. 일반적으로 많이 사용하는 exp/imp 명령어 exp userid/password file=exp.dmp owner=vnet direct=y buffer=10240000 grants=y compress=n constraints=y indexes=y rows=y feedback=10000 statistics=none log=vnet.log imp system/qkrgustlr file=c:\vnet.dmp fromuser=vnet touser=vnet commit=y
ignore=y buffer=10240000 grants=y constraints=y indexes=y rows=y feedback=10000 log=c:\imp.log % imp dbaid/password file=./dmp/TEST.dmp
\ 2. pipe를 통하여 백업 & 압축하는 exp/imp 명령어 % rm -f /tmp/imp_test 참고) exp와 imp를 연결하여 실행
rm /tmp/exp_node INDEXES=n BUFFER=204800000 DIRECT=y LOG=exp_test.log
& TOUSER=us_test INDEXES=n COMMIT=y BUFFER=204800000 \
FEEDBACK=100000 IGNORE=y LOG=imp_test.log 3. 파티션된 테이블의 파티션 exp 명령어 % imp dbaid/password file=./dmp/TEST.dmp \ 4. FILESIZE를 이용한 SPLIT exp/imp 명령(8i) % imp dbaid/password file=./dmp/TEST01.dmp, \ 5. remote에서 exp하는 명령어 참고) \는 UNIX에서 다음 라인과 이어진다는 표시의 기호임. |