**********************************************************************
* Description: Windows batch scripts of Oracle data pump auto refresh
* Date: 05:26 PM EST, 06/06/2018
**********************************************************************
REM ######################################################################################
REM # EML - Test Database Refresh
REM # Author: Amos Geng
REM # Date: 05/21/2018
REM # Description: Refreshing LAPPS and FFACTS schemas daily base for development purpose
REM ######################################################################################
@echo on
goto main
:funct_set_variable
set var_database_name=ccsprod
set var_hostname=%COMPUTERNAME%
set var_filedatetime=%DATE:~4,2%%DATE:~7,2%%DATE:~10,4%
set var_script_name=micore_dev_ccsprod_refresh
set var_script_location=C:\micore\scripts\EML_Refresh
set var_script_log_location=c:\micore\logs
set var_dump_directory_db=EXPDP_DIR
set var_dump_directory_local=E:\expdp
set var_dump_directory_remote=\\EMLNAS01\Oracle_Backups\expdp_backup
set var_client_name=EML
set var_oracle_home=C:\app\product\11.2.0\dbhome_1
set var_dump_retention=3
set var_proactive_notification_email=informative_support@emeralit.com
set var_critical_notification_email=informative_support@emeralit.com
goto:EOF
:funct_db_reboot
set oracle_sid=%var_database_name%
sqlplus / as sysdba @%var_script_location%\db_shutdown.sql
sqlplus / as sysdba @%var_script_location%\db_startup.sql
goto:EOF
:funct_no_dump_alert
echo to: %var_critical_notification_email% > %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo from: auto@emeralit.com >> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo subject: Critical - %var_client_name%:%var_hostname%:Expdp Dump NOT Detected for Today >> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo.>> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo Expdp Backup NOT Detected for Today. >> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo.>> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo Notice sent by %var_script_location%\%var_script_name% >> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
Msmtp -t < %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
exit
goto:EOF
:funct_dump_download
set oracle_sid=%var_database_name%
if exist %var_dump_directory_remote%\expdp_%ORACLE_SID%_%var_filedatetime%.dmp (
copy %var_dump_directory_remote%\expdp_%ORACLE_SID%_%var_filedatetime%.dmp %var_dump_directory_local%
) else (
call :funct_no_dump_alert
)
goto:EOF
:funct_drop_schema
set oracle_sid=%var_database_name%
sqlplus / as sysdba @%var_script_location%\db_drop_schema.sql
goto:EOF
:funct_impdp
set oracle_sid=%var_database_name%
impdp \"/ as sysdba\" schemas=tapps,tfacts directory=%var_dump_directory_db% dumpfile=expdp_%ORACLE_SID%_%var_filedatetime%.dmp logfile=expdp_%ORACLE_SID%_%var_filedatetime%.log
goto:EOF
:function_recompile
set oracle_sid=%var_database_name%
exit|sqlplus / as sysdba @%var_oracle_home%\rdbms\admin\utlrp.sql
goto:EOF
:funct_log_cleanup
forfiles /P %var_dump_directory_local% /M expdp_*.log /D -%var_dump_retention% /C "cmd /c Del @FILE"
forfiles /P %var_dump_directory_local% /M expdp_*.dmp /D -%var_dump_retention% /C "cmd /c Del @FILE"
forfiles /P %var_script_log_location% /M expdp_backup_notification*.txt /D -%var_dump_retention% /C "cmd /c Del @FILE"
goto:EOF
:funct_oraerr_notice
set var_errors_status=no_error
for /f "delims=" %%i in ('findstr /n "ORA-" %var_dump_directory_local%\expdp_%ORACLE_SID%_%var_filedatetime%.log') do set var_errors_status=detected
if %var_errors_status% == detected (
echo to: %var_critical_notification_email% > %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo from: auto@emeralit.com >> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo subject: Critical - %var_client_name%:%var_hostname%:Refresh Completed with Errors >> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo.>> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
type %var_dump_directory_local%\expdp_%ORACLE_SID%_%var_filedatetime%.log >> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo.>> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo Notice sent by %var_script_location%\%var_script_name% >> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
Msmtp -t < %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
) else (
echo to: %var_proactive_notification_email% > %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo from: auto@emeralit.com >> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo subject: Informative - %var_client_name%:%var_hostname%:Refresh Completed >> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo.>> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
type %var_dump_directory_local%\expdp_%ORACLE_SID%_%var_filedatetime%.log >> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo.>> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo.>> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
type %var_script_log_location%\expdp_7zip_%ORACLE_SID%_%var_filedatetime%.txt >> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo.>> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
type %var_script_log_location%\aws_dmp_shipment_%ORACLE_SID%_%var_filedatetime%.txt >> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo.>> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
echo Notice sent by %var_script_location%\%var_script_name% >> %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
Msmtp -t < %var_script_log_location%\notice_%ORACLE_SID%_%var_filedatetime%.txt
)
goto:EOF
:funct_change_password
set oracle_sid=%var_database_name%
sqlplus / as sysdba @%var_script_location%\db_change_password.sql
goto:EOF
:main
call :funct_set_variable
call :funct_dump_download
call :funct_db_reboot
call :funct_impdp
call :function_recompile
call :funct_oraerr_notice
call :funct_log_cleanup
call :funct_change_password
goto:EOF
Your Comments