我有一个问题,就是我在SQL Server 2008中的日志文件增长到40GB,我想缩小它。 我正在使用的查询是
ALTER DATABASE DatabaseName SET RECOVERY SIMPLE use DatabaseName GO CHECKPOINT GO DBCC SHRINKFILE(transactionloglogicalfilename,TRUNCATEONLY) GO ALTER DATABASE DatabaseName SET RECOVERY FULL
不会收缩更多级别的日志文件,而且收缩日志文件只能在短时间内立即扩展。
那么问题在哪里?
我想把日志文件缩小到1GB,我的数据库大小是16GB
我有SQL Server 2008 R2
请有人帮助我
进入pipe理工作室,右键单击数据库,任务>收缩>文件。
在“文件types”下,select日志文件。 确保select“释放未使用的空间”作为收缩操作,然后单击“确定”。
至于缩小的日志文件再次快速增长,可能是因为您设置为完全恢复模式。 将其设置为简单将立即提交更改,而不是将它们保存在日志中。 如果您正在定期执行完整备份,那么简单就很好。
如果你想防止进一步增长,你需要设置你的数据库日志logging为简单的(但只有当你做数据库的完全备份!)。
如果您的备份时间表是每天完整备份,这将是最好的。 因为在这种情况下你的日志不会被修剪,而且会飞涨。
如果你会使用祖父&父子备份技术。 这意味着每月完整备份 , 每周完整备份 ,然后每天进行增量备份 。 那么你需要完全恢复模式 。 因此,考虑到您将数据库设置为完全备份,您需要停止执行此操作并将备份切换到简单恢复模式,或者开始正确备份,并且您的日志将通过备份进行修剪。
在你的情况下,你把它切换到简单,然后切换到完整您的日志将再次增长。
把它和DanBig的build议结合起来,通过下面的步骤收缩数据库:
Release unused space标记为收缩操作,然后单击“确定”。