J'ai une instance de base de données Amazon Relational Database Service (Amazon RDS) qui exécute Microsoft SQL Server. Je souhaite être averti dès qu'un événement de blocage se produit sur mon instance de base de données RDS.
Brève description
Lorsque le moniteur de blocage SQL Server détecte un événement de blocage, il choisit l'une des transactions comme victime. Le moniteur annule la transaction victime et émet le code d'erreur 1205 dans les journaux d'erreurs.
Pour résoudre ce problème, activez d'abord les indicateurs de trace de blocage 1222 et 1204 pour capturer les événements de blocage dans les journaux d'erreurs de SQL Server. Puis, publiez les journaux d’erreurs SQL Server sur Amazon CloudWatch Logs. Enfin, créez des alarmes CloudWatch et des notifications Amazon Simple Notification Service (Amazon SNS) qui envoient une alerte lorsqu'un événement de blocage se produit.
Résolution
Activer les indicateurs de trace via des groupes de paramètres RDS
Procédez comme suit :
Remarque : si vous disposez déjà d'un groupe de paramètres personnalisés, passez à l'étape 5.
- Ouvrez la console Aurora et RDS, puis dans le volet de navigation, choisissez Groupes de paramètres.
- Choisissez Créer un groupe de paramètres.
- Pour Famille de groupes de paramètres, choisissez la version et l'édition de SQL Server que vous souhaitez utiliser. Par exemple, SQL Server 2016 Enterprise Edition utilise sqlserver-ee-13.0.
- Saisissez un nom de groupe et une description, puis sélectionnez Créer.
- Sur la page Groupes de paramètres, sélectionnez le groupe.
- Choisissez Modifier les paramètres, puis sélectionnez 1204 et 1222.
- Remplacez les valeurs de 1204 et 1222 par 1.
- Choisissez Prévisualiser les modifications, puis cliquez sur Enregistrer les modifications.
- Dans le volet de navigation, sélectionnez Bases de données.
- Dans la section Identifiant de base de données, sélectionnez votre instance de base de données.
- Sélectionnez Modifier.
- Dans la section Options de base de données, pour Groupe de paramètres de base de données, choisissez le groupe de paramètres.
- Redémarrez l'instance de base de données pour que les modifications prennent effet.
Transmettre le journal des erreurs SQL Server à CloudWatch Logs
Procédez comme suit :
- Ouvrez la console Aurora et RDS, puis, dans la page de navigation, choisissez Bases de données.
- Sélectionnez l’instance de base de données, puis sélectionnez Modifier.
- Dans Exportations des journaux, sélectionnez Journal des erreurs, puis choisissez Continuer.
- Dans la section Planification des modifications, choisissez Appliquer immédiatement, puis Modifier l'instance de base de données.
Remarque : votre instance de base de données est maintenant à l’état modification. Attendez qu'elle revienne à l'état disponible.
- Sur la page Bases de données, choisissez votre instance de base de données, puis Actions.
- Si vous avez créé un nouveau groupe de paramètres, redémarrez l'instance de base de données pour que les modifications prennent effet.
Une fois l'instance de base de données en ligne, exécutez DBCC TRACESTATUS (1222, 1204) sur votre instance de base de données pour vérifier l'état de trace de blocage. Si la commande Global trace renvoie 1 dans la fenêtre de sortie, la trace de blocage est activée.
Simuler une transaction de blocage
Pour vérifier si le moniteur SQL Server a journalisé les requêtes victimes du blocage dans les journaux d'erreurs, simulez une transaction de blocage sur votre instance de base de données. Vous pouvez exécuter la requête suivante sur votre instance de base de données pour vérifier les événements de blocage dans les journaux d'erreurs SQL Server :
sp_readerrorlog 0, 1, 'deadlock'
Créer un modèle de filtre et une alarme CloudWatch
Procédez comme suit :
- Ouvrez la console CloudWatch.
- Dans la section Journaux, choisissez Groupes de journaux.
- Sélectionnez les journaux d'erreurs SQL Server de votre instance de base de données. Les journaux sont répertoriés dans le format suivant : (/aws/rds/instance/<Your-RDS-Instance-Name>/error).
- Sélectionnez Créer un filtre de métrique.
- Sur la page Définir un filtre de métriques des journaux, dans la section Modèle de filtre, saisissez blocage.
- Sélectionnez Attribuer une métrique.
- Dans les champs Nom du filtre et Nom de la métrique, saisissez blocage.
- Choisissez Créer un filtre, puis Créer une alarme.
- Sur la page Indiquer la métrique et les conditions, sous Nom de la métrique, saisissez Blocage.
- Sous Statistique, saisissez minimum.
- Sous Période, dans la liste déroulante, choisissez la durée de l'alarme, par exemple 1 minute.
- Dans la section Conditions, choisissez les paramètres suivants :
Type de seuil : Statique
Chaque fois que Blocage est : Supérieur > seuil
Que : 0
- Sélectionnez Suivant.
- Dans la section Notification, sous Déclenchement de l'état d'alarme, choisissez En état d’alarme.
- Abonnez-vous à une rubrique Amazon SNS ou créez-en une nouvelle. Utilisez l'adresse e-mail à laquelle vous souhaitez recevoir des alertes.
- Sélectionnez Suivant.
- Dans la section Nom et description, saisissez le nom et la description de l'alarme, puis choisissez Suivant.
- Sur la page Prévisualiser et créer, examinez la configuration de votre alarme, puis choisissez Créer une alarme.
Utilisez le processus précédent pour créer des alarmes CloudWatch pour les autres erreurs fatales de SQL Server et les erreurs d'échec de connexion.
Informations connexes
Fichiers journaux de base de données MySQL