-- 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=DEVDB_20150204.DMP LOGFILE=EXP_DEVDB_20150204.LOG SCHEMAS=DEVUSER
-- 3. IMPDP
IMPDP dbuser/password DIRECTORY=BACKUP_PUMP_DIR DUMPFILE=DEVDB_20150204.DMP LOGFILE=IMP_DEVDB_20150204.LOG REMAP_TABLESPACE=TS_DEVUSER:TS_DEVUSER 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=DEVUSER
ECHO.
PAUSE
-- 특정 테이블 복원
IMPDP dbuser/password@PRD_DB DIRECTORY=DATA_PUMP_DIR DUMPFILE=DUMP_20170209130209.dmp LOGFILE=IMP_20170209130209.log REMAP_SCHEMA=DEVDB:특정사용자 TABLES=DEVDB.특정테이블
-- 특정 테이블 제외 복원
IMPDP dbuser/password@DEV_DB DIRECTORY=DATA_PUMP_DIR DUMPFILE='%FILENAME%' LOGFILE='%FILENAME%.log' REMAP_TABLESPACE=TS_DEVDB_DT:TS_DEVDB_DT REMAP_SCHEMA=DEVDB:DEVDB EXCLUDE=TABLE:"in('제외할테이블')"