如何阻止 SQL Server 2008 中的日志文件增长?

如何阻止 SQL Server 2008 中的日志文件增长?

在我的应用程序中,在恢复后,我对新创建的数据库执行了许多(>100,000,000)次更新。因此,日志文件会增长显著地

我怎样才能阻止它生长?

注意:将恢复模型设置为简单是行不通的。

此外,这个问题最初发布在这里:https://stackoverflow.com/questions/4400057/how-to-stop-log-file-from-growing-in-sql-server-2008

答案1

您能否将恢复模型更改为简单,并延长到足以执行缩减的时间,然后再将恢复模型设置回来?

就像是:

alter database <mydb> set recovery simple
go
checkpoint
go
alter database <mydb> set recovery full
go
backup database pubs to disk = 'c:\mydb.bak' with init
go
dbcc shrinkfile (N'mydb_log' , 1)
go

我承认我借用了http://sql-server-performance.com/Community/forums/p/28345/151682.aspx

该链接还链接到:http://madhuottapalam.blogspot.com/2008/05/faq-how-to-truncate-and-shrink.html

答案2

你需要:

  1. 切换到简单恢复模式或更频繁地备份事务日志
  2. 使用循环机制以较小的批次应用更新。

答案3

正如我建议的那样堆栈溢出

你需要:

  1. 切换到简单恢复模式或更频繁地备份事务日志
  2. 使用循环机制以较小的批次应用更新。

答案4

我想到的一件事是,你可以利用批量更新来插入/更新这 1 亿条记录。请参阅以下信息MSDN 上的讨论使用最少的日志记录和批量更新。

相关内容