请问数据库专家一个sql server问题:
有一个100G 的备份数据库,只有我一个人用。transactions log 100M. 我想删掉一个80M 纪录的表里的40M纪录,先删了10M,发现transanctions log 变成20G.
做了 transactions log backup, 然后从gui开始shrink database,选择log 文件,显示目前大小20G,正在用的100M。但是一运行shink log立刻返回成功,log大小一点没变。
试了很久,最后发现只有用 backup log dbname with truncate_only, 然后 dbcc shrinkfile就成功了。
我不明白为什么inactive log 已经被移出log了(20G里只有100M在用),dbcc shrinkfile就是不行呢?
with truncate_only好像比较危险,微软不建议的,以后版本都要取消了。
有一个100G 的备份数据库,只有我一个人用。transactions log 100M. 我想删掉一个80M 纪录的表里的40M纪录,先删了10M,发现transanctions log 变成20G.
做了 transactions log backup, 然后从gui开始shrink database,选择log 文件,显示目前大小20G,正在用的100M。但是一运行shink log立刻返回成功,log大小一点没变。
试了很久,最后发现只有用 backup log dbname with truncate_only, 然后 dbcc shrinkfile就成功了。
我不明白为什么inactive log 已经被移出log了(20G里只有100M在用),dbcc shrinkfile就是不行呢?
with truncate_only好像比较危险,微软不建议的,以后版本都要取消了。