General
============================================
In this example, the sql file is used to flush shared memory on ongoing basis.
crontab entry, to run daily at 08:00
0 8 * * * /software/oracle/oracle/scripts/flush_shared_pool.sh
flush_shared_pool.sh bash script, logging execution times and calling to sqlplus
oracle@my_server:~>% less /software/oracle/oracle/scripts/flush_shared_pool.sh
#!/bin/bash
. /software/oracle/oracle/.set_profile
export RUN_DATE=`date +"%Y%m%d"_"%H%M%S"`
export LOG_FILE=/software/oracle/oracle/scripts/flush_shared_pool.log
touch $LOG_FILE
echo "============================================" >> $LOG_FILE
echo Starting flush_shared_pool.sh at $RUN_DATE >> $LOG_FILE
sqlplus / as sysdba @/software/oracle/oracle/scripts/flush_shared_pool.sql
echo Finished flush_shared_pool.sh at $RUN_DATE >> $LOG_FILE
echo "============================================" >> $LOG_FILE
flush_shared_pool.sql file, doing actual work
oracle@my_server:~>% less /software/oracle/oracle/scripts/flush_shared_pool.sql
ALTER SYSTEM FLUSH SHARED_POOL;
EXIT;
.set_profile file.
It is needed because crontab is not aware of environment variables.
oracle@my_server:~>% less .set_profile
export ORACLE_HOME=/software/oracle/111
export ORACLE_SID=ora_inst
export PATH=$PATH:/software/oracle/111/bin
No comments:
Post a Comment