Alternative à la DBConsole

Posted by on 7/sept/2011 in A la Une, Bases de données, Oracle | 0 comments

Alternative à la DBConsole

Dans de nombreux cas, les entreprises ne peuvent pas se « payer » la version Enterprise d’Oracle et sont réduites à utiliser une version « Standard ».

Non seulement la version « Standard » vous bride en matière de puissance CPU mais elle vous empêche catégoriquement d’utiliser certaines fonctionnalité du moteur de base de données.

Outre les importantes limitations physiques et logiques imposées telles :

  • Deux sockets maximum par serveur
  • Pas de DataGuard autorisé
  • Pas d’Oracle Streams autorisé (même si ce n’est pas vraiment un cadeau…)
  • Pas de sauvegarde incrémentales Rman possibles
  • Pas de flashback database possible
  • Pas de partitionnement autorisé
  • Onglets de la DBConsole restreints
  • Pas de … pas de … etc  (et il en reste …)

Autrement dit, la pluspart des innovations apportées en 10g sont interdites en version « standard ». Au delà de ces nombreuses limitations (non exhaustives), Oracle vous interdit de plus l’achat et/ou l’utilisation des Options Pack (qui sont pourtant installés par défaut lorsque vous installez une version « standard » ce qui est limite illégal de la part d’Oracle) , à savoir :

  • Diagnostick Pack
  • Tunnig Pack
  • Configuration Pak

Autrement dit, la DBConsole ne vous sert à quasiment à   »rien« , l’onglet « Performances » est grisé, et vous devez, comme toute version antérieure à 10g, confectionner vous même tous les outils de surveillance…

Pour pallier à ce manque, il existe d’autres solutions, du moins en terme de monitoring et de l’analyse des performances de votre database, de tunning. Nous allons nous intéresser dans cet article au remplacement des Packs Oracle « Diagnostic » et « Tunning » pour lesquels d’exellentes alternatives existent, notamment « IGNITE for Oracle » de la société Confio.

1) Introduction:

Vous aurez malheureusement le loisir de constater que ce logiciel est loin d’être gratuit mais il constitue malgré tout une économie énorme comparée au prix de l’Entreprise Oracle selon votre configuration matérielle.

Le logiciel s’installe avec une facilité déconcertante. Celui-ci est basé sur un référentiel stoqué dans une database Oracle (pas celle qu’il faut surveiller évidement) et d’un accès aux vues systèmes de la database à surveiller afin de stoquer régulièrement l’état de l’ensemble des objets de l’instance.

Remarque: Ignite a une très grande possibilité d’historisation des données, de fabrication de report, etc, et vous permettra rapidement de fournir les éléments nécessaires dont les développeurs auront besoin pour corriger un problème de performance par exemple.

Ignite est joignable par l’intermédiaire d’un site web qui vous permettra d’observer l’activité de votre database en direct ou sur des périodes données.

Afin de rendre totalement indépendante la prise de mesure de l’état de la machine qui héberge votre database à surveiller, nous allons installer le référentiel Ignite (un simple schéma Oracle) sur une autre database située sur une autre machine que la machine de production. Ainsi, même en cas de grave problème sur la machine de production, vous pourrez tout de même interroger Ignite.

2) Périmètre

2.1) Introduction:

Dans notre exemple, la machine Oracle de production est une machine physique de 64G de RAM et 12 cores, c’est en fonction de cette « puissance » que vous paierez plus ou moins cher votre licence Ignite, un peu à la sauce Oracle, mais en moins cher évidement…

Pour ne pas rajouter au coût, nous avons choisi d’installer le produit sur une openSuSE 11.3 (32bits) qui exploitera un référentiel basé sur ce même OS à travers un Oracle XE 10gR2. Le tout tournera sous une VM installée sur le serveur de votre choix (des solutiçons de virtualisations de tout niveau existent maintenant dans toutes les entreprises), cette solution ne coûtera donc pas un sous de plus que le prix du produit lui même.

2.2) Téléchargements:

Donc : l’OS + Oracle Express + le produit, c’est tout !

Remarque: Oracle XE, de par ses limitations, vous impose une limitation à 1 core et 1024M de RAM pour calibrer votre VM, c’est pour cela que il n’existe pas de version 64bits, n’installez donc pas un OS 64 bits, vous ne rencontrerez que des problèmes inutiles…

3) Installation & configuration

3.1) Installation de OpenSuSE 11.3 32b

L’installation de l’openSuSE 11.3 ne nécessite strictement aucune compétence particulière, suivez l’assistant d’installation qui vous guidera de façon parfaite.

Une petite recommandation sur le partitionnement cependant:

  • / <= 6Gb: largement suffisant pour la racine (n’installez rien de superflu)
  • /var/log <= 2Gb: pour ne pas géner les applications en cas de logging excessif
  • /usr/lib/oracle <= 3Gb: par défaut le répertoire d’install de Oracle XE
  • /datas <= 5Gb: vos archives (max 1gb) et votre database (max 4gb en XE)

3.2) Installation de « OraRUN »

Ce package disponible pour les SLESS et les openSuSE est optionnel mais est bien pratique, il vous paramètrera par défaut toutes les préconisations Oracle liées à votre OS, inutile d’aller mettre les mains dans sysctl.conf, etc.

Vous pouvez ne pas l’installer et configurer vous mêmes les prérequis, à vous de voir.

> rpm -ivh /datas/downloads/orarun.rpm
> chkconfig 35 oracle
> rcoracle start

3.3) Installation de Oracle XE

Si vous n’avez pas installé OraRun comme indiqué précédement:

a - Créez un user « oracle » ayant pour home dir « /home/oracle » et appartenant aux deux groupes à créer également que sont « dba » et « oinstall ».

b - Affectez le user oracle et le groupe dba à /home/oracle.

c - editez le fichier /etc/profile et ajoutez à la fin les lignes suivantes:

export ORACLE_BASE=/usr/lib/oracle
export ORACLE_HOME=$ORACLE_BASE/xe/app/oracle/product/10.2.0/server
export ORACLE_SID=XE
export PATH=$PATH://usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin

Installez la version téléchargée de XE telle avec :

> rpm -ivh /datas/downloads/oracle-xe-10.2.0.1-1.0.i386.rpm
> ...
> /etc/init.d/oracle-xe  configure
> ... (laissez toutes les options par défaut)
> /etc/init.d/oracle-xe  start

Vérifiez que votre database est correctement installée et que votre instance est disponible :

> su  -  oracle
> [oracle] : sqlplus  /  as sysdba
> SQL*Plus: Release 10.2.0.1.0 - Production on Wed Mar 2 15:21:00 2011
> Copyright (c) 1982, 2005, Oracle.  All rights reserved.
> Connected to:
> Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
> SQL> select INSTANCE_NAME, DATABASE_STATUS from v$instance;
>
> INSTANCE_NAME    DATABASE_STATUS
> ---------------- -----------------
> XE               ACTIVE
Tout va alors bien, on peut continuer  !

3.4) Installation de Ignite

3.4.1) Installation du web server IGNITE

L’installation des binaires Ignite ne pose aucun problème, il faut simplement les exécuter tel que et accepter (presque) toutes les options par défaut, sauf peut être celle du répertoire de destination…  :

cd /datas/downloads
tar -xvf ignite_pi_tf_8_1_118.tar
chmod +x ./ignite_pi_tf_8_1_118/ignite_pi_tf_8_1_118_installer.sh
./ignite_pi_tf_8_1_118_installer.sh

Verifying archive integrity... All good.

Uncompressing Ignite PI 8.0.110 installation files.........

Before installing and running Ignite PI, you must agree to the following

software license agreement (EULA).  Press [enter] to view the license...

. . . . . 

Do you agree with the license? [y/n]:y

Searching for java executable... This may take a few minutes, please be patient.

Found java executable at [/usr/lib/jvm/jre/bin/java].

Please note the following before proceeding:

Ignite PI is a web server.  You should install Ignite PI on a server that:

   - has network connectivity to the Repository and the monitored databases, and

   - is available at all times (a laptop might not be a good choice), and

    - is not running applications where performance is critical.

Proceed with installation? [Y/n]:y

This script will extract Ignite PI into a directory of your choosing.

The directory must already exist and must be writable by the current user.

Ignite PI will be extracted into its own version-specific directory under

the directory you enter below.  For example, if you enter "/home/ignite"

as the destination directory, Ignite PI will be extracted into the directory

"/home/ignite/pi_8_0_110".

Enter destination directory for Ignite PI [/datas/downloads]: /datas/ignite

Extracting Ignite PI to directory [/datas/ignite].......................................................................done.

Please view the readme.txt for startup and upgrade instructions.  The readme

will explain how to get Ignite PI running.  Once it is running, an Ignite PI

wizard will walk you through creating a Repository and monitoring database

instances. The readme.txt is located at: /datas/ignite/pi_8_0_110/readme.txt

Would you like to view the readme.txt now? [Y/n]:n

Ignite PI installation complete.

Ensuite si tout va bien, vous devrez démarrer le démon http IGNITE avec la commande :

> nohup   /data/ingite/pi_8_0_110/startup.sh   &

Vérifiez que le fichier /data/ignite/pi_8_0_110/nohup.out se termine bien par la phrase « Exiting script after webserver launched », c’est que tout se passe bien pour le moment: un démon http écoute sur le port 8123, vérifiez par sécurité en exécutant la commande :

netstat -len | grep :8123

Si ceci est ok, vous pouvez utiliser votre navigateur web préféré pour commencer à configurer le référentiel Ignite en vous connectant sur « http://<ip_du_serveur_ignite>:8123″, vous verrez alors les écrans suivants apparaitres et à valider :

a) Veuillez « valider » votre intention de créer un repository pour les futures mesures:

b) Validez vous vous désirez créer ce repository dans une base Oracle:

c) Indiquez les paramètres nécessaires pour se connecter à la database Oracle qui contiendra le repository (ORACLE_SID, ip du serveur, port du listener) ainsi que le password du user « system » de cette database (et pas le pass du users « sys »!) :

d) Entrez un USERNAME / password  pour le schéma du repository :

e) Dans quel TableSpace le repository doit-il être stoqué ? (et quel est son tbs temporaire?) :

f) Voici un récapitulatif de vos choix, lise le avec soin et validez pour passer à la suite :

g) Vérifiez que tout s’est bien passé en parcourant la log et en validant que « Respository has been created », sinon, inutile d’aller plus loin et trouvez le problème (et la solution ;-) )

Cliquez ensuite sur « Register database to monitor » pour configurer la database à surveiller.

h) Dans notre cas, évidement, sélectionnez « Oracle » comme type de database, puis continuez :

i) Définissez l’ensemble des paramètres nécessaires pour accèder à l’instance à monitorer (méthode de connexion : ici EazyConnect, hostname et port (1521) puis login / password de DBA (pas le user « sys » par sécurité) :

Puis cliquez sur « Next »…

j) Il faut, pour monitorer la database cible, créer un use Oracle sur celle ci, pour cela, il faudra donc préciser le tablespace par défaut du user (nous vous recommendaons de créer un tb spécifique pour ce schéma afin de ne pas géner les autres users de production de la database) ainsi que son tablespace temporaire (le tbs temp standard suffit) :

Cliquez sur « Next » !!

k) Il faut ensuite donner le mot de passe du user sys de votre database à monitorer, simplement pour qu’un user soit créé et qu’on lui donne le droit de visualiser les tables et vues de sys, ce que seul sys peut donner :

Et Next encore une fois!

l) Choisissez le tablespace sur lequel votre user sera autorisé à écrire sur la base distante. Evitez de lui donner le droit d’écrire sur les tbs de production, de toute façon, très peut d’informations seront stoquées dans ce schéma, je vous conseille de pointer vers le tbs users standard:

m) Vérifiez que tout est ok avant de cliquer définitivement sur « Register Database Instance » :

n) Si vous voyez apparaitre à la fin de la log écran « The database instance has been registrer and is now beeing monitored » c’est que tout est ok, sinon … cherchez l’erreur :-)

o) Cliquez sur le bouton « Licence Managmnent » pour renseigner votre licence (Permanente ou Trial), sinon Ignite ne vous autorisera pas à visualiser les stats des données récoltées, ce qui est un peu dommage …

Notez que la version Trial est limitée à 30jours, que toutes les fonctionnalités n’apparaissent pas, et que vous serez obligé d’installer une autre version de Iginte si vous obtenez une licence permanente, par souci de lutte contre le piratage, la version capable d’accepter des licences permanentes ne figure pas en téléchargement libre mais un login/password pour la télécharger vous est communiqué dès que vous avez acquis la licence :

p) Renseigner votre clé, et cliquez sur « Add Licence »

4) Utilisation

Utilisez maintenant votre browser préféré et allez à http://<ip_de_votre_machine>:8123, donnez le mot de passe du user ignite de votre repository créé en 3.d) et vous verrez alors appraitre l’interface IGNITE qui vous donnera un apperçu temps reel de la cpu de votre machine Oracle, des IO physiques et logiques, des différentes opérations qui ont été consomatrices heure par heure, …

Vous pouvez consulter la partie « CURRENT » qui est le temps réel pour la partie « TREND » qui est l’archivage, pour regarder à postérieure le comportement de votre database.

Vous verrez que le produit est très complet et qu’il vous permet de retourner dans tous les sens les indicateurs de perfs (les users, les programmes, les temps, les waits, les requetes, …)

A vous de découvrir le produit !

Leave a Reply