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

我托pipe网站,有时会得到一个错误: The log file for database '%.*ls' is full. 并必须联系我的主机提供商清理数据库日志文件。

如何禁用日志logging或configuration它以确保日志文件不会填满?

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

日志文件依赖于数据库恢复模型。 缺省值是Full,这意味着您将要执行数据库和事务日志的备份。 备份事务日志时,它将被截断。 如果您从不备份事务日志,它将永远增长。 如果您只想备份完整数据库,请将恢复模式更改为简单模式。

一旦这个改变了,你会想要缩小日志文件(在SQLpipe理工作室中的右键单击数据库,任务>收缩>文件)。 您可以将它们设置为自动缩小,但是一旦您修复了可能不需要的基础恢复模型问题。

这是指事务日志,而不是错误日志,并且不能在SQL Server上禁用。 每个事务在写入数据库本身的变更之前写入事务日志,以保护数据库的完整性。 如果数据库正在使用完整恢复模式(听起来像您的),则事务日志logging将仅在事务日志备份(而不是完整备份)之后被覆盖。 如果将恢复模式更改为简单,则日志logging将保留更短的时间,并且不需要事务日志备份。 然而,这取决于你的托pipe服务提供商,这可能是你无法控制的。 您将不得不检查他们对数据库设置的控制权限,并且如果您没有直接控制权,请求更改。