Conde Bond Post

Sólo existe un tipo de conocimiento, aquel que se transmite.

Utilitats de Monitorització de Base de Dades Oracle I


Des de la versió 10g la base de dades Oracle©  incorpora el repositori automàtic de càrrega de treball (AWR, acrònim angles d’Automatic Workload Repository) on s’emmagatzenen estadístiques que posteriorment podrem utilitzar per diverses tasques com la resolució d’incidències o l’ajustament del propi motor de base de dades o les instruccions SQL que s’hi executen.

De manera automàtica i si no hem modificat els paràmetres que el fabricant proporciona per defecte, cada hora la base de dades obtindrà una instantània (SNAPSHOT) per emmagatzenar totes aquestes estadístiques en l’AWR.
En el cas de voler executar una instàntania de manera manual i/o puntual -a discreció- per obtenir estadístiques en un moment concret podem fer sservir aquest escrit executable:

#/bin/sh
prog=$(basename $0)

# Fitxer crea_instantania_bd.sh       Autor: Xavier Picamal

# Comprovem si tenim informat el parametre
# sino esta informat prenem el valor del
# parametre de base de dades STATISTICS_LEVEL

if [[ $# -gt 1 ]] ; then
echo "   "
echo "US: "
echo "   "
echo "     $prog <NivellEstadistiques>            "
echo "   "
echo "On <NivellEstadistiques> es opcional i pot  "
echo "els valors del parametre de base de dades   "
echo "STATISTICS_LEVEL."
echo "Sense parametre es recupera el valor de     "
echo "STATISTICS_LEVEL de la Base de dades.       "
echo "       "
echo "USAGE: "
echo "   "
echo "     $prog <NivellEstadistiques>            "
echo "   "
echo "Where <NivellEstadistiques> is optional and "
echo "you can use the possibles values of the     "
echo "STATISTICS_LEVEL Database Parameter.        "
echo "When executed without param we obtain the   "
echo "value of STATIST_LEVEL from the database    "
exit 0
elif [[ -z $1 ]] ; then
echo "$prog Obtenint el nivell d Estadistiques en Base de Dades"
# Cerquem el valor del parametre en Base de Dades
exeSQL01=$($ORACLE_HOME/bin/sqlplus -S / as sysdba << EOS
SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF
SELECT value
FROM v\$parameter
WHERE name='statistics_level';
EXIT;
EOS
)

# Comprovem el resultat execucio SQL
if [[ -z $exeSQL01 ]]; then
echo "$prog ERR: No hi ha coincidencies en BD "
echo "$prog Fi execucio "
exit -1
elif [[ $(echo $exeSQL01 | grep "ORA-"  | wc -l) -gt 0 ]] ; then
echo "$prog ERR: En recuperar el valor del parametre STATISTICS_LEVEL en BD "
echo "             $exeSQL01 "
echo "$prog Fi execucio "
exit -1
else
param=$exeSQL01
fi
else
param=$(echo $1 | tr '[:lower:]' '[:upper:]')
fi

echo "$prog Executant SNAPSHOT amb parametre ${param} "
# Executem Snapshot de Base de dades
exeSQL02=$($ORACLE_HOME/bin/sqlplus -S / as sysdba << EOS
SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF
BEGIN
DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT('$param');
END;
/
EXIT
EOS
)

# Comprovem el resultat execucio SQL
if [[ $(echo $exeSQL02 | grep "ORA-"  | wc -l) -gt 0 ]] ; then
echo "$prog ERR: En executar SNAPTSHOT amb STATISTICS_LEVEL $param "
echo "             $exeSQL02 "
echo "$prog Fin execucio "
exit -1
else
echo "$prog Fin execucio"
fi

exit 0

Tant de bo us sigui útil.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: