我有一个旧数据库 - 几年前由ASP.Net 2应用程序自动设置的用户成员资格/角色:
当前运行的Sql Server版本是:Sql Server 10.5.1617
用户数据库日志文件很大(ldf文件大约是mdf文件大小的400倍)。
恢复模型目前设置为“完整”。我理解那是什么 - 我不需要及时恢复。
如果我只是从Sql Server Management Studio中将恢复模型更改为“简单”:
...然后单击确定以保存更改 - 我会以任何方式冒险使用当前的数据库吗?或者Sql Server是否可以将这样的更改转换为实时数据库?并且日志文件会自动缩小吗?
感谢您的建议,
标记
答案 0 :(得分:2)
你应该没事,交易已经提交。日志文件正在等待备份并因此被释放。更改为简单恢复意味着您无法执行滚动备份,但数据将以与以前相同的方式提交到数据库,只需在sql完成事务处理后删除日志。
答案 1 :(得分:1)
回答你的两个问题:
dbcc loginfo
,特别是“状态”列。该命令的输出中的每一行代表一个虚拟日志文件(vlf)。 shrink命令只能清除文件末尾的非活动(即status = 0)vlf的连续块。 TL; DR - 如果底部有状态= 2的行,请等到你没有然后缩小。