3

我需要尽可能短的最佳方式来处理 SQL Server 事务日志文件,因为我的磁盘将来在保存它们时会出现问题。我不知道如何解决这个磁盘空间不足的问题,因为我的驱动器的可用空间已经在 MB 中。

现在,我不知道如果将日志移动到其他驱动器是否会丢失或影响日志,或者如果磁盘空间已满,是否会影响事务或如何根据以前的事务保存未来的日志. 有人请帮忙!!

4

2 回答 2

10

让我们首先从表中删除一些东西:不要删除或移动任何数据库 mdf 或 ldf 文件。您最终会损坏和丢失数据库。

  1. 您需要调查日志增长的原因。去阅读可以延迟日志截断的因素。按照文章中的步骤确定日志增长的原因。

  2. 如果原因不是“LOG_BACKUP”,请发布您发现的原因的更新,我们可以提供进一步的建议。

  3. 如果原因LOG_BACKUP,那么我们可以继续。您有一个未正确备份的非简单恢复模式的数据库。你需要回答一个问题:为什么数据库处于 SIMPLE 恢复模式?这是一个商业决策问题,所以我们不可能知道答案。

  4. 如果您不知道上述问题的答案,或者您意识到简单恢复模式是可以接受的,那么我们可以进行快速修复。将恢复模式更改为 SIMPLE,然后运行​​DBCC SHRINKFILE以收缩日志。

  5. 如果您需要一个非简单的恢复模型,那么您需要设置一个适当的日志备份计划并开始进行日志备份。阅读事务日志备份使用维护计划向导。请参阅如何收缩 SQL Server 日志以了解由于日志的循环性质,为什么需要重复日志备份直到 SHRINKFILE 生效。

于 2013-03-29T10:11:46.027 回答
1

首先,您应该阅读Remus Rusanu 撰写的出色答案

一开始,他写道:

让我们首先从表中删除一些东西:不要删除或移动任何数据库 mdf 或 ldf 文件。您最终会损坏和丢失数据库。

澄清:可以将日志文件移动到另一个驱动器以释放当前驱动器上的空间。
只是当 SQL Server 正在使用数据库时,您不能/不应该只在 Windows 资源管理器中移动文件。

免责声明:如果您按照 Remus 回答中的步骤进行操作,您可能不需要这样做。

但是您仍然可能希望将日志文件移动到不同的驱动器。
出于性能原因(如果数据库和日志文件位于两个不同的物理驱动器上,SQL Server 会更快,因为有大量写入日志文件),或者如果您仍然有磁盘空间问题(即使您缩小日志文件或定期备份它,有一天数据库大小会增长,以至于驱动器太小而无法容纳两个文件)

要将日志文件(或数据库文件)移动到另一个位置,您需要:

  1. 从 SQL Server 分离数据库
  2. 移动文件
  3. 重新附加数据库并指定新文件位置

这是两个带有屏幕截图的教程如何执行此操作:

于 2013-03-29T13:09:37.073 回答