1. expdp란?
Oracle 10g 이상에서 사용 가능한 내보내기 기능임. 이전의 exp에 비해 성능이 향상되어 고속으로 내보낼 수 있고, 덤프 파일의 압축화 등 다양한 기능이 추가됨
2. expdp로 dump 파일 추출하기
2-1. dump file을 보관할 디렉토리 만들기
-- linux에서 DB접속
sqlplus / as sysdba
-- 디렉토리 만들기
SQL> create directory dir_datapump as 'linux에서 datapump할 위치';
Directory created.
2-2. 권한 부여
- userA 유저가 디렉토리 data_directory에 read, wirte 권한이 있어야 export(expdp), import(impdp) 진행 가능
SQL> grant read, write on directory dir_datapump to userA;
Grant succeeded.
2-3. expdp 진행
- 이 명령어를 시행할 때는 한줄에 다 적어야함(중간에 ENTER가 들어가면 안됨)
expdp \'/as sysdba\' schemas=TEST,TEST01 directory=dir_datapump dumpfile=expdp_dump_file.dmp
logfile=expdp_dump_file.log
- parallel 있는 경우
- 이때 parallel=8로 해도 dump 파일이 expdp_dump_file_01.dmp에서 expdp_dump_file_08.dmp보다 더 생길 수 있음
expdp \'/as sysdba\' schemas=TEST,TEST01 directory=dir_datapump dumpfile=expdp_dump_file_%U.dmp
logfile=expdp_dump_file.log parallel=8
- 통계정보 제외하고(exclude=statistics) 낸 후 나중에 impdp하고 통계정보 돌리면 조금 빠름
3. parfile 사용하기
- parfile로 생성하면 길어지는 명령어를 쉽게 확인 가능
- 반복 작업 시 dump 파일명과 로그 파일명만 변경하면 쉬움
3-1. parfile 생성
[oracle@admin ~]$ vi par.expdp_DBDEV.par
schema=TEST,TEST01
directory=dir_datapump
dumpfile=expdp_dump_file.dmp
logfile=expdp_dump_file.log
...
3-2. parfile로 expdp 진행하기
[oracle@admin ~]$ expdp \'/as sysdba\' parfile=par.expdp_DBDEV.par
4. 주의할 점
- /sw에는 dump file 다운받지 말아라!!! -> 만약 용량이 크면 DB가 뻗음
- 데이터 레이아웃이 달라도 타입만 맞으면 다 들어가기 때문에 레이아웃이 맞는지 우선 확인 필요!!
- data pump는 dbms 패키지로 처리되는 거라 안죽음 -> 반드시 control c 해서 프롬프터 뜨면 kill_job해야함
5. expdp 옵션
5-1. 하나만 지정 가능
매개변수 | 설명 |
full | 전체 데이터베이스를 내보낼 때 full=y 사용 |
schemas | 특정 스키마를 내보낼 때 사용 |
tables | 특정 테이블을 내보낼 때 사용 |
tablespaces | 특정 테이블스페이스를 내보낼 때 사용 |
5-2. 공통 옵션
매개변수 | 설명 |
cluster | full=y(전체 데이터베이스)일 때 RAC이 경우 cluster=n이어야 이상없이 수집 가능 cluster=y인 경우 두 노드 돌아다니면서 수집 |
directory | 추출한 파일의 저장 위치를 나타냄 directory=디렉토리명(디렉토리 위치X) |
dumpfile | 추출한 데이터 파일 이름 지정 |
logfile | 추출한 데이터의 로그 파일 |
content | 대상 지정. data_only : 테이블 데이터만 추출, metadata_only : 객체 정의, all : 객체 정의 및 데이터(기본값) |
exclude | 제외하려는 객체 지정. 보통 exclude=statistics 로 속도 높임 |
parfile | 파라미터 파일 지정 |
reuse_dumpfiles | 이미 존재하는 덤프파일을 덮어쓸지 여부 reuse_dumpfiles=NO가 기본값 |
nologfile | 로그 출력 여부. nologfile=NO가 기본값 |
parallel | 병렬처리 |
'Oracle' 카테고리의 다른 글
[Oracle] DBLink를 이용한 impdp 사용하기 (0) | 2025.05.04 |
---|---|
[Oracle] 데이터 이동 Datapump impdp로 dump file 가져오기 (0) | 2025.05.04 |
[Oracle] 오라클 데이터베이스 초기화 파라미터 (1) | 2025.05.03 |
[Oracle] spfile에서 pfile로 복사해서 비교하기 (0) | 2025.05.03 |
[Oracle] User별 Quota 확인 및 변경(+ Unlimited Tablespace) (0) | 2025.05.03 |