요새 이관작업이 많아서 끄적이는 oracle datapump정리...작업 그만!ㅠㅠ
Datapump
RMAN백업과는 다르게 논리적으로 백업하는 방식
실제 데이터들을 확인하면서 백업.
-> RMAN보다 속도는 느린 편이다.
모든 데이터는 SQL에서 사용가능한 DDL,DML 문장으로 변형되어 백업.
백업후에 복구 시 DDL로 table, user를 만들고 DML로 한개의 row씩 복구.
<-> RMAN은 데이터파일을 복구 후 RedoLog를 활용하여 복구
datapump 활용은 백업/복구가 아닌 이관시에 많이 사용
기본으로 설정 되어있는 디렉토리 조회
-> select * from directories;
DATA_PUMP_라고 쓰여있는 row확인
create or replace directory [alias] as '경로';
새로 등록
os상에 directory생성
$ mkdir datapump
SQL> create or replace directory datapump as '/datapump';
asm상에 실행
대부분 grid계정으로 asm설치
$su - grid
$asmcmd
$mkdir datapump
$cd datapump
$pwd 해서 나온 경로 SQL로 등록해주면 됨
기본 expdp username/passwd dumpfile=[filename.dmp] logfile=[logname.log]
옵션
directory=[설정한 디렉토리명]
schemas=[뽑아낼 스키마] 여러개 가능
job_name=임의로 지정 -> 중간에 취소하고 재시작할때 필요함.
parallel=1,2,3,4,5,... cpu자원이 충분하고 작업이 클 때 주면 작업시간 단축가능
Include/Exclude=포함/미포함
parfile= vi로 .par파일을 만들어서 위 옵션들 다 넣고 expdp ---.par해도 됨
content=[all,data_only,metadata_only,none]
Ctrl+C 입력 시
Export> status --취소가 아닌 멈춘 상태 조회
Export> stop -> yes 나가기
expdp attach=[username.job_name]
Export> start_job
Export> status -> executing 된 것 확인가능
exit으로 나가면 됨
기본 impdp username/passwd dumpfile=[filename.dmp] logfile=[logname.log]
이관할 스키마 생성
create user imp_test identified by oracle default tablespace users;
grant connect, resource on imp_test;
impdp실행
impdp system/oracle dumpfile=[filename.dmp] logfile=[logname.log] directory=datapump remap_schema=[schema]:imp_test
옵션은 요청별로 넣기