@echo off setlocal ENABLEDELAYEDEXPANSION SET WU=administrator SET WP=Icoop2013 SET IP=192.168.1.181 SET PO=1521 SET IP_=192.168.1.191 SET S=ISCOPEA SET SID=gcoop SET F=d:\app\Administrator\admin\gcoop\dpdump SET F_T=d:\app\Administrator\oradata\gcoop\ SET F_=c:\app\Administrator\admin\gcoop\dpdump SET FF=\\%IP%\c$\app\Administrator\admin\gcoop\dpdump SET Z=.zip SET UU=sys SET PP=admin SET U=system SET P=admin SET D=DATAPUMP_ SET C=%IP%:%PO%/%SID% SET CC=%IP_%:%PO%/%SID% SET STR=%UU%/%PP%@%C% SET STR_=%U%/%P%@%C% SET STRC=%UU%/%PP%@%CC% SET STRC_=%U%/%P%@%CC% echo %date% %time% : "STEP 1: Map Drive : net use %FF% /USER:%WU% %WP%" Net use %FF% /DELETE net use %FF% /USER:%WU% %WP% echo %date% %time% : "STEP 2: Clean Tmp File : echo y|del %FF%\*.*" echo y|del %FF%\*.* echo quit|echo alter system set deferred_segment_creation = FALSE ;|sqlplus %STR% as sysdba echo quit|echo alter session set "_ORACLE_SCRIPT"=true;|sqlplus %STR% as sysdba echo quit|echo ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;|sqlplus %STR% as sysdba echo quit|echo CREATE OR REPLACE DIRECTORY %D% AS '%F_%';|sqlplus %STR% as sysdba echo %date% %time% : "STEP 3: Export Data From : expdp %STR_% directory=%D% SCHEMAS=%S% DUMPFILE=%S%.DMP version=11.2 LOGFILE=%S%.LOG PARALLEL=3 " expdp %STR_% directory=%D% SCHEMAS=%S% DUMPFILE=%S%.DMP version=11.2 LOGFILE=%S%.LOG PARALLEL=3 echo %date% %time% : "STEP 3: 7z a %FF%/%S%.DMP%Z% %FF%/%S%.DMP " 7z a %FF%/%S%.DMP%Z% %FF%/%S%.DMP echo %date% %time% : "STEP 4: Create MD5 source File : md5 -n -o%FF%\%S%.DMP%Z%.MD5.txt -i %FF%\%S%.DMP%Z%" md5 -n -o%FF%\%S%.DMP%Z%.MD5.txt -i %FF%\%S%.DMP%Z% echo %date% %time% : "STEP 6: Clean Tmp File :echo y|del %F%\*.*" echo y|del %F%\*.* echo y|del %FF%\*.DMP echo %date% %time% : "STEP 7: Copy Files : copy %FF%\*.* %F%" copy %FF%\*.* %F% echo %date% %time% : "STEP 8 : Check File Exist : if exist %F%\%S%.DMP%Z% " if exist %F%\%S%.DMP%Z% ( echo %date% %time% : "STEP 8 : File Backup found %F%\%S%.DMP%Z%" echo %date% %time% : "STEP 8.1 : Create MD5 backup File : md5 -n -o%F%\%S%.DMP%Z%.MD5.txt -i %F%\%S%.DMP%Z% " md5 -n -o%F%\%S%.DMP%Z%.MD5.txt -i %F%\%S%.DMP%Z% for /f "skip=3 delims= " %%i in ('fciv -md5 %F%\%S%.DMP%Z%') do set md5_1=%%i for /f "skip=3 delims= " %%i in ('fciv -md5 %FF%\%S%.DMP%Z%') do set md5_2=%%i echo %date% %time% : "STEP 8.2 : Compare MD5 : Backup =!md5_1! , Source = !md5_2!" if "!md5_1!"=="!md5_2!" ( echo %date% %time% : "STEP 8.2.1 : Files are the same " echo %date% %time% : "STEP 8.2.1.1 : Stop Oracle at Backup Server " net stop OracleServiceGCOOP echo %date% %time% : "STEP 8.2.1.2 : Start Oracle at Backup Server " net start OracleServiceGCOOP echo %date% %time% : "STEP 8 : 7z x %F%/%S%.DMP%Z% -o%F% " echo y|7z x %F%/%S%.DMP%Z% -o%F% echo quit|echo alter system set deferred_segment_creation = FALSE ;|sqlplus %STRC% as sysdba echo quit|echo alter session set "_ORACLE_SCRIPT"=true;|sqlplus %STRC% as sysdba echo quit|echo ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;|sqlplus %STRC% as sysdba echo quit|echo Drop tablespace %S% including contents and datafiles;|sqlplus %STRC% as sysdba echo y|del %F_T%%S%.DBF echo quit|echo CREATE BIGFILE TABLESPACE "%S%" DATAFILE '%F_T%%S%.DBF' SIZE 50M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;|sqlplus %STRC% as sysdba echo quit|echo CREATE OR REPLACE DIRECTORY %D% AS '%F%';|sqlplus %STRC% as sysdba echo quit|echo DROP USER "%S%" CASCADE;|sqlplus %STRC% as sysdba echo %date% %time% : "STEP 8.2.1.3 : Import Backup Data : impdp %STRC_% directory=%D% DUMPFILE=%S%.DMP LOGFILE=%S%.IMP.LOG PARALLEL=3 " impdp %STRC_% directory=%D% DUMPFILE=%S%.DMP LOGFILE=%S%.IMP.LOG PARALLEL=3 echo %date% %time% : "STEP 8 : Import & Backup successful" ) else ( echo %date% %time% : "STEP 8.2.2 :Files are different %F%\%S%.DMP%Z% = %md5_1% , %FF%\%S%.DMP%Z% = %md5_2%" echo %date% %time% : "STEP 8 :Failure : Files are different MD5 " ) ) else ( echo %date% %time% : "STEP 8 : File Backup not found %F%\%S%.DMP%Z%" echo %date% %time% : "STEP 8 : Failure : Backup not found" ) SET /P E=Enter to quit