2010-02-03 6 views
2

J'ai lu d'autres articles et j'ai fait des heures de recherches, mais je n'en suis toujours pas au courant. J'ai une base de données de 65 Go dans le fichier de données, et actuellement 230 Go dans le fichier journal. J'essaie de reconcevoir la base de données pour qu'elle soit plus efficace, mais lors de la modification de schéma, le fichier journal essaie de devenir trop volumineux et les fenêtres se plaignent de manquer d'espace disque.Le journal des transactions de SQL Server 2005 est toujours trop volumineux

J'ai essayé de réduire le fichier et le plus bas c'est ~ 220 gig. en utilisant DBCC OPENTRAN je peux voir qu'il n'y a aucune transaction active. using select * FROM sys.dm_tran_database_transactions Je peux voir qu'il n'y a rien d'intéressant qui se passe. Mon interprétation de ce que j'ai lu est que le fichier journal ne devrait être grand que s'il y a une transaction active et une fois que toutes les transactions sont validées, le fichier devrait pouvoir être rétréci pour théoriquement quelque chose de très petit. correct?

J'ai essayé le journal de sauvegarde avec truncate_only suivi par DBCC SHRINKFILE (dbname, 2)

Que puis-je faire pour réduire ce fichier à quelque chose plus facile à gérer?

Répondre

2

Avez-vous lu l'article de Kimberly Tripp? (À peu près la référence canonique sur le sujet): 8 Steps to better Transaction Log throughput.

Vous pouvez rencontrer une fragmentation VLF: Transaction Log VLFs - too many or too few?. Exécutez cette commande pour savoir:

DBCC LOGINFO; 

Avez-vous suivi cette procédure standard pour réduire le journal:

1) Sauvegardez votre journal des transactions (même si vous êtes en mode simple) pour effacer toutes les activités.

BACKUP LOG [MyDB] 
TO DISK = N'E:\db.bak' 
GO 

2) Réduire le journal des transactions.

USE [MyDB] 
GO 

DBCC SHRINKFILE ('MyDB_Log', TRUNCATEONLY) 
GO 

3) Modifier la taille du journal des transactions et configurer votre autogrowth:

USE [MyDB] 
GO 

ALTER DATABASE [MyDB] 
    MODIFY FILE (NAME = N'MyDB_Log', SIZE = 1024000KB, FILEGROWTH = 1024000KB) 
GO 
+0

Merci beaucoup. Je n'avais pas rencontré cet article. Pour moi, c'était la fragmentation VLF. Si quelqu'un d'autre a ce problème, exécutez DBCC LOGINFO; et regardez le nombre de lignes retournées. l'article suggère s'il y a> 50, alors la fragmentation est probablement un problème. Après avoir suivi le point 8 dans l'article le fichier journal est maintenant seulement 2mb, en baisse de 230 gig! – Blootac

Questions connexes