Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 SQL Server 2005事务日志总是太大_Sql Server 2005_Transaction Log - Fatal编程技术网

Sql server 2005 SQL Server 2005事务日志总是太大

Sql server 2005 SQL Server 2005事务日志总是太大,sql-server-2005,transaction-log,Sql Server 2005,Transaction Log,我读过其他的帖子,也做过几个小时的研究,但还是没有一个更聪明。 我有一个数据库,在数据文件中是65千兆,在日志文件中是230千兆。我正试图重新设计数据库,使其更高效,但在进行架构更改时,日志文件会变得太大,windows会抱怨磁盘空间不足 我试着缩小文件,最低限度是220吉格。使用DBCC OPENTRAN,我可以看到没有活动事务。使用select*FROM sys.dm_tran_database_事务,我可以看到没有什么有趣的事情发生 我对所读内容的解释是,只有在存在活动事务的情况下,日志文

我读过其他的帖子,也做过几个小时的研究,但还是没有一个更聪明。 我有一个数据库,在数据文件中是65千兆,在日志文件中是230千兆。我正试图重新设计数据库,使其更高效,但在进行架构更改时,日志文件会变得太大,windows会抱怨磁盘空间不足

我试着缩小文件,最低限度是220吉格。使用DBCC OPENTRAN,我可以看到没有活动事务。使用select*FROM sys.dm_tran_database_事务,我可以看到没有什么有趣的事情发生

我对所读内容的解释是,只有在存在活动事务的情况下,日志文件才应该是大的,并且一旦提交了所有事务,该文件应该能够缩小到理论上非常小的大小。对吗

我尝试过使用truncate_和dbcc shrinkfile(dbname,2)来备份日志


如何将此文件缩小到更易于管理的位置?

您读过Kimberly Tripp的文章吗?(几乎是关于这个主题的经典参考):

您可能遇到VLF碎片:。运行此命令以查找:

DBCC LOGINFO;
您是否按照此标准程序收缩日志:

1) 备份事务日志(即使处于简单模式)以清除所有活动

BACKUP LOG [MyDB] 
TO DISK = N'E:\db.bak' 
GO 
2) 收缩事务日志

USE [MyDB]
GO

DBCC SHRINKFILE ('MyDB_Log', TRUNCATEONLY)
GO
3) 修改事务日志的大小并配置自动增长:

USE [MyDB]
GO

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

非常感谢你。我没有看到那篇文章。对我来说,这是VLF碎片。如果其他人有此问题,请运行DBCC LOGINFO;然后查看返回的行数。文章建议,如果超过50,那么碎片化可能是一个问题。在本文第8点之后,日志文件现在只有2mb,低于230Gig!