Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
19 octobre 2008 7 19 /10 /octobre /2008 18:48
Bonsoir,

Allons y pour l'installation de STATSPACK. J'ai presque envie de dire que normalement peu d'entre vous devraient lire cet article, car à mon sens, il devrait déjà être installé sur toutes vos bases ORACLE...
On peut même se demander pourquoi il n'est pas installé avec ORACLE par défaut. Surement pour faire travailler le service "consulting" de ORACLE ou d'autres sociétés en tout genre.

 Alors tout d'abord a quoi sert Statspack ? C'est un ensemble de scripts qui va collecter de facçn manuelle ou automatique un grand nombre d'informations qui seront très utile pour vous aider à résoudre des problèmes de performance.

Pour résoudre des problèmes (quels qu'ils soient) encore faut-il les comprendre et pouvoir comparer deux situations.

Ou est-ce que je veux en venir en disant cela ?

Certains utilisent statspack à partir du moment ou l'on signale des problèmes de performances.
Avoir un rapport à un instant t va peut être nous donner des informations sur des requetes couteuses, mais si l'utilitaire n'a pas été installé et configuré des le départ nous ne pourrons pas COMPARER deux situations et cela est bien dommage !

En effet, la comparaison de deux périodes (une ou tout allait bien, et celle ou ca part en vrille) permet de comprendre ce qui se passe. ex: Augementation du nombre de transaction, d'accès disques, modification de paramètre systeme...

Installation de STATSPACK:

Toutes les manipulations suivantes on été effectuées dans un environnement windows avec la version 10.2.0.1 d'ORACLE.

Rien de plus simple, il suffit de vous connecter en SYSDBA avec SQL+ sur votre serveur ORACLE.


SQL > connect / as sysdba
SQL > @?\rdbms\admin\spcreate.sql



Remarque: En fait ce script va lui même lancer trois scripts:
  • spcusr.sql ==> Création de l'utilisateur PERFSTAT et accorder droits nécessaires
  • spctab.sql ==> Création des tables
  • spcpkg.sql ==> création du package

Et voila c'est terminé !!! (ou presque)


 Durant l'execution de ce script ORACLE va vous mettre à contribution en vous posant 3 questions :
  1. Vous devez indiquer un mot de passe pour le USER PERFSTAT qui va être creé par le script.
  2. Indiquer un tablespace pour l'emplacement des objets (Tables,Indexes,...) de PERFSTAT. Par défaut sous ORACLE 10, le tablespace SYSAUX est proposé.
  3. Indiquer le nom d'un tablespace temporaire. Par défaut le tablespace TEMP est proposé.

Remarque : Sous ORACLE 9, le tablespace SYSAUX n'existe pas. Il est alors conseillé de créer un tablespace dédié pour le user PERFSTAT.

Une fois l'installation terminée, il est fortement conseillé d'aller jeter un oeil (pas trop loin) dans le fichiers de log.
Pour l'info, il y a trois fichier de log (et 1 par script)

  • spcusr.lis
  • spctab.lis
  • spcpkg.lis 

Le script appelant uniquement un SPOOL sans chemin, les fichiers de logs se sont retrouvés à la racine du disque contenant mon ORACLE_HOME (c:\ dans mon cas).
 
Attention : En cas d'erreur il est préférable de desinstaller Statspack et de recommencer l'installation.
Pour cela rien de plus simple...
On se connecte à la base via SQL+ en SYS DBA


SQL >  @?\rdbms\admin\spdrop.sql


 Si vous disposez des mots de passe et des accès nécessaire aux serveurs ORACLE, il ne vous faudra pas plus de 3 minutes pour installer STATPACK.
Et ensuite ...

Comme indiqué au départ Statspack sert à collecter des informations qui nous seront bien utile pour comprendre pourquoi notre base préférée bat de l'aile.

Prendre un cliché:

On se connecte (toujours avec SQL+) sous le user PERFSTAT fraichement crée.


SQL > CONNECT PERFSTAT/xxxxxx
SQL > execute statspack.snap; 


 

Petit rappel : L'idée est quand même d'automatiser la prise de clichés et donc on peut utiliser le petit script ci-dessous pour programmer une prise de cliché toutes les trentes minutes.


 DECLARE X NUMBER;
 BEGIN
    SYS.DBMS_JOB.SUBMIT
  (
   job
=> X,
   what
=> 'statspack.snap;',
   next_date
=> SYSDATE+30/1440,
   interval
=> 'SYSDATE+30/1440',
   no_parse
=> FALSE
  );
  END;
 /


C'est bien beau de collecter de l'information... mais à un moment donnée il serait bon de pouvoir la restituer.
Encore une fois, rien de bien compliqué
Toujours notre ami SQL + , on se connecte avec l'utilisateur PERFSTAT.


SQL > connect PERFSTAT/xxxxxx
SQL > @?\rdbms\admin\spreport.sql


 
La on obtient la liste des clichés avec le SNAP Id et la date et heure du cliché. Ce qui peut être pratique.. Le jour ou l'on vous dit que "ca a ramé" le 12 entre 15heures et 16 heure, il suffira d'identifier les snap id correspondants.

Pour faire un rapport, il faut deux clichés.
On réponds à la question posé:

Entrez une valeur pour begin_snap:
Entrez une valeur pour end_snap :
Entrez une valeur pour report_name : Il faut en fait indique chemin + nom (ex:c:\temp\report.log)


Et voila, y a plus qu'a lire le rapport !!!!

Comme le titre de l'article s'appelle "STATSPACK (1) - Installation", on va s'arreter la.
Vous savez maintenant 
  • Installer Statspack
  • Créer un cliché manuel
  • Programmer une prise de clichés.
  • Obtenir un rapport

Ca n'est pas forcement suffisant, mais c'est un bon début.
Pour vous donner une petite idée de ce qui reste, je pense faire au moins deux autres articles sur le sujet;

  • Statspack (2) - Administation et configuration
  • Statspack (3) - Description du rapport (Et oui y a boire & manger la dedans).


Remarques : Pour ceux qui pratiquent l'anglais, vous pouvez également lire le fichier spdoc.txt qui se trouve  à l'emplacement suivant: %ORACLE_HOME%\rdbms\admin\

Et encore mieux le chapitre le chapitre consacré à Statspack par la documentation (en ligne et gratuite d'ORACLE)
http://download.oracle.com/docs/cd/B10501_01/server.920/a96533/statspac.htm#PFGRF019

Il s'agit de la documentation d'ORACLE 9. En effet en version 10 et 11, il est plus souvent question de AWR (Automatic Workload Repository). Le seul soucis, c'est que ce bel outil d'ORACLE nécessite une license supplémentaire.  


LAO. 

Partager cet article
Repost0

commentaires

D
<br /> en tout ka vous mavez vraiment aider et je vous remercie beaucoup. et souhaiterai que publier tres repidement statspack 2 et 3<br /> <br /> <br />
Répondre
Y
<br /> Bonjour,<br /> Déjà merci pour l'article.<br /> <br /> Par contre j'ai une petite question, pourquoi vous installez statpack sur une 10.20.1. alors que normalement il y a déjà AWR ?<br /> <br /> Est ce juste pour pouvoir réaliser les tests et l'article ?<br /> <br /> Merci<br /> <br /> Yannick<br /> <br /> <br />
Répondre
L
<br /> Bonjour,<br /> <br /> AWR est en effet disponible à partir de la version 10 d'oracle....Mais son utilisation nécessite un cout supplémentaire... Il peut donc toujours être interessant (si l'on désire être en règle vis à<br /> vis d'ORACLE) de pouvoir installer Statspack.<br /> <br /> LAO.<br /> <br /> <br />
H
Super sympa ce petit tutoriel. Je suis impatient de voir la suite.<br /> <br /> Hervé.
Répondre