다른 명령
EXPORT
EXPORT 옵션
DB전체 백업
- conventional Path 로 받기
exp system/oracle full=y log=full_log.log file=/home/oracle/full_test001.dmp
- Direct Path 로 받기
exp system/oracle full=y log=full_log.log file=/home/oracle/full_test001.dmp direct=y
파일 분할 백업
exp system/oracle full=y file=( /backup/test_001.dmp,\ /backup/test_002.dmp,\ /backup/test_003.dmp,\ /backup/test_004.dmp)\''' filesize=100M log=full_log.log direct=y
해당 테이블 스페이스만 백업
exp system/oracle full=y log=full_log.log file=/home/oracle/full_test001.dmp tablespaces=(example,undotbsl)
여러 사용자 백업
exp system/oracle file=/home/oracle/full_test001.dmp owner=(scott,tiger)
일부 테이블 백업
- 버퍼 10메가
- Direct Path
exp system/oracle full=y log=full_log.log file=/home/oracle/full_test001.dmp buffer=20140000 direct=y tables=(example,undotbsl)
일반사용자로 Full Backup
- 권한확인
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'SCOTT';
- 권한부여
GRANT EXP_FULL_DATABASE TO SCOTT;
- DBA권한을 부여 해도 됨(권장하지 않음)
파라메터를 이용하여 백업
exp system/oracle parfile=para_file.txt
- para_file.txt file=/data/test09.dmp full=y direct=y query="where job='xxx' and ... " ....
SQL적용하여 일부데이터만 백업
- parfile 옵션을 사용하여 파라메터로 사용하면 편리
exp scott/tiger query=\"where ename like \'F%\'\" tables=emp file =/data/emp.dmp
DBMS_DATAPUMP 패키지/프로시져 이용 EXPORT 백업
-- 1.테이블 DUMP EXPORT 스크립트 DECLARE hdnl NUMBER; v_open_date VARCHAR2(50) := '20200102'; -- 백업시간 v_job_name VARCHAR2(50) := 'EXP_XXXWEB_OPEN'; -- 잡이름 BEGIN hdnl := DBMS_DATAPUMP.OPEN( operation => 'EXPORT', job_mode => 'SCHEMA', job_name=>v_job_name||'_'||v_open_date); DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => v_job_name||'_'||v_open_date||'_01.EXP', directory => 'DATA_PUMP_DIR2', filetype => dbms_datapump.ku$_file_type_dump_file ,reusefile=>1); DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => v_job_name||'_'||v_open_date||'_01.LOG', directory => 'DATA_PUMP_DIR2', filetype => dbms_datapump.ku$_file_type_log_file ,reusefile=>1); -- 스키마 정보 DBMS_DATAPUMP.METADATA_FILTER(handle => hdnl, name => 'SCHEMA_EXPR', value => ' IN (''XXX'',''WEB'')' ); DBMS_DATAPUMP.START_JOB(hdnl); END;
IMPORT
IMPORT 옵션
DB전체 입력
imp system/oracle full=y log=full_log.log file=/home/oracle/full_test001.dmp
일부 사용자만 입력
imp system/oracle file=/home/oracle/full_test001.dmp fromuser=(scott,tiger) tables=test01 ignore=y
테이블 소유자를 변경하여 입력
imp system/oracle file=/home/oracle/full_test001.dmp fromuser=scott touser=tiger ignore=y
DDL만 추출하기
- show=y 옵션사용 방법 - 로그에 저장하여 ddl 편집
- indexfile 옵션을 사용하는 방법
imp system/oracle file=/data/test02.dmp full=y show=y log=scott_ddl.sql
import 시 테이블과 index 분리
- import시 indexes=n 옵션으로 import후 인덱스 별도 생성
인덱스 파일만 별도 추출
imp system/oracle file=/data/test02.dmp indexfile=scott_index.sql full=y