2012-01-04 219 views
5

在SQL Server 2008中有什么办法可以禁用事务日志或清除日志文件?如何在SQL Server 2008中禁用事务日志

当我在我的项目中执行一个查询时(在事务方面非常大),那个时候这个日志文件的大小将增加(2到3 GB)。

请给我一些不错的选择。

+1

您的问题已经在SO上提出并解答。这里的链接http://stackoverflow.com/questions/996403/disable-transaction-log – GuZzie 2012-01-04 08:23:02

+0

@GuZzie是的,但链接只是为恢复模型 - 和OP也问清除它.....所以不要把不完整的相关链接。 – 2012-01-04 08:24:26

+1

@RoyiNamir 2年前问过问题,但仍未清除?在这种情况下,同样的决议应该回答Arun的问题。对不起,帮助lol – GuZzie 2012-01-04 08:28:26

回答

3

你可能会缩小它

DECLARE @sql NVARCHAR(MAX) = '' 
SELECT @sql = @sql + N'DBCC SHRINKFILE('+CAST(file_id AS NVARCHAR)+N', 0);' 
FROM sys.database_files 
WHERE type = 1 

EXEC(@sql) 

它仅适用于简单恢复模式,而不是你需要备份日志了,后来它收缩

你不能在所有即使您的数据库是只读模式删除日志文件。

AND尝试在处理sql server的数据库时重新设计和检查你的方法。收缩文件不是正确的选择或最佳做法 - 尤其是定期进行!

+0

感谢您的支持努力,是否为此创建工作是正确的选择,因此在特定的时间间隔内它将执行并缩小该文件? – 2012-01-04 08:36:03

+0

是的 - 只是在你的情况可能是,但尝试重新设计和审查你的方法时,处理sql服务器的数据库。收缩文件不是正确的选择或最佳做法 - 尤其是定期进行! – 2012-01-04 08:39:52

+0

这适用于完全恢复,但会破坏您的日志备份链。您需要完整备份来重置日志备份链。这也不是答案,真的。它只是修复症状并产生更多问题。我不会因为你已经缩小缩小而降低你的评价。这个问题得到一个虽然 – gbn 2012-01-04 08:51:11

0

更改恢复模式:simple

ALTER DATABASE myDB SET RECOVERY SIMPLE 

和运行

DBCC SHRINKFILE (MyLog, 1); // to 1 MB 

但是,从你在哪里得到的日志名称?

sp_helpdb MyDb 
+3

然后它再次增长,导致物理碎片和VLF问题。 – gbn 2012-01-04 08:25:10

+0

@gbn命令是不是没有。我建立一个哈希工具,它需要一个bak - 恢复它,Hasha数据,并创建一个新的bak.Now,截断日志文件,帮助了我很多。 – 2012-01-04 08:27:17

+0

该命令用于特定用途。我知道你做了什么:你问dba.se.但这并不意味着它适合使用adhoc。 -1 – gbn 2012-01-04 08:37:15

8

不能禁用事务日志在SQL Server中。没门。

您可以切换到简单恢复模式

ALTER DATABASE YourDatabase SET RECOVERY SIMPLE 

,纪录少 - 但事务日志是SQL Server这样一个基本的,核心理念,你不能只把它们关掉。

2

您无法禁用事务日志。

如果您的日志需要大3GB,那就这样吧。如果缩小它,它会再次增长并导致其他问题。

如果它是一关,你可以通过