我不是SQL专家,每当我需要做一些基本之外的事情时,我就会想起这个事实。我有一个测试数据库,它的大小不是很大,但是事务日志确实很大。如何清除事务日志?


当前回答

备份数据库 分离数据库 重命名日志文件 附加DB(同时附加删除重命名的.ldf(日志文件)。选择它并按下删除按钮) 将重新创建新的日志文件 删除重命名日志文件。

这可以工作,但建议先备份数据库。

其他回答

根据我在大多数SQL server上的经验,没有事务日志的备份。 完全备份或差异备份是常见的实践,但事务日志备份确实很少。 因此事务日志文件会一直增长(直到磁盘满为止)。 在这种情况下,恢复模型应该设置为“simple”。 不要忘记修改系统数据库“model”和“tempdb”。

数据库“tempdb”的备份没有任何意义,因此这个数据库的恢复模型应该总是“简单”的。

它发生在我身上,数据库日志文件是28 gb。

你能做些什么来减少这种情况呢? 实际上,日志文件是SQL服务器在事务发生时保存的文件数据。对于要处理的事务,SQL服务器为其分配页面。但在交易完成后,它们不会突然被释放,希望可能会有类似的交易到来。这撑起了空间。

步骤1: 首先在已探索的数据库查询中运行此命令 检查点

步骤2: 右键单击数据库 任务>备份 选择备份类型为事务日志 添加目标地址和文件名以保存备份数据(.bak)

再次重复此步骤,此时给出另一个文件名

步骤3: 现在转到数据库 右键单击数据库

>收缩>文件 “文件类型”选择“日志” 收缩动作释放未使用空间

步骤4:

检查日志文件 通常在SQL 2014中可以在

C:\Program Files\Microsoft SQL Server\MSSQL12。MSSQL2014EXPRESS \该\数据

在我的例子中,它从28 GB减少到1 MB

备份数据库 分离数据库 重命名日志文件 附加DB(同时附加删除重命名的.ldf(日志文件)。选择它并按下删除按钮) 将重新创建新的日志文件 删除重命名日志文件。

这可以工作,但建议先备份数据库。

数据库→右键单击属性→文件→添加另一个不同名称的日志文件,并将路径设置为与旧日志文件相同,只是文件名不同。

数据库自动获取新创建的日志文件。

首先检查数据库恢复模型。默认情况下,SQL Server Express Edition会为简单恢复创建一个数据库 (如果我没记错的话)。

备份日志DatabaseName With Truncate_Only

DBCC ShrinkFile(yourLogical_LogFileName, 50)

SP_helpfile将为您提供逻辑日志文件名。

请参考:

从SQL Server数据库中的完整事务日志中恢复

如果您的数据库处于完全恢复模式,并且您没有进行TL备份,那么将其更改为SIMPLE。