在Sql Server中,我发现当我将数据库标记为只读时,其现有的大型事务日志仍然存在。要修复此问题,我必须将其设置为可写,然后将dbcc shrinkfile设置为日志文件,然后再将其设置为只读。
如果数据库是只读的,那么事务日志的用途是什么?有没有理由它不会被删除/刷新?
答案 0 :(得分:3)
如果您的数据库仍处于完全恢复模式,则没有正确的备份,日志将不会缩小。您应该将只读数据库切换为简单恢复。
此外,如果您决定分离/附加此数据库,则需要日志文件。如上所述here:
相比之下,对于只读数据库, 日志无法重建,因为 主文件无法更新。 因此,当您附加只读 您的日志不可用的数据库 必须提供日志文件或文件 FOR ATTACH条款。
答案 1 :(得分:1)
只读数据库上的事务日志没有用处:-)假设您已经过了某个时刻,您不再关心为填充它而完成的事务。我想它并没有被刷新,因为那不是很好的默认行为,想象一下你是否想回到写模式?或者您在只读操作期间发现存在问题而您需要使用日志?