Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Administration
Administration Forum d'entraide sur l'administration du dataserver, via SSM ou ligne de commande, les tables système, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/08/2011, 19h56   #1
Membre chevronné
 
Avatar de alassanediakite
 
Homme Alassane Diakité
Conseil - Consultant en systèmes d'information
Inscription : août 2006
Messages : 539
Détails du profil
Informations personnelles :
Nom : Homme Alassane Diakité
Âge : 34
Localisation : Mali

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information

Informations forums :
Inscription : août 2006
Messages : 539
Points : 604
Points : 604
Envoyer un message via Yahoo à alassanediakite
Par défaut Etape de création d'une alerte

Salut
Je m'entraine actuellement à l'administration de sqlserver à l'aide du livre de W Stanek.
Dans une base de donnée (bdgestionecole), je crée une table Tmessage (idmsg, msg).
J'ai créer une alerte d'événements SQL Server
  • nom 'essai'
  • numéro d'erreur '8134' (division par zéro)
  • travail exécuté: 'essai'
  • étape du travail: nom= 'essai' commande sql= 'insert into Tmessage(msg) values('ceci est une alerte')'
Lorsque j'exécute...
Code :
1
2
3
USE bdgestionecole
go
SELECT 1/0 --division par zéro
...je ne reçois rien dans ma table.
Par ailleurs, j'ai lu dans l'aide que SQLAGENT lis les LOG pour déclencher les alerte. Est-ce à dire qu'il faut "loger" l'erreur pour déclencher l'alerte? Si oui, comment?
Merci d'avance.
__________________
Le monde est trop bien programmé pour être l’œuvre du hasard…
alassanediakite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 09h48   #2
Membre chevronné
 
David BAFFALEUF
Inscription : février 2008
Messages : 612
Détails du profil
Informations personnelles :
Nom : David BAFFALEUF
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 612
Points : 746
Points : 746
8134 appartient à une famille d'erreurs qui ne sont renvoyées qu'au client, donc par conséquent elles ne sont pas loggées par défaut dans le fichier d'erreur de SQL Server. Comme par exemple l'erreur 208 (l'objet n'existe pas). Ces erreurs ne seront visibles que furtivement dans les ring buffers en utilisant une requête du type:
Code :
1
2
3
4
5
6
7
8
9
10
11
 
declare @ts_now bigint
SELECT @ts_now = ms_ticks FROM sys.dm_os_sys_info
SELECT dateadd(ms, -1 * (@ts_now - [timestamp]), GetDate()) AS EventTime, 
cast(convert(xml, record) AS char(8000)) AS record
FROM sys.dm_os_ring_buffers
WHERE ring_buffer_type='RING_BUFFER_EXCEPTION'
GO
 
(...)
<Record id="346" type="RING_BUFFER_EXCEPTION" time="780350953"><Exception><Task address="0x00F0AD48"/><Error>8134</Error><Severity>16</Severity><State>1</State><UserDefined>0</UserDefined></Exception><Stack><frame id="0">0X010CD548</frame><frame id="1">0X010CD996</frame><frame id="2">0X014BB567</frame><frame id="3">0X01050DA8</frame><frame id="4">0X01024083</frame><frame id="5">0X01024644</frame><frame id="6">0X0102298A</frame><frame id="7">0X010411FB</frame><frame id="8">0X01040EC3</frame><frame id="9">0X010067D3</frame><frame id="10">0X010068F9</frame><frame id="11">0X01006609</frame><frame id="12">0X010DAF6C</frame><frame id="13">0X010DAE8C</frame><frame id="14">0X010DAB54</frame><frame id="15">0X010DACF1</frame></Stack></Record>
Mais l'agent ne peut pas les capturer via le système d'alerte. Ca doit pouvoir se faire via les extended events (http://msdn.microsoft.com/en-us/libr...QL.100%29.aspx) à partir de SQL Server 2008.
__________________
David B.
dbaffaleuf est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/08/2011, 17h27   #3
Membre chevronné
 
Avatar de alassanediakite
 
Homme Alassane Diakité
Conseil - Consultant en systèmes d'information
Inscription : août 2006
Messages : 539
Détails du profil
Informations personnelles :
Nom : Homme Alassane Diakité
Âge : 34
Localisation : Mali

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information

Informations forums :
Inscription : août 2006
Messages : 539
Points : 604
Points : 604
Envoyer un message via Yahoo à alassanediakite
Salut et merci pour la réponse
En fait depuis hier je l'ais vu mais il me faut la traduire en français par google puis lire.
Pouvez-vous me dire comment "loger" ces erreurs ou me donner un numéro d'erreur "loger" par défaut et que je peux simuler.
D'ici là je cherche encore ailleurs.
__________________
Le monde est trop bien programmé pour être l’œuvre du hasard…
alassanediakite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 18h04   #4
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 724
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 724
Points : 6 845
Points : 6 845
En utilisant RAISERROR par exemple avec l'option LOG ou encore la procédure stockée système xp_logevent.

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/08/2011, 20h03   #5
Membre chevronné
 
Avatar de alassanediakite
 
Homme Alassane Diakité
Conseil - Consultant en systèmes d'information
Inscription : août 2006
Messages : 539
Détails du profil
Informations personnelles :
Nom : Homme Alassane Diakité
Âge : 34
Localisation : Mali

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information

Informations forums :
Inscription : août 2006
Messages : 539
Points : 604
Points : 604
Envoyer un message via Yahoo à alassanediakite
Salut
Je viens d'essayer avec raiserror. J'ai créer une messager d'erreur avec sévérité=23. Mais lorsque fais
Code :
raiserror (60000, 23,1) WITH log
je reçois deux lignes dans ma table comme si l'alerte est exécuté 2 fois.
Je continue les recherches.
__________________
Le monde est trop bien programmé pour être l’œuvre du hasard…
alassanediakite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2011, 12h22   #6
Membre chevronné
 
Avatar de alassanediakite
 
Homme Alassane Diakité
Conseil - Consultant en systèmes d'information
Inscription : août 2006
Messages : 539
Détails du profil
Informations personnelles :
Nom : Homme Alassane Diakité
Âge : 34
Localisation : Mali

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information

Informations forums :
Inscription : août 2006
Messages : 539
Points : 604
Points : 604
Envoyer un message via Yahoo à alassanediakite
salut et merci pour les réponses.
je pense que la double exécution vient du fait que j'ai créer une version française et anglaise de l'erreur, car avec uniquement la version anglaise je n'ai qu'une seule exécution.
@+
__________________
Le monde est trop bien programmé pour être l’œuvre du hasard…
alassanediakite est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h44.


 
 
 
 
Partenaires

Hébergement Web