如何自动清理数据库日志文件以防止错误?

如何自动清理数据库日志文件以防止错误?

我托管网站,有时会出现错误:The log file for database '%.*ls' is full.并且必须联系我的托管服务提供商来清理数据库日志文件。

我如何禁用日志记录或对其进行配置以确保日志文件不会被填满?

(我正在使用社区服务器引擎,所以不能进行 SQL 优化。)

答案1

日志文件取决于数据库恢复模式。默认为完整,这意味着您将备份数据库和事务日志。当您备份事务日志时,它将被截断。如果您从不备份事务日志,它将永远增长。如果您只想备份完整数据库,则将恢复模式更改为简单。

一旦更改,您将需要缩小日志文件(在 SQL Management Studio 中右键单击数据库,任务 > 缩小 > 文件)。您可以将它们设置为自动缩小,但一旦解决了底层恢复模型问题,您可能不需要这样做。

答案2

这是指事务日志,而不是错误日志,并且无法在 SQL Server 上禁用它。每个事务在将更改写入数据库本身之前都会写入事务日志,以保护数据库的完整性。如果数据库使用的是完整恢复模式(听起来您的数据库就是如此),则只有在事务日志备份(而不是完整备份)后才会覆盖事务日志记录;如果将恢复模式更改为简单恢复模式,则日志记录的保留时间会缩短,并且不需要事务日志备份。但是,根据您的托管服务提供商,这可能超出您的控制范围;您必须检查他们为您提供了多少数据库设置控制权,如果您没有直接控制权,请请求更改。

相关内容