今天写了个Shell脚本,虽然实现的功能不多,但是个人感觉是一个好的开始,架子出来了,后面要补充的细节加进来就逐步完善了。
这个脚本的运行效果如下:
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