博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过shell脚本得到数据库的基本信息(一)
阅读量:2445 次
发布时间:2019-05-10

本文共 3414 字,大约阅读时间需要 11 分钟。

今天写了个脚本,虽然实现的功能不多,但是个人感觉是一个好的开始,架子出来了,后面要补充的细节加进来就逐步完善了。
这个脚本的运行效果如下:
OS     Version  is :[ RHEL_6.3 ]
Oracle Version  is :[ 11.2.0.3.0]
Oracle Instance is :[ dgtest ]
dgtest
ORACLE_HOME     is :[ /U01/app/oracle/product/11.2.0.2/db_1  ]
Oracle  status  is :[ 11g PRIMARY ]
Oracle SPFILE   is :[ ENABLED ]
Oralce DGBroker is :[ DISABLED ]
FORCE LOGGING   is :[ DISABLED ]
HugePage Status is :[ DISABLED ]
这个脚本会对大部分的信息进行一个概览,我想在这些内容的基础上添加更多的经验所得。
运行这个脚本,好与不好一目了然,当然现在的功能还是有距离,慢慢改进吧。
值得说道的是“Oracle status”的地方,会判断主备库,区分了10g,11g的不同特点。
当然后面的大篇幅脚本是关于HugePage的,这个地方想补充出建议的值来,所以暂且这样。
脚本内容如下:
. /home/oracle/.bash_profile
# Get OS Version
echo  'OS     Version  is :[' `cat /etc/issue|sed  -e 's/Red Hat Enterprise Linux Server release/RHEL/g' -e 's/Red Hat Enterprise Linux AS release/RHEL/g' -e 's/ /_/g' -e 's/_(Tikanga)//g' -e 's/_(Santiago)//g' -e 's/_release//g' -e 's/_(Final)//g' -e 's/Nahant_Update_//g'|head -1` ]
# 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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23718752/viewspace-2123419/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23718752/viewspace-2123419/

你可能感兴趣的文章
如何在iPhone,iPad和Mac上禁用Safari经常访问的起始页
查看>>
vscode变假期不提示_12个假期的家庭技术支持提示
查看>>
将电视频道徽标添加到Windows 7 Media Center
查看>>
改善Google Chrome中的YouTube视频观看
查看>>
配置您的计算机以备份到Windows Home Server
查看>>
解决Windows Home Server Toolkit的连接问题
查看>>
如何在Windows 10中打印照片
查看>>
如何在离开时自动检测巢穴
查看>>
ubuntu显示管理器_如何在Ubuntu的文件管理器中显示导航栏而不显示面包屑
查看>>
关于极客
查看>>
自定义日历_如何在网络上自定义Google日历的通知
查看>>
hue功能_Philips Hue的“新实验室”部分中的最佳实验功能
查看>>
微软office在线文档_如何使用Microsoft Office密码保护文档和PDF
查看>>
如何在SHIELD Android TV上调整过扫描
查看>>
outlook 禁用不安全_如何在Outlook中禁用删除确认对话框
查看>>
找到丢失的磁贴跟踪器后如何获取通知
查看>>
PlayStation 4 Pro上的“升压模式”是什么?
查看>>
android 更改软键盘_如何在Android上更改Google键盘的主题
查看>>
kodi 缓存文件夹_如何将Kodi图稿与视频存储在同一文件夹中
查看>>
windows隐藏磁盘_如何在Windows的磁盘清理工具中启用隐藏选项
查看>>