截断SQL Server事务日志文件

时间:2012-02-10 19:39:17

标签: sql-server

在我的本地C:驱动器中,我有一个ldf文件,用于托管在我们的某个服务器上的数据库。我有一个1 gb的数据库的本地副本和该数据库的ldf(日志文件)16gb。它在我的硬盘上吃掉了很多我当地的空间。我想截断该文件。我在网上看到的很多内容都没有,但似乎他们正在讨论数据库所在的服务器上的文件。这不是这种情况,它在我的本地机器上。

我机器上文件的位置是:

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA

为什么我在本地拥有该日志文件的副本以及本地的该数据库?

如何截断此文件?

谢谢!

2 个答案:

答案 0 :(得分:28)

转到SSMS中的对象资源管理器窗格,然后右键单击相关数据库。选择任务 - >收缩 - >文件。将文件类型选项更改为日志,单击“在释放未使用的空间之前重新组织页面”选项,并将值设置为1 MB。点击确定。

如果这不起作用,请检查您的数据库是否设置了完整数据库恢复模型。右键单击数据库并转到属性。选择“选项”,然后选中“恢复模型”选项。设置为简单(如果可以!!!),然后缩小日志。

答案 1 :(得分:1)

您可以尝试的另一个选项是使用WITH TRUNCATE_ONLY:

BACKUP LOG  databasename  WITH TRUNCATE_ONLY
DBCC SHRINKFILE (  adventureworks_Log, 1)

但不要在实时环境中尝试此选项,更好的选择是在简单恢复中设置数据库。请参阅以下命令:

ALTER DATABASE mydatabase SET RECOVERY SIMPLE
 DBCC SHRINKFILE (adventureworks_Log, 1)