web-dev-qa-db-fra.com

Comment devrais-je gérer la meilleure base de données en croissance rapide?

J'ai une base de données que j'ai besoin de maintenir.

Malheureusement, la configuration et l'utilisation de cette base de données je ne peux pas changer, beaucoup (grâce à une politique interne).

Il fonctionne sur SQL Server 2008R2.

Seul a seulement été vivant pendant 5 jours et a augmenté de 20 Go à plus de 120 Go à cette époque. (essentiellement la plupart des données sont supprimées et ensuite importées, mais comme je dis que je ne peux pas contrôler ce côté des choses)

J'aimerais gérer des emplois nocturnes pour réduire la base de données et réorganiser les index, mais je sais que c'est un long chemin des meilleures pratiques et pourrait conduire à plus de problèmes que jamais!

DES QUESTIONS

  • Quelle est la meilleure façon de gérer une base de données qui augmente rapidement de taille?
  • Devrais-je regarder déplacer le groupe de fichiers autour de la taille physique sur le disque?
  • Existe-t-il un moyen d'arrêter le serveur à court d'espace dans un mois?
7
James Sinclair

Je ne recommande pas de réduire vos fichiers de base de données, sauf si vous êtes totalement sûr que l'espace ne soit plus jamais nécessaire. Pourquoi rétrécir tous les soirs seulement pour que cela se développe chaque jour? Vous allez courir dans les points de douleur de rétrécir vos fichiers de données et vous vous forcez à exécutez l'impact de la performance lorsque les fichiers de la base de données doivent croître pendant la journée .

S'il a ramené jusqu'à 120 Go en raison des besoins d'espace initiaux, il est-il sûr de dire que la base de données ne sera pas plus grande que celle-ci (évidemment avec un tampon)? taille de votre base de données de manière appropriée.

Sinon, si la base de données se développera continuellement et que vous n'avez aucune entrée sur la croissance des données qui se produit (en d'autres termes, si vous ne pouvez pas archiver les données de la base de données), vous devrez simplement vous assurer qu'il y a amplement espace de conduite pour les excroissances requises.

Savez-vous quels fichiers de base de données ont augmenté? Il y a un comportement différent qui entraînera la croissance des fichiers de données, par opposition aux grumes de transaction à la croissance et à maintenir leur taille. Si le journal des transactions est le principal consommateur de l'espace en raison de transactions fortement connectées, vous pouvez envisager des sauvegardes de journal de transaction plus fréquentes pour vous assurer que le journal est réutilisé plus souvent (il y a des arrêts ici, comme des transactions ouvertes, de sorte que cela pourrait ne pas être possible. à travers le tableau).

Plus d'informations sur ce qui se développe et le scénario est nécessaire pour obtenir plus précis, mais Je ne recommande pas la rétrécissement de vos fichiers de base de données.

11
Thomas Stringer

Sur la base des informations que vous avez données, je dirais que le meilleur moyen de gérer cette base de données est de vous asseoir avec les utilisateurs principaux, de déterminer le taux de croissance attendu pour 1, 3, 5 et 7 ans. Pré-taille Les fichiers de données sur ce que les utilisateurs attendent de la taille de 3 ans, autorisez la croissance automatique des incréments gérables jusqu'à la taille de 5 ans sur les chances hors probabilité que la base de données atteigne la taille de 3 ans plus rapidement que prévu et assurez-vous de vous assurer que vous attendez. Avoir suffisamment d'espace d'entraînement et de stockage pour gérer la taille de 7 ans, pour inclure toutes vos stratégies de sauvegarde et les plans du Dr.

J'ajouterai une mise en garde: puisque vous utilisez R2, vous pouvez envisager d'installer un point de contrôle de l'utilitaire pour l'instance de base de données. Cela vous permettra de suivre l'espace utilisé dans le ou les fichiers de données. Si l'entrée initiale des données était vraiment supérieure à celle des besoins, vous pourriez être en mesure de déterminer cela et de redimensionner les fichiers de données à une taille plus petite, puis d'initier le plan de croissance de 1 à 7 ans.

MSDN UCP info

3
Cougar9000

Vous mentionnez que les enregistrements sont "modifiés en utilisant Supprimer et insérer non mise à jour". Si tel est le cas, pouvez-vous confirmer que la croissance est dans les fichiers de base de données et non les fichiers journaux aussi?

Si vous avez beaucoup de débit et que chaque mise à jour est doublée sous forme de suppression/insertion, vous verrez probablement plus haut que la croissance du journal habituelle - qui doit être trouvée aussi longtemps que vos sauvegardes sont effectuées régulièrement et que le journal est tronqué bien.

J'obtiendrais un document de feuille de calcul et commenceriez à enregistrer les données/tailles de journaux de journalisation chaque jour pour voir combien de temps avant de sortir de la pièce pratique. (Peut-être que vous obtenez un graphique agréable qui montre une ligne de tendance décente visant à votre espace disque maximum) Vous ne spécifiez pas l'espace maximum disponible, mais même avec 1TB plus de stockage, vous pouvez voir l'utilisation du disque causant des problèmes d'E/S si son particulièrement "occupé".

Si vous pouvez montrer que vous allez atteindre la capacité très bientôt, cela pourrait faire un bon argument de gestion;)

Des choses qui vont réduire la croissance (légèrement). Conversion de DateTime en DateTime2, NvarchaRar à Varchar, etc., le cas échéant, vous rasera certains octets (hors des données et des index sur les données), mais vous aurez probablement besoin de temps d'arrêt pour le faire. Run http://www.brentozar.com/blitzindex/ sur les tables de touches, vous pouvez trouver des index avec 0 décompte de lecture pouvant être supprimés en toute sécurité si personne n'a l'intention de les utiliser.

Assurez-vous que toutes vos tables ont de bons index clusters, dans mon expérience (limitée) de grandes tables peuvent être divisées de moitié si elles n'en ont pas déjà un, et si vous suivez les meilleures pratiques, vous obtenez beaucoup moins de fragmentation: HTTPS : //www.simple-tak.com/sql/learn-sql-server/effective-Clustered-indexes/

Cela peut vous acheter du temps, mais seuls les changements structurels résoudront la racine du problème.

0
Greg Robson