10g 부터는 pump 기능이 제공된다.
기존까지 사용하던 exp, imp 는 클라이언트에서 실행하지만 pump 는 서버에서만 실행가능하다.
백업하기(expdp)
순서는 다음과 같다.
- expdp 실행을 위한 ORACLE_HOME 환경변수 설정(필요하다면)
- sysdba 권한으로 펌프할 디렉토리 생성하기
- 사용자에게 디렉토리에 대한 접근/작성 권한 할당하기
- pump export 하기
다음은 예제다. 진한 글씨를 임의의 설정에 맞추면 된다.
1. ORACLE_HOME 환경변수 설정
ORACLE_HOME 환경변수가 맞추어져있다면 다음 과정은 생략 가능하다. 다음은 AIX 의 경우 샘플이다.
$>export ORACLE_HOME=/app/oracle/product/102/db
관리자 계정으로 접속
SQL> conn /as sysdba
또는
$>sqlplus sys/11234@ORCL as sysdba
또는
$>sqlplus sys/11234@ORCL as sysdba
Connected.
2. pump 를 위한 directory 생성
SQL> create directory pump_dir as '/tmp/backup/oracle';
Directory created.
3. pump 를 위한 권한 설정
SQL> grant read,write on directory pump_dir to slothink;
Grant succeeded.
SQL> exit
$ mkdir /tmp/backup/oracle
4. 펌프 export
$ expdp slothink/1234@ORCL directory=pump_dir dumpfile=exp.`date "+%Y-%m-%d"`.pump.dmp job_name=backup_job
만약 하위버젼이나 특정버젼으로 import 를 시킬 계획이라면 버젼을 명시해줘야한다.
다음은 11g 에서 10g 버젼으로 export 하는 샘플이다.
$ expdp slothink/1234@ORCL directory=pump_dir dumpfile=exp.`date "+%Y-%m-%d"`.pump.dmp job_name=backup_job version=10.2.0.4
$ expdp slothink/1234@ORCL tables=MY_LOVE_SLOTHINK directory=pump_dir dumpfile=exp.`date "+%Y-%m-%d"`.pump.dmp job_name=backup_job version=10.2.0.4
5. 복구하기(impdp)
복구 과정 또한 1,2,3 과정을 거치는 것은 동일하다. 동일 머신에서 복구한다면 바로 impdp 를 사용해도 되겠지만, 다른 머신이라면 해당 머신에 맞는 디렉토리 생성이 필요하다.
$ impdp slothink/1234 directory=pump_dir dumpfile=exp.2009-11-04.dmp job_name=backup_job