可以在Sql Server中从完全恢复更改为简单恢复

时间:2014-07-01 15:59:51

标签: asp.net sql sql-server sql-server-2008

我有一个旧数据库 - 几年前由ASP.Net 2应用程序自动设置的用户成员资格/角色:

enter image description here

当前运行的Sql Server版本是:Sql Server 10.5.1617

用户数据库日志文件很大(ldf文件大约是mdf文件大小的400倍)。

恢复模型目前设置为“完整”。我理解那是什么 - 我不需要及时恢复。

如果我只是从Sql Server Management Studio中将恢复模型更改为“简单”: enter image description here

...然后单击确定以保存更改 - 我会以任何方式冒险使用当前的数据库吗?或者Sql Server是否可以将这样的更改转换为实时数据库?并且日志文件会自动缩小吗?

感谢您的建议,

标记

2 个答案:

答案 0 :(得分:2)

你应该没事,交易已经提交。日志文件正在等待备份并因此被释放。更改为简单恢复意味着您无法执行滚动备份,但数据将以与以前相同的方式提交到数据库,只需在sql完成事务处理后删除日志。

答案 1 :(得分:1)

回答你的两个问题:

  1. 更改实时数据库上的恢复模型是安全的。你不应该导致任何停机,阻塞等。
  2. 日志文件不会自行缩小。您可能会发现,一旦将恢复模型设置为简单,它就不会立即收缩。如果您发现自己无法缩小它,请查看dbcc loginfo,特别是“状态”列。该命令的输出中的每一行代表一个虚拟日志文件(vlf)。 shrink命令只能清除文件末尾的非活动(即status = 0)vlf的连续块。 TL; DR - 如果底部有状态= 2的行,请等到你没有然后缩小。