Just a little script to mess with the SGA
#!/bin/bash
#===================================================================================
#
# FILE: Increase_SGA
#
# USAGE: Run it..
#
# DESCRIPTION: Script to increase SGA
# OPTIONS:
# REQUIREMENTS:
# AUTHOR: Matt D
# CREATED: August 20, 2012
# VERSION: 1.0
# EUL : THIS CODE IS OFFERED ON AN “AS-IS” BASIS AND NO WARRANTY, EITHER EXPRESSED OR IMPLIED, IS GIVEN.
# THE AUTHOR EXPRESSLY DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED.
# YOU ASSUME ALL RISK ASSOCIATED WITH THE QUALITY, PERFORMANCE, INSTALLATION AND USE OF THE SOFTWARE INCLUDING,
# BUT NOT LIMITED TO, THE RISKS OF PROGRAM ERRORS, DAMAGE TO EQUIPMENT, LOSS OF DATA OR SOFTWARE PROGRAMS,
# OR UNAVAILABILITY OR INTERRUPTION OF OPERATIONS.
# YOU ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USE THE SOFTWARE AND ASSUME ALL RISKS ASSOCIATED WITH ITS USE.
#
#
#
#
#
#
#===================================================================================
clear screen
function start_up()
{
clear screen
echo "#########################################################"
echo "# This will increase your SGA or Rollback Change #"
echo "#########################################################"
echo
echo
echo "################################################"
echo "# #"
echo "# What would you like to do ? #"
echo "# #"
echo "# 1 == Increase SGA #"
echo "# #"
echo "# 2 == Rollback Change #"
echo "# #"
echo "# 3 == QUIT #"
echo "# #"
echo "################################################"
echo
echo "Please enter in your choice: > "
read whatwhat
}
function setSID()
{
echo "################################################"
echo "What is the Oracle SID of the Oracle database >"
read DBNAME
echo "################################################"
export ORACLE_SID=${DBNAME}
}
function setORAHome()
{
# Test for Oracle Home setting
if test "${ORACLE_HOME+set}" != set ; then
echo "ORACLE_HOME is not set"
echo "Please set your ORACLE_HOME and rerun"
else
echo "$ORACLE_HOME is set"
fi
}
function get_SGA()
{
setSID
setORAHome
# Get the current SGA size
sqlplus -s / as sysdba <<EOF
set heading off;
set timing off;
set feedback off;
spool /tmp/SGA_Size.txt
select sum(value) SGA_Size from v$sga;
EOF
}
function increaseSGA()
{
setSID
setORAHome
#Get the user's home directory
export PUTHERE=`echo $HOME`
echo "################################################"
echo "What is the new size of the SGA you would like? "
echo " You can enter size in K, M, or G "
echo "################################################"
read NEWSGA
echo "################################################"
sqlplus -s / AS SYSDBA <<EOF
set heading off;
set timing off;
set feedback off;
create pfile='${PUTHERE}/.init_backup.ora' from spfile;
alter system set sga_target=0 scope=spfile;
alter system set pga_aggregate_target=0 scope=spfile;
alter system set memory_max_target=${NEWSGA} scope=spfile;
alter system set memory_target=${NEWSGA} scope=spfile;
shutdown abort;
startup;
EOF
echo "################################################"
echo "Your system should now be running with new SGA "
echo "################################################"
}
function rollback_changes()
{
setSID
setORAHome
# Get the user's home directory
export PUTHERE=`echo $HOME`
if test ! -f ${PUTHERE}/.init_backup.ora
then
echo "No ${PUTHERE}/.init_backup.ora exists"
echo "Exiting"
exit 1
else
export ORACLE_SID=${DBNAME}
sqlplus -s / AS SYSDBA <<EOF
set heading off;
set timing off;
set feedback off;
shutdown abort
startup pfile='${PUTHERE}/.init_backup.ora';
create spfile from pfile='${PUTHERE}/.init_backup.ora';
shutdown abort;
startup;
exit
EOF
fi
}
function do_nothing()
{
echo "################################################"
echo "You don't want to do nothing...lazy..."
echo "So...you want to quit...yes? "
echo "Enter yes or no"
echo "################################################"
read DOWHAT
if [[ $DOWHAT = yes ]]; then
echo "Yes"
exit 1
else
echo "No"
work_time
fi
}
function work_time()
{
start_up
case $whatwhat in
1)
increaseSGA
;;
2) rollback_changes
;;
3)
do_nothing
;;
esac
}
# Work time!!!
work_time
Leave a comment