管理SQL Server .LDF文件的增长

sen*_*ale 8 sql-server-2008

今天我看到SQL Server数据库的.ldf文件大66 GB.MDF只有200 MB大.

如何禁用.ldf文件中的日志记录?

Mad*_*Boy 14

您的数据库可能已处于完全恢复模式状态,因此最简单,最简单的方法是进行完全备份,然后进行增量备份,这将大大减少.

如果您不想进行增量备份(例如,由于缺少备份软件),并且您不希望LDF变得那么大,则需要将恢复模式设置为简单.

将数据库日志记录设置为简单(但仅当您对数据库执行完全备份时!).

  1. 右键单击您的数据库
  2. 选择属性
  3. 选择选项
  4. 将恢复模式设置为简单

要修剪数据库日志文件,请执行以下步骤

获取数据库文件(MDF)和日志文件(LDF)的物理名称:运行以下系统存储过程:

use <yourdatabasename>
exec sp_helpfile
Run Code Online (Sandbox Code Playgroud)

此命令将返回各种信息,包括物理大小(size列)以及数据库和日志文件的路径和名称(在filename列中).

从"filename"colunm记录文件的名称,不包括路径和文件扩展名(例如,如果filename包含C:\sqldatabases\yourdatabase_data.mdf您要保存的字符串yourdatabase_data)

截断数据库并收缩数据库以下SQL集将缩小数据库和truncate日志文件.文件在<...>包围的parmaters中.请注意,您需要filename步骤1中的两个值.

USE <yourdatabasename>
GO
BACKUP LOG <yourdatabasename> WITH TRUNCATE_ONLY
GO
DBCC SHRINKFILE (<yourdatabaselogfilename>, 1)
GO
DBCC SHRINKFILE (<yourdatabasedatafilename>, 1)
GO
exec sp_helpfile
Run Code Online (Sandbox Code Playgroud)

  • 这个答案已经过时了(使用SQL Server Server 2008).只有TRUNCATE的备份不再有效.对于2008,你想要DBCC SHRINKFILE('ExampleDB_log',0,TRUNCATEONLY) (7认同)