Unix/Linux 에서 exp 동시에 gzip 으로 압축하기
2011.06.10 19:01
원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어
Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
exp 유틸리티에는 압축기능이 없기 때문에 압축하기 위해서는 exp dump가 생성된 후에
dump 파일을 압축하는 형태로 운영을 한다.
하지만 파일시스템 용량이 많이 부족하여 exp dump자체가 생성이 안되거나
dump 생성후에 압축에 필요한 임시공간도 부족할 경우는 어떻게 하는가??
이럴때 사용하는 방법이 pipe 파일이다.
exp user/pass file=backup.dmp | gzip
이런 방식의 파이프를 사용하더라도 exp 가 끝나야지 | 뒤편으로 입력이 들어가니까 의미가 없다.
이럴땐 | 의 역할을 해주는 파일을 이용하자.
# mknod /tmp/exp_pipe p
# ls -l /tmp/exp_pipe
prw-rw-r-- 1 oracle dba 0 6¿ù 10ÀÏ 09:49 exp_pipe // p형태의 파일타입이 생성되었다.
# gzip < /tmp/exp_pipe > backup.dmp.gz & // 백그라운드 프로세스로 gzip을 돌려놓는다.
이제부터 /tmp/exp_pipe로 들어오는 입력은 압축되어
backup.dmp.gz 파일로 출력된다.
# exp user/pass file=/tmp/exp_pipe // exp dump파일을 pipe파일로 정해준다.
자동화를 위해서 스크립트로 만들경우 반드시 테스트를 해주자.
스크립트로 동작하는것과 실제 쉘에서 직접 실행할때는 환경이 다름을 유의하고 항상 테스트를 선행하자.
#!/bin/ksh
gzip < /tmp/exp_pipe > backup.dmp.gz &
exp user/pass file=/tmp/exp_pipe
유의할점은 gzip 백그라운드프로세스가 정확하게 돌지 않으면 exp 도 실패한다는거다.