#!/usr/bin/ksh SBINS=$SBIN/scripts TMP=$SBIN/tmp # ....................................................................................... do_it_by_sed() { #------------------------------------------------------------------------------- # Alternated method if sys is not available #------------------------------------------------------------------------------- #-- Script: instance_variables.sql #-- Purpose: to list the values of the instance variables #-- #-- Copyright: (c) 1998 Ixora Pty Ltd #-- Author: Steve Adams #__ apapted to smenu by By. Polarski #------------------------------------------------------------------------------- TMP_FIL=$SBIN/tmp/get_var$$.txt sqlplus -s "$CONNECT_STRING" </dev/null 2>&1 spool $TMP_FIL select 'X\$KVII' struct, kviitag variable, kviival value, kviidsc description from sys.x\$kvii union all select 'X\$KVIT', kvittag, kvitval, kvitdsc from sys.x\$kvit union all select 'X\$KVIS', kvistag, kvisval, kvisdsc from sys.x\$kvis / spool off ; EOF echo OLD=TOTO cat << EOF MACHINE $HOST - ORACLE_SID : $ORACLE_SID Page: 1 Date - `date +%A' '%d' '%B' '%H:%M:%S` Username - SYS - Show instance variables STRUCT VARIABLE VALUE DESCRIPTION ------ -------- ---------- ----------------------------------------------------- EOF sed -e '/selected\.$/d' -e '/^---.*--$/d' -e '/^STRUCT/d' $TMP_FIL | while read a b c d do a=`echo $a | awk '{ printf ("%-7.7s",$1) }'` b=`echo $b | awk '{ printf ("%7.7s", $1) }'` c=`echo $c | awk '{ printf ("%10.10s",$1) }'` if [ $a = $OLD ];then echo " ${b}${c} ${d}" else echo "${a}${b}${c} ${d}" fi OLD=$a done echo if [ -f $TMP_FIL ];then rm $TMP_FIL fi } # ....................................................................................... function help { cat < -val : Show Os stats taken from AWR repository for the last periods. Default is 1 -val : gives results in values rather than percentages sts -l : show system log mode sts -log : show system supplemental logging. User 'tbl -log' for table supplemental logging sts -fl : List flash logs sts -def : Show default database properties sts -dif : Show parameter differences sts -lim : List resource limit sts -opt : List most of relevants parameters about the optimizer sts -s : List system statistics sts -si : show When system statistics were taken sts -sl : List gather_database_stats run history sts -rac : Rac : list instances status sts -t : Convert SCN to timestamp sts -use : Show options with licences used sts -v : Show instance variables sts -urc : List no logging operations sts -bw [-rn ] : Background process event sts -pwd : Generate a script to preserve all users password sts -h : this help Note: -rn : Limit display to first rows, default is 30 EOF exit } # ....................................................................................... # Main # ....................................................................................... if [ -z "$1" ];then help fi NSNAP=1 ROWNUM=30 while [ -n "$1" ] do case "$1" in -bw ) CHOICE=BW ;; -l ) CHOICE=STS ;; -log ) CHOICE=SUP_LOG;; -fl ) CHOICE=FLASH_LOG;; -t ) CHOICE=CVT_SCN; SCN=$2;shift;; -rac ) CHOICE=RAC_LIST ;; -opt ) CHOICE=OPT_LIST ;; -dif ) CHOICE=DIFF ;; -def ) CHOICE=DEFAULT ;; -lim ) CHOICE=RESOURCE_LIMIT ;; -pwd ) CHOICE=PSWD ;; -s ) CHOICE=SYSSTAT ;; -si ) CHOICE=SYSSTAT_INFO ;; -sl ) CHOICE=GDS ;; -val ) VAL=TRUE;; -urc ) CHOICE=URC;; -v ) CHOICE=VAR;; -aw ) CHOICE=SAR; if [ -n "$2" ];then NSNAP=$2 shift fi;; -use ) CHOICE=USE ;; -rn) ROWNUM=$2 ; shift ;; * ) help ;; esac shift done . $SBIN/scripts/passwd.env . ${GET_PASSWD} $S_USER $ORACLE_SID if [ "x-$CONNECT_STRING" = "x-" ];then echo "could no get the password of $S_USER" if [ "$CHOICE" = "VAR" ];then do_it_by_sed fi exit 0 fi if [ "$CHOICE" = "PSWD" ];then TMP=$SBIN/tmp FOUT=$TMP/alter_user_passwd_$ORACLE_SID.txt > $FOUT echo " Create user script " echo " =======================" ( sqlplus -s "$CONNECT_STRING" <> $FOUT echo >> $FOUT echo " Preserve user passwd for later use" echo " ==================================" ( sqlplus -s "$CONNECT_STRING" <> $FOUT cd $TMP echo " " cat $FOUT echo " " exit elif [ "$CHOICE" = "BW" ];then #--------------------------------------------------------------------------------- # date : 2005 Nov 15 # Author : Donald K. Burleson ( derived from a script of Steve Adams ) # ( but DKB seems to have a short memory ) # adapted to smenu by By Bernard Polarski #--------------------------------------------------------------------------------- TITTLE="System Backround events" SQL="set lines 190 pages 66 column c1 heading 'System|ID' format 9999 column c2 heading 'Background|Process' format a10 justify l column c3 heading 'Event name' format a40 column c4 heading 'Total|Waits' format 999,999,999 column c5 heading 'Time|Waited|(in secs)' format 999,999,999 column c6 heading 'Nbr |timouts' format 9999999 justify c column c7 heading 'Avg|Wait|secs' format 99990.999 column c8 heading 'Max|Wait|(in secs)' format 99999 break on c1 on report select c1,c2,c3,c4,c6,c6,c7,c8 from ( select b.sid c1, decode(b.username,NULL,c.name,b.username) c2, a.event c3, a.total_waits c4, round((a.time_waited / 100),2) c5, a.total_timeouts c6, round((average_wait / 100),3) c7, round((a.max_wait / 100),2) c8, rank() over ( partition by decode(b.username,NULL,c.name,b.username) order by a.total_waits desc) as topr from sys.v\$session_event a, sys.v\$session b, sys.v\$bgprocess c where a.event NOT LIKE 'DFS%' and a.event NOT LIKE 'KXFX%' and a.sid = b.sid and b.paddr = c.paddr and a.event NOT IN ( 'lock element cleanup', 'pmon timer', 'rdbms ipc message', 'smon timer', 'SQL*Net message from client', 'SQL*Net break/reset to client', 'SQL*Net message to client', 'SQL*Net more data to client', 'dispatcher timer', 'Null event', 'io done', 'parallel query dequeue wait', 'parallel query idle wait - Slaves', 'pipe get', 'PL/SQL lock timer', 'slave wait', 'virtual circuit status', 'WMON goes to sleep') $ORDER ) where topr <= $ROWNUM ; " elif [ "$CHOICE" = "URC" ];then TITTLE="List No logging operations" SQL=" set linesize 125 set head on COL fName FORMAT A55 HEADING 'Datafile' COL tbs FORMAT A30 HEADING 'Tablespace' COL uc FORMAT 999999999999 HEADING 'Scn' COL fd FORMAT A20 HEADING 'Date' SELECT a.fNAME, a.uc, TO_CHAR (a.fdate,'DD-MON-YYYY HH:MI:SS') fd , b.name tbs from ( SELECT NAME fname, UNRECOVERABLE_CHANGE# uc, UNRECOVERABLE_TIME fdate, ts# FROM V\$DATAFILE where UNRECOVERABLE_CHANGE# > 0 order by fdate desc) a, sys.ts\$ b where a.ts# = b.ts# and rownum <=30 / " # ................................................................................. elif [ "$CHOICE" = "VAR" ];then TITTLE="Show instance variables" SQL="set lines 190 pages 65 column variable format a16 column description format a60 break on struct select 'X\$KVII' struct, kviitag variable, kviidsc description, kviival value from sys.x\$kvii union all select 'X\$KVIT', kvittag, kvitdsc, kvitval from sys.x\$kvit union all select 'X\$KVIS', kvistag, kvisdsc, kvisval from sys.x\$kvis / " elif [ "$CHOICE" = "GDS" ];then SQL="col operation format a30 col start_time for a22 col duration format a18 break on operation on report set lines 124 pages 66 select operation,to_char(start_time,'YYYY-MM-DD HH24:MI:SS')start_time, (end_time-start_time) day(1) to second(0) as duration from dba_optstat_operations order by start_time desc;" elif [ "$CHOICE" = "SYSSTAT" ];then SQL=" set lines 190 pages 66 set feed off COL statistics_name FORMAT A30 HEADING 'Statistics' COL system_status FORMAT A10 HEADING 'Status' COL statistics_view_name FORMAT A24 heading 'Corresponding view' COL activation_level FORMAT A10 heading 'Activation|Level' COL description FORMAT A73 heading 'Description' select statistics_name,system_status, statistics_view_name , activation_level, description from v\$statistics_level ; prompt set feed on prompt System statistics setting select pname, pval1 value from sys.aux_stats\$ where sname = 'SYSSTATS_MAIN'; " elif [ "$CHOICE" = "STS" ];then sqlplus -s '/ as sysdba' <