Mise en œuvre d'Historical Server


1- Introduction

Pour pouvoir analyser et archiver les diverses évolutions d'un ou plusieurs serveur ASE et notamment en termes de performance, Historical Server complément de Monitor Server est l'outil parfait. Monitor Server permet d'accéder aisément aux compteurs internes de SQL Server et Historical Server est présent pour accumuler les résultats de Monitor Server au cours d'une période de temps donnée. L'avantage essentiel de ces deux serveurs est le faible impact sur le SQL Server audité (moins de 5% de charge induite).

2- La mise en œuvre

Pour la mise en œuvre d'Historical Server il faut créer le fichier de démarrage comme ci-dessous (fichier RUN_%). Il faut donc lui indiquer un certains nombres de paramètres comme le répertoire ou vont être consignées les informations par exemple.

#!/bin/sh
#
# Backup Server name:   <server_hist>
# Error log path: /home/sybase/XXXXXXX/<server_hist>.log
# Maximum number of network connections:  25
# Maximum number of server connections:   20
# Multibuf executable path:   /home/sybase/ASE/bin/sybmultbuf
#
/home/sybase/ASE/bin/histserver \
-S<server_hist> \
-I/home/sybase/interfaces \
-l/home/sybase/XXXXXXXXXX/<ficher_de_log>.log \
-D/home/sybase/XXXXXXXXXX/<répertoire_de_résultat> \

Historical Server comme tout autre serveur doit être référencé dans le fichier interfaces de Sybase avec un port d'écoute.

3- Le démarrage et la connexion

Pour démarrer historical server il faut utiliser la même syntaxe que n'importe quel démarrage d'un serveur SYBASE c'est-à-dire :

startserver -f <nom_du_fichier_RUN>

En ce qui concerne la connexion il suffit d'utiliser la commande isql de la façon suivante :

isql -U<login> -P<password> -S<server_hist>

4- Démarrer une session

La commande suivante permet d'établir une nouvelle session de consignation :

hs_create_recording_session nom_monitor_server,
   intervalle_échantillonnage_en_s,[nom_ répertoire_résultat,]
   [début_yy/mm/dd_hh:mm ,] [fin_yy/mm/dd,][niveau_protection,]
   [Gestion_erreur,] [script]

Exemple :

hs_create_recording_session test_mon, 30, /home/sybase/test_mon_rep,
   "01/01/2002 14:30", "01/01/2002 18:00", public, continue, no_script

Dans cet exemple, une session test_mon est créée avec un intervalle d'échantillonnage de 30 secondes, les résultats iront dans le répertoire /home/sybase/test_mon_rep, la période d'échantillonnage va du 01/01/2002 à 14 h 30 jusqu'à 18 h du même jour avec un niveau de protection publique. Le serveur ne s'arrêtera que s'il y a des erreurs fatales et ne génèrera pas de script.

5- Création des vues

La commande suivante permet de créer une vue :

hs_create_view nom_vue,
   nom_élément_données_1, stats_éléments_données_1
   [, nom_élément_données_2, stats_éléments_données_2,...]

Exemple :

hs_create_view vue_test_cache,
   "Page Hit Percent", "Value for Sample",
   "Procedure Hit Percent", "Value for Sample"

Dans cet exemple, une vue est créée avec le nom vue_test_cache, car on va observer le pourcentage d'utilisation réussie du cache de procédure et du cache de données.

6- Filtres et alarmes

Un filtre limite la portée des données collectées pour un élément de la vue. La commande suivante permet de créer un filtre qui sera applicable sur une vue :

hs_create_filter nom_vue, nom_élément_données,
   stats_éléments_données, type-filtre, spec_value

Exemple :

hs_create_filter process_bloque_test,"Time Waited on Lock","Value for Sample",
   range,low,10

Dans cet exemple, un filtre est créé sur la vue process_bloque_test. Ce filtre concerne le temps d'attente suite à une demande de positionnement d'un verrou, on ne prendra en compte que les temps supérieurs excédant 10 secondes.

Une alarme est déclenchée suite à un dépassement d'une valeur seuil pour un élément d'une vue. La commande suivante permet de créer une alarme sur un élément d'une vue donnée :

hs_create_alarm nom_vue, nom_élément_données,
   stats_élément_données, action_alarme,
   données_action_alarme, valeur_alarme

Exemple :

hs_create_alarm process_bloque_test,
   "Time Waited on Lock",
   "Value for Sample",
   log, fichier_lock_log, 50

Dans cet exemple, une alarme ne se déclenche que si le temps d'attente atteint la valeur seuil de 50 secondes. Dans ce cas le dépassement sera consigné dans le fichier fichier_lock_log.

7- Initialisation d'une session

L'initialisation d'une session peut être réalisée que si cette dernière session existe et qu'au moins une vue a été créée. Ce n'est qu'à partir de l'initialisation que la session de consignation peut démarrer. La commande suivante permet d'initialiser une session :

hs_initiate_recording

Il est à noter qu'une fois la session initialisée, il n'est plus possible de rajouter ni vue, ni filtre ni alarme.

8- Terminer une session

La session peut être interrompue pendant sa définition, ou en annulant la session avant qu'elle ne débute ou en terminant la session en cours d'exécution. La commande suivante permet d'effectuer permet de terminer la session :

hs_terminate_recording session_id [, option_suppression]

Exemple :

hs_terminate_recording 3, delete

Dans cet exemple, la session de consignation active n°3 se termine et il y a suppression de tous les fichiers associés à cette même session.

9- Autres commandes

La commande hs_list niveau [, restriction] permet de recenser des informations sur des sessions passées et courantes.
La commande hs_status option  permet d'afficher des informations d'états.
La commande hs_shutdown arrête le serveur.


Annexe

Historique

Version Date Commentaires
1.0 07/2002 Version initiale

Liens

Adaptive Server Enterprise Monitor 15.0.2, Historical Server Users Guide