Rapports AWR sur 10 noeuds RAC 10g

J’imagine que ce script ne servira pas à tout le monde mais, si vous avez un RAC 10 noeuds et si vous avez les licences diagnostic pack, voici comment générer les 10 rapports AWR d’un coup ! Sinon, vous n’aurez pas de problème à l’adapter à bos besoins.

Etape 1 : Créer un snapshot

sqlplus / as sysdba

exec dbms_workload_repository.create_snapshot

exit;

Etape 2 : Lister les snapshots

Vous pouvez ensuite lister les snapshots avec le script ci-dessous :

sqlplus / as sysdba

alter session set nls_date_format='DD/MM/YYYY HH24:MI:SS';
col begin_interval_time format a22

accept listdays prompt "Enter number of days you want to query the snapshots (e.g. 1) : "

select s.dbid, s.snap_id,
to_char(s.begin_interval_time,
'DD/MM/YYYY HH24:MI') begin_interval_time
from dba_hist_snapshot s,
v$database d,
v$instance i
where s.dbid=d.dbid
and i.instance_number=s.instance_number
and begin_interval_time>=
(sysdate- &&listdays)
order by snap_id;

exit;

Etape 3 : générer les 10 rapports

Enfin, le script ci-dessous génère tous les rapports AWR simultanement

for i in 1 2 3 4 5 6 7 8 9 10; do
sqlplus /nolog <<EOF
connect /as sysdba
@?/rdbms/admin/awrrpti
text
652855321
$i
1
9094
9096

exit
EOF
done

Remplacez les 3 valeurs en rouge successivement par :

  • Le DBID de la base de données
  • Le snapshot de début de vos rapports
  • Le snapshot de fin de vos rapports

Etape 4 : une autre requête

Une autre requête utile si vous avez des serveurs d’applications devant votre base de données (Okay, c’est du basique mais ça n’empêche pas de s’en servir), ne serait-ce que pour voir se les connexions sont bien équilibrées entre les nœuds de votre cluster :

sqlplus / as sysdba

select inst_id, count(*)
from gv$session
where username is not null
group by inst_id
order by inst_id;