OraMatt: YABAOracle

Yet Another Blog About Oracle

, , ,

SGA Fiddling…

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

Navigation

About

I’m Matt and I do Oracle things.