92MB .mdf 和 58MB .ldf 可以吗?我该如何管理日志以保持正常运行?

92MB .mdf 和 58MB .ldf 可以吗?我该如何管理日志以保持正常运行?

我已经安排了工作来修剪用于历史记录和日志记录的表,以保持它们的整洁。我想确保我不会忽略日志文件。

我应该怎样做才能检查日志文件?

我每晚运行的 SQL 脚本是:

declare @DBname varchar(500)
set @DBname = 'E:\Database\backup\PMIS_backup_' +
    convert(varchar(MAX), getdate(), 23 ) +'.bak'

BACKUP DATABASE [PMIS] TO DISK = @DBname
    WITH NOFORMAT, NOINIT, NAME = @DBname, SKIP, REWIND, NOUNLOAD, STATS = 10

数据库处于简单恢复模式。

答案1

如果数据库处于简单恢复模式,并且日志文件没有逐渐变大,那么我就不用担心了。如果有任何类型的维护计划定期进行大量重新索引,那么日志文件可能需要那么大。

如果日志文件变大,您将需要找出原因。您可以运行 DBCC SQLPERF(LOGSPACE) 来查看日志文件的使用量 - 如果使用量一直很高,则检查 master.sys.databases 中的 log_reuse_wait_desc 列以查看为什么它没有像预期的那样重新使用空间。如果使用率很低,那么可能有一些一次性事务做了很多工作并导致日志文件增长。如果这是一个会定期发生的事务,那么反复缩小和增加日志文件只会损害性能,因此请将其保持在可以提供舒适工作空间的任何大小。另一方面,如果日志文件的大小是数据文件的许多倍,那么这可能没有必要。

答案2

您是否在进行事务日志备份?每次备份成功后,SQL 都会从日志中删除不活动的事务,仅此一项就可以使事务日志文件的大小保持可控。

答案3

您需要在备份日志文件后缩小日志文件。

每次从表中删除记录时,都会从数据文件中删除数据,但该操作会记录在日志文件中(因此得名;-)。

当数据库配置为完整恢复模式时,日志文件也会无限地附加,直到备份为止。查看MSDN:事务日志物理架构了解更多信息。

另外,如果您不定期进行事务日志备份(大概是因为您不需要时间点恢复),则应考虑使用简单恢复模型。当然,您应该先备份和缩小日志文件,然后将数据库的恢复模型更改为简单。

相关内容