Lorsqu'aucune ressource n'est passée en paramètre, le script affiche les informations sus-mentionnées.
Par contre, si on passe une ressource en paramètre, le script affiche juste le statut de cette dernière.
# 29-03-2012 - Creation
initiale - Par Herve Etche
# 15-06-2012 - Ajout de la
section des voting disks - Herve Etche
# Ce script affiche le
statut general des ressources du cluster et les derniers backups de l'OCR et de
l'OLR si on ne lui passe aucun parametre
#Il affiche aussi les
informations concernant les voting disks.
# S'il y a une ressource
passee en parametre, alors il affiche les details concernant la ressource en
question
# Exemple de parametre: resource_script ora.asm -t (affiche seulement le statut de la ressource ora.asm) --
En supposant que resource_script est le nom donne au script
#!/usr/bin/ksh
HOST_NAME=`hostname -s`
GRID_HOME=$(cat
/etc/oratab | awk -F: '/^\+ASM/{print $2}') #Recuperer le GRID_HOME a partir du
fichier /etc/oratab
CRSD_PID=`ps -ef|grep crsd.bin|grep
-v grep|awk '{print $2}'` #Le PID du process crsd
if [ $CRSD_PID ]; then #si
le pid du process crsd existe, cela signifie que le clusterware est demarre
STATUS_CRS=`$GRID_HOME/bin/crsctl stat res ora.asm -t|head -1|cut -d ':'
-f1`
if
[ $STATUS_CRS != "CRS-4535" ]; then #Sinon impossible de communiquer
avec le Cluster Ready Services (crs en cours de demarrage)
if [[ $# -eq 0 ]]; then #Aucune ressource
n'est passee en parametre
#Afficher le status general des
ressources sous forme tabulaire
$GRID_HOME/bin/crsctl stat res -t
#Afficher
le dernier backup de l'OCR (Oracle Cluster Registry)
printf '\033[31m' #couleur rouge
echo -e "\nLes backups de l'OCR
sont effectues sur le MASTER du cluster."
printf '\033[0m' #Annuler couleur
rouge
A_OCR_MAXDATE=`$GRID_HOME/bin/ocrconfig -showbackup auto|awk
'{print($2,$3)}'|sort -r|head -1` #Date et heure du dernier backup auto
M_OCR_MAXDATE=`$GRID_HOME/bin/ocrconfig -showbackup manual|awk
'{print($2,$3)}'|sort -r|head -1` #Date et heure du dernier backup manuel
A_MNODE=`$GRID_HOME/bin/ocrconfig
-showbackup auto|grep -m 1 "$A_OCR_MAXDATE"|cut -d ' ' -f1` #Master
lors du dernier backup auto
A_ERROR=`echo $A_MNODE|cut -c1-4`
M_MNODE=`$GRID_HOME/bin/ocrconfig
-showbackup manual|grep -m 1 "$M_OCR_MAXDATE"|cut -d ' ' -f1` #Master
lors du dernier backup manuel
M_ERROR=`echo
$M_MNODE|cut -c1-4`
printf
'\033[4m' #Souligner phrase
echo "Backup Automatique (chaque
4h):"
printf '\033[0m' #Annuler souligner
phrase
if [ $A_ERROR = "PROT" ];
then #S'il n'existe pas de backup auto
printf '\033[0;32m' #Couleur verte
echo "Il n'existe aucun backup
automatique de l'OCR"
printf '\033[0m' #Annuler couleur
verte
else
echo "Le master au moment du
dernier backup automatique etait: "$A_MNODE
echo -e "Le dernier backup
automatique de l'OCR, effectue sur \""$A_MNODE\"
"est:"
printf '\033[0;32m' #Couleur verte
$GRID_HOME/bin/ocrconfig
-showbackup auto|grep -m 1 "$A_OCR_MAXDATE" #Affichage du dernier
backup auto
printf '\033[0m' #Annuler couleur
verte
fi
printf '\033[4m' #Souligner phrase
echo "Backup Manuel:"
printf '\033[0m' #Annuler souligner
phrase
if [ $M_ERROR = "PROT" ];
then #S'il n'existe pas de backup manuel
printf '\033[0;32m' #Couleur verte
echo "Il n'existe aucun backup
manuel de l'OCR"
printf '\033[0m' #Annuler couleur
verte
else
echo "Le master au moment du
dernier backup manuel etait: "$M_MNODE
echo -e "Le dernier backup
manuel de l'OCR, effectue sur \""$M_MNODE\" "est:"
printf '\033[0;32m' #Couleur verte
$GRID_HOME/bin/ocrconfig
-showbackup manual|grep -m 1 "$M_OCR_MAXDATE" #Affichage du dernier
backup manuel
printf '\033[0m' #Annuler couleur
verte
fi
echo -e "\n"
#Afficher le dernier backup de l'OLR
(Oracle Local Registry) du noeud a partir duquel le script est lance
printf '\033[31m' #couleur rouge
echo "Les backups de l'OLR sont
effectues localement sur chaque noeud du cluster."
printf '\033[0m' #Annuler couleur
rouge
OLR_MAXDATE=`$GRID_HOME/bin/ocrconfig
-local -showbackup|awk '{print($2,$3)}'|sort -r|head -1` #Date et heure du
dernier backup de l'olr
LNODE=`$GRID_HOME/bin/ocrconfig -local
-showbackup|awk '{print $1}'|sort -r|head -1` #Utiliser LNODE et non
"hostname" pour s'assurer de l'existence ou pas d'un backup
L_ERROR=`echo $LNODE|cut -c1-4`
if
[ $L_ERROR = "PROT" ]; then #S'il n'existe pas de backup de l'OLR
printf '\033[0;32m' #Couleur verte
echo -e "Il n'existe aucun
backup de l'OLR sur le noeud local \"`hostname -s`\"\n"
#Utiliser "hostname" car LNODE ici contient une erreur
printf '\033[0m' #Annuler couleur verte
else
echo -e "Le dernier backup de
l'OLR, effectue sur le noeud local \""$LNODE\" "est:"
printf '\033[0;32m' #Couleur verte
$GRID_HOME/bin/ocrconfig -local
-showbackup|grep -m 1 "$OLR_MAXDATE" #Affichage du dernier backup de
l'OLR
printf '\033[0m' #Annuler couleur
verte
echo -e "\n"
fi
#Information sur les voting disks
nb_voting=`$GRID_HOME/bin/crsctl query css votedisk|tail -1|awk '{print
$2}'` #nombre de voting disks
printf
'\033[31m' #couleur rouge
echo "Les donnees des voting
disks sont automatiquement sauvegardees dans l'OCR a chaque changement de
configuration."
printf '\033[0m' #Annuler couleur
rouge
echo -e "Il existe \033[0;32m$nb_voting\033[0m voting disk(s)"
nb=1
while [ $nb -le $nb_voting ]
do
statut=`$GRID_HOME/bin/crsctl query css votedisk|sed 's/^ //g'|grep
^[0-9]|grep -m 1 $nb.|awk '{print $2}'`
diskgrp=`$GRID_HOME/bin/crsctl query css votedisk|sed 's/^ //g'|grep
^[0-9]|grep -m 1 $nb.|cut -d '[' -f2|cut -d ']' -f1`
disk=`$GRID_HOME/bin/crsctl query css
votedisk|sed 's/^ //g'|grep ^[0-9]|grep -m 1 $nb.|cut -d '(' -f2|cut -d ':'
-f2|cut -d ')' -f1`
if [ $diskgrp ]; then
echo -e "Le voting disk numero \033[0;32m$nb\033[0m, situe dans le
diskgroup \033[0;32m$diskgrp\033[0m, disque \033[0;32m$disk\033[0m, a un statut
\033[0;32m$statut\033[0m."
else
echo -e "Le voting disk
numero \033[0;32m$nb\033[0m, situe dans le disque \033[0;32m$disk\033[0m, a un
statut \033[0;32m$statut\033[0m."
fi
nb=$(( $nb + 1 ))
done
echo -e "\n"
else
#Une ressource est passee en parametre
#Afficher seulement le status de cette
derniere
$GRID_HOME/bin/crsctl stat res "$@"
fi
else #Clusterware en cours de demarrage donc
impossible de communiquer avec le crs malgre que le process crsd.bin existe
echo -e
"\n*******************************************************************"
printf '\033[4m' #Souligner phrase
echo "Statut des ressources du
cluster:"
printf '\033[0m' #Annuler souligner
phrase
echo "Le clusterware est en cours de
demarrage sur le noeud local!"
echo "Veuillez patienter ou lancer
la commande a partir d'un autre noeud."
echo -e
"*******************************************************************\n"
fi
else #Pas de process crsd,
donc le clusterware n'est pas demarre
echo -e
"\n*************************************************"
echo " Le clusterware n'est pas demarre
sur ce noeud !"
echo -e
"*************************************************\n"
fi
find
$GRID_HOME/log/$HOST_NAME/client/ocrconfig* -user $USER -type f -mtime +15
-exec rm {} \; #Efface les fichiers log generes par la commande ocrconfig
datant de plus de 15 jours
Exemple de résultat attendu sans paramètre:
[oracle@srvhost1 ~]$ ./resource_script.sh
--------------------------------------------------------------------------------
NAME TARGET STATE
SERVER
STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE
srvhost1
ONLINE ONLINE
srvhost2
ora.FRA.dg
ONLINE ONLINE
srvhost1
ONLINE ONLINE
srvhost2
…
…
Les backups de l'OCR sont effectues sur le MASTER du cluster.
Backup
Automatique (chaque 4h):
Le
master au moment du dernier backup automatique etait: srvhost1
Le
dernier backup automatique de l'OCR, effectue sur "srvhost1" est:
srvhost1 2012/06/21 13:55:11
/ora01/app/grid/grid_11g/cdata/crs11gr2/backup00.ocr
Backup
Manuel:
Le
master au moment du dernier backup manuel etait: srvhost2
Le
dernier backup manuel de l'OCR, effectue sur " srvhost2" est:
srvhost2 2012/05/10 15:12:30 /ora01/app/grid/grid_11g/cdata/crs11gr2/backup_20120510_151230.ocr
Les backups de l'OLR sont effectues localement sur chaque
noeud du cluster.
Le
dernier backup de l'OLR, effectue sur le noeud local "srvhost1" est:
srvhost1 2012/04/30 12:07:40 /ora01/app/grid/grid_11g/cdata/srvhost1/backup_20120430_120740.olr
Les donnees des voting disks sont automatiquement
sauvegardees dans l'OCR a chaque changement de configuration.
Il existe 1
voting disk(s)
Le
voting disk numero 1, situe dans le
diskgroup OCRDG, disque DISK_D01, a un statut ONLINE.
[oracle@srvhost1 ~]$
Avec des paramètres:
--Exemple: Rechercher toutes les ressources contenant le mot "inst" c'est à dire les instances enregistrées dans le clusterware.
[oracle@ srvhost1 ~]$ ./resource_script -w
"NAME co inst" -t
--------------------------------------------------------------------------------
NAME
TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.db1.db11.inst
1 ONLINE
ONLINE srvhost1
ora. db1. db12.inst
1 ONLINE
ONLINE srvhost2
ora.db2.db21.inst
1 ONLINE
ONLINE srvhost1
ora.db2.db22.inst
1 ONLINE
ONLINE srvhost2
ora.db3.db31.inst
1 ONLINE
ONLINE srvhost1
ora.db3.db32.inst
1 ONLINE
ONLINE srvhost2
[oracle@
srvhost1 ~]$
Hope it helps...
Aucun commentaire:
Enregistrer un commentaire