SQL Server: Comment augmenter la taille du journal des transactions?
-
06-07-2019 - |
Question
Comment augmenter la taille du journal des transactions? Est-il également possible d'augmenter temporairement le journal des transactions?
Disons que j'ai le scénario suivant. J'ai une opération de suppression trop volumineuse pour le journal des transactions en cours. Je ne veux pas:
- Augmenter le journal des transactions (puis-je détecter la taille actuelle?, puis-je savoir quelle taille doit avoir le journal des transactions pour mon opération?)
- (effectuer mon opération)
- Sauvegarder le journal des transactions
- Restaurez la taille du journal des transactions.
La solution
Réponse courte:
- SQL 2k5 / 2k8 Comment faire pour augmenter la taille d'une base de données (SQL) Server Management Studio) (s'applique également aux journaux), Comment: Réduire une base de données (SQL Server Management Studio)
- SQL 2K Comment augmenter la taille d'une base de données (Enterprise Manager) , Comment réduire un base de données (Enterprise Manager)
Réponse longue: vous pouvez utiliser ALTER DATABASE ... MODIFY FILE
pour modifier la taille des fichiers de base de données, y compris les fichiers LOG. Vous pouvez rechercher master_files/sysfiles
(2k) ou <dbname>.sys.database_files
(2k5 / 2k8) pour obtenir le nom logique du journal. Et vous pouvez utiliser DBCC SHRINKFILE
pour réduire un fichier (si possible). ).
puis-je savoir quelle est la taille dont j'ai besoin? journal des transactions pour être pour mon opération?
Cela dépend de nombreux facteurs (s'agit-il de nouvelles données? s'agit-il d'une mise à jour? s'agit-il d'une suppression? quel modèle de récupération? Avez-vous une compression sur SQL 2k8? etc.) mais elle est généralement plus volumineuse que prévu. J’estimerais 2,5 fois la taille de la mise à jour que vous êtes sur le point d'effectuer.
Mise à jour:
Vous avez manqué que vous dites est un DELETE. Une estimation approximative correspond à 1,5 fois la taille des données supprimées (y compris tous les index).
Autres conseils
Le journal des transactions peut être configuré pour se développer selon les besoins. Vous définissez l'option pour se développer automatiquement. Cependant, lorsque le journal des transactions devient trop volumineux (manque d’espace disque) ou rend le serveur SQL inutilisable.
Sauvegarder le journal des transactions. SQL tronquera automatiquement les transactions inactives
Lorsque vous restaurez, le journal des transactions sera réduit
Pour configurer la croissance automatique:
- Cliquez avec le bouton droit sur la base de données dans le studio de gestion.
- Sélectionnez Propriétés
- Mettre à jour la valeur de croissance automatique
La partie la plus importante est la dernière ligne de votre scénario: & "Restaurez la taille du journal des transactions. &"; Vous voulez dire ramener le journal à sa taille originale.
Ceci est vraiment dangereux pour de nombreuses raisons, et nous en avons parlé dans quelques articles sur SQLServerPedia: