Où puis-je trouver des ressources pour mieux passer à une opération 24h / 24 et 7j / 7? Comment les grandes entreprises dotées de grandes bases de données y parviennent-elles? Nos emplois nocturnes tels que
- purger les anciennes données
- réindexer
- mettre à jour les statistiques
tous semblent avoir un impact critique sur notre système ( c'est-à-dire les utilisateurs en ligne et les flux de données en temps réel). J'ai regardé sur Amazon pour tout livre lié à ce sujet, et jusqu'à présent, je n'ai rien trouvé.
sql-server
NealWalters
la source
la source
Réponses:
La maintenance des bases de données 24h / 24 et 7j / 7 est un sujet assez vaste avec de nombreuses options à considérer. Ce vaste sujet a de nombreux points à considérer, mais nous pouvons essayer de nous baser sur certains des points forts.
Ce que vous voudrez d'abord identifier, c'est que, bien que de nombreuses opérations soient 24h / 24 et 7j / 7, il y a généralement des périodes de faible activité. Vous pouvez tirer parti de ces délais pour exécuter votre maintenance afin de réduire les interférences que vous aurez sur la base de données. La seconde est que vous devrez réserver du temps pour des pannes complètes (pour des choses comme les Service Packs ou les migrations de bases de données), vous devrez donc négocier des fenêtres de maintenance complètes avec votre direction. Pour des éléments spécifiques, vous devrez considérer et planifier chacun d'eux, ainsi que tirer parti de vos outils de manière appropriée. La pièce importante est que vous devez PLANIFIER chacun de ces éléments, tous les exemples que je fournis sont très "vos miles peuvent varier".
Sauvegardes
Les sauvegardes n'ont généralement pas un impact énorme sur les charges de travail, mais doivent être prises en compte car elles peuvent consommer beaucoup d'E / S. Vous voudrez les planifier de manière appropriée et surveiller le temps qu'il faut pour terminer. Le plus gros obstacle ici est que dans une opération 24h / 24 et 7j / 7, vous ne serez probablement pas en mesure d'effectuer des sauvegardes nocturnes complètes tous les soirs de la semaine. Vous voudrez planifier quand vous pouvez prendre des pleins, quand vous prenez des différentiels et des périodes de rétention pour les deux en combinaison avec vos sauvegardes de journaux.
Par exemple, j'exécute des sauvegardes complètes de toutes mes bases de données le dimanche soir (activité la plus faible), des différentiels toutes les autres nuits (du lundi au samedi). Je garde les deux dernières semaines de fulls et diffs sur le disque, les journaux des deux derniers jours. Cela me donne suffisamment de flexibilité pour la récupération, mais je devrai peut-être récupérer des sauvegardes à partir de bandes si nécessaire.
Index / Statistiques Maintenance
Il s'agit du type de maintenance active le plus courant auquel vous devrez faire face. Vous ne pouvez pas l'éviter, mais vous pouvez atténuer l'impact. La règle de base initiale est que vous ne devez effectuer de maintenance que sur les objets qui en ont besoin. Les instructions générales consistent à reconstruire uniquement les index qui sont fragmentés à plus de 30% et supérieurs à 1 000 pages . Si vous avez des statistiques de mise à jour automatique , cela gérera la plupart de la maintenance de vos statistiques, mais un travail de nuit pour garder les choses synchronisées n'est pas une mauvaise idée.
Si vous avez Enterprise Edition, vous avez également accès à d'autres options de gestion de la maintenance. Le plus important est la reconstruction d'index en ligne , qui vous permettra de reconstruire des index pendant qu'ils sont encore en cours d'utilisation (essentiellement, il construit l'index côte à côte, puis l'échange). Vous pouvez également tirer parti du partitionnement pour les "grandes" tables afin de réduire le temps de reconstruction nécessaire.
Votre meilleur pari pour ce type de maintenance, si vous n'avez pas de scripts personnalisés qui gèrent ces meilleures pratiques, est d'utiliser les scripts de maintenance d'Ola Hallengren . Ils sont assez faciles à installer et à configurer et intègrent bon nombre de ces directives.
Vérifications de cohérence DBCC
En fonction de votre charge de travail globale, il se peut que les vérifications DBCC perturbent votre fonctionnement. Il existe deux façons courantes de minimiser votre impact DBCC pour vos bases de données:
PHYSICAL_ONLY
- L'exécution de cette option vérifiera vos bases de données au niveau d'une page physique et évitera la vérification complète plus invasive. Cela couvrira l'identification des types de corruption les plus probables.Cet article de blog fournit plus de détails sur vos options.
Emplois par lots / ETL
Cela se résume vraiment à la façon dont vous concevez vos processus. Votre ETL peut toujours interférer avec les tables OLTP en direct (comme toute autre application), donc quelques clés à garder à l'esprit:
Conclusion
Encore une fois, il y a beaucoup de chemin à parcourir ici. Ce n'est pas un guide complet, mais un aperçu de haut niveau de certaines approches. Je n'ai même pas discuté des options de haute disponibilité (telles que les groupes de disponibilité et le clustering de basculement). Vous devrez revoir chaque élément et élaborer un plan pour le gérer. À bien des égards, vous devrez également répéter et affiner votre travail à mesure que vous avancerez.
Ressources supplémentaires:
Meilleures pratiques de maintenance VLDB pour SQL Skills
la source