État de la base de données

Microsoft.SQLServer.Windows.Monitor.Database.DBStatus (UnitMonitor)

Ce moniteur vérifie l'état de la base de données signalé par Microsoft SQL Server.

Knowledge Base article:

Résumé

Ce moniteur vérifie l'état de la base de données, comme indiqué par Microsoft SQL Server. Cette opération est effectuée en exécutant une requête sur la base de données master de l'instance SQL et en retournant l'état de la base de données. Si vous recevez une alerte de ce moniteur, une action est nécessaire pour remettre la base de données dans l'état opérationnel.

Causes

Un état défectueux indique que la base de données SQL Server n'est pas disponible actuellement. Tous les états hormis l'état EN LIGNE engendrent un état défectueux. Les états possibles sont décrits ci-dessous :

État de base de données SQL

Description

État d'intégrité

EN LIGNE

La base de données est accessible. Le groupe de fichiers principal est en ligne, mais il est possible que la phase d'annulation de la récupération n'ait pas été effectuée.

Sain

HORS CONNEXION

La base de données n'est pas disponible. Une base de données est mise hors connexion par une action explicite de l'utilisateur et reste dans cet état jusqu'à une nouvelle action de l'utilisateur. Par exemple, la base de données peut être mise hors connexion pour déplacer un fichier sur un nouveau disque. La base de données est ensuite ramenée en ligne une fois que le déplacement a eu lieu.

Critique

EN ATTENTE DE RÉCUPÉRATION

SQL Server a rencontré une erreur liée aux ressources pendant la récupération. La base de données n'est pas endommagée, mais des fichiers peuvent être manquants ou des ressources système limitées peuvent l'empêcher de démarrer. La base de données est indisponible. Une action de l'utilisateur est nécessaire pour résoudre l'erreur et permettre l'exécution du processus de récupération.

Critique

SUSPECT

Le groupe de fichiers primaire (au minimum) est suspect et peut être endommagé. La base de données ne peut pas être récupérée pendant le démarrage de SQL Server. La base de données n'est pas disponible. Une action de l'utilisateur est nécessaire pour résoudre le problème.

Critique

URGENCE

L'utilisateur a changé la base de données et défini l'état sur URGENCE. La base de données est en mode mono-utilisateur et peut être réparée ou restaurée. La base de données est marquée avec READ_ONLY, la journalisation est désactivée et l'accès est limité aux membres du rôle serveur fixe sysadmin. L'état URGENCE est principalement utilisé pour résoudre des problèmes. Par exemple, une base de données marquée comme étant suspecte peut être définie sur l'état URGENCE. Cela peut accorder à l'administrateur système un accès en lecture seule à la base de données. Seuls les membres du rôle serveur fixe sysadmin peuvent définir une base de données sur l'état URGENCE.

Critique

RESTAURATION

Un ou plusieurs fichiers du groupe de fichiers principal sont en cours de restauration, ou un ou plusieurs fichiers secondaires sont en cours de restauration hors connexion. La base de données est indisponible.

Critique

RÉCUPÉRATION

La base de données est en cours de récupération. Le processus de restauration est un état transitoire ; elle sera mise automatiquement en ligne si la récupération réussit. Si la récupération échoue, la base de données devient suspecte. La base de données n'est pas disponible.

Avertissement

Pour rechercher l'état exact qui a été signalé pour la base de données, examinez le contexte de l'alerte ou du changement d'état.

Résolutions

Vous pouvez tenter de remettre la base de données en ligne pour résoudre le problème.

Externe

Consultez les informations détaillées sur SQL Server à l'adresse :

https://msdn.microsoft.com/fr-fr/library/microsoft.sqlserver.management.smo.database.status.aspx

Paramètres remplaçables

Nom

Description

Valeur par défaut

Priorité d'alerte

Définit la priorité de l'alerte.

Normale

Gravité d'alerte

Définit la gravité de l'alerte.

Erreur

Activé

Active ou désactive le flux de travail.

Oui

Génère des alertes

Définit si le flux de travail génère une alerte.

Oui

Intervalle (en secondes)

Intervalle régulier (en secondes) auquel exécuter le flux de travail.

300

Heure de synchronisation

Heure de la synchronisation spécifiée selon un format de 24 heures. Peut être omise.

 

Délai d'expiration (secondes)

Spécifie la durée pendant laquelle le flux de travail est autorisé à s’exécuter avant d’être fermé et marqué comme ayant échoué.

200

Délai d’attente pour la connexion de base de données (secondes)

Le workflow échoue et enregistre un événement s’il ne peut pas accéder à la base de données pendant la période spécifiée.

15

Element properties:

TargetMicrosoft.SQLServer.Windows.Database
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Windows.MonitorType.Database.DBStatus
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL sur Windows : La base de données est hors connexion/en attente de récupération/suspecte/en état d'urgence
La base de données {2} dans l'Instance SQL Server {1} sur l'ordinateur {0} est hors connexion/en attente de récupération/suspecte/en état d'urgence.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Windows.Monitor.Database.DBStatus" Accessibility="Public" Enabled="true" Target="SqlDiscW!Microsoft.SQLServer.Windows.Database" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Windows.MonitorType.Database.DBStatus" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Windows.Monitor.Database.DBStatus.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Good" MonitorTypeStateID="Good" HealthState="Success"/>
<OperationalState ID="Bad" MonitorTypeStateID="Bad" HealthState="Error"/>
<OperationalState ID="NeitherGoodNorBad" MonitorTypeStateID="NeitherGoodNorBad" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<DatabaseName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>