我需要尽可能短的最佳方式来处理 SQL Server 事务日志文件,因为我的磁盘将来在保存它们时会出现问题。我不知道如何解决这个磁盘空间不足的问题,因为我的驱动器的可用空间已经在 MB 中。
现在,我不知道如果将日志移动到其他驱动器是否会丢失或影响日志,或者如果磁盘空间已满,是否会影响事务或如何根据以前的事务保存未来的日志. 有人请帮忙!!
我需要尽可能短的最佳方式来处理 SQL Server 事务日志文件,因为我的磁盘将来在保存它们时会出现问题。我不知道如何解决这个磁盘空间不足的问题,因为我的驱动器的可用空间已经在 MB 中。
现在,我不知道如果将日志移动到其他驱动器是否会丢失或影响日志,或者如果磁盘空间已满,是否会影响事务或如何根据以前的事务保存未来的日志. 有人请帮忙!!
让我们首先从表中删除一些东西:不要删除或移动任何数据库 mdf 或 ldf 文件。您最终会损坏和丢失数据库。
您需要调查日志增长的原因。去阅读可以延迟日志截断的因素。按照文章中的步骤确定日志增长的原因。
如果原因不是“LOG_BACKUP”,请发布您发现的原因的更新,我们可以提供进一步的建议。
如果原因是LOG_BACKUP,那么我们可以继续。您有一个未正确备份的非简单恢复模式的数据库。你需要回答一个问题:为什么数据库不处于 SIMPLE 恢复模式?这是一个商业决策问题,所以我们不可能知道答案。
如果您不知道上述问题的答案,或者您意识到简单恢复模式是可以接受的,那么我们可以进行快速修复。将恢复模式更改为 SIMPLE,然后运行DBCC SHRINKFILE以收缩日志。
如果您需要一个非简单的恢复模型,那么您需要设置一个适当的日志备份计划并开始进行日志备份。阅读事务日志备份并使用维护计划向导。请参阅如何收缩 SQL Server 日志以了解由于日志的循环性质,为什么需要重复日志备份直到 SHRINKFILE 生效。
首先,您应该阅读Remus Rusanu 撰写的出色答案。
一开始,他写道:
让我们首先从表中删除一些东西:不要删除或移动任何数据库 mdf 或 ldf 文件。您最终会损坏和丢失数据库。
澄清:可以将日志文件移动到另一个驱动器以释放当前驱动器上的空间。
只是当 SQL Server 正在使用数据库时,您不能/不应该只在 Windows 资源管理器中移动文件。
免责声明:如果您按照 Remus 回答中的步骤进行操作,您可能不需要这样做。
但是您仍然可能希望将日志文件移动到不同的驱动器。
出于性能原因(如果数据库和日志文件位于两个不同的物理驱动器上,SQL Server 会更快,因为有大量写入日志文件),或者如果您仍然有磁盘空间问题(即使您缩小日志文件或定期备份它,有一天数据库大小会增长,以至于驱动器太小而无法容纳两个文件)。
要将日志文件(或数据库文件)移动到另一个位置,您需要:
这是两个带有屏幕截图的教程如何执行此操作: