A couple of months ago I wrote about “Why we moved SQL Server monitoring to Prometheus and Grafana”. I talked about the creation of two dashboards. The first one is blackbox monitoring-oriented and aims to spot in (near) real-time resource pressure / saturation issues with self-explained gauges, numbers and colors indicating healthy (green) or unhealthy resources (orange / red). We also include availability group synchronization health metric in the dashboard. We will focus on it in this write-up.
Archives pour la catégorie SQL Server 2008 R2
Extending SQL Server monitoring with Raspberry PI and Lametric
Mis en avant
First blog of this new year 2021 and I will start with a fancy and How-To Geek topic
In my last blog post, I discussed about monitoring and how it should help to address quickly a situation that is going degrading. Alerts are probably the first way to raise your attention and, in my case, they are often in the form of emails in a dedicated folder. That remains a good thing, at least if you’re not focusing too long in other daily tasks or projects. In work office, I know I would probably better focus on new alerts but as I said previously, telework changed definitely the game.
SQL Server service broker and curious duplicate messages case
Mis en avant
One of my last write-up to finish the year 2019. A couple of days ago, I ran into an interesting issue concerning a service broker architecture. Let’s introduce quickly the context: this is a start-based architecture with one target and more than 80 initiators as shown below:
Déplacer des tables en ligne vers des groupes de fichiers avec contraintes et LOB
Mis en avant
Commençons cette semaine en revenant sur une discussion intéressante que j’ai eu avec un de mes clients pour déplacer plusieurs tables vers différents groupes de fichiers. Certaines d’entre elles contenaient des données LOB. Ajoutons à cela une contrainte supplémentaire du client: déplacer tout ce petit monde en ligne pour éviter d’impacter la disponibilité des données durant le processus de migration. Les tables concernées possèdaient des contraintes de schéma comme une clé primaire et des clés étrangères ainsi que des index non cluster. Finalement quelque chose de plutôt classique avec lequel nous pouvons avoir à faire tous les jours chez les clients.
> Lire la suite (en anglais)
David Barbarin
MVP & MCM SQL Server
Partitionnement: Lorsqu’un mouvement de données n’est pas réalisée comme attendue
Mis en avant
Dans ce billet, il est question d’un cas de partitionnement intéressant avec un comportement curieux de mouvement de données (du moins à première vue). J’étais chez mon client qui utilise de manière intensive le partitionnement pour diverses raisons incluant l’archivage et la facilité de gestion. Il y a quelques jours, nous avons décidé de tester un script fraîchement développé qui prendra en charge l’archivage des partitions sur un environnement de qualité.
> Lire la suite (en anglais)
David Barbarin
MVP & MCM SQL Server
SQL Server 2016: TRUNCATE PARTITIONS et scénarios Sliding Window
Mis en avant
Il y a quelques temps, j’ai eu à gérer un scénario de partitionnement incluant une gestion sliding Window pour principalement des besoins d’archivage. Concernant le contexte client, j’ai utilisé des scripts de gestion automatique composée d’une étape de suppression de la partition la plus ancienne. Dans ce contexte précis, les données au delà de 2 ans peuvent être supprimées et généralement dans ce cas, j’utilise une méthode consistant à supprimer les données en les déplaçant depuis la partition la plus ancienne vers une table de staging. Ensuite je les supprime en utilisant la commande TRUNCATE. Finalement, nous pouvons à ce moment précis fusionner en tout sécurité les données de la partition la plus ancienne en évitant un quelconque mouvement de données. Au premier coup d’œil, le processus semble complexe mais jusqu’à la version 2014, il n’y avait pas de meilleur choix pour minimiser l’enregistrement des opérations dans le journal.
> Lire la suite (en anglais)
David Barbarin
MVP & MCM SQL Server
Lorsqu’une recherche d’index n’est pas forcément adéquate
Mis en avant
N’avez-vous jamais considéré une recherche d’index comme un problème? Laissez moi vous raconter une histoire avec un de mes clients avec un contexte simple: une requête spécifique qui n’était pas dans les valeurs acceptables de performance exigées (environ 200ms de temps d’exécution moyen). Le plan d’exécution associé de la requête était similaire à ce que vous pouvez voir ici
> Lire la suite (en anglais)
David Barbarin
MVP & MCM SQL Server
Les 24 heures du PASS (24HOP) – édition francophone
Mis en avant
Cette année a eu lieu la première édition francophone des 24h du PASS (les 20 et 21 septembre 2016). L’idée était plutôt simple: proposer une série de 24 webinaires gratuits de 10h jusqu’à 22h (heure française) pendant 2 jours. C’était l’occasion de recevoir et d’échanger les dernières informations autour de l’administration et du développement des bases de données, des nouvelles tendances côté Business Intelligence et du Cloud.
Pour ma part, c’est avec plaisir que j’ai eu l’occasion d’échanger avec vous autour de 2 sujets: tempdb et bonnes pratiques ainsi que des columnstore et leur implication dans les nouvelles tendances d’architecture BI avec Thoi Dung TSP Microsoft Switzerland.
C’est encore l’occasion de remercier les sponsors et Isabelle sans qui ce type d’événement n’aurait certainement pas eu lieu.
Les slides et démos devraient arriver sous peu!
David Barbarin
MVP & MCM SQL Server
Windows Failover Cluster: Introduction à la notion de paxos tag
Mis en avant
Il y a quelques jours, mon collègue Nathan Courtine et moi étions en charge d’une nouvelle implémentation d’une infrastructure AlwaysOn à base de groupes de disponibilités. Une des étapes importantes dans notre approche consiste à éprouver l’architecture en place face à différents simulation de problème qui pourraient potentiellement survenir. Notre matrice de test inclus un scénario de récupération suite à un désastre avec redémarrage en mode quorum forcé.
Redémarrer un cluster à basculement dans un tel mode implique l’exécution de routines internes sur la base de données interne d’un cluster. Cette dernière utilise notamment un algorithme nommé Paxos pour garantir que les changements survenus sur un nœud soient répliqués de manière atomique sur le reste de membres de la topologie. Qu’est que Paxos exactement? Pour être honnête, j’avais déjà certains enregistrements dans le journal du cluster évoquant ce sujet et je n’avais jamais vraiment pris le temps de regarder plus précisément à quoi cela correspondait …
> Lire la suite (en anglais)
David Barbarin
MVP & MCM SQL Server
Chute de l’espérance de vie d’une page mais ne paniquez pas tout de suite!
Mis en avant
Il y a quelques semaines de cela, j’ai eu une discussion intéressante avec un de mes clients a propos de la surveillance du fameux page life expectancy (ou PLE). Il me demandait si cela était une bonne pratique de surveiller sa valeur parce qu’il avait remarqué une grosse chute de ce dernier en dessous des recommandations en vigueur et ceci durant la nuit ou quelques fois pendant la journée. En plus, il craignait d’être déranger la nuit à cause de tâche de maintenance qui s’exécuterait sans impact sur l’activité business à ce moment là.
> Lire la suite (en anglais)
David Barbarin
MVP & MCM SQL Server