通过Shell脚本得到数据库的基本信息

 # Get Oracle Version
 echo 'Oracle Version  is :[ '`sqlplus -v|sed '/^$/d'|awk '{print $3}'`]

 # Get Oracle Instance List
 echo 'Oracle Instance is :[ '`ps -ef|grep smon|grep -v grep|awk  '{gsub("ora_smon_","",$8)}{print $8}'|grep -v awk` ]

 for tmp_db in `ps -ef|grep smon|grep -v grep|awk  '{gsub("ora_smon_","",$8)}{print $8}'|grep -v awk`
 do
 echo $tmp_db

 #Get Oracle Home
 echo 'ORACLE_HOME    is :[' $ORACLE_HOME ' ]'

 # Get database role
 su -l oracle <<EOS
 export ORACLE_SID=${tmp_db}

  $ORACLE_HOME/bin/sqlplus -s / as sysdba <<EOF
  set pages 0
  set feedback off
  select 'Oracle  status  is :[ '||decode(substr(version,1,2),11,
  (select decode(database_role,'PHYSICAL STANDBY',(decode(open_mode,'READ ONLY WITH APPLY','11g ADG','11g DG NEED_CHECK')),'PRIMARY','11g PRIMARY') from v\\\$database),
  10,
  (select decode(database_role,'PHYSICAL STANDBY',(decode(open_mode,'MOUNTED','10g DG NORMAL','10g DG NEED_CHECK')),'PRIMARY','10g PRIMARY') from v\\\$database)
  )||' ]' DG_MODE
  from v\\\$instance;
  select decode(value,null,'Oralce SPFILE  is :[ DISABLED ]','Oracle SPFILE  is :[ ENABLED ]') from v\\\$parameter where name='spfile';
  select decode(upper(value),'FALSE','Oralce DGBroker is :[ DISABLED ]','Oracle DGBroker is :[ ENABLED ]') from v\\\$parameter where name='dg_broker_start';
  select decode(force_logging,'NO','FORCE LOGGING  is :[ DISABLED ]','FORCE LOGGING  is :[ ENABLED ]') from v\\\$database;
 EOF
 EOS
 done

 # Check HugePage enabled
 # Check for the kernel version
 KERN=`uname -r | awk -F. '{ printf("%d.%d\n",$1,$2); }'`
 # Find out the HugePage size
 HPG_SZ=`grep Hugepagesize /proc/meminfo | awk {'print $2'}`
 # Start from 1 pages to be on the safe side and guarantee 1 free HugePage
 NUM_PG=1
 # Cumulative number of pages required to handle the running shared memory segments
 for SEG_BYTES in `ipcs -m | awk {'print $5'} | grep "[0-9][0-9]*"`
 do
    MIN_PG=`echo "$SEG_BYTES/($HPG_SZ*1024)" | bc -q`
    if [ $MIN_PG -gt 0 ]; then
      NUM_PG=`echo "$NUM_PG+$MIN_PG+1" | bc -q`
    fi
 done
 case $KERN in
    '2.4') HUGETLB_POOL=`echo "$NUM_PG*$HPG_SZ/1024" | bc -q`;
          grep vm.hugetlb_pool /etc/sysctl.conf|awk  '{print $0==""?"HugePage Status :[ DISABLED ]":"HugePage Status is :[ ENABLED ]"}';;
    '2.6') grep vm.nr_hugepages /etc/sysctl.conf|xargs echo $1|awk  '{print $0==""?"HugePage Status is :[ DISABLED ]":"HugePage Status is :[ ENABLED ]"}';;
    *) echo "Unrecognized kernel version $KERN. Exiting." ;;
 esac

猜你喜欢

转载自www.linuxidc.com/Linux/2016-08/134301.htm