출처:  http://www.koug.net/xe/?mid=oracle_tip&listStyle=webzine&document_srl=3828



No. 10429

PIPE 와 COMPRESS 를 사용한 export
===========================================

Export 중에 dump file size 가 2G 이상이어서 에러가 발생하는 경우가 있습니다.  이러한 문제를 해결하기
위하여, 압축(unix command인 compress 이용)하면서 disk 나 tape 으로 보낼 수 있는 방법은 다음과 같습니다.


$ mknod /tmp/exp_pipe p 
=> /tmp/exp_pipe 라는 이름의 pipe를 생성합니다. 이 때 p는 pipe 임을 나타냅니다
(이후에 불필요하여 지우는 방법은 rm /tmp/exp_pipe,  rm하지 않고 계속해서 아래의 compress와 exp 작업을
중복하게 되는 경우 이후 import 시에 문제가 발생할 수 있으므로 주의한다.)


$compress < /tmp/exp_pipe > /dev/rmt/tx4 & 
=> pipe 를 통과하게 될 화일을 압축하여 tape device /dev/rmt/tx4 로 보내는 작업을 backgroud process 로
미리 기동하여 둡니다. tape 대신 disk 로 보낼 때에는 export.dmp.Z 과 같은 화일명을 줍니다.
(이 때 <, >는 redirection 기호이므로 생략해서는 안 되고 위와 같이 그래도 적어야 한다.)


$exp system/manager file=/tmp/exp_pipe full=y and other options 
=> Dump file name 에는 위에서 만든 pipe 이름을 줍니다.


위와 같이 받은 dump file 을 import 하는 방법은 다음과 같습니다.

$mknod /tmp/imp_pipe p   
=> import 를 위한 /tmp/imp_pipe  생성하십시오


$uncompress < /dev/rmt/tx4 > /tmp/imp_pipe & 
=> pipe 를 통과 하게될 화일의 압축을 풀어서 tape device /dev/rmt/tx4 로 보내는 작업을 backgroud process 로
미리 기동하여 둡니다. export를 disk로 받았다면, tape device name 대신 압축 화일명을 주십시오.


$imp system/manager file=/tmp/imp_pipe  and other option  
=>  file 에는 위에서 만든 pipe 이름을 줄 것




예제) 2G를 초과하는 export dump file을 압축하여 tape으로 보내어 전체 데이타베이스에 대하여 backup을 받고,
그 중에서 scott 유저의 데이타만 import 하는 예제

mknod /tmp/exp_pipe p
compress </tmp/exp_pipe> /dev/rmt/tx4 &
exp system/manager file=/tmp/exp_pipe owner=s buffer=100000 volsize=0

참고 : volsize=0 의 의미는 tape으로 화일을 보낼 때 제한을 두지 않겠다는 것(no limit)을 의미합니다.


mknod /tmp/imp_pipe p
uncompress </dev/rmt/tx4> /tmp/imp_pipe &
imp system/manager file=/tmp/imp_pipe owner=scott ignore=y



+ Recent posts