오라클 11g exp/imp 을 이용한 백업 및 복원
갑자기 사이트에서 오류가 발생한다.
서버 로그를 확인해 보니 별다른 오류가 보이지 않는다.
다만, 호출 시 insert문이 수행되는데 혹시 몰라 툴에서 수행해 본다.
오류가 발생했다.
오라클 11g를 사용하고 있었는데, 테이블스페이스 사용량을 초과했다고 더 이상 입력되지 않는 오류다.
테이블스페이스를 많이 사용하고 있지 않았지만, 다른 프로젝트에서 사용중인 테이블스페이스가 문제였다.
그래서 테이블스페이스를 옮기기로 했다.
얼마전에 테이블스페이스를 새로 생성했었어야 했는데 데이터가 얼마 남지 않아서 11g를 다른 서버에 다시 설치한 적이 있었다. 이번엔 여기에 옮겨야겠다.
명령어를 확인해보니 exp와 expdp가 있다.
데이터 백업과 복원에 대해 기존(10g)에 exp와 imp가 있었는데, 11g부터는 expdp와 impdp가 제공된다.
11g부터는 exp와 imp가 안된다고 하는데, 사용이 된다.
차이점은 exp와 imp은 같은 버전으로 백업하고 복원할 수 있지만, expdp와 impdp는 버전을 선택해서 백업 및 복원이 가능하다고 한다.
11g에서 11g로 옮길 것이기 때문에 exp와 imp를 써 보도록 하자.
exp를 이용한 백업 방법
oracle $ > exp userid={계정명}/{계정비밀번호} file={백업파일이름}
예) exp userid=chair/leg4 file=/home/oracle/rulu.dmp
imp를 이용한 복원 방법
복원하기 위해서는 우선 백업 파일과 동일한 테이블스페이스를 구성해야 한다.
예시) 기존과 동일한 테이블스페이스를 만들자.
create tablespace test_space datafile '/home/oracle/database/test_space.dbf' size 100M autoextend on next 5M extent management local uniform size 256k;
create tablespace test_space_idx datafile '/home/oracle/database/test_space_idx.dbf' size 50M autoextend on next 5M extent management local uniform size 256k;
create user test_space_user identified by samsu** default tablespace test_space;
grant connect, resource, dba to test_space_user;
oracle $ > imp {계정명}/{계정비밀번호} file={백업파일이름} full=y
예) imp chair/leg4 file=/home/oracle/rulu.dmp full=y
복원 시 full=y 옵션을 주지 않으면 스키마만 생성되고 데이터는 복원되지 않는다.