###To get all the database instance name on a consolidated Unix/Linux server:
#because some of the RAC-ONE-NODE db instance has ckpt process name like this ora_ckpt_dbname_1, we have to deal with the third "_" and forth field:
ps -ef|grep ckpt|awk '{print $8}'|awk ' FS="_" { print $3"_"$4}'|sed 's/_$//g'|egrep -ve "^$|+ASM|-MGMT"
###To find any running db instance missing in /etc/oratab:
for db in `ps -ef|grep ckpt|grep -v -i asm|grep -v -i "MGMTDB"|awk '{print $8}'|awk ' FS="_" {print $3"_"$4}'|sed 's/_$//g'|sort`
do
export ORACLE_SID=$db
if ! grep -w $ORACLE_SID /etc/oratab 1>/dev/null ; then
echo $ORACLE_SID
else
:
fi
done
###To loop through the databases on the consolidated server: for example, to find RAC db
export ORAENV_ASK=NO
for db in `ps -ef|grep ckpt|awk '{print $8}'|sort|awk ' FS="_" { print $3"_"$4;}'|sed 's/_$//g'|egrep -ve "^$|+ASM|-MGMT"`
do
export ORAENV_ASK=NO; export ORACLE_SID=$db; . oraenv;
export db=`echo $ORACLE_SID|awk -F "_" '{print $1;}'`
echo "ORACLE_SID "$ORACLE_SID
echo "DB "$db
#srvctl config database -d $db|egrep -e "Database unique name:|RAC|Candidate servers"
srvctl config database -d `echo $db|sed 's/76[0-9]$/76/g'`|egrep -e
"Database unique name:|RAC|Candidate servers"
done###To search a particular ora-xxxxx error in the trace file folder and copy the matched files to a folder:
for i in `grep -ic ora-12850 SOA*m0*.trc|awk -F ":" '{if ($2>0) print $1}'`;
do
cp $i jsun;
done
###To search a pattern "[*]"
while read p; do awk -F "[" '/[.*]/ {print $2;}' $p; done < filelist
###To find if the oracle instance is started up in rc.d script: (key is to use grep -w to find exact match)
find_sid=`ps -ef | grep pmon_${ORACLE_SID}|grep -v grep|awk '{print $9}'|cut -d _ -f 3|grep -w "${ORACLE_SID}"| wc -l`
if [ ${find_sid} = 1 ]; then
echo ${ORACLE_SID}" is running."
continue
fi
Comments
Post a Comment