我有一个问题,我的 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
请有人帮帮我
答案1
进入管理工作室,右键单击数据库,任务>收缩>文件。
在文件类型下,选择日志文件。确保选择释放未使用的空间作为收缩操作,然后单击确定。
至于缩小的日志文件再次快速增长,可能是因为您设置为完整恢复模式。将其设置为简单将立即提交更改,而不会将其保存在日志中。简单只有在您定期执行完整备份时才有用。
答案2
如果您想防止进一步增长,您需要将数据库日志设置为简单(但前提是您对数据库进行了完整备份!)。
- 右键点击在你的数据库上
- 选择特性
- 选择选项
- 将恢复模式设置为简单的
这会很有效,并且最好是您的备份计划是完整备份每天。因为在这种情况下,您的日志不会被修剪,而且会飙升。
如果您使用祖父和父亲和儿子备份技术。这意味着每月完整备份,每周完整备份,然后每个日增量备份. 那么你需要完全恢复模式。因此,考虑到您将数据库设置为完全备份,您需要停止这样做并将备份切换到简单恢复模式,或者开始正确执行备份,并且您的日志将被备份修剪。
如果您将其切换为简单然后切换为完整,则您的日志将再次增长。
结合 DanBig 的建议,按照以下步骤缩小数据库:
- 打开 Sql Management Studio
- 右键单击数据库,任务 > 收缩 > 文件。
- 在文件类型下,选择日志文件。确保将选项标记
Release unused space
为收缩操作,然后单击确定。