J'utilise SQL Express 2005 et faire une sauvegarde de tous les DB toutes les nuits. J'ai remarqué qu'un dB deviendra plus grand et plus grand. J'ai regardé la base de données et je ne peux pas voir pourquoi elle devient si grosse! Je me demandais si c'est quelque chose à voir avec le fichier journal? P>
À la recherche de conseils sur la façon de savoir pourquoi sa nécessité de devenir si grosse quand elle n'a pas eu autant de données dedans - aussi comment optimiser / réduire la taille? P>
6 Réponses :
Plusieurs choses à vérifier: p>
est votre base de données en mode de récupération "simple"? Si tel est le cas, cela produira beaucoup moins d'entrées de journal de transaction et la sauvegarde sera plus petite. Recommandé pour le développement - mais pas pour la production p> li>
s'il est en mode de récupération "complet" - faites-vous des sauvegardes de journal de transaction régulières? Cela devrait limiter la croissance du journal des transactions et réduire ainsi la taille globale de la sauvegarde p> li>
Avez-vous exécuté un Avez-vous des tables de journalisation / journalisation de votre base de données qui se remplissent simplement au fil du temps? Pouvez-vous supprimer certaines de ces entrées? P> LI>
ul>
Vous pouvez trouver le modèle de récupération de la base de données en allant à l'explorateur d'objet, cliquez avec le bouton droit de la souris sur votre base de données, sélectionnez "Propriétés", puis sélectionnez l'onglet "Options" de la boîte de dialogue: P>
marc p> DBCC StrinkDatabase (YourDatabasename) Code> sur elle ces derniers temps? Cela peut aider p> li>
Pour plus de clarté, un point à garder à l'esprit est que la taille du journal des transactions n'a pas vraiment d'impact sur la taille globale d'un fichier de sauvegarde de la base de données complète. N'oubliez pas que la sauvegarde de la base de données complète contient les pages de données (à partir du fichier .mdf) et n'inclut que la petite partie du fichier journal de transaction qui existe entre le début et la fin de la création complète de la sauvegarde de la base de données. En effet, cette partie du journal contient les seules données qui ont changé depuis la sauvegarde des pages de données physiques.
Un astuce pour garder les bases de données petites seraient au moment de la conception, utilisez le type de données le plus petit que vous puissiez utiliser. p>
Par exemple, vous pouvez avoir une table d'état, avez-vous vraiment besoin de l'index pour être un INT, quand un smallint ou un tinyint fera? P>
Bon point pour le nouveau développement - dans ce cas, il peut être nécessaire de modifier le schéma de base de données existant, qui est un peu drastique pour obtenir la taille de la sauvegarde ...
Je dirais que ce serait une base de données rare là où cela vous aide beaucoup, et vous ne faites que commercialiser un peu d'espace pour obtenir des erreurs de base de données lorsque vous atteignez la limite. En outre, cela ne répond pas pourquoi le DB Ops est en croissance.
On dirait que vous courez avec le modèle de récupération complète et que le journal de transaction augmente continuellement à la suite d'aucune sauvegarde de journal de transaction étant prise. P>
Afin de rectifier cela, vous devez: P>
Je suggère de lire la référence Microsoft suivante afin de vous assurer que vous gérez votre environnement de base de données de manière appropriée. P>
Modèles de récupération et gestion des journaux de transaction P>
lecture supplémentaire: Comment arrêter le journal des transactions d'une base de données SQL Server à partir de grandir de manière inattendue p>
Lorsque vous faites une sauvegarde complète quotidienne pour votre base de données, bien sûr, cela deviendra si gros avec le temps. Donc, vous devez mettre un plan pour vous-même. comme ça 1er jour: complet / 2ème jour: différentiel / 3ème jour: différentiel / 4ème jour: différentiel / 5ème jour: différentiel p>
puis recommencez. p>
et lorsque vous restaurez votre base de données, si vous souhaitez restaurer la totalité, vous pouvez le faire facilement, mais lorsque vous devez restaurer la version diff, vous sauvegardez la première complète avant de vous «sans récupération», puis le diff que vous avez Besoin, puis vous aurez vos données en toute sécurité. p>
Si c'est la sauvegarde qui continue de croître et de grandir, j'ai eu le même problème. Ce n'est pas un «problème», bien sûr, cela se produit par design - vous ne faites que faire une sauvegarde 'Set' qui se développera simplement jusqu'à ce que tout espace disponible soit pris. p>
Pour éviter cela, vous devez modifier les options d'écrasement. Dans le SQL Management Studio, cliquez avec le bouton droit de la souris sur votre DB, Tâches - Sauvegarde, puis dans la fenêtre de la sauvegarde, vous verrez qu'il est par défaut à la page «Général». Changez cela en «options» et vous obtiendrez un ensemble de choix différents. P>
L'option par défaut en haut est 'Ajouter au jeu de média existant'. C'est ce qui rend votre taille de sauvegarde de taille indéfiniment. Changez ceci pour «écraser tous les ensembles de sauvegarde existants» et la sauvegarde ne sera toujours aussi grande que la sauvegarde entière, la dernière. P>
(Si vous avez un script SQL le faisant cela, tournez «NOINIT» sur 'INIT') P>
ATTENTION: Cela signifie que la sauvegarde ne sera que les dernières modifications - si vous avez commis une erreur il y a trois jours, mais que vous n'avez que la sauvegarde de la nuit dernière, vous êtes bourré. Utilisez cette méthode uniquement si vous avez un régime de sauvegarde qui copie votre fichier .bak quotidiennement à un autre endroit, vous pouvez donc revenir à l'un de ces fichiers des jours précédents. P>
7ZIP Votre fichier de sauvegarde pour l'archivage. J'ai récemment sauvegardé une base de données sur un fichier de 178 Mo.bak. Après l'archivage d'un fichier .7z, il n'était que 16 Mo. http://www.7-zip.org/ p>
Si vous avez besoin d'un outil d'archivage qui fonctionne avec des formats de fichiers plus importants plus efficacement et plus rapidement que 7ZIP, je vous recommande de jeter un coup d'œil à l'archivage LZ4. Je l'ai utilisé pour archiver les sauvegardes de fichiers depuis des années sans problème: http://lz4.github.io/lz4/ p>
Pouvez-vous clarifier s'il vous plaît s'il s'agit de vos fichiers de sauvegarde de base de données qui augmentent de taille ou si les tailles de fichiers de base de données globales augmentent. Les résultats de SP_HELPDB 'DatabaseName' 'serait également utile si vous êtes capable de les rendre disponibles.
Lorsque vous dites que le dB devient plus grand, comment mesurez-vous cela ?? Est-ce la taille du fichier MDF, la taille du fichier LDF, la taille du fichier de sauvegarde ou une autre méthode ??