[SQL Server] Eléments d’audit du database mirroring…

Ce petit billet, comme son titre l’indique, aborde quelques elements d’audit du database mirroring

… via le Database Mirroring Monitor

L’utilisation de l’outil Database Mirroring Monitor (Moniteur de mise en miroir de base de données, en version française) permet d’auditer la session miroir. Il est accessible via clic-droit sur la base de données principale, au sein de l’explorateur d’objets de SQL Server Management Studio (SSMS) :

  • Accès au Database Mirroring Monitor :

  • Interface d’accueil (onglet Etat) :

Au sein du Database Mirroring Monitor, vous pouvez définir des seuils d’alerte (trouvables dans l’onglet Avertissements) via un clic sur le bouton Définir les seuils…

  • Interface des avertissements :

  • Interface de configuration des seuils :

… via le Perfmon : quelques compteurs utiles pour le database mirroring

  • Du côté du serveur (de la base) principale :
Compteur Description
SQLServer:Database Mirroring:Log Bytes Sent/sec Nombre de transactions (en octets) envoyées par seconde.
SQLServer:Database Mirroring:Log Send Queue KB Nombre total de kiloctets de transactions n’ayant pas été encore envoyées vers le miroir.
SQLServer:Database Mirroring:Transaction Delay Délai d’attente d’une transaction non-validée.
SQLServer:Databases:Transactions/sec Nombre de transactions par secondes.
SQLServer:Databases:Log Bytes Flushed/sec Taux d’écritures d’enregistrements transactionnels vers le disque.
Logical Disk:Disk Write Bytes/sec Taux d’écritures sur le disque.
  • Du côté du serveur (de la base) secondaire (miroir) :
Compteur Description
SQLServer:Database Mirroring:Redo Bytes/sec Nombre d’octets du journal restaurés par progression par seconde sur la base de données miroir.
SQLServer:Database Mirroring:Redo Queue KB Nombre total de Ko de transactions qui doivent encore être appliqués à la base de données miroir pour la restaurer par progression. Envoi à la base de données principale à partir de la base de données miroir.
Logical Disk:Disk Write Bytes/sec Taux d’écritures sur le disque.

… via quelques requêtes utiles

  • Liste des certificats existants et de leurs informations (requête pouvant être exécutée sur chaque serveur concerné) :
SELECT c.name,
     c.subject,
     c.issuer_name,
     c.pvt_key_encryption_type_desc,
     c.start_date,
     c.expiry_date
FROM sys.certificates c
GO
  • Liste des endpoints existants et de leurs informations (requête pouvant être exécutée sur chaque serveur concerné)  :
SELECT e.name,
     e.protocol_desc,
     e.type_desc,
     e.role_desc,
     e.state_desc,
     t.port,
     e.is_encryption_enabled,
     e.encryption_algorithm_desc,
     e.connection_auth_desc
FROM sys.database_mirroring_endpoints e
     JOIN sys.tcp_endpoints t ON e.endpoint_id = t.endpoint_id
GO
  • Liste des bases de données d’une instance SQL Server concernées par une session de database mirroring, état et informations sur le partenaire (requête pouvant être exécutée sur chaque serveur concerné) :
SELECT d.name,
     d.database_id,
     m.mirroring_role_desc,
     m.mirroring_state_desc,
     m.mirroring_safety_level_desc,
     m.mirroring_partner_name,
     m.mirroring_partner_instance,
     m.mirroring_witness_name,
     m.mirroring_witness_state_desc
FROM sys.database_mirroring m JOIN sys.databases d ON m.database_id = d.database_id
WHERE mirroring_state_desc IS NOT NULL
GO
  • Informations sur les witnesses d’une instance SQL Server (à exécuter sur le serveur witness) :
SELECT principal_server_name,
     mirror_server_name,
     database_name,
     safety_level_desc
FROM sys.database_mirroring_witnesses
GO
  • Liste des dernières connexions sur la session de database mirroring et informations sur le nombre total d’octets envoyés par la connexion et l’état de l’ouverture de session en provenance de ladite connexion (requête pouvant être exécutée sur chaque serveur concerné) :
SELECT principal_name,
     login_time,
     connect_time,
     login_state_desc,
     is_send_flow_controlled,
     total_bytes_sent,
     total_bytes_received
FROM sys.dm_db_mirroring_connections
GO

Notez que la colonne is_send_flow_controlled est intéressante dans la mesure où elle permet de savoir si les envois sur le réseau ont été retardés en raison du contrôle de flux sur le réseau et parce que ce dernier est occupé. Si la valeur est à 1, il y a eu du retard.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s