Developpez.com - Rubrique SQL-Server

Le Club des Développeurs et IT Pro

SQL Server - Arrêt et redémarrage d'instance SQL Server... Bonne pratique ou pas ?

Un article de Frédéric BROUARD

Le 2022-05-30 03:52:35, par SQLpro, Rédacteur
Chers membres du club,

J'ai le plaisir de vous présenter cet article :

SQL Server - Arrêt et redémarrage d’instance SQL Server… Bonne pratique ou pas ?
Parmi les pires pratiques que l’on rencontre encore couramment au sujet de Microsoft SQL Server, il y a le fait que redémarrer une instance régulièrement serait bénéfique pour les bases de données d’une instance SQL Server. Ceci est faux et c’est bien tout le contraire qui se produit. Explications…

Bonne lecture

Les meilleurs cours et tutoriels pour apprendre Microsoft SQL Server.

Retrouvez les meilleurs cours et tutoriels pour apprendre les SGBD et SQL.
  Discussion forum
12 commentaires
  • Pomalaix
    Rédacteur
    Pour faire mon SQLPro, il y a une solution très simple à la problématique : passer à Oracle où le mécanisme AWR, présent depuis près de 20 ans, permet d'historiser de manière persistante une multitude de métriques de performances.
    Il est surprenant que Microsoft n'ait pas été capable de fournir d'équivalent.
  • cd090580
    Membre averti
    Article très intéressant mais comment éviter et/ou gérer les redémarrages fréquents du serveur quand Microsoft impose de redémarrer l'OS suite aux correctifs installés mensuellement ????????

    Dans ce cas on perd tous les bénéfices des stats et autres caches gérés par SQL Server sur la durée
  • chrtophe
    Responsable Systèmes
    Article intéressant, bien que pour moi, hors de mon domaine de compétence.

    si elles ont un intérêt pertinent comme expliqué, je trouve étonnant que les stats ne soient pas conservées en cas d'arrêt propre, ou au moins qu'il y est une option.
    Après je suppose qu'il est possible de les récupérer via une requête.
  • SQLpro
    Rédacteur
    C'est effectivement un problème. Mais il n'est pas absolument nécessaire de passer tous les correctifs immédiatement (en particulier les correctifs Windows sont de peu d'intérêt au regard de SQL Server). En effet, la plupart ne concernent pas des problématique de sécurité. On peut donc les retarder et les appliquer dans des plages définies à l'avance. De plus l'utilisation de réplicas de type AlwaysOn minimise ce problème dans le sens ou les caches des réplicas contiennent au moins les données mises à jour, voir si les réplicas sont lisible, une partie des données lues. Dans ce cas, il faut alterner l'application des correctifs et resté sur l'instance basculée.

    A +
  • mikedavem
    Expert éminent sénior
    Envoyé par Pomalaix
    Pour faire mon SQLPro, il y a une solution très simple à la problématique : passer à Oracle où le mécanisme AWR, présent depuis près de 20 ans, permet d'historiser de manière persistante une multitude de métriques de performances.
    Il est surprenant que Microsoft n'ait pas été capable de fournir d'équivalent.
    Il y a aussi des outils qui permettent de faire cela avec SQL Server avec Data Collector ou Query Store (pas aussi abouti que AWR cependant). Bon si je devais faire mon SQLPro aussi je dirai qu'il te faudrait en plus payer pour avoir les options qui vont bien avec AWR. Ceci étant dit il existe une multitude d'outils externes à Microsoft qui permettent de faire ce que AWR fait sur Oracle auj.

    De notre côté nous utilisons une stack open source Telegraf + Prometheus + Grafana qui répond très bien au besoin.

    ++
  • chrtophe
    Responsable Systèmes
    De plus l'utilisation de réplicas de type AlwaysOn minimise ce problème
    Il te faut donc 2 nœuds. Dans le cas d'un seul serveur on fait comment ?
  • mikedavem
    Expert éminent sénior
    Envoyé par chrtophe
    Il te faut donc 2 nœuds. Dans le cas d'un seul serveur on fait comment ?
    Si pas de mécanisme de HA comme AlwaysOn et les groupes de disponibilité, en fonction de l'impact on peut avoir un calendrier des mise à jours Windows moins fréquent pour minimiser l'indisponibilité de service. Pas trop le choix je dirai ...
    Si la disponibilité du service est quelque chose d'important alors s'orienter vers des architectures comme les AGs est quelque chose à considérer.

    ++
  • chrtophe
    Responsable Systèmes
    Comme je le disais, je pense qu'il est possible de récupérer les données avant reboot.
  • SQLpro
    Rédacteur
    Envoyé par chrtophe
    Comme je le disais, je pense qu'il est possible de récupérer les données avant reboot.
    Oui, mais pas de les réinjecter...

    A +
  • SQLpro
    Rédacteur
    Envoyé par mikedavem
    Il y a aussi des outils qui permettent de faire cela avec SQL Server avec Data Collector ou Query Store (pas aussi abouti que AWR cependant). Bon si je devais faire mon SQLPro aussi je dirai qu'il te faudrait en plus payer pour avoir les options qui vont bien avec AWR. Ceci étant dit il existe une multitude d'outils externes à Microsoft qui permettent de faire ce que AWR fait sur Oracle auj.

    De notre côté nous utilisons une stack open source Telegraf + Prometheus + Grafana qui répond très bien au besoin.

    ++
    Tu as oublié les "report" de SSMS qui sont assez nombreux et que d'autres ont complétés comme notre ami Arian Papillon de DataFly :
    https://github.com/datafly/SSMSInfoReports

    A +