【问题标题】:Is it ok to change from full recovery to simple recovery in Sql ServerSql Server中从完全恢复改为简单恢复可以吗
【发布时间】:2014-07-01 15:59:50
【问题描述】:

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

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

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

恢复模式当前设置为“完全”。我明白那是什么 - 我不需要时间点恢复。

如果我只是在 Sql Server Management Studio 中将恢复模式更改为“简单”:

...然后单击“确定”以保存更改 - 我会以任何方式冒着当前数据库的风险吗?或者 Sql Server 可以对实时数据库进行这样的更改吗?日志文件会自动收缩吗?

感谢您的建议,

标记

【问题讨论】:

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


【解决方案1】:

您应该没问题,事务已提交。日志文件正在等待备份并因此被释放。改成Simple Recovery意味着你不能做滚动备份,但是数据会像以前一样提交到db,在sql完成写入事务后简单地删除日志。

【讨论】:

    【解决方案2】:

    回答你的两个问题:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-22
      • 2014-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多