-- 1. ORACLE Directory 생성
SELECT * FROM DBA_DIRECTORIES;
CREATE OR REPLACE DIRECTORY BACKUP_PUMP_DIR AS 'D:\Backup_pump_dir';
-- DROP DIRECTORY BACKUP_PUMP_DIR;
-- 2. EXPDP
EXPDP dbuser/password DIRECTORY=BACKUP_PUMP_DIR DUMPFILE=PRJEPROPRD_20150204.DMP LOGFILE=EXP_PRJEPRODEV_20150204.LOG SCHEMAS=EPROCUSR
-- 3. IMPDP
IMPDP dbuser/password DIRECTORY=BACKUP_PUMP_DIR DUMPFILE=PRJEPROPRD_20150204.DMP LOGFILE=IMP_PRJEPRODEV_20150204.LOG REMAP_TABLESPACE=TS_PPROCUSR:TS_PPROCUSR TABLE_EXISTS_ACTION=REPLACE
같은이름의 테이블이 존재할 때
SKIP
APPEND : 데이터 추가
TRUNCATE : Table Truncate 하고 데이터 입력
REPLACE : Table Drop 하고 데이터 입력 - 통계정보도 입력 (Meta 정보도 있어야 함, data_only옵션으로 import한 데이터는 불가)
* backup.bat 파일로 만들기
@ECHO OFF
SET YYYY=%date:~0,4%
SET MM=%date:~5,2%
SET DD=%date:~8,2%
SET HH=%time:~0,2%
SET MI=%time:~3,2%
SET SS=%time:~6,2%
REM fill zero
SET TT=0
FOR %%C IN (%HH%) DO (
SET TT=%TT%%%C
)
SET HH=%TT:~-2%
:: 파일명 만들기
SET FILENAME=PPMS_%YYYY%%MM%%DD%%HH%%MI%%SS%
:: 파일명을 backup_file.txt에 저장
ECHO %FILENAME% > backup_file.txt
:: Export
EXPDP dbuser/password DIRECTORY=BACKUP_PUMP_DIR DUMPFILE=%FILENAME%.DMP LOGFILE=%FILENAME%.LOG SCHEMAS=EPROCUSR
ECHO.
PAUSE
-- 특정 테이블 복원
IMPDP dbuser/password@PRD_DB DIRECTORY=DATA_PUMP_DIR DUMPFILE=DUMP_20170209130209.dmp LOGFILE=IMP_20170209130209.log REMAP_SCHEMA=SMARTX:HGPSIF TABLES=smartx.ESAATTH
-- 특정 테이블 제외 복원
IMPDP dbuser/password@DEV_DB DIRECTORY=DATA_PUMP_DIR DUMPFILE='%FILENAME%' LOGFILE='%FILENAME%.log' REMAP_TABLESPACE=TS_SMARTX_DT:TS_SMARTX_DT REMAP_SCHEMA=SMARTX:SMARTX EXCLUDE=TABLE:"in('INTERFACE_PROXY_EXCUTIONS')"